wide/static/js/lib.min.js

47 lines
1.3 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(h,e){var t=[],c=t.slice,g=t.concat,a=t.push,i=t.indexOf,n={},r=n.toString,m=n.hasOwnProperty,v={},y=h.document,o="2.1.1",C=function(e,t){return new C.fn.init(e,t)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,u=/^-ms-/,l=/-([\da-z])/gi,f=function(e,t){return t.toUpperCase()};function p(e){var t=e.length,n=C.type(e);return"function"!==n&&!C.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e))}C.fn=C.prototype={jquery:o,constructor:C,selector:"",length:0,toArray:function(){return c.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:c.call(this)},pushStack:function(e){var t=C.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return C.each(this,e,t)},map:function(n){return this.pushStack(C.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(c.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:a,sort:t.sort,splice:t.splice},C.extend=C.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[a]||{},a++),"object"==typeof s||C.isFunction(s)||(s={}),a===u&&(s=this,a--);a<u;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],s!==(r=e[t])&&(l&&r&&(C.isPlainObject(r)||(i=C.isArray(r)))?(o=i?(i=!1,n&&C.isArray(n)?n:[]):n&&C.isPlainObject(n)?n:{},s[t]=C.extend(l,o,r)):void 0!==r&&(s[t]=r));return s},C.extend({expando:"jQuery"+(o+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===C.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!C.isArray(e)&&0<=e-parseFloat(e)},isPlainObject:function(e){return"object"===C.type(e)&&!e.nodeType&&!C.isWindow(e)&&!(e.constructor&&!m.call(e.constructor.prototype,"isPrototypeOf"))},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[r.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;(e=C.trim(e))&&(1===e.indexOf("use strict")?((t=y.createElement("script")).text=e,y.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(u,"ms-").replace(l,f)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r=0,i=e.length,o=p(e);if(n){if(o)for(;r<i&&!1!==t.apply(e[r],n);r++);else for(r in e)if(!1===t.apply(e[r],n))break}else if(o)for(;r<i&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(s,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?C.merge(n,"string"==typeof e?[e]:e):a.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,s=!n;i<o;i++)!t(e[i],i)!==s&&r.push(e[i]);return r},map:function(e,t,n){var r,i=0,o=e.length,s=[];if(p(e))for(;i<o;i++)null!=(r=t(e[i],i,n))&&s.push(r);else for(i in e)null!=(r=t(e[i],i,n))&&s.push(r);return g.apply([],s)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),C.isFunction(e)?(r=c.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(c.call(arguments)))}).guid=e.guid=e.guid||C.guid++,i):void 0},now:Date.now,support:v}),C.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,h,b,o,r,g,f,m,w,l,c,v,T,i,y,x,s,a,C,N="sizzle"+-new Date,k=n.document,E=0,p=0,u=ie(),d=ie(),S=ie(),j=function(e,t){return e===t&&(c=!0),0},D="undefined",A={}.hasOwnProperty,t=[],L=t.pop,q=t.push,H=t.push,O=t.slice,F=t.indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+W+"))|)"+M+"*\\]",B=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+$+")*)|.*)\\)|)",I=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),X=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),U=new RegExp(B),V=new RegExp("^"+W+"$"),Y={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R.replace("w","w*")+")"),ATTR:new RegExp("^"+$),PSEUDO:new RegExp("^"+B),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/[+~]/,ee=/'|\\/g,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{H.apply(t=O.call(k.childNodes),k.childNodes),t[k.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){q.apply(e,O.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function re(e,t,n,r){var i,o,s,a,u,l,c,f,p,d;if((t?t.ownerDocument||t:k)!==T&&v(t),n=n||[],!e||"string"!=typeof e)return n;if(1!==(a=(t=t||T).nodeType)&&9!==a)return[];if(y&&!r){if(i=K.exec(e))if(s=i[1]){if(9===a){if(!(o=t.getElementById(s))||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&C(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return H.apply(n,t.getElementsByTagName(e)),n;if((s=i[3])&&h.getElementsByClassName&&t.getElementsByClassName)return H.apply(n,t.getElementsByClassName(s)),n}if(h.qsa&&(!x||!x.test(e))){if(f=c=N,p=t,d=9===a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){for(l=g(e),(c=t.getAttribute("id"))?f=c.replace(ee,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",u=l.length;u--;)l[u]=f+he(l[u]);p=Z.test(e)&&pe(t.parentNode)||t,d=l.join(",")}if(d)try{return H.apply(n,p.querySelectorAll(d)),n}catch(e){}finally{c||t.removeAttribute("id")}}}return m(e.replace(I,"$1"),t,n,r)}function ie(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function oe(e){return e[N]=!0,e}function se(e){var t=T.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ae(e,t){for(var n=e.split("|"),r=e.length;r--;)b.attrHandle[n[r]]=t}function ue(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function le(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function ce(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function fe(s){return oe(function(o){return o=+o,oe(function(e,t){for(var n,r=s([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function pe(e){return e&&typeof e.getElementsByTagName!==D&&e}for(e in h=re.support={},r=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},v=re.setDocument=function(e){var t,u=e?e.ownerDocument||e:k,n=u.defaultView;return u!==T&&9===u.nodeType&&u.documentElement?(i=(T=u).documentElement,y=!r(u),n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",function(){v()},!1):n.attachEvent&&n.attachEvent("onunload",function(){v()})),h.attributes=se(function(e){return e.className="i",!e.getAttribute("className")}),h.getElementsByTagName=se(function(e){return e.appendChild(u.createComment("")),!e.getElementsByTagName("*").length}),h.getElementsByClassName=J.test(u.getElementsByClassName)&&se(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),h.getById=se(function(e){return i.appendChild(e).id=N,!u.getElementsByName||!u.getElementsByName(N).length}),h.getById?(b.find.ID=function(e,t){if(typeof t.getElementById!==D&&y){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}}):(delete b.find.ID,b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=typeof e.getAttributeNode!==D&&e.getAttributeNode("id");return t&&t.value===n}}),b.find.TAG=h.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==D?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},b.find.CLASS=h.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==D&&y?t.getElementsByClassName(e):void 0},s=[],x=[],(h.qsa=J.test(u.querySelectorAll))&&(se(function(e){e.innerHTML="<select msallowclip=''><option selected=''></option></select>",e.querySelectorAll("[msallowclip^='']").length&&x.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||x.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll(":checked").length||x.push(":checked")}),se(function(e){var t=u.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&x.push("name"+M+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||x.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),x.push(",.*:")})),(h.matchesSelector=J.test(a=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.oMatchesSelector||i.msMatchesSelector))&&se(function(e){h.disconnectedMatch=a.call(e,"div"),a.call(e,"[s!='']:x"),s.push("!=",B)}),x=x.length&&new RegExp(x.join("|")),s=s.length&&new RegExp(s.join("|")),t=J.test(i.compareDocumentPosition),C=t||J.test(i.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return c=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!h.sortDetached&&t.compareDocumentPosition(e)===n?e===u||e.ownerDocument===k&&C(k,e)?-1:t===u||t.ownerDocument===k&&C(k,t)?1:l?F.call(l,e)-F.call(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return c=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],a=[t];if(!i||!o)return e===u?-1:t===u?1:i?-1:o?1:l?F.call(l,e)-F.call(l,t):0;if(i===o)return ue(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[r]===a[r];)r++;return r?ue(s[r],a[r]):s[r]===k?-1:a[r]===k?1:0},u):T},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&v(e),t=t.replace(X,"='$1']"),!(!h.matchesSelector||!y||s&&s.test(t)||x&&x.test(t)))try{var n=a.call(e,t);if(n||h.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0<re(t,T,null,[e]).length},re.contains=function(e,t){return(e.ownerDocument||e)!==T&&v(e),C(e,t)},re.attr=function(e,t){(e.ownerDocument||e)!==T&&v(e);var n=b.attrHandle[t.toLowerCase()],r=n&&A.call(b.attrHandle,t.toLowerCase())?n(e,t,!y):void 0;return void 0!==r?r:h.attributes||!y?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},re.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},re.uniqueSort=function(e){var t,n=[],r=0,i=0;if(c=!h.detectDuplicates,l=!h.sortStable&&e.slice(0),e.sort(j),c){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return l=null,e},o=re.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=o(t);return n},(b=re.selectors={cacheLength:50,createPseudo:oe,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&U.test(n)&&(t=g(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=u[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&u(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==D&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=re.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var m="nth"!==d.slice(0,3),v="last"!==d.slice(-4),y="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,s,a,u,l=m!==v?"nextSibling":"previousSibling",c=e.parentNode,f=y&&e.nodeName.toLowerCase(),p=!n&&!y;if(c){if(m){for(;l;){for(o=e;o=o[l];)if(y?o.nodeName.toLowerCase()===f:1===o.nodeType)return!1;u=l="only"===d&&!u&&"nextSibling"}return!0}if(u=[v?c.firstChild:c.lastChild],v&&p){for(a=(r=(i=c[N]||(c[N]={}))[d]||[])[0]===E&&r[1],s=r[0]===E&&r[2],o=a&&c.childNodes[a];o=++a&&o&&o[l]||(s=a=0)||u.pop();)if(1===o.nodeType&&++s&&o===e){i[d]=[E,a,s];break}}else if(p&&(r=(e[N]||(e[N]={}))[d])&&r[0]===E)s=r[1];else for(;(o=++a&&o&&o[l]||(s=a=0)||u.pop())&&((y?o.nodeName.toLowerCase()!==f:1!==o.nodeType)||!++s||(p&&((o[N]||(o[N]={}))[d]=[E,s]),o!==e)););return(s-=g)===h||s%h==0&&0<=s/h}}},PSEUDO:function(e,o){var t,s=b.pseudos[e]||b.setFilters[e.toLowerCase()]||re.error("unsupported pseudo: "+e);return s[N]?s(o):1<s.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?oe(function(e,t){for(var n,r=s(e,o),i=r.length;i--;)e[n=F.call(e,r[i])]=!(t[n]=r[i])}):function(e){return s(e,0,t)}):s}},pseudos:{not:oe(function(e){var r=[],i=[],a=f(e.replace(I,"$1"));return a[N]?oe(function(e,t,n,r){for(var i,o=a(e,null,r,[]),s=e.length;s--;)(i=o[s])&&(e[s]=!(t[s]=i))}):function(e,t,n){return r[0]=e,a(r,null,n,i),!i.pop()}}),has:oe(function(t){return function(e){return 0<re(t,e).length}}),contains:oe(function(t){return function(e){return-1<(e.textContent||e.innerText||o(e)).indexOf(t)}}),lang:oe(function(n){return V.test(n||"")||re.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=y?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===i},focus:function(e){return e===T.activeElement&&(!T.hasFocus||T.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:fe(function(){return[0]}),last:fe(function(e,t){return[t-1]}),eq:fe(function(e,t,n){return[n<0?n+t:n]}),even:fe(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:fe(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:fe(function(e,t,n){for(var r=n<0?n+t:n;0<=--r;)e.push(r);return e}),gt:fe(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=le(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=ce(e);function de(){}function he(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function ge(s,e,t){var a=e.dir,u=t&&"parentNode"===a,l=p++;return e.first?function(e,t,n){for(;e=e[a];)if(1===e.nodeType||u)return s(e,t,n)}:function(e,t,n){var r,i,o=[E,l];if(n){for(;e=e[a];)if((1===e.nodeType||u)&&s(e,t,n))return!0}else for(;e=e[a];)if(1===e.nodeType||u){if((r=(i=e[N]||(e[N]={}))[a])&&r[0]===E&&r[1]===l)return o[2]=r[2];if((i[a]=o)[2]=s(e,t,n))return!0}}}function me(i){return 1<i.length?function(e,t,n){for(var r=i.length;r--;)if(!i[r](e,t,n))return!1;return!0}:i[0]}function ve(e,t,n,r,i){for(var o,s=[],a=0,u=e.length,l=null!=t;a<u;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function ye(d,h,g,m,v,e){return m&&!m[N]&&(m=ye(m)),v&&!v[N]&&(v=ye(v,e)),oe(function(e,t,n,r){var i,o,s,a=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)re(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:ve(c,a,d,n,r),p=g?v||(e?d:l||m)?[]:t:f;if(g&&g(f,p,n,r),m)for(i=ve(p,u),m(i,[],n,r),o=i.length;o--;)(s=i[o])&&(p[u[o]]=!(f[u[o]]=s));if(e){if(v||d){if(v){for(i=[],o=p.length;o--;)(s=p[o])&&i.push(f[o]=s);v(null,p=[],i,r)}for(o=p.length;o--;)(s=p[o])&&-1<(i=v?F.call(e,s):a[o])&&(e[i]=!(t[i]=s))}}else p=ve(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function xe(e){for(var r,t,n,i=e.length,o=b.relative[e[0].type],s=o||b.relative[" "],a=o?1:0,u=ge(function(e){return e===r},s,!0),l=ge(function(e){return-1<F.call(r,e)},s,!0),c=[function(e,t,n){return!o&&(n||t!==w)||((r=t).nodeType?u(e,t,n):l(e,t,n))}];a<i;a++)if(t=b.relative[e[a].type])c=[ge(me(c),t)];else{if((t=b.filter[e[a].type].apply(null,e[a].matches))[N]){for(n=++a;n<i&&!b.relative[e[n].type];n++);return ye(1<a&&me(c),1<a&&he(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(I,"$1"),t,a<n&&xe(e.slice(a,n)),n<i&&xe(e=e.slice(n)),n<i&&he(e))}c.push(t)}return me(c)}return de.prototype=b.filters=b.pseudos,b.setFilters=new de,g=re.tokenize=function(e,t){var n,r,i,o,s,a,u,l=d[e+" "];if(l)return t?0:l.slice(0);for(s=e,a=[],u=b.preFilter;s;){for(o in(!n||(r=_.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),a.push(i=[])),n=!1,(r=z.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(I," ")}),s=s.slice(n.length)),b.filter)!(r=Y[o].exec(s))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?re.error(e):d(e,a).slice(0)},f=re.compile=function(e,t){var n,m,v,y,x,r,i=[],o=[],s=S[e+" "];if(!s){for(t||(t=g(e)),n=t.length;n--;)(s=xe(t[n]))[N]?i.push(s):o.push(s);(s=S(e,(m=o,y=0<(v=i).length,x=0<m.length,r=function(e,t,n,r,i){var o,s,a,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t!==T&&t);l!==g&&null!=(o=d[l]);l++){if(x&&o){for(s=0;a=m[s++];)if(a(o,t,n)){r.push(o);break}i&&(E=h)}y&&((o=!a&&o)&&u--,e&&c.push(o))}if(u+=l,y&&l!==u){for(s=0;a=v[s++];)a(c,f,t,n);if(e){if(0<u)for(;l--;)c[l]||f[l]||(f[l]=L.call(r));f=ve(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&re.uniqueSort(r)}return i&&(E=h,w=p),c},y?oe(r):r))).selector=e}return s},m=re.select=function(e,t,n,r){var i,o,s,a,u,l="function"==typeof e&&e,c=!r&&g(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(s=o[0]).type&&h.getById&&9===t.nodeType&&y&&b.relative[o[1].type]){if(!(t=(b.find.ID(s.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=Y.needsContext.test(e)?0:o.length;i--&&(s=o[i],!b.relative[a=s.type]);)if((u=b.find[a])&&(r=u(s.matches[0].replace(te,ne),Z.test(o[0].type)&&pe(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&he(o)))return H.apply(n,r),n;break}}return(l||f(e,c))(r,t,!y,n,Z.test(e)&&pe(t.parentNode)||t),n},h.sortStable=N.split("").sort(j).join("")===N,h.detectDuplicates=!!c,v(),h.sortDetached=se(function(e){return 1&e.compareDocumentPosition(T.createElement("div"))}),se(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ae("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),h.attributes&&se(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ae("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),se(function(e){return null==e.getAttribute("disabled")})||ae(P,function(e,t,n){var r;return n?void 0:!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),re}(h);C.find=d,C.expr=d.selectors,C.expr[":"]=C.expr.pseudos,C.unique=d.uniqueSort,C.text=d.getText,C.isXMLDoc=d.isXML,C.contains=d.contains;var x=C.expr.match.needsContext,b=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function T(e,n,r){if(C.isFunction(n))return C.grep(e,function(e,t){return!!n.call(e,t,e)!==r});if(n.nodeType)return C.grep(e,function(e){return e===n!==r});if("string"==typeof n){if(w.test(n))return C.filter(n,e,r);n=C.filter(n,e)}return C.grep(e,function(e){return 0<=i.call(n,e)!==r})}C.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?C.find.matchesSelector(r,e)?[r]:[]:C.find.matches(e,C.grep(t,function(e){return 1===e.nodeType}))},C.fn.extend({find:function(e){var t,n=this.length,r=[],i=this;if("string"!=typeof e)return this.pushStack(C(e).filter(function(){for(t=0;t<n;t++)if(C.contains(i[t],this))return!0}));for(t=0;t<n;t++)C.find(e,i[t],r);return(r=this.pushStack(1<n?C.unique(r):r)).selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&x.test(e)?C(e):e||[],!1).length}});var N,k=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(C.fn.init=function(e,t){var n,r;if(!e)return this;if("string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):C.isFunction(e)?void 0!==N.ready?N.ready(e):e(C):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),C.makeArray(e,this));if(!(n="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:k.exec(e))||!n[1]&&t)return!t||t.jquery?(t||N).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:y,!0)),b.test(n[1])&&C.isPlainObject(t))for(n in t)C.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return(r=y.getElementById(n[2]))&&r.parentNode&&(this.length=1,this[0]=r),this.context=y,this.selector=e,this}).prototype=C.fn,N=C(y);var E=/^(?:parents|prev(?:Until|All))/,S={children:!0,contents:!0,next:!0,prev:!0};function j(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.extend({dir:function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&C(e).is(n))break;r.push(e)}return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),C.fn.extend({has:function(e){var t=C(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(C.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],s=x.test(e)||"string"!=typeof e?C(e,t||this.context):0;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?-1<s.index(n):1===n.nodeType&&C.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?C.unique(o):o)},index:function(e){return e?"string"==typeof e?i.call(C(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(C.unique(C.merge(this.get(),C(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),C.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return C.dir(e,"parentNode")},parentsUntil:function(e,t,n){return C.dir(e,"parentNode",n)},next:function(e){return j(e,"nextSibling")},prev:function(e){return j(e,"previousSibling")},nextAll:function(e){return C.dir(e,"nextSibling")},prevAll:function(e){return C.dir(e,"previousSibling")},nextUntil:function(e,t,n){return C.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return C.dir(e,"previousSibling",n)},siblings:function(e){return C.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return C.sibling(e.firstChild)},contents:function(e){return e.contentDocument||C.merge([],e.childNodes)}},function(r,i){C.fn[r]=function(e,t){var n=C.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=C.filter(t,n)),1<this.length&&(S[r]||C.unique(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D,A=/\S+/g,L={};function q(){y.removeEventListener("DOMContentLoaded",q,!1),h.removeEventListener("load",q,!1),C.ready()}C.Callbacks=function(i){var e,n;i="string"==typeof i?L[i]||(n=L[e=i]={},C.each(e.match(A)||[],function(e,t){n[t]=!0}),n):C.extend({},i);var t,r,o,s,a,u,l=[],c=!i.once&&[],f=function(e){for(t=i.memory&&e,r=!0,u=s||0,s=0,a=l.length,o=!0;l&&u<a;u++)if(!1===l[u].apply(e[0],e[1])&&i.stopOnFalse){t=!1;break}o=!1,l&&(c?c.length&&f(c.shift()):t?l=[]:p.disable())},p={add:function(){if(l){var e=l.length;!function r(e){C.each(e,function(e,t){var n=C.type(t);"function"===n?i.unique&&p.has(t)||l.push(t):t&&t.length&&"string"!==n&&r(t)})}(arguments),o?a=l.length:t&&(s=e,f(t))}return this},remove:function(){return l&&C.each(arguments,function(e,t){for(var n;-1<(n=C.inArray(t,l,n));)l.splice(n,1),o&&(n<=a&&a--,n<=u&&u--)}),this},has:function(e){return e?-1<C.inArray(e,l):!(!l||!l.length)},empty:function(){return l=[],a=0,this},disable:function(){return l=c=t=void 0,this},disabled:function(){return!l},lock:function(){return c=void 0,t||p.disable(),this},locked:function(){return!c},fireWith:function(e,t){return!l||r&&!c||(t=[e,(t=t||[]).slice?t.slice():t],o?c.push(t):f(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!r}};return p},C.extend({Deferred:function(e){var o=[["resolve","done",C.Callbacks("once memory"),"resolved"],["reject","fail",C.Callbacks("once memory"),"rejected"],["notify","progress",C.Callbacks("memory")]],i="pending",s={state:function(){return i},always:function(){return a.done(arguments).fail(arguments),this},then:function(){var i=arguments;return C.Deferred(function(r){C.each(o,function(e,t){var n=C.isFunction(i[e])&&i[e];a[t[1]](function(){var e=n&&n.apply(this,arguments);e&&C.isFunction(e.promise)?e.promise().done(r.resolve).fail(r.reject).progress(r.notify):r[t[0]+"With"](this===s?r.promise():this,n?[e]:arguments)})}),i=null}).promise()},promise:function(e){return null!=e?C.extend(e,s):s}},a={};return s.pipe=s.then,C.each(o,function(e,t){var n=t[2],r=t[3];s[t[1]]=n.add,r&&n.add(function(){i=r},o[1^e][2].disable,o[2][2].lock),a[t[0]]=function(){return a[t[0]+"With"](this===a?s:this,arguments),this},a[t[0]+"With"]=n.fireWith}),s.promise(a),e&&e.call(a,a),a},when:function(e){var i,t,n,r=0,o=c.call(arguments),s=o.length,a=1!==s||e&&C.isFunction(e.promise)?s:0,u=1===a?e:C.Deferred(),l=function(t,n,r){return function(e){n[t]=this,r[t]=1<arguments.length?c.call(arguments):e,r===i?u.notifyWith(n,r):--a||u.resolveWith(n,r)}};if(1<s)for(i=new Array(s),t=new Array(s),n=new Array(s);r<s;r++)o[r]&&C.isFunction(o[r].promise)?o[r].promise().done(l(r,n,o)).fail(u.reject).progress(l(r,t,i)):--a;return a||u.resolveWith(n,o),u.promise()}}),C.fn.ready=function(e){return C.ready.promise().done(e),this},C.extend({isReady:!1,readyWait:1,holdReady:function(e){e?C.readyWait++:C.ready(!0)},ready:function(e){(!0===e?--C.readyWait:C.isReady)||((C.isReady=!0)!==e&&0<--C.readyWait||(D.resolveWith(y,[C]),C.fn.triggerHandler&&(C(y).triggerHandler("ready"),C(y).off("ready"))))}}),C.ready.promise=function(e){return D||(D=C.Deferred(),"complete"===y.readyState?setTimeout(C.ready):(y.addEventListener("DOMContentLoaded",q,!1),h.addEventListener("load",q,!1))),D.promise(e)},C.ready.promise();var H=C.access=function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===C.type(n))for(a in i=!0,n)C.access(e,t,a,n[a],!0,o,s);else if(void 0!==r&&(i=!0,C.isFunction(r)||(s=!0),l&&(t=s?(t.call(e,r),null):(l=t,function(e,t,n){return l.call(C(e),n)})),t))for(;a<u;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o};function O(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=C.expando+Math.random()}C.acceptData=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType},O.uid=1,O.accepts=C.acceptData,O.prototype={key:function(t){if(!O.accepts(t))return 0;var n={},r=t[this.expando];if(!r){r=O.uid++;try{n[this.expando]={value:r},Object.defineProperties(t,n)}catch(e){n[this.expando]=r,C.extend(t,n)}}return this.cache[r]||(this.cache[r]={}),r},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(C.isEmptyObject(o))C.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return void 0===t?n:n[t]},access:function(e,t,n){var r;return void 0===t||t&&"string"==typeof t&&void 0===n?void 0!==(r=this.get(e,t))?r:this.get(e,C.camelCase(t)):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(void 0===t)this.cache[o]={};else{n=(r=C.isArray(t)?t.concat(t.map(C.camelCase)):(i=C.camelCase(t),t in s?[t,i]:(r=i)in s?[r]:r.match(A)||[])).length;for(;n--;)delete s[r[n]]}},hasData:function(e){return!C.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}};var F=new O,P=new O,M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,R=/([A-Z])/g;function W(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(R,"-$1").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:M.test(n)?C.parseJSON(n):n)}catch(e){}P.set(e,t,n)}else n=void 0;return n}C.extend({hasData:function(e){return P.hasData(e)||F.hasData(e)},data:function(e,t,n){return P.access(e,t,n)},removeData:function(e,t){P.remove(e,t)},_data:function(e,t,n){return F.access(e,t,n)},_removeData:function(e,t){F.remove(e,t)}}),C.fn.extend({data:function(r,e){var t,n,i,o=this[0],s=o&&o.attributes;if(void 0!==r)return"object"==typeof r?this.each(function(){P.set(this,r)}):H(this,function(t){var e,n=C.camelCase(r);if(o&&void 0===t){if(void 0!==(e=P.get(o,r)))return e;if(void 0!==(e=P.get(o,n)))return e;if(void 0!==(e=W(o,n,void 0)))return e}else this.each(function(){var e=P.get(this,n);P.set(this,n,t),-1!==r.indexOf("-")&&void 0!==e&&P.set(this,r,t)})},null,e,1<arguments.length,null,!0);if(this.length&&(i=P.get(o),1===o.nodeType&&!F.get(o,"hasDataAttrs"))){for(t=s.length;t--;)s[t]&&(0===(n=s[t].name).indexOf("data-")&&(n=C.camelCase(n.slice(5)),W(o,n,i[n])));F.set(o,"hasDataAttrs",!0)}return i},removeData:function(e){return this.each(function(){P.remove(this,e)})}}),C.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=F.get(e,t),n&&(!r||C.isArray(n)?r=F.access(e,t,C.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=C.queue(e,t),r=n.length,i=n.shift(),o=C._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){C.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return F.get(e,n)||F.access(e,n,{empty:C.Callbacks("once memory").add(function(){F.remove(e,[t+"queue",n])})})}}),C.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?C.queue(this[0],t):void 0===n?this:this.each(function(){var e=C.queue(this,t,n);C._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&C.dequeue(this,t)})},dequeue:function(e){return this.each(function(){C.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=C.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)(n=F.get(o[s],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var $,B,I=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=["Top","Right","Bottom","Left"],z=function(e,t){return e=t||e,"none"===C.css(e,"display")||!C.contains(e.ownerDocument,e)},X=/^(?:checkbox|radio)$/i;$=y.createDocumentFragment().appendChild(y.createElement("div")),(B=y.createElement("input")).setAttribute("type","radio"),B.setAttribute("checked","checked"),B.setAttribute("name","t"),$.appendChild(B),v.checkClone=$.cloneNode(!0).cloneNode(!0).lastChild.checked,$.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!$.cloneNode(!0).lastChild.defaultValue;var U="undefined";v.focusinBubbles="onfocusin"in h;var V=/^key/,Y=/^(?:mouse|pointer|contextmenu)|click/,G=/^(?:focusinfocus|focusoutblur)$/,Q=/^([^.]*)(?:\.(.+)|)$/;function J(){return!0}function K(){return!1}function Z(){try{return y.activeElement}catch(e){}}C.event={global:{},add:function(t,e,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,m=F.get(t);if(m)for(n.handler&&(n=(o=n).handler,i=o.selector),n.guid||(n.guid=C.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(e){return typeof C!==U&&C.event.triggered!==e.type?C.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(A)||[""]).length;l--;)d=g=(a=Q.exec(e[l])||[])[1],h=(a[2]||"").split(".").sort(),d&&(f=C.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=C.event.special[d]||{},c=C.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&C.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,s)||t.addEventListener&&t.addEventListener(d,s,!1)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),C.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,m=F.hasData(e)&&F.get(e);if(m&&(u=m.events)){for(l=(t=(t||"").match(A)||[""]).length;l--;)if(d=g=(a=Q.exec(t[l])||[])[1],h=(a[2]||"").split(".").sort(),d){for(f=C.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));s&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,m.handle)||C.removeEvent(e,d,m.handle),delete u[d])}else for(d in u)C.event.remove(e,d+t[l],n,r,!0);C.isEmptyObject(u)&&(delete m.handle,F.remove(e,"events"))}},trigger:function(e,t,n,r){var i,o,s,a,u,l,c,f=[n||y],p=m.call(e,"type")?e.type:e,d=m.call(e,"namespace")?e.namespace.split("."):[];if(o=s=n=n||y,3!==n.nodeType&&8!==n.nodeType&&!G.test(p+C.event.triggered)&&(0<=p.indexOf(".")&&(p=(d=p.split(".")).shift(),d.sort()),u=p.indexOf(":")<0&&"on"+p,(e=e[C.expando]?e:new C.Event(p,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=d.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),c=C.event.special[p]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!C.isWindow(n)){for(a=c.delegateType||p,G.test(a+p)||(o=o.parentNode);o;o=o.parentNode)f.push(o),s=o;s===(n.ownerDocument||y)&&f.push(s.defaultView||s.parentWindow||h)}for(i=0;(o=f[i++])&&!e.isPropagationStopped();)e.type=1<i?a:c.bindType||p,(l=(F.get(o,"events")||{})[e.type]&&F.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&C.acceptData(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(f.pop(),t)||!C.acceptData(n)||u&&C.isFunction(n[p])&&!C.isWindow(n)&&((s=n[u])&&(n[u]=null),n[C.event.triggered=p](),C.event.triggered=void 0,s&&(n[u]=s)),e.result}},dispatch:function(e){e=C.event.fix(e);var t,n,r,i,o,s=[],a=c.call(arguments),u=(F.get(this,"events")||{})[e.type]||[],l=C.event.special[e.type]||{};if((a[0]=e).delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,e)){for(s=C.event.handlers.call(this,e,u),t=0;(i=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,void 0!==(r=((C.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(!0!==u.disabled||"click"!==e.type){for(r=[],n=0;n<a;n++)void 0===r[i=(o=t[n]).selector+" "]&&(r[i]=o.needsContext?0<=C(i,this).index(u):C.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return a<t.length&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button;return null==e.pageX&&null!=t.clientX&&(r=(n=e.target.ownerDocument||y).documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},fix:function(e){if(e[C.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];for(s||(this.fixHooks[i]=s=Y.test(i)?this.mouseHooks:V.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new C.Event(o),t=r.length;t--;)e[n=r[t]]=o[n];return e.target||(e.target=y),3===e.target.nodeType&&(e.target=e.target.parentNode),s.filter?s.filter(e,o):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==Z()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===Z()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&C.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(e){return C.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=C.extend(new C.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?C.event.trigger(i,null,t):C.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},C.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},C.Event=function(e,t){return this instanceof C.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?J:K):this.type=e,t&&C.extend(this,t),this.timeStamp=e&&e.timeStamp||C.now(),void(this[C.expando]=!0)):new C.Event(e,t)},C.Event.prototype={isDefaultPrevented:K,isPropagationStopped:K,isImmediatePropagationStopped:K,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=J,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=J,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=J,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},C.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){C.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return(!n||n!==this&&!C.contains(this,n))&&(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),v.focusinBubbles||C.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){C.event.simulate(r,e.target,C.event.fix(e),!0)};C.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=F.access(e,r);t||e.addEventListener(n,i,!0),F.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=F.access(e,r)-1;t?F.access(e,r,t):(e.removeEventListener(n,i,!0),F.remove(e,r))}}}),C.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){for(s in"string"!=typeof t&&(n=n||t,t=void 0),e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),!1===r)r=K;else if(!r)return this;return 1===i&&(o=r,(r=function(e){return C().off(e),o.apply(this,arguments)}).guid=o.guid||(o.guid=C.guid++)),this.each(function(){C.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,C(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"!=typeof e)return(!1===t||"function"==typeof t)&&(n=t,t=void 0),!1===n&&(n=K),this.each(function(){C.event.remove(this,e,n,t)});for(i in e)this.off(i,t,e[i]);return this},trigger:function(e,t){return this.each(function(){C.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?C.event.trigger(e,t,n,!0):void 0}});var ee=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,te=/<([\w:]+)/,ne=/<|&#?\w+;/,re=/<(?:script|style|link)/i,ie=/checked\s*(?:[^=]|=\s*.checked.)/i,oe=/^$|\/(?:java|ecma)script/i,se=/^true\/(.*)/,ae=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ue={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function le(e,t){return C.nodeName(e,"table")&&C.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ce(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function fe(e){var t=se.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function pe(e,t){for(var n=0,r=e.length;n<r;n++)F.set(e[n],"globalEval",!t||F.get(t[n],"globalEval"))}function de(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(F.hasData(e)&&(o=F.access(e),s=F.set(t,o),l=o.events))for(i in delete s.handle,s.events={},l)for(n=0,r=l[i].length;n<r;n++)C.event.add(t,i,l[i][n]);P.hasData(e)&&(a=P.access(e),u=C.extend({},a),P.set(t,u))}}function he(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&C.nodeName(e,t)?C.merge([e],n):n}ue.optgroup=ue.option,ue.tbody=ue.tfoot=ue.colgroup=ue.caption=ue.thead,ue.th=ue.td,C.extend({clone:function(e,t,n){var r,i,o,s,a,u,l,c=e.cloneNode(!0),f=C.contains(e.ownerDocument,e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(s=he(c),r=0,i=(o=he(e)).length;r<i;r++)a=o[r],u=s[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&X.test(a.type)?u.checked=a.checked:("input"===l||"textarea"===l)&&(u.defaultValue=a.defaultValue);if(t)if(n)for(o=o||he(e),s=s||he(c),r=0,i=o.length;r<i;r++)de(o[r],s[r]);else de(e,c);return 0<(s=he(c,"script")).length&&pe(s,!f&&he(e,"script")),c},buildFragment:function(e,t,n,r){for(var i,o,s,a,u,l,c=t.createDocumentFragment(),f=[],p=0,d=e.length;p<d;p++)if((i=e[p])||0===i)if("object"===C.type(i))C.merge(f,i.nodeType?[i]:i);else if(ne.test(i)){for(o=o||c.appendChild(t.createElement("div")),s=(te.exec(i)||["",""])[1].toLowerCase(),a=ue[s]||ue._default,o.innerHTML=a[1]+i.replace(ee,"<$1></$2>")+a[2],l=a[0];l--;)o=o.lastChild;C.merge(f,o.childNodes),(o=c.firstChild).textContent=""}else f.push(t.createTextNode(i));for(c.textContent="",p=0;i=f[p++];)if((!r||-1===C.inArray(i,r))&&(u=C.contains(i.ownerDocument,i),o=he(c.appendChild(i),"script"),u&&pe(o),n))for(l=0;i=o[l++];)oe.test(i.type||"")&&n.push(i);return c},cleanData:function(e){for(var t,n,r,i,o=C.event.special,s=0;void 0!==(n=e[s]);s++){if(C.acceptData(n)&&((i=n[F.expando])&&(t=F.cache[i]))){if(t.events)for(r in t.events)o[r]?C.event.remove(n,r):C.removeEvent(n,r,t.handle);F.cache[i]&&delete F.cache[i]}delete P.cache[n[P.expando]]}}}),C.fn.extend({text:function(e){return H(this,function(e){return void 0===e?C.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=e)})},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||le(this,e).appendChild(e)})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?C.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||C.cleanData(he(n)),n.parentNode&&(t&&C.contains(n.ownerDocument,n)&&pe(he(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(C.cleanData(he(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return C.clone(this,e,t)})},html:function(e){return H(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!re.test(e)&&!ue[(te.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(ee,"<$1></$2>");try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(C.cleanData(he(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var t=arguments[0];return this.domManip(arguments,function(e){t=this.parentNode,C.cleanData(he(this)),t&&t.replaceChild(e,this)}),t&&(t.length||t.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(n,r){n=g.apply([],n);var e,t,i,o,s,a,u=0,l=this.length,c=this,f=l-1,p=n[0],d=C.isFunction(p);if(d||1<l&&"string"==typeof p&&!v.checkClone&&ie.test(p))return this.each(function(e){var t=c.eq(e);d&&(n[0]=p.call(this,e,t.html())),t.domManip(n,r)});if(l&&(t=(e=C.buildFragment(n,this[0].ownerDocument,!1,this)).firstChild,1===e.childNodes.length&&(e=t),t)){for(o=(i=C.map(he(e,"script"),ce)).length;u<l;u++)s=e,u!==f&&(s=C.clone(s,!0,!0),o&&C.merge(i,he(s,"script"))),r.call(this[u],s,u);if(o)for(a=i[i.length-1].ownerDocument,C.map(i,fe),u=0;u<o;u++)s=i[u],oe.test(s.type||"")&&!F.access(s,"globalEval")&&C.contains(a,s)&&(s.src?C._evalUrl&&C._evalUrl(s.src):C.globalEval(s.textContent.replace(ae,"")))}return this}}),C.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,s){C.fn[e]=function(e){for(var t,n=[],r=C(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),C(r[o])[s](t),a.apply(n,t.get());return this.pushStack(n)}});var ge,me={};function ve(e,t){var n,r=C(t.createElement(e)).appendTo(t.body),i=h.getDefaultComputedStyle&&(n=h.getDefaultComputedStyle(r[0]))?n.display:C.css(r[0],"display");return r.detach(),i}function ye(e){var t=y,n=me[e];return n||("none"!==(n=ve(e,t))&&n||((t=(ge=(ge||C("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentDocument).write(),t.close(),n=ve(e,t),ge.detach()),me[e]=n),n}var xe=/^margin/,be=new RegExp("^("+I+")(?!px)[a-z%]+$","i"),we=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)};function Te(e,t,n){var r,i,o,s,a=e.style;return(n=n||we(e))&&(s=n.getPropertyValue(t)||n[t]),n&&(""!==s||C.contains(e.ownerDocument,e)||(s=C.style(e,t)),be.test(s)&&xe.test(t)&&(r=a.width,i=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=i,a.maxWidth=o)),void 0!==s?s+"":s}function Ce(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}!function(){var t,n,r=y.documentElement,i=y.createElement("div"),o=y.createElement("div");if(o.style){function e(){o.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o.innerHTML="",r.appendChild(i);var e=h.getComputedStyle(o,null);t="1%"!==e.top,n="4px"===e.width,r.removeChild(i)}o.style.backgroundClip="content-box",o.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===o.style.backgroundClip,i.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",i.appendChild(o),h.getComputedStyle&&C.extend(v,{pixelPosition:function(){return e(),t},boxSizingReliable:function(){return null==n&&e(),n},reliableMarginRight:function(){var e,t=o.appendChild(y.createElement("div"));return t.style.cssText=o.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",o.style.width="1px",r.appendChild(i),e=!parseFloat(h.getComputedStyle(t,null).marginRight),r.removeChild(i),e}})}}(),C.swap=function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=s[o];return i};var Ne=/^(none|table(?!-c[ea]).+)/,ke=new RegExp("^("+I+")(.*)$","i"),Ee=new RegExp("^([+-])=("+I+")","i"),Se={position:"absolute",visibility:"hidden",display:"block"},je={letterSpacing:"0",fontWeight:"400"},De=["Webkit","O","Moz","ms"];function Ae(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(1),r=t,i=De.length;i--;)if((t=De[i]+n)in e)return t;return r}function Le(e,t,n){var r=ke.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function qe(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;o<4;o+=2)"margin"===n&&(s+=C.css(e,n+_[o],!0,i)),r?("content"===n&&(s-=C.css(e,"padding"+_[o],!0,i)),"margin"!==n&&(s-=C.css(e,"border"+_[o]+"Width",!0,i))):(s+=C.css(e,"padding"+_[o],!0,i),"padding"!==n&&(s+=C.css(e,"border"+_[o]+"Width",!0,i)));return s}function He(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=we(e),s="border-box"===C.css(e,"boxSizing",!1,o);if(i<=0||null==i){if(((i=Te(e,t,o))<0||null==i)&&(i=e.style[t]),be.test(i))return i;r=s&&(v.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+qe(e,t,n||(s?"border":"content"),r,o)+"px"}function Oe(e,t){for(var n,r,i,o=[],s=0,a=e.length;s<a;s++)(r=e[s]).style&&(o[s]=F.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&z(r)&&(o[s]=F.access(r,"olddisplay",ye(r.nodeName)))):(i=z(r),"none"===n&&i||F.set(r,"olddisplay",i?n:C.css(r,"display"))));for(s=0;s<a;s++)(r=e[s]).style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}function Fe(e,t,n,r,i){return new Fe.prototype.init(e,t,n,r,i)}C.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Te(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=C.camelCase(t),u=e.style;return t=C.cssProps[a]||(C.cssProps[a]=Ae(u,a)),s=C.cssHooks[t]||C.cssHooks[a],void 0===n?s&&"get"in s&&void 0!==(i=s.get(e,!1,r))?i:u[t]:("string"===(o=typeof n)&&(i=Ee.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(C.css(e,t)),o="number"),void(null!=n&&n==n&&("number"!==o||C.cssNumber[a]||(n+="px"),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(u[t]=n))))}},css:function(e,t,n,r){var i,o,s,a=C.camelCase(t);return t=C.cssProps[a]||(C.cssProps[a]=Ae(e.style,a)),(s=C.cssHooks[t]||C.cssHooks[a])&&"get"in s&&(i=s.get(e,!0,n)),void 0===i&&(i=Te(e,t,r)),"normal"===i&&t in je&&(i=je[t]),""===n||n?(o=parseFloat(i),!0===n||C.isNumeric(o)?o||0:i):i}}),C.each(["height","width"],function(e,i){C.cssHooks[i]={get:function(e,t,n){return t?Ne.test(C.css(e,"display"))&&0===e.offsetWidth?C.swap(e,Se,function(){return He(e,i,n)}):He(e,i,n):void 0},set:function(e,t,n){var r=n&&we(e);return Le(0,t,n?qe(e,i,n,"border-box"===C.css(e,"boxSizing",!1,r),r):0)}}}),C.cssHooks.marginRight=Ce(v.reliableMarginRight,function(e,t){return t?C.swap(e,{display:"inline-block"},Te,[e,"marginRight"]):void 0}),C.each({margin:"",padding:"",border:"Width"},function(i,o){C.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+_[t]+o]=r[t]||r[t-2]||r[0];return n}},xe.test(i)||(C.cssHooks[i+o].set=Le)}),C.fn.extend({css:function(e,t){return H(this,function(e,t,n){var r,i,o={},s=0;if(C.isArray(t)){for(r=we(e),i=t.length;s<i;s++)o[t[s]]=C.css(e,t[s],!1,r);return o}return void 0!==n?C.style(e,t,n):C.css(e,t)},e,t,1<arguments.length)},show:function(){return Oe(this,!0)},hide:function(){return Oe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){z(this)?C(this).show():C(this).hide()})}}),((C.Tween=Fe).prototype={constructor:Fe,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(C.cssNumber[n]?"":"px")},cur:function(){var e=Fe.propHooks[this.prop];return e&&e.get?e.get(this):Fe.propHooks._default.get(this)},run:function(e){var t,n=Fe.propHooks[this.prop];return this.pos=t=this.options.duration?C.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Fe.propHooks._default.set(this),this}}).init.prototype=Fe.prototype,(Fe.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=C.css(e.elem,e.prop,""))&&"auto"!==t?t:0:e.elem[e.prop]},set:function(e){C.fx.step[e.prop]?C.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[C.cssProps[e.prop]]||C.cssHooks[e.prop])?C.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}}).scrollTop=Fe.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},C.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},C.fx=Fe.prototype.init,C.fx.step={};var Pe,Me,Re,We,$e,Be=/^(?:toggle|show|hide)$/,Ie=new RegExp("^(?:([+-])=|)("+I+")([a-z%]*)$","i"),_e=/queueHooks$/,ze=[function(t,e,n){var r,i,o,s,a,u,l,c=this,f={},p=t.style,d=t.nodeType&&z(t),h=F.get(t,"fxshow");for(r in n.queue||(null==(a=C._queueHooks(t,"fx")).unqueued&&(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,c.always(function(){c.always(function(){a.unqueued--,C.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],l=C.css(t,"display"),"inline"===("none"===l?F.get(t,"olddisplay")||ye(t.nodeName):l)&&"none"===C.css(t,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",c.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]})),e)if(i=e[r],Be.exec(i)){if(delete e[r],o=o||"toggle"===i,i===(d?"hide":"show")){if("show"!==i||!h||void 0===h[r])continue;d=!0}f[r]=h&&h[r]||C.style(t,r)}else l=void 0;if(C.isEmptyObject(f))"inline"===("none"===l?ye(t.nodeName):l)&&(p.display=l);else for(r in h?"hidden"in h&&(d=h.hidden):h=F.access(t,"fxshow",{}),o&&(h.hidden=!d),d?C(t).show():c.done(function(){C(t).hide()}),c.done(function(){var e;for(e in F.remove(t,"fxshow"),f)C.style(t,e,f[e])}),f)s=Ye(d?h[r]:0,r,c),r in h||(h[r]=s.start,d&&(s.end=s.start,s.start="width"===r||"height"===r?1:0))}],Xe={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Ie.exec(t),o=i&&i[3]||(C.cssNumber[e]?"":"px"),s=(C.cssNumber[e]||"px"!==o&&+r)&&Ie.exec(C.css(n.elem,e)),a=1,u=20;if(s&&s[3]!==o)for(o=o||s[3],i=i||[],s=+r||1;s/=a=a||".5",C.style(n.elem,e,s+o),a!==(a=n.cur()/r)&&1!==a&&--u;);return i&&(s=n.start=+s||+r||0,n.unit=o,n.end=i[1]?s+(i[1]+1)*i[2]:+i[2]),n}]};function Ue(){return setTimeout(function(){Pe=void 0}),Pe=C.now()}function Ve(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=_[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function Ye(e,t,n){for(var r,i=(Xe[t]||[]).concat(Xe["*"]),o=0,s=i.length;o<s;o++)if(r=i[o].call(n,t,e))return r}function Ge(o,e,t){var n,s,r=0,i=ze.length,a=C.Deferred().always(function(){delete u.elem}),u=function(){if(s)return!1;for(var e=Pe||Ue(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return a.notifyWith(o,[l,n,t]),n<1&&i?t:(a.resolveWith(o,[l]),!1)},l=a.promise({elem:o,props:C.extend({},e),opts:C.extend(!0,{specialEasing:{}},t),originalProperties:e,originalOptions:t,startTime:Pe||Ue(),duration:t.duration,tweens:[],createTween:function(e,t){var n=C.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(s)return this;for(s=!0;t<n;t++)l.tweens[t].run(1);return e?a.resolveWith(o,[l,e]):a.rejectWith(o,[l,e]),this}}),c=l.props;for(function(e,t){var n,r,i,o,s;for(n in e)if(i=t[r=C.camelCase(n)],o=e[n],C.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(s=C.cssHooks[r])&&"expand"in s)for(n in o=s.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ze[r].call(l,o,c,l.opts))return n;return C.map(c,Ye,l),C.isFunction(l.opts.start)&&l.opts.start.call(o,l),C.fx.timer(C.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}C.Animation=C.extend(Ge,{tweener:function(e,t){for(var n,r=0,i=(e=C.isFunction(e)?(t=e,["*"]):e.split(" ")).length;r<i;r++)n=e[r],Xe[n]=Xe[n]||[],Xe[n].unshift(t)},prefilter:function(e,t){t?ze.unshift(e):ze.push(e)}}),C.speed=function(e,t,n){var r=e&&"object"==typeof e?C.extend({},e):{complete:n||!n&&t||C.isFunction(e)&&e,duration:e,easing:n&&t||t&&!C.isFunction(t)&&t};return r.duration=C.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in C.fx.speeds?C.fx.speeds[r.duration]:C.fx.speeds._default,(null==r.queue||!0===r.queue)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){C.isFunction(r.old)&&r.old.call(this),r.queue&&C.dequeue(this,r.queue)},r},C.fn.extend({fadeTo:function(e,t,n,r){return this.filter(z).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=C.isEmptyObject(t),o=C.speed(e,n,r),s=function(){var e=Ge(this,C.extend({},t),o);(i||F.get(this,"finish"))&&e.stop(!0)};return s.finish=s,i||!1===o.queue?this.each(s):this.queue(o.queue,s)},stop:function(i,e,o){var s=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=C.timers,r=F.get(this);if(t)r[t]&&r[t].stop&&s(r[t]);else for(t in r)r[t]&&r[t].stop&&_e.test(t)&&s(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));(e||!o)&&C.dequeue(this,i)})},finish:function(s){return!1!==s&&(s=s||"fx"),this.each(function(){var e,t=F.get(this),n=t[s+"queue"],r=t[s+"queueHooks"],i=C.timers,o=n?n.length:0;for(t.finish=!0,C.queue(this,s,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===s&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),C.each(["toggle","show","hide"],function(e,r){var i=C.fn[r];C.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(Ve(r,!0),e,t,n)}}),C.each({slideDown:Ve("show"),slideUp:Ve("hide"),slideToggle:Ve("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){C.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),C.timers=[],C.fx.tick=function(){var e,t=0,n=C.timers;for(Pe=C.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||C.fx.stop(),Pe=void 0},C.fx.timer=function(e){C.timers.push(e),e()?C.fx.start():C.timers.pop()},C.fx.interval=13,C.fx.start=function(){Me||(Me=setInterval(C.fx.tick,C.fx.interval))},C.fx.stop=function(){clearInterval(Me),Me=null},C.fx.speeds={slow:600,fast:200,_default:400},C.fn.delay=function(r,e){return r=C.fx&&C.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=setTimeout(e,r);t.stop=function(){clearTimeout(n)}})},Re=y.createElement("input"),We=y.createElement("select"),$e=We.appendChild(y.createElement("option")),Re.type="checkbox",v.checkOn=""!==Re.value,v.optSelected=$e.selected,We.disabled=!0,v.optDisabled=!$e.disabled,(Re=y.createElement("input")).value="t",Re.type="radio",v.radioValue="t"===Re.value;var Qe,Je=C.expr.attrHandle;C.fn.extend({attr:function(e,t){return H(this,C.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){C.removeAttr(this,e)})}}),C.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return typeof e.getAttribute===U?C.prop(e,t,n):(1===o&&C.isXMLDoc(e)||(t=t.toLowerCase(),r=C.attrHooks[t]||(C.expr.match.bool.test(t)?Qe:void 0)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:null==(i=C.find.attr(e,t))?void 0:i:null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void C.removeAttr(e,t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(A);if(o&&1===e.nodeType)for(;n=o[i++];)r=C.propFix[n]||n,C.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&C.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),Qe={set:function(e,t,n){return!1===t?C.removeAttr(e,n):e.setAttribute(n,n),n}},C.each(C.expr.match.bool.source.match(/\w+/g),function(e,t){var o=Je[t]||C.find.attr;Je[t]=function(e,t,n){var r,i;return n||(i=Je[t],Je[t]=r,r=null!=o(e,t,n)?t.toLowerCase():null,Je[t]=i),r}});var Ke=/^(?:input|select|textarea|button)$/i;C.fn.extend({prop:function(e,t){return H(this,C.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[C.propFix[e]||e]})}}),C.extend({propFix:{for:"htmlFor",class:"className"},prop:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return(1!==o||!C.isXMLDoc(e))&&(t=C.propFix[t]||t,i=C.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||Ke.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),v.optSelected||(C.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),C.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){C.propFix[this.toLowerCase()]=this});var Ze=/[\t\r\n\f]/g;C.fn.extend({addClass:function(t){var e,n,r,i,o,s,a="string"==typeof t&&t,u=0,l=this.length;if(C.isFunction(t))return this.each(function(e){C(this).addClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(A)||[];u<l;u++)if(r=1===(n=this[u]).nodeType&&(n.className?(" "+n.className+" ").replace(Ze," "):" ")){for(o=0;i=e[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");s=C.trim(r),n.className!==s&&(n.className=s)}return this},removeClass:function(t){var e,n,r,i,o,s,a=0===arguments.length||"string"==typeof t&&t,u=0,l=this.length;if(C.isFunction(t))return this.each(function(e){C(this).removeClass(t.call(this,e,this.className))});if(a)for(e=(t||"").match(A)||[];u<l;u++)if(r=1===(n=this[u]).nodeType&&(n.className?(" "+n.className+" ").replace(Ze," "):"")){for(o=0;i=e[o++];)for(;0<=r.indexOf(" "+i+" ");)r=r.replace(" "+i+" "," ");s=t?C.trim(r):"",n.className!==s&&(n.className=s)}return this},toggleClass:function(i,t){var o=typeof i;return"boolean"==typeof t&&"string"===o?t?this.addClass(i):this.removeClass(i):this.each(C.isFunction(i)?function(e){C(this).toggleClass(i.call(this,e,this.className,t),t)}:function(){if("string"===o)for(var e,t=0,n=C(this),r=i.match(A)||[];e=r[t++];)n.hasClass(e)?n.removeClass(e):n.addClass(e);else(o===U||"boolean"===o)&&(this.className&&F.set(this,"__className__",this.className),this.className=this.className||!1===i?"":F.get(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;n<r;n++)if(1===this[n].nodeType&&0<=(" "+this[n].className+" ").replace(Ze," ").indexOf(t))return!0;return!1}});var et=/\r/g;C.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=C.isFunction(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,C(this).val()):n)?t="":"number"==typeof t?t+="":C.isArray(t)&&(t=C.map(t,function(e){return null==e?"":e+""})),(r=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=C.valHooks[t.type]||C.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(et,""):null==e?"":e:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:C.trim(C.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,s=o?null:[],a=o?i+1:r.length,u=i<0?a:o?i:0;u<a;u++)if(!(!(n=r[u]).selected&&u!==i||(v.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&C.nodeName(n.parentNode,"optgroup"))){if(t=C(n).val(),o)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=C.makeArray(t),s=i.length;s--;)((r=i[s]).selected=0<=C.inArray(r.value,o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),C.each(["radio","checkbox"],function(){C.valHooks[this]={set:function(e,t){return C.isArray(t)?e.checked=0<=C.inArray(C(e).val(),t):void 0}},v.checkOn||(C.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),C.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,n){C.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),C.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var tt=C.now(),nt=/\?/;C.parseJSON=function(e){return JSON.parse(e+"")},C.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return(!t||t.getElementsByTagName("parsererror").length)&&C.error("Invalid XML: "+e),t};var rt,it,ot=/#.*$/,st=/([?&])_=[^&]*/,at=/^(.*?):[ \t]*([^\r\n]*)$/gm,ut=/^(?:GET|HEAD)$/,lt=/^\/\//,ct=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,ft={},pt={},dt="*/".concat("*");try{it=location.href}catch(e){(it=y.createElement("a")).href="",it=it.href}function ht(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(A)||[];if(C.isFunction(t))for(;n=i[r++];)"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function gt(t,i,o,s){var a={},u=t===pt;function l(e){var r;return a[e]=!0,C.each(t[e]||[],function(e,t){var n=t(i,o,s);return"string"!=typeof n||u||a[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!a["*"]&&l("*")}function mt(e,t){var n,r,i=C.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&C.extend(!0,e,r),e}rt=ct.exec(it.toLowerCase())||[],C.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:it,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(rt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":dt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":C.parseJSON,"text xml":C.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?mt(mt(e,C.ajaxSettings),t):mt(C.ajaxSettings,e)},ajaxPrefilter:ht(ft),ajaxTransport:ht(pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,i,g=C.ajaxSetup({},t),m=g.context||g,v=g.context&&(m.nodeType||m.jquery)?C(m):C.event,y=C.Deferred(),x=C.Callbacks("once memory"),b=g.statusCode||{},o={},s={},w=0,a="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===w){if(!n)for(n={};t=at.exec(p);)n[t[1].toLowerCase()]=t[2];t=n[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===w?p:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return w||(e=s[n]=s[n]||e,o[e]=t),this},overrideMimeType:function(e){return w||(g.mimeType=e),this},statusCode:function(e){var t;if(e)if(w<2)for(t in e)b[t]=[b[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||a;return c&&c.abort(t),u(0,t),this}};if(y.promise(T).complete=x.add,T.success=T.done,T.error=T.fail,g.url=((e||g.url||it)+"").replace(ot,"").replace(lt,rt[1]+"//"),g.type=t.method||t.type||g.method||g.type,g.dataTypes=C.trim(g.dataType||"*").toLowerCase().match(A)||[""],null==g.crossDomain&&(r=ct.exec(g.url.toLowerCase()),g.crossDomain=!(!r||r[1]===rt[1]&&r[2]===rt[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(rt[3]||("http:"===rt[1]?"80":"443")))),g.data&&g.processData&&"string"!=typeof g.data&&(g.data=C.param(g.data,g.traditional)),gt(ft,g,t,T),2===w)return T;for(i in(h=g.global)&&0==C.active++&&C.event.trigger("ajaxStart"),g.type=g.type.toUpperCase(),g.hasContent=!ut.test(g.type),f=g.url,g.hasContent||(g.data&&(f=g.url+=(nt.test(f)?"&":"?")+g.data,delete g.data),!1===g.cache&&(g.url=st.test(f)?f.replace(st,"$1_="+tt++):f+(nt.test(f)?"&":"?")+"_="+tt++)),g.ifModified&&(C.lastModified[f]&&T.setRequestHeader("If-Modified-Since",C.lastModified[f]),C.etag[f]&&T.setRequestHeader("If-None-Match",C.etag[f])),(g.data&&g.hasContent&&!1!==g.contentType||t.contentType)&&T.setRequestHeader("Content-Type",g.contentType),T.setRequestHeader("Accept",g.dataTypes[0]&&g.accepts[g.dataTypes[0]]?g.accepts[g.dataTypes[0]]+("*"!==g.dataTypes[0]?", "+dt+"; q=0.01":""):g.accepts["*"]),g.headers)T.setRequestHeader(i,g.headers[i]);if(g.beforeSend&&(!1===g.beforeSend.call(m,T,g)||2===w))return T.abort();for(i in a="abort",{success:1,error:1,complete:1})T[i](g[i]);if(c=gt(pt,g,t,T)){T.readyState=1,h&&v.trigger("ajaxSend",[T,g]),g.async&&0<g.timeout&&(d=setTimeout(function(){T.abort("timeout")},g.timeout));try{w=1,c.send(o,u)}catch(e){if(!(w<2))throw e;u(-1,e)}}else u(-1,"No Transport");function u(e,t,n,r){var i,o,s,a,u,l=t;2!==w&&(w=2,d&&clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(a=function(e,t,n){for(var r,i,o,s,a=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}s||(s=i)}o=o||s}return o?(o!==u[0]&&u.unshift(o),n[o]):void 0}(g,T,n)),a=function(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(s=l[u+" "+o]||l["* "+o]))for(i in l)if((a=i.split(" "))[1]===o&&(s=l[u+" "+a[0]]||l["* "+a[0]])){!0===s?s=l[i]:!0!==l[i]&&(o=a[0],c.unshift(a[1]));break}if(!0!==s)if(s&&e.throws)t=s(t);else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(g,a,T,i),i?(g.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(C.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(C.etag[f]=u)),204===e||"HEAD"===g.type?l="nocontent":304===e?l="notmodified":(l=a.state,o=a.data,i=!(s=a.error))):(s=l,(e||!l)&&(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?y.resolveWith(m,[o,l,T]):y.rejectWith(m,[T,l,s]),T.statusCode(b),b=void 0,h&&v.trigger(i?"ajaxSuccess":"ajaxError",[T,g,i?o:s]),x.fireWith(m,[T,l]),h&&(v.trigger("ajaxComplete",[T,g]),--C.active||C.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return C.get(e,t,n,"json")},getScript:function(e,t){return C.get(e,void 0,t,"script")}}),C.each(["get","post"],function(e,i){C[i]=function(e,t,n,r){return C.isFunction(t)&&(r=r||n,n=t,t=void 0),C.ajax({url:e,type:i,dataType:r,data:t,success:n})}}),C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C._evalUrl=function(e){return C.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},C.fn.extend({wrapAll:function(t){var e;return C.isFunction(t)?this.each(function(e){C(this).wrapAll(t.call(this,e))}):(this[0]&&(e=C(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(n){return this.each(C.isFunction(n)?function(e){C(this).wrapInner(n.call(this,e))}:function(){var e=C(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=C.isFunction(t);return this.each(function(e){C(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(){return this.parent().each(function(){C.nodeName(this,"body")||C(this).replaceWith(this.childNodes)}).end()}}),C.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0},C.expr.filters.visible=function(e){return!C.expr.filters.hidden(e)};var vt=/%20/g,yt=/\[\]$/,xt=/\r?\n/g,bt=/^(?:submit|button|image|reset|file)$/i,wt=/^(?:input|select|textarea|keygen)/i;function Tt(n,e,r,i){var t;if(C.isArray(e))C.each(e,function(e,t){r||yt.test(n)?i(n,t):Tt(n+"["+("object"==typeof t?e:"")+"]",t,r,i)});else if(r||"object"!==C.type(e))i(n,e);else for(t in e)Tt(n+"["+t+"]",e[t],r,i)}C.param=function(e,t){var n,r=[],i=function(e,t){t=C.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=C.ajaxSettings&&C.ajaxSettings.traditional),C.isArray(e)||e.jquery&&!C.isPlainObject(e))C.each(e,function(){i(this.name,this.value)});else for(n in e)Tt(n,e[n],t,i);return r.join("&").replace(vt,"+")},C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=C.prop(this,"elements");return e?C.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!C(this).is(":disabled")&&wt.test(this.nodeName)&&!bt.test(e)&&(this.checked||!X.test(e))}).map(function(e,t){var n=C(this).val();return null==n?null:C.isArray(n)?C.map(n,function(e){return{name:t.name,value:e.replace(xt,"\r\n")}}):{name:t.name,value:n.replace(xt,"\r\n")}}).get()}}),C.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var Ct=0,Nt={},kt={0:200,1223:204},Et=C.ajaxSettings.xhr();h.ActiveXObject&&C(h).on("unload",function(){for(var e in Nt)Nt[e]()}),v.cors=!!Et&&"withCredentials"in Et,v.ajax=Et=!!Et,C.ajaxTransport(function(o){var s;return v.cors||Et&&!o.crossDomain?{send:function(e,t){var n,r=o.xhr(),i=++Ct;if(r.open(o.type,o.url,o.async,o.username,o.password),o.xhrFields)for(n in o.xhrFields)r[n]=o.xhrFields[n];for(n in o.mimeType&&r.overrideMimeType&&r.overrideMimeType(o.mimeType),o.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);s=function(e){return function(){s&&(delete Nt[i],s=r.onload=r.onerror=null,"abort"===e?r.abort():"error"===e?t(r.status,r.statusText):t(kt[r.status]||r.status,r.statusText,"string"==typeof r.responseText?{text:r.responseText}:void 0,r.getAllResponseHeaders()))}},r.onload=s(),r.onerror=s("error"),s=Nt[i]=s("abort");try{r.send(o.hasContent&&o.data||null)}catch(e){if(s)throw e}},abort:function(){s&&s()}}:void 0}),C.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return C.globalEval(e),e}}}),C.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),C.ajaxTransport("script",function(n){var r,i;if(n.crossDomain)return{send:function(e,t){r=C("<script>").prop({async:!0,charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),y.head.appendChild(r[0])},abort:function(){i&&i()}}});var St=[],jt=/(=)\?(?=&|$)|\?\?/;C.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=St.pop()||C.expando+"_"+tt++;return this[e]=!0,e}}),C.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,s=!1!==e.jsonp&&(jt.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&jt.test(e.data)&&"data");return s||"jsonp"===e.dataTypes[0]?(r=e.jsonpCallback=C.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(jt,"$1"+r):!1!==e.jsonp&&(e.url+=(nt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||C.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=h[r],h[r]=function(){o=arguments},n.always(function(){h[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,St.push(r)),o&&C.isFunction(i)&&i(o[0]),o=i=void 0}),"script"):void 0}),C.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||y;var r=b.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=C.buildFragment([e],t,i),i&&i.length&&C(i).remove(),C.merge([],r.childNodes))};var Dt=C.fn.load;C.fn.load=function(e,t,n){if("string"!=typeof e&&Dt)return Dt.apply(this,arguments);var r,i,o,s=this,a=e.indexOf(" ");return 0<=a&&(r=C.trim(e.slice(a)),e=e.slice(0,a)),C.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<s.length&&C.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){o=arguments,s.html(r?C("<div>").append(C.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){s.each(n,o||[e.responseText,t,e])}),this},C.expr.filters.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length};var At=h.document.documentElement;function Lt(e){return C.isWindow(e)?e:9===e.nodeType&&e.defaultView}C.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,l=C.css(e,"position"),c=C(e),f={};"static"===l&&(e.style.position="relative"),a=c.offset(),o=C.css(e,"top"),u=C.css(e,"left"),i=("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(s=(r=c.position()).top,r.left):(s=parseFloat(o)||0,parseFloat(u)||0),C.isFunction(t)&&(t=t.call(e,n,a)),null!=t.top&&(f.top=t.top-a.top+s),null!=t.left&&(f.left=t.left-a.left+i),"using"in t?t.using.call(e,f):c.css(f)}},C.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){C.offset.setOffset(this,t,e)});var e,n,r=this[0],i={top:0,left:0},o=r&&r.ownerDocument;return o?(e=o.documentElement,C.contains(e,r)?(typeof r.getBoundingClientRect!==U&&(i=r.getBoundingClientRect()),n=Lt(o),{top:i.top+n.pageYOffset-e.clientTop,left:i.left+n.pageXOffset-e.clientLeft}):i):void 0},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===C.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),C.nodeName(e[0],"html")||(r=e.offset()),r.top+=C.css(e[0],"borderTopWidth",!0),r.left+=C.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-C.css(n,"marginTop",!0),left:t.left-r.left-C.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||At;e&&!C.nodeName(e,"html")&&"static"===C.css(e,"position");)e=e.offsetParent;return e||At})}}),C.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;C.fn[t]=function(e){return H(this,function(e,t,n){var r=Lt(e);return void 0===n?r?r[i]:e[t]:void(r?r.scrollTo(o?h.pageXOffset:n,o?n:h.pageYOffset):e[t]=n)},t,e,arguments.length,null)}}),C.each(["top","left"],function(e,n){C.cssHooks[n]=Ce(v.pixelPosition,function(e,t){return t?(t=Te(e,n),be.test(t)?C(e).position()[n]+"px":t):void 0})}),C.each({Height:"height",Width:"width"},function(o,s){C.each({padding:"inner"+o,content:s,"":"outer"+o},function(r,e){C.fn[e]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return H(this,function(e,t,n){var r;return C.isWindow(e)?e.document.documentElement["client"+o]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+o],r["scroll"+o],e.body["offset"+o],r["offset"+o],r["client"+o])):void 0===n?C.css(e,t,i):C.style(e,t,n,i)},s,n?e:void 0,n,null)}})}),C.fn.size=function(){return this.length},C.fn.andSelf=C.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return C});var qt=h.jQuery,Ht=h.$;return C.noConflict=function(e){return h.$===C&&(h.$=Ht),e&&h.jQuery===C&&(h.jQuery=qt),C},typeof e===U&&(h.jQuery=h.$=C),C});
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(P){function s(t,e){var i,s,n,o=t.nodeName.toLowerCase();return"area"===o?(s=(i=t.parentNode).name,!(!t.href||!s||"map"!==i.nodeName.toLowerCase())&&(!!(n=P("img[usemap='#"+s+"']")[0])&&a(n))):(/^(input|select|textarea|button|object)$/.test(o)?!t.disabled:"a"===o&&t.href||e)&&a(t)}function a(t){return P.expr.filters.visible(t)&&!P(t).parents().addBack().filter(function(){return"hidden"===P.css(this,"visibility")}).length}function t(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},P.extend(this._defaults,this.regional[""]),this.regional.en=P.extend(!0,{},this.regional[""]),this.regional["en-US"]=P.extend(!0,{},this.regional.en),this.dpDiv=i(P("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function i(t){var e="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(e,"mouseout",function(){P(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&P(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&P(this).removeClass("ui-datepicker-next-hover")}).delegate(e,"mouseover",o)}function o(){P.datepicker._isDisabledDatepicker(g.inline?g.dpDiv.parent()[0]:g.input[0])||(P(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),P(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&P(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&P(this).addClass("ui-datepicker-next-hover"))}function u(t,e){for(var i in P.extend(t,e),e)null==e[i]&&(t[i]=e[i]);return t}function e(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}var n,r,h,l;P.ui=P.ui||{},P.extend(P.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),P.fn.extend({scrollParent:function(t){var e=this.css("position"),i="absolute"===e,s=t?/(auto|scroll|hidden)/:/(auto|scroll)/,n=this.parents().filter(function(){var t=P(this);return(!i||"static"!==t.css("position"))&&s.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==e&&n.length?n:P(this[0].ownerDocument||document)},uniqueId:(l=0,function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++l)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&P(this).removeAttr("id")})}}),P.extend(P.expr[":"],{data:P.expr.createPseudo?P.expr.createPseudo(function(e){return function(t){return!!P.data(t,e)}}):function(t,e,i){return!!P.data(t,i[3])},focusable:function(t){return s(t,!isNaN(P.attr(t,"tabindex")))},tabbable:function(t){var e=P.attr(t,"tabindex"),i=isNaN(e);return(i||0<=e)&&s(t,!i)}}),P("<a>").outerWidth(1).jquery||P.each(["Width","Height"],function(t,i){function s(t,e,i,s){return P.each(n,function(){e-=parseFloat(P.css(t,"padding"+this))||0,i&&(e-=parseFloat(P.css(t,"border"+this+"Width"))||0),s&&(e-=parseFloat(P.css(t,"margin"+this))||0)}),e}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:P.fn.innerWidth,innerHeight:P.fn.innerHeight,outerWidth:P.fn.outerWidth,outerHeight:P.fn.outerHeight};P.fn["inner"+i]=function(t){return void 0===t?a["inner"+i].call(this):this.each(function(){P(this).css(o,s(this,t)+"px")})},P.fn["outer"+i]=function(t,e){return"number"!=typeof t?a["outer"+i].call(this,t):this.each(function(){P(this).css(o,s(this,t,!0,e)+"px")})}}),P.fn.addBack||(P.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),P("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(P.fn.removeData=(h=P.fn.removeData,function(t){return arguments.length?h.call(this,P.camelCase(t)):h.call(this)})),P.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),P.fn.extend({focus:(r=P.fn.focus,function(e,i){return"number"==typeof e?this.each(function(){var t=this;setTimeout(function(){P(t).focus(),i&&i.call(t)},e)}):r.apply(this,arguments)}),disableSelection:(n="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.bind(n+".ui-disableSelection",function(t){t.preventDefault()})}),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var e,i,s=P(this[0]);s.length&&s[0]!==document;){if(("absolute"===(e=s.css("position"))||"relative"===e||"fixed"===e)&&(i=parseInt(s.css("zIndex"),10),!isNaN(i)&&0!==i))return i;s=s.parent()}return 0}}),P.ui.plugin={add:function(t,e,i){var s,n=P.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}};var c,d=0,p=Array.prototype.slice;P.cleanData=(c=P.cleanData,function(t){var e,i,s;for(s=0;null!=(i=t[s]);s++)try{(e=P._data(i,"events"))&&e.remove&&P(i).triggerHandler("remove")}catch(t){}c(t)}),P.widget=function(t,i,e){var s,n,o,a,r={},h=t.split(".")[0];return t=t.split(".")[1],s=h+"-"+t,e||(e=i,i=P.Widget),P.expr[":"][s.toLowerCase()]=function(t){return!!P.data(t,s)},P[h]=P[h]||{},n=P[h][t],o=P[h][t]=function(t,e){return this._createWidget?void(arguments.length&&this._createWidget(t,e)):new o(t,e)},P.extend(o,n,{version:e.version,_proto:P.extend({},e),_childConstructors:[]}),(a=new i).options=P.widget.extend({},a.options),P.each(e,function(e,s){return P.isFunction(s)?void(r[e]=(n=function(){return i.prototype[e].apply(this,arguments)},o=function(t){return i.prototype[e].apply(this,t)},function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t})):void(r[e]=s);var n,o}),o.prototype=P.widget.extend(a,{widgetEventPrefix:n&&a.widgetEventPrefix||t},r,{constructor:o,namespace:h,widgetName:t,widgetFullName:s}),n?(P.each(n._childConstructors,function(t,e){var i=e.prototype;P.widget(i.namespace+"."+i.widgetName,o,e._proto)}),delete n._childConstructors):i._childConstructors.push(o),P.widget.bridge(t,o),o},P.widget.extend=function(t){for(var e,i,s=p.call(arguments,1),n=0,o=s.length;n<o;n++)for(e in s[n])i=s[n][e],s[n].hasOwnProperty(e)&&void 0!==i&&(t[e]=P.isPlainObject(i)?P.isPlainObject(t[e])?P.widget.extend({},t[e],i):P.widget.extend({},i):i);return t},P.widget.bridge=function(o,e){var a=e.prototype.widgetFullName||o;P.fn[o]=function(i){var t="string"==typeof i,s=p.call(arguments,1),n=this;return t?this.each(function(){var t,e=P.data(this,a);return"instance"===i?(n=e,!1):e?P.isFunction(e[i])&&"_"!==i.charAt(0)?(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:P.error("no such method '"+i+"' for "+o+" widget instance"):P.error("cannot call methods on "+o+" prior to initialization; attempted to call method '"+i+"'")}):(s.length&&(i=P.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=P.data(this,a);t?(t.option(i||{}),t._init&&t._init()):P.data(this,a,new e(i,this))})),n}},P.Widget=function(){},P.Widget._childConstructors=[],P.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,e){e=P(e||this.defaultElement||this)[0],this.element=P(e),this.uuid=d++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=P(),this.hoverable=P(),this.focusable=P(),e!==this&&(P.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=P(e.style?e.ownerDocument:e.document||e),this.window=P(this.document[0].defaultView||this.document[0].parentWindow)),this.options=P.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:P.noop,_getCreateEventData:P.noop,_create:P.noop,_init:P.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(P.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:P.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return P.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=P.widget.extend({},this.options[t]),n=0;i.length-1>n;n++)s[i[n]]=s[i[n]]||{},s=s[i[n]];if(t=i.pop(),1===arguments.length)return void 0===s[t]?null:s[t];s[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!e),e&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(a,r,t){var h,l=this;"boolean"!=typeof a&&(t=r,r=a,a=!1),t?(r=h=P(r),this.bindings=this.bindings.add(r)):(t=r,r=this.element,h=this.widget()),P.each(t,function(t,e){function i(){return a||!0!==l.options.disabled&&!P(this).hasClass("ui-state-disabled")?("string"==typeof e?l[e]:e).apply(l,arguments):void 0}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||P.guid++);var s=t.match(/^([\w:-]*)\s*(.*)$/),n=s[1]+l.eventNamespace,o=s[2];o?h.delegate(o,n,i):r.bind(n,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(e).undelegate(e),this.bindings=P(this.bindings.not(t).get()),this.focusable=P(this.focusable.not(t).get()),this.hoverable=P(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){P(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){P(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){P(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){P(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=P.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!(P.isFunction(o)&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},P.each({show:"fadeIn",hide:"fadeOut"},function(o,a){P.Widget.prototype["_"+o]=function(e,t,i){"string"==typeof t&&(t={effect:t});var s,n=t?!0===t||"number"==typeof t?a:t.effect||a:o;"number"==typeof(t=t||{})&&(t={duration:t}),s=!P.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&P.effects&&P.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){P(this)[o](),i&&i.call(e[0]),t()})}}),P.widget;var f=!1;P(document).mouseup(function(){f=!1}),P.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.bind("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).bind("click."+this.widgetName,function(t){return!0===P.data(t.target,e.widgetName+".preventClickEvent")?(P.removeData(t.target,e.widgetName+".preventClickEvent"),t.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!f){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&P(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)&&(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?t.preventDefault():(!0===P.data(t.target,this.widgetName+".preventClickEvent")&&P.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),f=!0)),!0}},_mouseMove:function(t){if(this._mouseMoved){if(P.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&P.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),f=!1},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function x(t,e,i){return[parseFloat(t[0])*(h.test(t[0])?e/100:1),parseFloat(t[1])*(h.test(t[1])?i/100:1)]}function k(t,e){return parseInt(P.css(t,e),10)||0}P.ui=P.ui||{};var n,C,D=Math.max,I=Math.abs,T=Math.round,s=/left|center|right/,o=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,r=/^\w+/,h=/%$/,l=P.fn.position;P.position={scrollbarWidth:function(){if(void 0!==n)return n;var t,e,i=P("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=i.children()[0];return P("body").append(i),t=s.offsetWidth,i.css("overflow","scroll"),t===(e=s.offsetWidth)&&(e=i[0].clientWidth),i.remove(),n=t-e},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),s="scroll"===e||"auto"===e&&t.width<t.element[0].scrollWidth;return{width:"scroll"===i||"auto"===i&&t.height<t.element[0].scrollHeight?P.position.scrollbarWidth():0,height:s?P.position.scrollbarWidth():0}},getWithinInfo:function(t){var e=P(t||window),i=P.isWindow(e[0]),s=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:i,isDocument:s,offset:e.offset()||{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:i||s?e.width():e.outerWidth(),height:i||s?e.height():e.outerHeight()}}},P.fn.position=function(u){if(!u||!u.of)return l.apply(this,arguments);u=P.extend({},u);var d,p,f,m,g,t,e,i,v=P(u.of),_=P.position.getWithinInfo(u.within),b=P.position.getScrollInfo(_),y=(u.collision||"flip").split(" "),w={};return t=9===(i=(e=v)[0]).nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:P.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()},v[0].preventDefault&&(u.at="left top"),p=t.width,f=t.height,m=t.offset,g=P.extend({},m),P.each(["my","at"],function(){var t,e,i=(u[this]||"").split(" ");1===i.length&&(i=s.test(i[0])?i.concat(["center"]):o.test(i[0])?["center"].concat(i):["center","center"]),i[0]=s.test(i[0])?i[0]:"center",i[1]=o.test(i[1])?i[1]:"center",t=a.exec(i[0]),e=a.exec(i[1]),w[this]=[t?t[0]:0,e?e[0]:0],u[this]=[r.exec(i[0])[0],r.exec(i[1])[0]]}),1===y.length&&(y[1]=y[0]),"right"===u.at[0]?g.left+=p:"center"===u.at[0]&&(g.left+=p/2),"bottom"===u.at[1]?g.top+=f:"center"===u.at[1]&&(g.top+=f/2),d=x(w.at,p,f),g.left+=d[0],g.top+=d[1],this.each(function(){var i,t,a=P(this),r=a.outerWidth(),h=a.outerHeight(),e=k(this,"marginLeft"),s=k(this,"marginTop"),n=r+e+k(this,"marginRight")+b.width,o=h+s+k(this,"marginBottom")+b.height,l=P.extend({},g),c=x(w.my,a.outerWidth(),a.outerHeight());"right"===u.my[0]?l.left-=r:"center"===u.my[0]&&(l.left-=r/2),"bottom"===u.my[1]?l.top-=h:"center"===u.my[1]&&(l.top-=h/2),l.left+=c[0],l.top+=c[1],C||(l.left=T(l.left),l.top=T(l.top)),i={marginLeft:e,marginTop:s},P.each(["left","top"],function(t,e){P.ui.position[y[t]]&&P.ui.position[y[t]][e](l,{targetWidth:p,targetHeight:f,elemWidth:r,elemHeight:h,collisionPosition:i,collisionWidth:n,collisionHeight:o,offset:[d[0]+c[0],d[1]+c[1]],my:u.my,at:u.at,within:_,elem:a})}),u.using&&(t=function(t){var e=m.left-l.left,i=e+p-r,s=m.top-l.top,n=s+f-h,o={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:a,left:l.left,top:l.top,width:r,height:h},horizontal:i<0?"left":0<e?"right":"center",vertical:n<0?"top":0<s?"bottom":"middle"};p<r&&p>I(e+i)&&(o.horizontal="center"),f<h&&f>I(s+n)&&(o.vertical="middle"),o.important=D(I(e),I(i))>D(I(s),I(n))?"horizontal":"vertical",u.using.call(this,t,o)}),a.offset(P.extend(l,{using:t}))})},P.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,o=s.width,a=t.left-e.collisionPosition.marginLeft,r=n-a,h=a+e.collisionWidth-o-n;e.collisionWidth>o?0<r&&h<=0?(i=t.left+r+e.collisionWidth-o-n,t.left+=r-i):t.left=0<h&&r<=0?n:h<r?n+o-e.collisionWidth:n:0<r?t.left+=r:0<h?t.left-=h:t.left=D(t.left-a,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,o=e.within.height,a=t.top-e.collisionPosition.marginTop,r=n-a,h=a+e.collisionHeight-o-n;e.collisionHeight>o?0<r&&h<=0?(i=t.top+r+e.collisionHeight-o-n,t.top+=r-i):t.top=0<h&&r<=0?n:h<r?n+o-e.collisionHeight:n:0<r?t.top+=r:0<h?t.top-=h:t.top=D(t.top-a,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,a=n.width,r=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,l=h-r,c=h+e.collisionWidth-a-r,u="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,d="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,p=-2*e.offset[0];l<0?((i=t.left+u+d+p+e.collisionWidth-a-o)<0||I(l)>i)&&(t.left+=u+d+p):0<c&&((0<(s=t.left-e.collisionPosition.marginLeft+u+d+p-r)||c>I(s))&&(t.left+=u+d+p))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,a=n.height,r=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,l=h-r,c=h+e.collisionHeight-a-r,u="top"===e.my[1]?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,d="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,p=-2*e.offset[1];l<0?((s=t.top+u+d+p+e.collisionHeight-a-o)<0||I(l)>s)&&(t.top+=u+d+p):0<c&&((0<(i=t.top-e.collisionPosition.marginTop+u+d+p-r)||c>I(i))&&(t.top+=u+d+p))}},flipfit:{left:function(){P.ui.position.flip.left.apply(this,arguments),P.ui.position.fit.left.apply(this,arguments)},top:function(){P.ui.position.flip.top.apply(this,arguments),P.ui.position.fit.top.apply(this,arguments)}}},function(){var t,e,i,s,n,o=document.getElementsByTagName("body")[0],a=document.createElement("div");for(n in t=document.createElement(o?"div":"body"),i={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&P.extend(i,{position:"absolute",left:"-1000px",top:"-1000px"}),i)t.style[n]=i[n];t.appendChild(a),(e=o||document.documentElement).insertBefore(t,e.firstChild),a.style.cssText="position: absolute; left: 10.7432222px;",s=P(a).offset().left,C=10<s&&s<11,t.innerHTML="",e.removeChild(t)}()}(),P.ui.position,P.widget("ui.draggable",P.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(t){var e=this.options;return this._blurActiveElement(t),!(this.helper||e.disabled||0<P(t.target).closest(".ui-resizable-handle").length)&&(this.handle=this._getHandle(t),!!this.handle&&(this._blockFrames(!0===e.iframeFix?"iframe":e.iframeFix),!0))},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=P(this);return P("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var e=this.document[0];if(this.handleElement.is(t.target))try{e.activeElement&&"body"!==e.activeElement.nodeName.toLowerCase()&&P(e.activeElement).blur()}catch(t){}},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),P.ui.ddmanager&&(P.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=0<this.helper.parents().filter(function(){return"fixed"===P(this).css("position")}).length,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this._setContainment(),!1===this._trigger("start",t)?(this._clear(),!1):(this._cacheHelperProportions(),P.ui.ddmanager&&!e.dropBehaviour&&P.ui.ddmanager.prepareOffsets(this,t),this._normalizeRightBottom(),this._mouseDrag(t,!0),P.ui.ddmanager&&P.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(t,e){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!e){var i=this._uiHash();if(!1===this._trigger("drag",t,i))return this._mouseUp({}),!1;this.position=i.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",P.ui.ddmanager&&P.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var e=this,i=!1;return P.ui.ddmanager&&!this.options.dropBehaviour&&(i=P.ui.ddmanager.drop(this,t)),this.dropped&&(i=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!i||"valid"===this.options.revert&&i||!0===this.options.revert||P.isFunction(this.options.revert)&&this.options.revert.call(this.element,i)?P(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==e._trigger("stop",t)&&e._clear()}):!1!==this._trigger("stop",t)&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),P.ui.ddmanager&&P.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.focus(),P.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){return!this.options.handle||!!P(t.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(t){var e=this.options,i=P.isFunction(e.helper),s=i?P(e.helper.apply(this.element[0],[t])):"clone"===e.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===e.appendTo?this.element[0].parentNode:e.appendTo),i&&s[0]===this.element[0]&&this._setPositionRelative(),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),P.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),e=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==e&&P.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,e,i,s=this.options,n=this.document[0];return this.relativeContainer=null,s.containment?"window"===s.containment?void(this.containment=[P(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,P(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,P(window).scrollLeft()+P(window).width()-this.helperProportions.width-this.margins.left,P(window).scrollTop()+(P(window).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===s.containment?void(this.containment=[0,0,P(n).width()-this.helperProportions.width-this.margins.left,(P(n).height()||n.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):s.containment.constructor===Array?void(this.containment=s.containment):("parent"===s.containment&&(s.containment=this.helper[0].parentNode),void((i=(e=P(s.containment))[0])&&(t=/(scroll|auto)/.test(e.css("overflow")),this.containment=[(parseInt(e.css("borderLeftWidth"),10)||0)+(parseInt(e.css("paddingLeft"),10)||0),(parseInt(e.css("borderTopWidth"),10)||0)+(parseInt(e.css("paddingTop"),10)||0),(t?Math.max(i.scrollWidth,i.offsetWidth):i.offsetWidth)-(parseInt(e.css("borderRightWidth"),10)||0)-(parseInt(e.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(i.scrollHeight,i.offsetHeight):i.offsetHeight)-(parseInt(e.css("borderBottomWidth"),10)||0)-(parseInt(e.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=e))):void(this.containment=null)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(i=this.relativeContainer?(s=this.relativeContainer.offset(),[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(t,e,i){return i=i||this._uiHash(),P.ui.plugin.call(this,t,[e,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),P.Widget.prototype._trigger.call(this,t,e,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),P.ui.plugin.add("draggable","connectToSortable",{start:function(e,t,i){var s=P.extend({},t,{item:i.element});i.sortables=[],P(i.options.connectToSortable).each(function(){var t=P(this).sortable("instance");t&&!t.options.disabled&&(i.sortables.push(t),t.refreshPositions(),t._trigger("activate",e,s))})},stop:function(e,t,i){var s=P.extend({},t,{item:i.element});i.cancelHelperRemoval=!1,P.each(i.sortables,function(){var t=this;t.isOver?(t.isOver=0,i.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,s))})},drag:function(i,s,n){P.each(n.sortables,function(){var t=!1,e=this;e.positionAbs=n.positionAbs,e.helperProportions=n.helperProportions,e.offset.click=n.offset.click,e._intersectsWith(e.containerCache)&&(t=!0,P.each(n.sortables,function(){return this.positionAbs=n.positionAbs,this.helperProportions=n.helperProportions,this.offset.click=n.offset.click,this!==e&&this._intersectsWith(this.containerCache)&&P.contains(e.element[0],this.element[0])&&(t=!1),t})),t?(e.isOver||(e.isOver=1,n._parent=s.helper.parent(),e.currentItem=s.helper.appendTo(e.element).data("ui-sortable-item",!0),e.options._helper=e.options.helper,e.options.helper=function(){return s.helper[0]},i.target=e.currentItem[0],e._mouseCapture(i,!0),e._mouseStart(i,!0,!0),e.offset.click.top=n.offset.click.top,e.offset.click.left=n.offset.click.left,e.offset.parent.left-=n.offset.parent.left-e.offset.parent.left,e.offset.parent.top-=n.offset.parent.top-e.offset.parent.top,n._trigger("toSortable",i),n.dropped=e.element,P.each(n.sortables,function(){this.refreshPositions()}),n.currentItem=n.element,e.fromOutside=n),e.currentItem&&(e._mouseDrag(i),s.position=e.position)):e.isOver&&(e.isOver=0,e.cancelHelperRemoval=!0,e.options._revert=e.options.revert,e.options.revert=!1,e._trigger("out",i,e._uiHash(e)),e._mouseStop(i,!0),e.options.revert=e.options._revert,e.options.helper=e.options._helper,e.placeholder&&e.placeholder.remove(),s.helper.appendTo(n._parent),n._refreshOffsets(i),s.position=n._generatePosition(i,!0),n._trigger("fromSortable",i),n.dropped=!1,P.each(n.sortables,function(){this.refreshPositions()}))})}}),P.ui.plugin.add("draggable","cursor",{start:function(t,e,i){var s=P("body"),n=i.options;s.css("cursor")&&(n._cursor=s.css("cursor")),s.css("cursor",n.cursor)},stop:function(t,e,i){var s=i.options;s._cursor&&P("body").css("cursor",s._cursor)}}),P.ui.plugin.add("draggable","opacity",{start:function(t,e,i){var s=P(e.helper),n=i.options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(t,e,i){var s=i.options;s._opacity&&P(e.helper).css("opacity",s._opacity)}}),P.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(t,e,i){var s=i.options,n=!1,o=i.scrollParentNotHidden[0],a=i.document[0];o!==a&&"HTML"!==o.tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+o.offsetHeight-t.pageY<s.scrollSensitivity?o.scrollTop=n=o.scrollTop+s.scrollSpeed:t.pageY-i.overflowOffset.top<s.scrollSensitivity&&(o.scrollTop=n=o.scrollTop-s.scrollSpeed)),s.axis&&"y"===s.axis||(i.overflowOffset.left+o.offsetWidth-t.pageX<s.scrollSensitivity?o.scrollLeft=n=o.scrollLeft+s.scrollSpeed:t.pageX-i.overflowOffset.left<s.scrollSensitivity&&(o.scrollLeft=n=o.scrollLeft-s.scrollSpeed))):(s.axis&&"x"===s.axis||(t.pageY-P(a).scrollTop()<s.scrollSensitivity?n=P(a).scrollTop(P(a).scrollTop()-s.scrollSpeed):P(window).height()-(t.pageY-P(a).scrollTop())<s.scrollSensitivity&&(n=P(a).scrollTop(P(a).scrollTop()+s.scrollSpeed))),s.axis&&"y"===s.axis||(t.pageX-P(a).scrollLeft()<s.scrollSensitivity?n=P(a).scrollLeft(P(a).scrollLeft()-s.scrollSpeed):P(window).width()-(t.pageX-P(a).scrollLeft())<s.scrollSensitivity&&(n=P(a).scrollLeft(P(a).scrollLeft()+s.scrollSpeed)))),!1!==n&&P.ui.ddmanager&&!s.dropBehaviour&&P.ui.ddmanager.prepareOffsets(i,t)}}),P.ui.plugin.add("draggable","snap",{start:function(t,e,i){var s=i.options;i.snapElements=[],P(s.snap.constructor!==String?s.snap.items||":data(ui-draggable)":s.snap).each(function(){var t=P(this),e=t.offset();this!==i.element[0]&&i.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:e.top,left:e.left})})},drag:function(t,e,i){var s,n,o,a,r,h,l,c,u,d,p=i.options,f=p.snapTolerance,m=e.offset.left,g=m+i.helperProportions.width,v=e.offset.top,_=v+i.helperProportions.height;for(u=i.snapElements.length-1;0<=u;u--)h=(r=i.snapElements[u].left-i.margins.left)+i.snapElements[u].width,c=(l=i.snapElements[u].top-i.margins.top)+i.snapElements[u].height,g<r-f||h+f<m||_<l-f||c+f<v||!P.contains(i.snapElements[u].item.ownerDocument,i.snapElements[u].item)?(i.snapElements[u].snapping&&i.options.snap.release&&i.options.snap.release.call(i.element,t,P.extend(i._uiHash(),{snapItem:i.snapElements[u].item})),i.snapElements[u].snapping=!1):("inner"!==p.snapMode&&(s=f>=Math.abs(l-_),n=f>=Math.abs(c-v),o=f>=Math.abs(r-g),a=f>=Math.abs(h-m),s&&(e.position.top=i._convertPositionTo("relative",{top:l-i.helperProportions.height,left:0}).top),n&&(e.position.top=i._convertPositionTo("relative",{top:c,left:0}).top),o&&(e.position.left=i._convertPositionTo("relative",{top:0,left:r-i.helperProportions.width}).left),a&&(e.position.left=i._convertPositionTo("relative",{top:0,left:h}).left)),d=s||n||o||a,"outer"!==p.snapMode&&(s=f>=Math.abs(l-v),n=f>=Math.abs(c-_),o=f>=Math.abs(r-m),a=f>=Math.abs(h-g),s&&(e.position.top=i._convertPositionTo("relative",{top:l,left:0}).top),n&&(e.position.top=i._convertPositionTo("relative",{top:c-i.helperProportions.height,left:0}).top),o&&(e.position.left=i._convertPositionTo("relative",{top:0,left:r}).left),a&&(e.position.left=i._convertPositionTo("relative",{top:0,left:h-i.helperProportions.width}).left)),!i.snapElements[u].snapping&&(s||n||o||a||d)&&i.options.snap.snap&&i.options.snap.snap.call(i.element,t,P.extend(i._uiHash(),{snapItem:i.snapElements[u].item})),i.snapElements[u].snapping=s||n||o||a||d)}}),P.ui.plugin.add("draggable","stack",{start:function(t,e,i){var s,n=i.options,o=P.makeArray(P(n.stack)).sort(function(t,e){return(parseInt(P(t).css("zIndex"),10)||0)-(parseInt(P(e).css("zIndex"),10)||0)});o.length&&(s=parseInt(P(o[0]).css("zIndex"),10)||0,P(o).each(function(t){P(this).css("zIndex",s+t)}),this.css("zIndex",s+o.length))}}),P.ui.plugin.add("draggable","zIndex",{start:function(t,e,i){var s=P(e.helper),n=i.options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(t,e,i){var s=i.options;s._zIndex&&P(e.helper).css("zIndex",s._zIndex)}}),P.ui.draggable,P.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,e=this.options,i=e.accept;this.isover=!1,this.isout=!0,this.accept=P.isFunction(i)?i:function(t){return t.is(i)},this.proportions=function(){return arguments.length?void(t=arguments[0]):t||(t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight})},this._addToManager(e.scope),e.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(t){P.ui.ddmanager.droppables[t]=P.ui.ddmanager.droppables[t]||[],P.ui.ddmanager.droppables[t].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var t=P.ui.ddmanager.droppables[this.options.scope];this._splice(t),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,e){if("accept"===t)this.accept=P.isFunction(e)?e:function(t){return t.is(e)};else if("scope"===t){var i=P.ui.ddmanager.droppables[this.options.scope];this._splice(i),this._addToManager(e)}this._super(t,e)},_activate:function(t){var e=P.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),e&&this._trigger("activate",t,this.ui(e))},_deactivate:function(t){var e=P.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),e&&this._trigger("deactivate",t,this.ui(e))},_over:function(t){var e=P.ui.ddmanager.current;e&&(e.currentItem||e.element)[0]!==this.element[0]&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(e)))},_out:function(t){var e=P.ui.ddmanager.current;e&&(e.currentItem||e.element)[0]!==this.element[0]&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(e)))},_drop:function(e,t){var i=t||P.ui.ddmanager.current,s=!1;return!(!i||(i.currentItem||i.element)[0]===this.element[0])&&(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var t=P(this).droppable("instance");return t.options.greedy&&!t.options.disabled&&t.options.scope===i.options.scope&&t.accept.call(t.element[0],i.currentItem||i.element)&&P.ui.intersect(i,P.extend(t,{offset:t.element.offset()}),t.options.tolerance,e)?!(s=!0):void 0}),!s&&(!!this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",e,this.ui(i)),this.element)))},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}}}),P.ui.intersect=function(){function d(t,e,i){return e<=t&&t<e+i}return function(t,e,i,s){if(!e.offset)return!1;var n=(t.positionAbs||t.position.absolute).left+t.margins.left,o=(t.positionAbs||t.position.absolute).top+t.margins.top,a=n+t.helperProportions.width,r=o+t.helperProportions.height,h=e.offset.left,l=e.offset.top,c=h+e.proportions().width,u=l+e.proportions().height;switch(i){case"fit":return h<=n&&a<=c&&l<=o&&r<=u;case"intersect":return n+t.helperProportions.width/2>h&&c>a-t.helperProportions.width/2&&o+t.helperProportions.height/2>l&&u>r-t.helperProportions.height/2;case"pointer":return d(s.pageY,l,e.proportions().height)&&d(s.pageX,h,e.proportions().width);case"touch":return(l<=o&&o<=u||l<=r&&r<=u||o<l&&u<r)&&(h<=n&&n<=c||h<=a&&a<=c||n<h&&c<a);default:return!1}}}(),P.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(t,e){var i,s,n=P.ui.ddmanager.droppables[t.options.scope]||[],o=e?e.type:null,a=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();t:for(i=0;n.length>i;i++)if(!(n[i].options.disabled||t&&!n[i].accept.call(n[i].element[0],t.currentItem||t.element))){for(s=0;a.length>s;s++)if(a[s]===n[i].element[0]){n[i].proportions().height=0;continue t}n[i].visible="none"!==n[i].element.css("display"),n[i].visible&&("mousedown"===o&&n[i]._activate.call(n[i],e),n[i].offset=n[i].element.offset(),n[i].proportions({width:n[i].element[0].offsetWidth,height:n[i].element[0].offsetHeight}))}},drop:function(t,e){var i=!1;return P.each((P.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&P.ui.intersect(t,this,this.options.tolerance,e)&&(i=this._drop.call(this,e)||i),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,e)))}),i},dragStart:function(t,e){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||P.ui.ddmanager.prepareOffsets(t,e)})},drag:function(o,a){o.options.refreshPositions&&P.ui.ddmanager.prepareOffsets(o,a),P.each(P.ui.ddmanager.droppables[o.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var t,e,i,s=P.ui.intersect(o,this,this.options.tolerance,a),n=!s&&this.isover?"isout":s&&!this.isover?"isover":null;n&&(this.options.greedy&&(e=this.options.scope,(i=this.element.parents(":data(ui-droppable)").filter(function(){return P(this).droppable("instance").options.scope===e})).length&&((t=P(i[0]).droppable("instance")).greedyChild="isover"===n)),t&&"isover"===n&&(t.isover=!1,t.isout=!0,t._out.call(t,a)),this[n]=!0,this["isout"===n?"isover":"isout"]=!1,this["isover"===n?"_over":"_out"].call(this,a),t&&"isout"===n&&(t.isout=!1,t.isover=!0,t._over.call(t,a)))}})},dragStop:function(t,e){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||P.ui.ddmanager.prepareOffsets(t,e)}},P.ui.droppable,P.widget("ui.resizable",P.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseInt(t,10)||0},_isNumber:function(t){return!isNaN(parseInt(t,10))},_hasScroll:function(t,e){if("hidden"===P(t).css("overflow"))return!1;var i=e&&"left"===e?"scrollLeft":"scrollTop",s=!1;return 0<t[i]||(t[i]=1,s=0<t[i],t[i]=0,s)},_create:function(){var t,e,i,s,o=this,n=this.options;if(this.element.addClass("ui-resizable"),P.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(P("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=n.handles||(P(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=P(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),t=this.handles.split(","),this.handles={},e=0;t.length>e;e++)i=P.trim(t[e]),(s=P("<div class='ui-resizable-handle "+("ui-resizable-"+i)+"'></div>")).css({zIndex:n.zIndex}),"se"===i&&s.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[i]=".ui-resizable-"+i,this.element.append(s);this._renderAxis=function(t){var e,i,s,n;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=P(this.handles[e]),this._on(this.handles[e],{mousedown:o._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=P(this.handles[e],this.element),n=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),s=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(s,n),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(s=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=s&&s[1]?s[1]:"se")}),n.autoHide&&(this._handles.hide(),P(this.element).addClass("ui-resizable-autohide").mouseenter(function(){n.disabled||(P(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){n.disabled||o.resizing||(P(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,e=function(t){P(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(e(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),e(this.originalElement),this},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)((i=P(this.handles[e])[0])===t.target||P.contains(i,t.target))&&(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s,n=this.options,o=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),n.containment&&(e+=P(n.containment).scrollLeft()||0,i+=P(n.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof n.aspectRatio?n.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=P(".ui-resizable-"+this.axis).css("cursor"),P("body").css("cursor","auto"===s?this.axis+"-resize":s),o.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e,i,s=this.originalMousePosition,n=this.axis,o=t.pageX-s.left||0,a=t.pageY-s.top||0,r=this._change[n];return this._updatePrevProperties(),r&&(e=r.apply(this,[t,o,a]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),i=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),P.isEmptyObject(i)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n,o,a,r,h=this.options,l=this;return this._helper&&(s=(i=(e=this._proportionallyResizeElements).length&&/textarea/i.test(e[0].nodeName))&&this._hasScroll(e[0],"left")?0:l.sizeDiff.height,n=i?0:l.sizeDiff.width,o={width:l.helper.width()-n,height:l.helper.height()-s},a=parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left)||null,r=parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top)||null,h.animate||this.element.css(P.extend(o,{top:r,left:a})),l.helper.height(l.size.height),l.helper.width(l.size.width),this._helper&&!h.animate&&this._proportionallyResize()),P("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseInt(s[e],10)||0,i[e]+=parseInt(n[e],10)||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,e=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||P("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return P.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return P.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return P.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return P.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){P.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),P.ui.plugin.add("resizable","animate",{stop:function(e){var i=P(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,a=n?0:i.sizeDiff.width,r={width:i.size.width-a,height:i.size.height-o},h=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,l=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(P.extend(r,l&&h?{top:l,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};s&&s.length&&P(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),P.ui.plugin.add("resizable","containment",{start:function(){var i,s,t,e,n,o,a,r=P(this).resizable("instance"),h=r.options,l=r.element,c=h.containment,u=c instanceof P?c.get(0):/parent/.test(c)?l.parent().get(0):c;u&&(r.containerElement=P(u),/document/.test(c)||c===document?(r.containerOffset={left:0,top:0},r.containerPosition={left:0,top:0},r.parentData={element:P(document),left:0,top:0,width:P(document).width(),height:P(document).height()||document.body.parentNode.scrollHeight}):(i=P(u),s=[],P(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=r._num(i.css("padding"+e))}),r.containerOffset=i.offset(),r.containerPosition=i.position(),r.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=r.containerOffset,e=r.containerSize.height,n=r.containerSize.width,o=r._hasScroll(u,"left")?u.scrollWidth:n,a=r._hasScroll(u)?u.scrollHeight:e,r.parentData={element:u,left:t.left,top:t.top,width:o,height:a}))},resize:function(t){var e,i,s,n,o=P(this).resizable("instance"),a=o.options,r=o.containerOffset,h=o.position,l=o._aspectRatio||t.shiftKey,c={top:0,left:0},u=o.containerElement,d=!0;u[0]!==document&&/static/.test(u.css("position"))&&(c=r),h.left<(o._helper?r.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-r.left:o.position.left-c.left),l&&(o.size.height=o.size.width/o.aspectRatio,d=!1),o.position.left=a.helper?r.left:0),h.top<(o._helper?r.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-r.top:o.position.top),l&&(o.size.width=o.size.height*o.aspectRatio,d=!1),o.position.top=o._helper?r.top:0),s=o.containerElement.get(0)===o.element.parent().get(0),n=/relative|absolute/.test(o.containerElement.css("position")),o.offset.top=s&&n?(o.offset.left=o.parentData.left+o.position.left,o.parentData.top+o.position.top):(o.offset.left=o.element.offset().left,o.element.offset().top),e=Math.abs(o.sizeDiff.width+(o._helper?o.offset.left-c.left:o.offset.left-r.left)),i=Math.abs(o.sizeDiff.height+(o._helper?o.offset.top-c.top:o.offset.top-r.top)),e+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-e,l&&(o.size.height=o.size.width/o.aspectRatio,d=!1)),i+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-i,l&&(o.size.width=o.size.height*o.aspectRatio,d=!1)),d||(o.position.left=o.prevPosition.left,o.position.top=o.prevPosition.top,o.size.width=o.prevSize.width,o.size.height=o.prevSize.height)},stop:function(){var t=P(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=P(t.helper),a=o.offset(),r=o.outerWidth()-t.sizeDiff.width,h=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&P(this).css({left:a.left-s.left-i.left,width:r,height:h}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&P(this).css({left:a.left-s.left-i.left,width:r,height:h})}}),P.ui.plugin.add("resizable","alsoResize",{start:function(){var t=P(this).resizable("instance").options;P(t.alsoResize).each(function(){var t=P(this);t.data("ui-resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})},resize:function(t,i){var e=P(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,a={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};P(s.alsoResize).each(function(){var t=P(this),s=P(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];P.each(e,function(t,e){var i=(s[e]||0)+(a[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){P(this).removeData("resizable-alsoresize")}}),P.ui.plugin.add("resizable","ghost",{start:function(){var t=P(this).resizable("instance"),e=t.options,i=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof e.ghost?e.ghost:""),t.ghost.appendTo(t.helper)},resize:function(){var t=P(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=P(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),P.ui.plugin.add("resizable","grid",{resize:function(){var t,e=P(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,a=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,c=Math.round((s.width-n.width)/h)*h,u=Math.round((s.height-n.height)/l)*l,d=n.width+c,p=n.height+u,f=i.maxWidth&&d>i.maxWidth,m=i.maxHeight&&p>i.maxHeight,g=i.minWidth&&i.minWidth>d,v=i.minHeight&&i.minHeight>p;i.grid=r,g&&(d+=h),v&&(p+=l),f&&(d-=h),m&&(p-=l),/^(se|s|e)$/.test(a)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.top=o.top-u):/^(sw)$/.test(a)?(e.size.width=d,e.size.height=p,e.position.left=o.left-c):((p-l<=0||d-h<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),e.position.top=0<p-l?(e.size.height=p,o.top-u):(p=l-t.height,e.size.height=p,o.top+n.height-p),e.position.left=0<d-h?(e.size.width=d,o.left-c):(d=h-t.width,e.size.width=d,o.left+n.width-d))}}),P.ui.resizable,P.widget("ui.selectable",P.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t,e=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){(t=P(e.options.filter,e.element[0])).addClass("ui-selectee"),t.each(function(){var t=P(this),e=t.offset();P.data(this,"selectable-item",{element:this,$element:t,left:e.left,top:e.top,right:e.left+t.outerWidth(),bottom:e.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=P("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(i){var s=this,t=this.options;this.opos=[i.pageX,i.pageY],this.options.disabled||(this.selectees=P(t.filter,this.element[0]),this._trigger("start",i),P(t.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var t=P.data(this,"selectable-item");t.startselected=!0,i.metaKey||i.ctrlKey||(t.$element.removeClass("ui-selected"),t.selected=!1,t.$element.addClass("ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element}))}),P(i.target).parents().addBack().each(function(){var t,e=P.data(this,"selectable-item");return e?(t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass("ui-selected"),e.$element.removeClass(t?"ui-unselecting":"ui-selected").addClass(t?"ui-selecting":"ui-unselecting"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger("selecting",i,{selecting:e.element}):s._trigger("unselecting",i,{unselecting:e.element}),!1):void 0}))},_mouseDrag:function(i){if(this.dragged=!0,!this.options.disabled){var t,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=i.pageX,h=i.pageY;return r<o&&(t=r,r=o,o=t),h<a&&(t=h,h=a,a=t),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var t=P.data(this,"selectable-item"),e=!1;t&&t.element!==s.element[0]&&("touch"===n.tolerance?e=!(t.left>r||o>t.right||t.top>h||a>t.bottom):"fit"===n.tolerance&&(e=t.left>o&&r>t.right&&t.top>a&&h>t.bottom),e?(t.selected&&(t.$element.removeClass("ui-selected"),t.selected=!1),t.unselecting&&(t.$element.removeClass("ui-unselecting"),t.unselecting=!1),t.selecting||(t.$element.addClass("ui-selecting"),t.selecting=!0,s._trigger("selecting",i,{selecting:t.element}))):(t.selecting&&((i.metaKey||i.ctrlKey)&&t.startselected?(t.$element.removeClass("ui-selecting"),t.selecting=!1,t.$element.addClass("ui-selected"),t.selected=!0):(t.$element.removeClass("ui-selecting"),t.selecting=!1,t.startselected&&(t.$element.addClass("ui-unselecting"),t.unselecting=!0),s._trigger("unselecting",i,{unselecting:t.element}))),t.selected&&(i.metaKey||i.ctrlKey||t.startselected||(t.$element.removeClass("ui-selected"),t.selected=!1,t.$element.addClass("ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,P(".ui-unselecting",this.element[0]).each(function(){var t=P.data(this,"selectable-item");t.$element.removeClass("ui-unselecting"),t.unselecting=!1,t.startselected=!1,i._trigger("unselected",e,{unselected:t.element})}),P(".ui-selecting",this.element[0]).each(function(){var t=P.data(this,"selectable-item");t.$element.removeClass("ui-selecting").addClass("ui-selected"),t.selecting=!1,t.selected=!0,t.startselected=!0,i._trigger("selected",e,{selected:t.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),P.widget("ui.sortable",P.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return e<=t&&t<e+i},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),P.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var t=this.items.length-1;0<=t;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,e){var i=null,s=!1,n=this;return!this.reverting&&(!this.options.disabled&&"static"!==this.options.type&&(this._refreshItems(t),P(t.target).parents().each(function(){return P.data(this,n.widgetName+"-item")===n?(i=P(this),!1):void 0}),P.data(t.target,n.widgetName+"-item")===n&&(i=P(t.target)),!!i&&(!(this.options.handle&&!e&&(P(this.options.handle,i).find("*").addBack().each(function(){this===t.target&&(s=!0)}),!s))&&(this.currentItem=i,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(t,e,i){var s,n,o=this.options;if((this.currentContainer=this).refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},P.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),o.containment&&this._setContainment(),o.cursor&&"auto"!==o.cursor&&(n=this.document.find("body"),this.storedCursor=n.css("cursor"),n.css("cursor",o.cursor),this.storedStylesheet=P("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(n)),o.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",o.opacity)),o.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",o.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(s=this.containers.length-1;0<=s;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return P.ui.ddmanager&&(P.ui.ddmanager.current=this),P.ui.ddmanager&&!o.dropBehaviour&&P.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var e,i,s,n,o=this.options,a=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<o.scrollSensitivity?this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop+o.scrollSpeed:t.pageY-this.overflowOffset.top<o.scrollSensitivity&&(this.scrollParent[0].scrollTop=a=this.scrollParent[0].scrollTop-o.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<o.scrollSensitivity?this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft+o.scrollSpeed:t.pageX-this.overflowOffset.left<o.scrollSensitivity&&(this.scrollParent[0].scrollLeft=a=this.scrollParent[0].scrollLeft-o.scrollSpeed)):(t.pageY-this.document.scrollTop()<o.scrollSensitivity?a=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<o.scrollSensitivity&&(a=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)),t.pageX-this.document.scrollLeft()<o.scrollSensitivity?a=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<o.scrollSensitivity&&(a=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed))),!1!==a&&P.ui.ddmanager&&!o.dropBehaviour&&P.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),e=this.items.length-1;0<=e;e--)if(s=(i=this.items[e]).item[0],(n=this._intersectsWithPointer(i))&&i.instance===this.currentContainer&&s!==this.currentItem[0]&&this.placeholder[1===n?"next":"prev"]()[0]!==s&&!P.contains(this.placeholder[0],s)&&("semi-dynamic"!==this.options.type||!P.contains(this.element[0],s))){if(this.direction=1===n?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(i))break;this._rearrange(t,i),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),P.ui.ddmanager&&P.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,e){if(t){if(P.ui.ddmanager&&!this.options.dropBehaviour&&P.ui.ddmanager.drop(this,t),this.options.revert){var i=this,s=this.placeholder.offset(),n=this.options.axis,o={};n&&"x"!==n||(o.left=s.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),n&&"y"!==n||(o.top=s.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,P(this.helper).animate(o,parseInt(this.options.revert,10)||500,function(){i._clear(t)})}else this._clear(t,e);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;0<=t;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),P.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?P(this.domPosition.prev).after(this.currentItem):P(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var t=this._getItemsAsjQuery(e&&e.connected),i=[];return e=e||{},P(t).each(function(){var t=(P(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);t&&i.push((e.key||t[1]+"[]")+"="+(e.key&&e.expression?t[1]:t[2]))}),!i.length&&e.key&&i.push(e.key+"="),i.join("&")},toArray:function(t){var e=this._getItemsAsjQuery(t&&t.connected),i=[];return t=t||{},e.each(function(){i.push(P(t.item||this).attr(t.attribute||"id")||"")}),i},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||r<s+l&&s+l<h,d="y"===this.options.axis||o<e+c&&e+c<a,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),i="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),s=e&&i,n=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return!!s&&(this.floating?o&&"right"===o||"down"===n?2:1:n&&("down"===n?2:1))},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(0<t?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(0<t?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(t){function e(){a.push(this)}var i,s,n,o,a=[],r=[],h=this._connectWith();if(h&&t)for(i=h.length-1;0<=i;i--)for(s=(n=P(h[i],this.document[0])).length-1;0<=s;s--)(o=P.data(n[s],this.widgetFullName))&&o!==this&&!o.options.disabled&&r.push([P.isFunction(o.options.items)?o.options.items.call(o.element):P(o.options.items,o.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),o]);for(r.push([P.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):P(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=r.length-1;0<=i;i--)r[i][0].each(e);return P(a)},_removeCurrentsFromItems:function(){var i=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=P.grep(this.items,function(t){for(var e=0;i.length>e;e++)if(i[e]===t.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var e,i,s,n,o,a,r,h,l=this.items,c=[[P.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):P(this.options.items,this.element),this]],u=this._connectWith();if(u&&this.ready)for(e=u.length-1;0<=e;e--)for(i=(s=P(u[e],this.document[0])).length-1;0<=i;i--)(n=P.data(s[i],this.widgetFullName))&&n!==this&&!n.options.disabled&&(c.push([P.isFunction(n.options.items)?n.options.items.call(n.element[0],t,{item:this.currentItem}):P(n.options.items,n.element),n]),this.containers.push(n));for(e=c.length-1;0<=e;e--)for(o=c[e][1],i=0,h=(a=c[e][0]).length;i<h;i++)(r=P(a[i])).data(this.widgetName+"-item",o),l.push({item:r,instance:o,width:0,height:0,left:0,top:0})},refreshPositions:function(t){var e,i,s,n;for(this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),e=this.items.length-1;0<=e;e--)(i=this.items[e]).instance!==this.currentContainer&&this.currentContainer&&i.item[0]!==this.currentItem[0]||(s=this.options.toleranceElement?P(this.options.toleranceElement,i.item):i.item,t||(i.width=s.outerWidth(),i.height=s.outerHeight()),n=s.offset(),i.left=n.left,i.top=n.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(e=this.containers.length-1;0<=e;e--)n=this.containers[e].element.offset(),this.containers[e].containerCache.left=n.left,this.containers[e].containerCache.top=n.top,this.containers[e].containerCache.width=this.containers[e].element.outerWidth(),this.containers[e].containerCache.height=this.containers[e].element.outerHeight();return this},_createPlaceholder:function(i){var s,n=(i=i||this).options;n.placeholder&&n.placeholder.constructor!==String||(s=n.placeholder,n.placeholder={element:function(){var t=i.currentItem[0].nodeName.toLowerCase(),e=P("<"+t+">",i.document[0]).addClass(s||i.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===t?i._createTrPlaceholder(i.currentItem.find("tr").eq(0),P("<tr>",i.document[0]).appendTo(e)):"tr"===t?i._createTrPlaceholder(i.currentItem,e):"img"===t&&e.attr("src",i.currentItem.attr("src")),s||e.css("visibility","hidden"),e},update:function(t,e){(!s||n.forcePlaceholderSize)&&(e.height()||e.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css("paddingTop")||0,10)-parseInt(i.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css("paddingLeft")||0,10)-parseInt(i.currentItem.css("paddingRight")||0,10)))}}),i.placeholder=P(n.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),n.placeholder.update(i,i.placeholder)},_createTrPlaceholder:function(t,e){var i=this;t.children().each(function(){P("<td>&#160;</td>",i.document[0]).attr("colspan",P(this).attr("colspan")||1).appendTo(e)})},_contactContainers:function(t){var e,i,s,n,o,a,r,h,l,c,u=null,d=null;for(e=this.containers.length-1;0<=e;e--)if(!P.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(u&&P.contains(this.containers[e].element[0],u.element[0]))continue;u=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",t,this._uiHash(this)),this.containers[e].containerCache.over=0);if(u)if(1===this.containers.length)this.containers[d].containerCache.over||(this.containers[d]._trigger("over",t,this._uiHash(this)),this.containers[d].containerCache.over=1);else{for(s=1e4,n=null,o=(l=u.floating||this._isFloating(this.currentItem))?"left":"top",a=l?"width":"height",c=l?"clientX":"clientY",i=this.items.length-1;0<=i;i--)P.contains(this.containers[d].element[0],this.items[i].item[0])&&this.items[i].item[0]!==this.currentItem[0]&&(r=this.items[i].item.offset()[o],h=!1,t[c]-r>this.items[i][a]/2&&(h=!0),s>Math.abs(t[c]-r)&&(s=Math.abs(t[c]-r),n=this.items[i],this.direction=h?"up":"down"));if(!n&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[d])return void(this.currentContainer.containerCache.over||(this.containers[d]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1));n?this._rearrange(t,n,null,!0):this._rearrange(t,null,this.containers[d].element,!0),this._trigger("change",t,this._uiHash()),this.containers[d]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[d],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",t,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(t){var e=this.options,i=P.isFunction(e.helper)?P(e.helper.apply(this.element[0],[t,this.currentItem])):"clone"===e.helper?this.currentItem.clone():this.currentItem;return i.parents("body").length||P("parent"!==e.appendTo?e.appendTo:this.currentItem[0].parentNode)[0].appendChild(i[0]),i[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!i[0].style.width||e.forceHelperSize)&&i.width(this.currentItem.width()),(!i[0].style.height||e.forceHelperSize)&&i.height(this.currentItem.height()),i},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),P.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&P.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&P.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,e,i,s=this.options;"parent"===s.containment&&(s.containment=this.helper[0].parentNode),("document"===s.containment||"window"===s.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===s.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===s.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(s.containment)||(t=P(s.containment)[0],e=P(s.containment).offset(),i="hidden"!==P(t).css("overflow"),this.containment=[e.left+(parseInt(P(t).css("borderLeftWidth"),10)||0)+(parseInt(P(t).css("paddingLeft"),10)||0)-this.margins.left,e.top+(parseInt(P(t).css("borderTopWidth"),10)||0)+(parseInt(P(t).css("paddingTop"),10)||0)-this.margins.top,e.left+(i?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(P(t).css("borderLeftWidth"),10)||0)-(parseInt(P(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,e.top+(i?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(P(t).css("borderTopWidth"),10)||0)-(parseInt(P(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&P.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,n=/(html|body)/i.test(s[0].tagName);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():n?0:s.scrollTop())*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():n?0:s.scrollLeft())*i}},_generatePosition:function(t){var e,i,s=this.options,n=t.pageX,o=t.pageY,a="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&P.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,r=/(html|body)/i.test(a[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(n=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(n=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),s.grid&&(e=this.originalPageY+Math.round((o-this.originalPageY)/s.grid[1])*s.grid[1],o=this.containment?e-this.offset.click.top>=this.containment[1]&&e-this.offset.click.top<=this.containment[3]?e:e-this.offset.click.top>=this.containment[1]?e-s.grid[1]:e+s.grid[1]:e,i=this.originalPageX+Math.round((n-this.originalPageX)/s.grid[0])*s.grid[0],n=this.containment?i-this.offset.click.left>=this.containment[0]&&i-this.offset.click.left<=this.containment[2]?i:i-this.offset.click.left>=this.containment[0]?i-s.grid[0]:i+s.grid[0]:i)),{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():r?0:a.scrollTop()),left:n-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():r?0:a.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(e,i,s){return function(t){s._trigger(e,t,i._uiHash(i))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;0<=s;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){!1===P.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(t){var e=t||this;return{helper:e.helper,placeholder:e.placeholder||P([]),position:e.position,originalPosition:e.originalPosition,offset:e.positionAbs,item:e.currentItem,sender:t?t.element:null}}}),P.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=P(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():P()}},_createIcons:function(){var t=this.options.icons;t&&(P("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?void this._activate(e):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||!1!==this.options.active||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void("disabled"===t&&(this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!e))))},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var e=P.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._eventHandler(t);break;case e.HOME:n=this.headers[0];break;case e.END:n=this.headers[i-1]}n&&(P(t.target).attr("tabIndex",-1),P(n).attr("tabIndex",0),n.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===P.ui.keyCode.UP&&t.ctrlKey&&P(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=P()):!1===t.active?this._activate(0):this.active.length&&!P.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=P()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var i,t=this.options,e=t.heightStyle,s=this.element.parent();this.active=this._findActive(t.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var t=P(this),e=t.uniqueId().attr("id"),i=t.next(),s=i.uniqueId().attr("id");t.attr("aria-controls",s),i.attr("aria-labelledby",e)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(t.event),"fill"===e?(i=s.height(),this.element.siblings(":visible").each(function(){var t=P(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=P(this).outerHeight(!0)}),this.headers.next().each(function(){P(this).height(Math.max(0,i-P(this).innerHeight()+P(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.headers.next().each(function(){i=Math.max(i,P(this).css("height","").height())}).height(i))},_activate:function(t){var e=this._findActive(t)[0];e!==this.active[0]&&(e=e||this.active[0],this._eventHandler({target:e,currentTarget:e,preventDefault:P.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):P()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&P.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var e=this.options,i=this.active,s=P(t.currentTarget),n=s[0]===i[0],o=n&&e.collapsible,a=o?P():s.next(),r=i.next(),h={oldHeader:i,oldPanel:r,newHeader:o?P():s,newPanel:a};t.preventDefault(),n&&!e.collapsible||!1===this._trigger("beforeActivate",t,h)||(e.active=!o&&this.headers.index(s),this.active=n?P():s,this._toggle(h),i.removeClass("ui-accordion-header-active ui-state-active"),e.icons&&i.children(".ui-accordion-header-icon").removeClass(e.icons.activeHeader).addClass(e.icons.header),n||(s.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),e.icons&&s.children(".ui-accordion-header-icon").removeClass(e.icons.header).addClass(e.icons.activeHeader),s.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var e=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=e,this.prevHide=i,this.options.animate?this._animate(e,i,t):(i.hide(),e.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),e.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):e.length&&this.headers.filter(function(){return 0===parseInt(P(this).attr("tabIndex"),10)}).attr("tabIndex",-1),e.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,i,e){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!i.length||t.index()<i.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(e)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,i.length?t.length?(s=t.show().outerHeight(),i.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),void t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,e){e.now=Math.round(t),"height"!==e.prop?"content-box"===h&&(r+=e.now):"content"!==a.options.heightStyle&&(e.now=Math.round(s-i.outerHeight()-r),r=0)}})):i.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel;e.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),P.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(t){var e=P(t.target);!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&P(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var e=P(t.currentTarget);e.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,e)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(t){this._delay(function(){P.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=P(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){var e,i,s,n,o=!0;switch(t.keyCode){case P.ui.keyCode.PAGE_UP:this.previousPage(t);break;case P.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case P.ui.keyCode.HOME:this._move("first","first",t);break;case P.ui.keyCode.END:this._move("last","last",t);break;case P.ui.keyCode.UP:this.previous(t);break;case P.ui.keyCode.DOWN:this.next(t);break;case P.ui.keyCode.LEFT:this.collapse(t);break;case P.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case P.ui.keyCode.ENTER:case P.ui.keyCode.SPACE:this._activate(t);break;case P.ui.keyCode.ESCAPE:this.collapse(t);break;default:o=!1,i=this.previousFilter||"",s=String.fromCharCode(t.keyCode),n=!1,clearTimeout(this.filterTimer),s===i?n=!0:s=i+s,e=this._filterMenuItems(s),(e=n&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(s=String.fromCharCode(t.keyCode),e=this._filterMenuItems(s)),e.length?(this.focus(t,e),this.previousFilter=s,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}o&&t.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(t):this.select(t))},refresh:function(){var t,e=this,s=this.options.icons.submenu,i=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),i.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=P(this),e=t.parent(),i=P("<span>").addClass("ui-menu-icon ui-icon "+s).data("ui-menu-submenu-carat",!0);e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=P(this);e._isDivider(t)&&t.addClass("ui-widget-content ui-menu-divider")}),t.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!P.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this._super(t,e)},focus:function(t,e){var i,s;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s,n,o,a;this._hasScroll()&&(e=parseFloat(P.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(P.css(this.activeMenu[0],"paddingTop"))||0,s=t.offset().top-this.activeMenu.offset().top-e-i,n=this.activeMenu.scrollTop(),o=this.activeMenu.height(),a=t.outerHeight(),s<0?this.activeMenu.scrollTop(n+s):o<s+a&&this.activeMenu.scrollTop(n+s-o+a))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(t){var e=P.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(e)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var t=i?this.element:P(e&&e.target).closest(this.element.find(".ui-menu"));t.length||(t=this.element),this._close(t),this.blur(e),this.activeMenu=t},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(t){return!P(t.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(t){var e,i,s;return this.active?void(this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return(e=P(this)).offset().top-i-s<0}),this.focus(t,e)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]()))):void this.next(t)},previousPage:function(t){var e,i,s;return this.active?void(this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,s=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return 0<(e=P(this)).offset().top-i+s}),this.focus(t,e)):this.focus(t,this.activeMenu.find(this.options.items).first()))):void this.next(t)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||P(t.target).closest(".ui-menu-item");var e={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,e)},_filterMenuItems:function(t){var e=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),i=RegExp("^"+e,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return i.test(P.trim(P(this).text()))})}}),P.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,o="input"===t;this.isMultiLine=!!e||!o&&this.element.prop("isContentEditable"),this.valueMethod=this.element[e||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=P.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void((!this.isMultiLine||this.menu.element.is(":visible"))&&t.preventDefault());if(!s){var e=P.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){return n?(n=!1,void t.preventDefault()):void this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(t),void this._change(t))}}),this._initSource(),this.menu=P("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];P(t.target).closest(".ui-menu-item").length||this._delay(function(){var e=this;this.document.one("mousedown",function(t){t.target===e.element[0]||t.target===i||P.contains(i,t.target)||e.close()})})},menufocus:function(t,e){var i,s;return this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type))?(this.menu.blur(),void this.document.one("mousemove",function(){P(t.target).trigger(t.originalEvent)})):(s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),void((i=e.item.attr("aria-label")||s.value)&&P.trim(i).length&&(this.liveRegion.children().hide(),P("<div>").text(i).appendTo(this.liveRegion))))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=P("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?P(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var i,s,n=this;P.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(P.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=P.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;(!t||t&&!e&&!i)&&(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):!1!==this._trigger("search",e)?this._search(t):void 0},_search:function(t){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return P.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:P.map(t,function(t){return"string"==typeof t?{label:t,value:t}:P.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var e=this.menu.element.empty();this._renderMenu(e,t),this.isNewMenu=!0,this.menu.refresh(),e.show(),this._resizeMenu(),e.position(P.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(i,t){var s=this;P.each(t,function(t,e){s._renderItemData(i,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(t,e){return P("<li>").text(e.label).appendTo(t)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e):void this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())}}),P.extend(P.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=RegExp(P.ui.autocomplete.escapeRegex(e),"i");return P.grep(t,function(t){return i.test(t.label||t.value||t)})}}),P.widget("ui.autocomplete",P.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1<t?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var e;this._superApply(arguments),this.options.disabled||this.cancelSearch||(e=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),P("<div>").text(e).appendTo(this.liveRegion))}}),P.ui.autocomplete;var m,g,v,_="ui-button ui-widget ui-state-default ui-corner-all",b="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",y=function(){var t=P(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},w=function(t){var e=t.name,i=t.form,s=P([]);return e&&(e=e.replace(/'/g,"\\'"),s=i?P(i).find("[name='"+e+"'][type=radio]"):P("[name='"+e+"'][type=radio]",t.ownerDocument).filter(function(){return!this.form})),s};P.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,y),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var e=this,i=this.options,t="checkbox"===this.type||"radio"===this.type,s=t?"":"ui-state-active";null===i.label&&(i.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(_).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){i.disabled||this===m&&P(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){i.disabled||P(this).removeClass(s)}).bind("click"+this.eventNamespace,function(t){i.disabled&&(t.preventDefault(),t.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),t&&this.element.bind("change"+this.eventNamespace,function(){e.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return!i.disabled&&void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(i.disabled)return!1;P(this).addClass("ui-state-active"),e.buttonElement.attr("aria-pressed","true");var t=e.element[0];w(t).not(t).map(function(){return P(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return!i.disabled&&(P(this).addClass("ui-state-active"),m=this,void e.document.one("mouseup",function(){m=null}))}).bind("mouseup"+this.eventNamespace,function(){return!i.disabled&&void P(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(t){return!i.disabled&&void((t.keyCode===P.ui.keyCode.SPACE||t.keyCode===P.ui.keyCode.ENTER)&&P(this).addClass("ui-state-active"))}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){P(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===P.ui.keyCode.SPACE&&P(this).click()})),this._setOption("disabled",i.disabled),this._resetButton()},_determineButtonType:function(){var t,e,i;this.type=this.element.is("[type=checkbox]")?"checkbox":this.element.is("[type=radio]")?"radio":this.element.is("input")?"input":"button","checkbox"===this.type||"radio"===this.type?(t=this.element.parents().last(),e="label[for='"+this.element.attr("id")+"']",this.buttonElement=t.find(e),this.buttonElement.length||(t=t.length?t.siblings():this.element.siblings(),this.buttonElement=t.filter(e),this.buttonElement.length||(this.buttonElement=t.find(e))),this.element.addClass("ui-helper-hidden-accessible"),(i=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",i)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(_+" ui-state-active "+b).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(t,e){return this._super(t,e),"disabled"===t?(this.widget().toggleClass("ui-state-disabled",!!e),this.element.prop("disabled",!!e),void(e&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")))):void this._resetButton()},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),"radio"===this.type?w(this.element[0]).each(function(){P(this).is(":checked")?P(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):P(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"!==this.type){var t=this.buttonElement.removeClass(b),e=P("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),i=this.options.icons,s=i.primary&&i.secondary,n=[];i.primary||i.secondary?(this.options.text&&n.push("ui-button-text-icon"+(s?"s":i.primary?"-primary":"-secondary")),i.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+i.primary+"'></span>"),i.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+i.secondary+"'></span>"),this.options.text||(n.push(s?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",P.trim(e)))):n.push("ui-button-text-only"),t.addClass(n.join(" "))}else this.options.label&&this.element.val(this.options.label)}}),P.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(t,e){"disabled"===t&&this.buttons.button("option",t,e),this._super(t,e)},refresh:function(){var t="rtl"===this.element.css("direction"),e=this.element.find(this.options.items),i=e.filter(":ui-button");e.not(":ui-button").button(),i.button("refresh"),this.buttons=e.map(function(){return P(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return P(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}}),P.ui.button,P.extend(P.ui,{datepicker:{version:"1.11.4"}}),P.extend(t.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return u(this._defaults,t||{}),this},_attachDatepicker:function(t,e){var i,s,n;s="div"===(i=t.nodeName.toLowerCase())||"span"===i,t.id||(this.uuid+=1,t.id="dp"+this.uuid),(n=this._newInst(P(t),s)).settings=P.extend({},e||{}),"input"===i?this._connectDatepicker(t,n):s&&this._inlineDatepicker(t,n)},_newInst:function(t,e){return{id:t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1"),input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:e,dpDiv:e?i(P("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,e){var i=P(t);e.append=P([]),e.trigger=P([]),i.hasClass(this.markerClassName)||(this._attachments(i,e),i.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(e),P.data(t,"datepicker",e),e.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,e){var i,s,n,o=this._get(e,"appendText"),a=this._get(e,"isRTL");e.append&&e.append.remove(),o&&(e.append=P("<span class='"+this._appendClass+"'>"+o+"</span>"),t[a?"before":"after"](e.append)),t.unbind("focus",this._showDatepicker),e.trigger&&e.trigger.remove(),("focus"===(i=this._get(e,"showOn"))||"both"===i)&&t.focus(this._showDatepicker),("button"===i||"both"===i)&&(s=this._get(e,"buttonText"),n=this._get(e,"buttonImage"),e.trigger=P(this._get(e,"buttonImageOnly")?P("<img/>").addClass(this._triggerClass).attr({src:n,alt:s,title:s}):P("<button type='button'></button>").addClass(this._triggerClass).html(n?P("<img/>").attr({src:n,alt:s,title:s}):s)),t[a?"before":"after"](e.trigger),e.trigger.click(function(){return P.datepicker._datepickerShowing&&P.datepicker._lastInput===t[0]?P.datepicker._hideDatepicker():(P.datepicker._datepickerShowing&&P.datepicker._lastInput!==t[0]&&P.datepicker._hideDatepicker(),P.datepicker._showDatepicker(t[0])),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(n=s=i=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(t,e){var i=P(t);i.hasClass(this.markerClassName)||(i.addClass(this.markerClassName).append(e.dpDiv),P.data(t,"datepicker",e),this._setDate(e,this._getDefaultDate(e),!0),this._updateDatepicker(e),this._updateAlternate(e),e.settings.disabled&&this._disableDatepicker(t),e.dpDiv.css("display","block"))},_dialogDatepicker:function(t,e,i,s,n){var o,a,r,h,l,c=this._dialogInst;return c||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=P("<input type='text' id='"+o+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),P("body").append(this._dialogInput),(c=this._dialogInst=this._newInst(this._dialogInput,!1)).settings={},P.data(this._dialogInput[0],"datepicker",c)),u(c.settings,s||{}),e=e&&e.constructor===Date?this._formatDate(c,e):e,this._dialogInput.val(e),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(a=document.documentElement.clientWidth,r=document.documentElement.clientHeight,h=document.documentElement.scrollLeft||document.body.scrollLeft,l=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[a/2-100+h,r/2-150+l]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),P.blockUI&&P.blockUI(this.dpDiv),P.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var e,i=P(t),s=P.data(t,"datepicker");i.hasClass(this.markerClassName)&&(e=t.nodeName.toLowerCase(),P.removeData(t,"datepicker"),"input"===e?(s.append.remove(),s.trigger.remove(),i.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===e||"span"===e)&&i.removeClass(this.markerClassName).empty(),g===s&&(g=null))},_enableDatepicker:function(e){var t,i,s=P(e),n=P.data(e,"datepicker");s.hasClass(this.markerClassName)&&("input"===(t=e.nodeName.toLowerCase())?(e.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===t||"span"===t)&&((i=s.children("."+this._inlineClass)).children().removeClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=P.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var t,i,s=P(e),n=P.data(e,"datepicker");s.hasClass(this.markerClassName)&&("input"===(t=e.nodeName.toLowerCase())?(e.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===t||"span"===t)&&((i=s.children("."+this._inlineClass)).children().addClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=P.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(t){try{return P.data(t,"datepicker")}catch(t){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,e,i){var s,n,o,a,r=this._getInst(t);return 2===arguments.length&&"string"==typeof e?"defaults"===e?P.extend({},P.datepicker._defaults):r?"all"===e?P.extend({},r.settings):this._get(r,e):null:(s=e||{},"string"==typeof e&&((s={})[e]=i),void(r&&(this._curInst===r&&this._hideDatepicker(),n=this._getDateDatepicker(t,!0),o=this._getMinMaxDate(r,"min"),a=this._getMinMaxDate(r,"max"),u(r.settings,s),null!==o&&void 0!==s.dateFormat&&void 0===s.minDate&&(r.settings.minDate=this._formatDate(r,o)),null!==a&&void 0!==s.dateFormat&&void 0===s.maxDate&&(r.settings.maxDate=this._formatDate(r,a)),"disabled"in s&&(s.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(P(t),r),this._autoSize(r),this._setDate(r,n),this._updateAlternate(r),this._updateDatepicker(r))))},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(t){var e,i,s,n=P.datepicker._getInst(t.target),o=!0,a=n.dpDiv.is(".ui-datepicker-rtl");if(n._keyEvent=!0,P.datepicker._datepickerShowing)switch(t.keyCode){case 9:P.datepicker._hideDatepicker(),o=!1;break;case 13:return(s=P("td."+P.datepicker._dayOverClass+":not(."+P.datepicker._currentClass+")",n.dpDiv))[0]&&P.datepicker._selectDay(t.target,n.selectedMonth,n.selectedYear,s[0]),(e=P.datepicker._get(n,"onSelect"))?(i=P.datepicker._formatDate(n),e.apply(n.input?n.input[0]:null,[i,n])):P.datepicker._hideDatepicker(),!1;case 27:P.datepicker._hideDatepicker();break;case 33:P.datepicker._adjustDate(t.target,t.ctrlKey?-P.datepicker._get(n,"stepBigMonths"):-P.datepicker._get(n,"stepMonths"),"M");break;case 34:P.datepicker._adjustDate(t.target,t.ctrlKey?+P.datepicker._get(n,"stepBigMonths"):+P.datepicker._get(n,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&P.datepicker._clearDate(t.target),o=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&P.datepicker._gotoToday(t.target),o=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&P.datepicker._adjustDate(t.target,a?1:-1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&P.datepicker._adjustDate(t.target,t.ctrlKey?-P.datepicker._get(n,"stepBigMonths"):-P.datepicker._get(n,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&P.datepicker._adjustDate(t.target,-7,"D"),o=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&P.datepicker._adjustDate(t.target,a?-1:1,"D"),o=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&P.datepicker._adjustDate(t.target,t.ctrlKey?+P.datepicker._get(n,"stepBigMonths"):+P.datepicker._get(n,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&P.datepicker._adjustDate(t.target,7,"D"),o=t.ctrlKey||t.metaKey;break;default:o=!1}else 36===t.keyCode&&t.ctrlKey?P.datepicker._showDatepicker(this):o=!1;o&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var e,i,s=P.datepicker._getInst(t.target);return P.datepicker._get(s,"constrainInput")?(e=P.datepicker._possibleChars(P.datepicker._get(s,"dateFormat")),i=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||i<" "||!e||-1<e.indexOf(i)):void 0},_doKeyUp:function(t){var e=P.datepicker._getInst(t.target);if(e.input.val()!==e.lastVal)try{P.datepicker.parseDate(P.datepicker._get(e,"dateFormat"),e.input?e.input.val():null,P.datepicker._getFormatConfig(e))&&(P.datepicker._setDateFromField(e),P.datepicker._updateAlternate(e),P.datepicker._updateDatepicker(e))}catch(t){}return!0},_showDatepicker:function(t){var e,i,s,n,o,a,r;("input"!==(t=t.target||t).nodeName.toLowerCase()&&(t=P("input",t.parentNode)[0]),P.datepicker._isDisabledDatepicker(t)||P.datepicker._lastInput===t)||(e=P.datepicker._getInst(t),P.datepicker._curInst&&P.datepicker._curInst!==e&&(P.datepicker._curInst.dpDiv.stop(!0,!0),e&&P.datepicker._datepickerShowing&&P.datepicker._hideDatepicker(P.datepicker._curInst.input[0])),!1!==(s=(i=P.datepicker._get(e,"beforeShow"))?i.apply(t,[t,e]):{})&&(u(e.settings,s),e.lastVal=null,P.datepicker._lastInput=t,P.datepicker._setDateFromField(e),P.datepicker._inDialog&&(t.value=""),P.datepicker._pos||(P.datepicker._pos=P.datepicker._findPos(t),P.datepicker._pos[1]+=t.offsetHeight),n=!1,P(t).parents().each(function(){return!(n|="fixed"===P(this).css("position"))}),o={left:P.datepicker._pos[0],top:P.datepicker._pos[1]},P.datepicker._pos=null,e.dpDiv.empty(),e.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),P.datepicker._updateDatepicker(e),o=P.datepicker._checkOffset(e,o,n),e.dpDiv.css({position:P.datepicker._inDialog&&P.blockUI?"static":n?"fixed":"absolute",display:"none",left:o.left+"px",top:o.top+"px"}),e.inline||(a=P.datepicker._get(e,"showAnim"),r=P.datepicker._get(e,"duration"),e.dpDiv.css("z-index",function(t){for(var e,i;t.length&&t[0]!==document;){if(("absolute"===(e=t.css("position"))||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}(P(t))+1),P.datepicker._datepickerShowing=!0,P.effects&&P.effects.effect[a]?e.dpDiv.show(a,P.datepicker._get(e,"showOptions"),r):e.dpDiv[a||"show"](a?r:null),P.datepicker._shouldFocusInput(e)&&e.input.focus(),P.datepicker._curInst=e)))},_updateDatepicker:function(t){this.maxRows=4,(g=t).dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var e,i=this._getNumberOfMonths(t),s=i[1],n=t.dpDiv.find("."+this._dayOverClass+" a");0<n.length&&o.apply(n.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),1<s&&t.dpDiv.addClass("ui-datepicker-multi-"+s).css("width",17*s+"em"),t.dpDiv[(1!==i[0]||1!==i[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===P.datepicker._curInst&&P.datepicker._datepickerShowing&&P.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(e=t.yearshtml,setTimeout(function(){e===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),e=t.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(t,e,i){var s=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),o=t.input?t.input.outerWidth():0,a=t.input?t.input.outerHeight():0,r=document.documentElement.clientWidth+(i?0:P(document).scrollLeft()),h=document.documentElement.clientHeight+(i?0:P(document).scrollTop());return e.left-=this._get(t,"isRTL")?s-o:0,e.left-=i&&e.left===t.input.offset().left?P(document).scrollLeft():0,e.top-=i&&e.top===t.input.offset().top+a?P(document).scrollTop():0,e.left-=Math.min(e.left,e.left+s>r&&s<r?Math.abs(e.left+s-r):0),e.top-=Math.min(e.top,e.top+n>h&&n<h?Math.abs(n+a):0),e},_findPos:function(t){for(var e,i=this._getInst(t),s=this._get(i,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||P.expr.filters.hidden(t));)t=t[s?"previousSibling":"nextSibling"];return[(e=P(t).offset()).left,e.top]},_hideDatepicker:function(t){var e,i,s,n,o=this._curInst;!o||t&&o!==P.data(t,"datepicker")||this._datepickerShowing&&(e=this._get(o,"showAnim"),i=this._get(o,"duration"),s=function(){P.datepicker._tidyDialog(o)},P.effects&&(P.effects.effect[e]||P.effects[e])?o.dpDiv.hide(e,P.datepicker._get(o,"showOptions"),i,s):o.dpDiv["slideDown"===e?"slideUp":"fadeIn"===e?"fadeOut":"hide"](e?i:null,s),e||s(),this._datepickerShowing=!1,(n=this._get(o,"onClose"))&&n.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),P.blockUI&&(P.unblockUI(),P("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(P.datepicker._curInst){var e=P(t.target),i=P.datepicker._getInst(e[0]);(e[0].id!==P.datepicker._mainDivId&&0===e.parents("#"+P.datepicker._mainDivId).length&&!e.hasClass(P.datepicker.markerClassName)&&!e.closest("."+P.datepicker._triggerClass).length&&P.datepicker._datepickerShowing&&(!P.datepicker._inDialog||!P.blockUI)||e.hasClass(P.datepicker.markerClassName)&&P.datepicker._curInst!==i)&&P.datepicker._hideDatepicker()}},_adjustDate:function(t,e,i){var s=P(t),n=this._getInst(s[0]);this._isDisabledDatepicker(s[0])||(this._adjustInstDate(n,e+("M"===i?this._get(n,"showCurrentAtPos"):0),i),this._updateDatepicker(n))},_gotoToday:function(t){var e,i=P(t),s=this._getInst(i[0]);this._get(s,"gotoCurrent")&&s.currentDay?(s.selectedDay=s.currentDay,s.drawMonth=s.selectedMonth=s.currentMonth,s.drawYear=s.selectedYear=s.currentYear):(e=new Date,s.selectedDay=e.getDate(),s.drawMonth=s.selectedMonth=e.getMonth(),s.drawYear=s.selectedYear=e.getFullYear()),this._notifyChange(s),this._adjustDate(i)},_selectMonthYear:function(t,e,i){var s=P(t),n=this._getInst(s[0]);n["selected"+("M"===i?"Month":"Year")]=n["draw"+("M"===i?"Month":"Year")]=parseInt(e.options[e.selectedIndex].value,10),this._notifyChange(n),this._adjustDate(s)},_selectDay:function(t,e,i,s){var n,o=P(t);P(s).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0])||((n=this._getInst(o[0])).selectedDay=n.currentDay=P("a",s).html(),n.selectedMonth=n.currentMonth=e,n.selectedYear=n.currentYear=i,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){var e=P(t);this._selectDate(e,"")},_selectDate:function(t,e){var i,s=P(t),n=this._getInst(s[0]);e=null!=e?e:this._formatDate(n),n.input&&n.input.val(e),this._updateAlternate(n),(i=this._get(n,"onSelect"))?i.apply(n.input?n.input[0]:null,[e,n]):n.input&&n.input.trigger("change"),n.inline?this._updateDatepicker(n):(this._hideDatepicker(),this._lastInput=n.input[0],"object"!=typeof n.input[0]&&n.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var e,i,s,n=this._get(t,"altField");n&&(e=this._get(t,"altFormat")||this._get(t,"dateFormat"),i=this._getDate(t),s=this.formatDate(e,i,this._getFormatConfig(t)),P(n).each(function(){P(this).val(s)}))},noWeekends:function(t){var e=t.getDay();return[0<e&&e<6,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(i,o,t){if(null==i||null==o)throw"Invalid arguments";if(""===(o="object"==typeof o?""+o:o+""))return null;var s,e,n,a,r=0,h=(t?t.shortYearCutoff:null)||this._defaults.shortYearCutoff,l="string"!=typeof h?h:(new Date).getFullYear()%100+parseInt(h,10),c=(t?t.dayNamesShort:null)||this._defaults.dayNamesShort,u=(t?t.dayNames:null)||this._defaults.dayNames,d=(t?t.monthNamesShort:null)||this._defaults.monthNamesShort,p=(t?t.monthNames:null)||this._defaults.monthNames,f=-1,m=-1,g=-1,v=-1,_=!1,b=function(t){var e=i.length>s+1&&i.charAt(s+1)===t;return e&&s++,e},y=function(t){var e=b(t),i="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,s=RegExp("^\\d{"+("y"===t?i:1)+","+i+"}"),n=o.substring(r).match(s);if(!n)throw"Missing number at position "+r;return r+=n[0].length,parseInt(n[0],10)},w=function(t,e,i){var s=-1,n=P.map(b(t)?i:e,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(P.each(n,function(t,e){var i=e[1];return o.substr(r,i.length).toLowerCase()===i.toLowerCase()?(s=e[0],r+=i.length,!1):void 0}),-1!==s)return s+1;throw"Unknown name at position "+r},x=function(){if(o.charAt(r)!==i.charAt(s))throw"Unexpected literal at position "+r;r++};for(s=0;i.length>s;s++)if(_)"'"!==i.charAt(s)||b("'")?x():_=!1;else switch(i.charAt(s)){case"d":g=y("d");break;case"D":w("D",c,u);break;case"o":v=y("o");break;case"m":m=y("m");break;case"M":m=w("M",d,p);break;case"y":f=y("y");break;case"@":f=(a=new Date(y("@"))).getFullYear(),m=a.getMonth()+1,g=a.getDate();break;case"!":f=(a=new Date((y("!")-this._ticksTo1970)/1e4)).getFullYear(),m=a.getMonth()+1,g=a.getDate();break;case"'":b("'")?x():_=!0;break;default:x()}if(o.length>r&&(n=o.substr(r),!/^\s+/.test(n)))throw"Extra/unparsed characters found in date: "+n;if(-1===f?f=(new Date).getFullYear():f<100&&(f+=(new Date).getFullYear()-(new Date).getFullYear()%100+(f<=l?0:-100)),-1<v)for(m=1,g=v;!(g<=(e=this._getDaysInMonth(f,m-1)));)m++,g-=e;if((a=this._daylightSavingAdjust(new Date(f,m-1,g))).getFullYear()!==f||a.getMonth()+1!==m||a.getDate()!==g)throw"Invalid date";return a},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:864e9*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(i,t,e){if(!t)return"";var s,n=(e?e.dayNamesShort:null)||this._defaults.dayNamesShort,o=(e?e.dayNames:null)||this._defaults.dayNames,a=(e?e.monthNamesShort:null)||this._defaults.monthNamesShort,r=(e?e.monthNames:null)||this._defaults.monthNames,h=function(t){var e=i.length>s+1&&i.charAt(s+1)===t;return e&&s++,e},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(t)for(s=0;i.length>s;s++)if(d)"'"!==i.charAt(s)||h("'")?u+=i.charAt(s):d=!1;else switch(i.charAt(s)){case"d":u+=l("d",t.getDate(),2);break;case"D":u+=c("D",t.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",t.getMonth()+1,2);break;case"M":u+=c("M",t.getMonth(),a,r);break;case"y":u+=h("y")?t.getFullYear():(t.getYear()%100<10?"0":"")+t.getYear()%100;break;case"@":u+=t.getTime();break;case"!":u+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=i.charAt(s)}return u},_possibleChars:function(i){var s,t="",e=!1,n=function(t){var e=i.length>s+1&&i.charAt(s+1)===t;return e&&s++,e};for(s=0;i.length>s;s++)if(e)"'"!==i.charAt(s)||n("'")?t+=i.charAt(s):e=!1;else switch(i.charAt(s)){case"d":case"m":case"y":case"@":t+="0123456789";break;case"D":case"M":return null;case"'":n("'")?t+="'":e=!0;break;default:t+=i.charAt(s)}return t},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(t){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(r,t,e){var i,s,n=null==t||""===t?e:"string"==typeof t?function(t){try{return P.datepicker.parseDate(P.datepicker._get(r,"dateFormat"),t,P.datepicker._getFormatConfig(r))}catch(t){}for(var e=(t.toLowerCase().match(/^c/)?P.datepicker._getDate(r):null)||new Date,i=e.getFullYear(),s=e.getMonth(),n=e.getDate(),o=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,a=o.exec(t);a;){switch(a[2]||"d"){case"d":case"D":n+=parseInt(a[1],10);break;case"w":case"W":n+=7*parseInt(a[1],10);break;case"m":case"M":s+=parseInt(a[1],10),n=Math.min(n,P.datepicker._getDaysInMonth(i,s));break;case"y":case"Y":i+=parseInt(a[1],10),n=Math.min(n,P.datepicker._getDaysInMonth(i,s))}a=o.exec(t)}return new Date(i,s,n)}(t):"number"==typeof t?isNaN(t)?e:(i=t,(s=new Date).setDate(s.getDate()+i),s):new Date(t.getTime());return(n=n&&"Invalid Date"==""+n?e:n)&&(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setMilliseconds(0)),this._daylightSavingAdjust(n)},_daylightSavingAdjust:function(t){return t?(t.setHours(12<t.getHours()?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){return!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay))},_attachHandlers:function(t){var e=this._get(t,"stepMonths"),i="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){P.datepicker._adjustDate(i,-e,"M")},next:function(){P.datepicker._adjustDate(i,+e,"M")},hide:function(){P.datepicker._hideDatepicker()},today:function(){P.datepicker._gotoToday(i)},selectDay:function(){return P.datepicker._selectDay(i,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return P.datepicker._selectMonthYear(i,this,"M"),!1},selectYear:function(){return P.datepicker._selectMonthYear(i,this,"Y"),!1}};P(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,m,g,v,_,b,y,w,x,k,C,D,I,T,P,M,S,z,H,A,N,E,W,O,F,R,L=new Date,Y=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),B=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),X=this._get(t,"stepMonths"),$=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,tt=t.drawYear;if(Z<0&&(Z+=12,tt--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&e<Q?Q:e;this._daylightSavingAdjust(new Date(tt,Z,1))>e;)--Z<0&&(Z=11,tt--);for(t.drawMonth=Z,t.drawYear=tt,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(tt,Z-X,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,tt,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(tt,Z+X,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,tt,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(B?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:Y,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(B?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(B?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),m=this._get(t,"monthNamesShort"),g=this._get(t,"beforeShowDay"),v=this._get(t,"showOtherMonths"),_=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",x=0;U[0]>x;x++){for(k="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(tt,Z,t.selectedDay)),I=" ui-corner-all",T="",$){if(T+="<div class='ui-datepicker-group",1<U[1])switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(B?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(B?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===x?B?o:s:"")+(/all|right/.test(I)&&0===x?B?s:o:"")+this._generateMonthYearHeader(t,Z,tt,Q,J,0<x||0<C,f,m)+"</div><table class='ui-datepicker-calendar'><thead><tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;w<7;w++)P+="<th scope='col'"+(5<=(w+c+6)%7?" class='ui-datepicker-week-end'":"")+"><span title='"+d[M=(w+c)%7]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(tt,Z),tt===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),z=(this._getFirstDayOfMonth(tt,Z)-c+7)%7,H=Math.ceil((z+S)/7),A=$&&this.maxRows>H?this.maxRows:H,this.maxRows=A,N=this._daylightSavingAdjust(new Date(tt,Z,1-z)),E=0;E<A;E++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(N)+"</td>":"",w=0;w<7;w++)O=g?g.apply(t.input?t.input[0]:null,[N]):[!0,""],R=(F=N.getMonth()!==Z)&&!_||!O[0]||Q&&N<Q||J&&J<N,W+="<td class='"+(5<=(w+c+6)%7?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(N.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===N.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(R?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!v?"":" "+O[1]+(N.getTime()===G.getTime()?" "+this._currentClass:"")+(N.getTime()===Y.getTime()?" ui-datepicker-today":""))+"'"+(F&&!v||!O[2]?"":" title='"+O[2].replace(/'/g,"&#39;")+"'")+(R?"":" data-handler='selectDay' data-event='click' data-month='"+N.getMonth()+"' data-year='"+N.getFullYear()+"'")+">"+(F&&!v?"&#xa0;":R?"<span class='ui-state-default'>"+N.getDate()+"</span>":"<a class='ui-state-default"+(N.getTime()===Y.getTime()?" ui-state-highlight":"")+(N.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+N.getDate()+"</a>")+"</td>",N.setDate(N.getDate()+1),N=this._daylightSavingAdjust(N);T+=W+"</tr>"}11<++Z&&(Z=0,tt++),k+=T+="</tbody></table>"+($?"</div>"+(0<U[0]&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):"")}y+=k}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,m,g=this._get(t,"changeMonth"),v=this._get(t,"changeYear"),_=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!g)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;c<12;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(_||(b+=y+(!o&&g&&v?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),f=(p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e})(u[0]),m=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=n?Math.min(m,n.getFullYear()):m,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";f<=m;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),_&&(b+=(!o&&g&&v?"":"&#xa0;")+y),b+"</div>"},_adjustInstDate:function(t,e,i){var s=t.drawYear+("Y"===i?e:0),n=t.drawMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&e<i?i:e;return s&&s<n?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(e<0?e:n[0]*n[1]),1));return e<0&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),P.fn.datepicker=function(t){if(!this.length)return this;P.datepicker.initialized||(P(document).mousedown(P.datepicker._checkExternalClick),P.datepicker.initialized=!0),0===P("#"+P.datepicker._mainDivId).length&&P("body").append(P.datepicker.dpDiv);var e=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?P.datepicker["_"+t+"Datepicker"].apply(P.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?P.datepicker["_"+t+"Datepicker"].apply(P.datepicker,[this].concat(e)):P.datepicker._attachDatepicker(this,t)}):P.datepicker["_"+t+"Datepicker"].apply(P.datepicker,[this[0]].concat(e))},P.datepicker=new t,P.datepicker.initialized=!1,P.datepicker.uuid=(new Date).getTime(),P.datepicker.version="1.11.4",P.datepicker,P.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var e=P(this).css(t).offset().top;e<0&&P(this).css("top",t.top-e)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&P.fn.draggable&&this._makeDraggable(),this.options.resizable&&P.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?P(t):this.document.find(t||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),(t=e.parent.children().eq(e.index)).length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog},disable:P.noop,enable:P.noop,close:function(t){var e,i=this;if(this._isOpen&&!1!==this._trigger("beforeClose",t)){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{(e=this.document[0].activeElement)&&"body"!==e.nodeName.toLowerCase()&&P(e).blur()}catch(t){}this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,e){var i=!1,s=this.uiDialog.siblings(".ui-front:visible").map(function(){return+P(this).css("z-index")}).get(),n=Math.max.apply(null,s);return n>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",n+1),i=!0),i&&!e&&this._trigger("focus",t),i},open:function(){var t=this;return this._isOpen?void(this._moveToTop()&&this._focusTabbable()):(this._isOpen=!0,this.opener=P(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),void this._trigger("open"))},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).focus()},_keepFocus:function(t){function e(){var t=this.document[0].activeElement;this.uiDialog[0]===t||P.contains(this.uiDialog[0],t)||this._focusTabbable()}t.preventDefault(),e.call(this),this._delay(e)},_createWrapper:function(){this.uiDialog=P("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===P.ui.keyCode.ESCAPE)return t.preventDefault(),void this.close(t);if(t.keyCode===P.ui.keyCode.TAB&&!t.isDefaultPrevented()){var e=this.uiDialog.find(":tabbable"),i=e.filter(":first"),s=e.filter(":last");t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==i[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){s.focus()}),t.preventDefault()):(this._delay(function(){i.focus()}),t.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=P("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){P(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=P("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),t=P("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(t){this.options.title||t.html("&#160;"),t.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=P("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=P("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var n=this,t=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),P.isEmptyObject(t)||P.isArray(t)&&!t.length?void this.uiDialog.removeClass("ui-dialog-buttons"):(P.each(t,function(t,e){var i,s;e=P.isFunction(e)?{click:e,text:t}:e,e=P.extend({type:"button"},e),i=e.click,e.click=function(){i.apply(n.element[0],arguments)},s={icons:e.icons,text:e.showText},delete e.icons,delete e.showText,P("<button></button>",e).button(s).appendTo(n.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),void this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){function n(t){return{position:t.position,offset:t.offset}}var o=this,a=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(t,e){P(this).addClass("ui-dialog-dragging"),o._blockFrames(),o._trigger("dragStart",t,n(e))},drag:function(t,e){o._trigger("drag",t,n(e))},stop:function(t,e){var i=e.offset.left-o.document.scrollLeft(),s=e.offset.top-o.document.scrollTop();a.position={my:"left top",at:"left"+(0<=i?"+":"")+i+" top"+(0<=s?"+":"")+s,of:o.window},P(this).removeClass("ui-dialog-dragging"),o._unblockFrames(),o._trigger("dragStop",t,n(e))}})},_makeResizable:function(){function o(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var a=this,r=this.options,t=r.resizable,e=this.uiDialog.css("position"),i="string"==typeof t?t:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:r.maxWidth,maxHeight:r.maxHeight,minWidth:r.minWidth,minHeight:this._minHeight(),handles:i,start:function(t,e){P(this).addClass("ui-dialog-resizing"),a._blockFrames(),a._trigger("resizeStart",t,o(e))},resize:function(t,e){a._trigger("resize",t,o(e))},stop:function(t,e){var i=a.uiDialog.offset(),s=i.left-a.document.scrollLeft(),n=i.top-a.document.scrollTop();r.height=a.uiDialog.height(),r.width=a.uiDialog.width(),r.position={my:"left top",at:"left"+(0<=s?"+":"")+s+" top"+(0<=n?"+":"")+n,of:a.window},P(this).removeClass("ui-dialog-resizing"),a._unblockFrames(),a._trigger("resizeStop",t,o(e))}}).css("position",e)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=P(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),e=P.inArray(this,t);-1!==e&&t.splice(e,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(t){var i=this,s=!1,n={};P.each(t,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(t,e){var i,s,n=this.uiDialog;"dialogClass"===t&&n.removeClass(this.options.dialogClass).addClass(e),"disabled"!==t&&(this._super(t,e),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:""+e}),"draggable"===t&&((i=n.is(":data(ui-draggable)"))&&!e&&n.draggable("destroy"),!i&&e&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&((s=n.is(":data(ui-resizable)"))&&!e&&n.resizable("destroy"),s&&"string"==typeof e&&n.resizable("option","handles",e),s||!1===e||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=P(this);return P("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!P(t.target).closest(".ui-dialog").length||!!P(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=P("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}}),P.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=P("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),void this._refreshValue())},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=!1===t,"number"!=typeof t&&(t=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!e).attr("aria-disabled",e),this._super(t,e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,e=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(e.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=P("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),P.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var t=this;this.label=P("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=P("<span>",{class:"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),P("<span>",{class:"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=P("<span>",{class:"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){t.menuItems||t._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var s=this;this.menu=P("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=P("<div>",{class:"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(t,e){t.preventDefault(),s._setSelection(),s._select(e.item.data("ui-selectmenu-item"),t)},focus:function(t,e){var i=e.item.data("ui-selectmenu-item");null!=s.focusIndex&&i.index!==s.focusIndex&&(s._trigger("focus",t,{item:i}),s.isOpen||s._select(i,t)),s.focusIndex=i.index,s.button.attr("aria-activedescendant",s.menuItems.eq(i.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var t,e=this.element.find("option");e.length&&(this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t))},_position:function(){this.menuWrap.position(P.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(i,t){var s=this,n="";P.each(t,function(t,e){e.optgroup!==n&&(P("<li>",{class:"ui-selectmenu-optgroup ui-menu-divider"+(e.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:e.optgroup}).appendTo(i),n=e.optgroup),s._renderItemData(i,e)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(t,e){var i=P("<li>");return e.disabled&&i.addClass("ui-state-disabled"),this._setText(i,e.label),i.appendTo(t)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex):(i=this.menuItems.eq(this.element[0].selectedIndex),n+=":not(.ui-state-disabled)"),(s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0)).length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?((t=window.getSelection()).removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(P(t.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(t))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection()).rangeCount&&(this.range=t.getRangeAt(0)):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(t){var e=!0;switch(t.keyCode){case P.ui.keyCode.TAB:case P.ui.keyCode.ESCAPE:this.close(t),e=!1;break;case P.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case P.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case P.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case P.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case P.ui.keyCode.LEFT:this._move("prev",t);break;case P.ui.keyCode.RIGHT:this._move("next",t);break;case P.ui.keyCode.HOME:case P.ui.keyCode.PAGE_UP:this._move("first",t);break;case P.ui.keyCode.END:case P.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),e=!1}e&&t.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex);e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this._setText(this.buttonText,t.label),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){"icons"===t&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(e.button),this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"disabled"===t&&(this.menuInstance.option("disabled",e),this.button.toggleClass("ui-state-disabled",e).attr("aria-disabled",e),this.element.prop("disabled",e),e?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===t&&this._resizeButton()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?P(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;t||(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(t){var n=[];t.each(function(t,e){var i=P(e),s=i.parent("optgroup");n.push({element:i,index:t,value:i.val(),label:i.text(),optgroup:s.attr("label")||"",disabled:s.prop("disabled")||i.prop("disabled")})}),this.items=n},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),P.widget("ui.slider",P.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,e,i=this.options,s=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),n=[];for(e=i.values&&i.values.length||1,s.length>e&&(s.slice(e).remove(),s=s.slice(0,e)),t=s.length;t<e;t++)n.push("<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>");this.handles=s.add(P(n.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(t){P(this).data("ui-slider-handle-index",t)})},_createRange:function(){var t=this.options,e="";t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:P.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=P("<div></div>").appendTo(this.element),e="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(e+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var e,i,s,n,o,a,r,h=this,l=this.options;return!l.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e),s=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var e=Math.abs(i-h.values(t));(e<s||s===e&&(t===h._lastChangedValue||h.values(t)===l.min))&&(s=e,n=P(this),o=t)}),!1!==this._start(t,o)&&(this._mouseSliding=!0,this._handleIndex=o,n.addClass("ui-state-active").focus(),a=n.offset(),r=!P(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=r?{left:0,top:0}:{left:t.pageX-a.left-n.width()/2,top:t.pageY-a.top-n.height()/2-(parseInt(n.css("borderTopWidth"),10)||0)-(parseInt(n.css("borderBottomWidth"),10)||0)+(parseInt(n.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,i),this._animateOff=!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n;return 1<(i=("horizontal"===this.orientation?(e=this.elementSize.width,t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)))/e)&&(i=1),i<0&&(i=0),"vertical"===this.orientation&&(i=1-i),s=this._valueMax()-this._valueMin(),n=this._valueMin()+i*s,this._trimAlignValue(n)},_start:function(t,e){var i={handle:this.handles[e],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("start",t,i)},_slide:function(t,e,i){var s,n,o;this.options.values&&this.options.values.length?(s=this.values(e?0:1),2===this.options.values.length&&!0===this.options.range&&(0===e&&s<i||1===e&&i<s)&&(i=s),i!==this.values(e)&&((n=this.values())[e]=i,o=this._trigger("slide",t,{handle:this.handles[e],value:i,values:n}),s=this.values(e?0:1),!1!==o&&this.values(e,i))):i!==this.value()&&(!1!==(o=this._trigger("slide",t,{handle:this.handles[e],value:i}))&&this.value(i))},_stop:function(t,e){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("stop",t,i)},_change:function(t,e){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._lastChangedValue=e,this._trigger("change",t,i)}},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),void this._change(null,0)):this._value()},values:function(t,e){var i,s,n;if(1<arguments.length)return this.options.values[t]=this._trimAlignValue(e),this._refreshValue(),void this._change(null,t);if(!arguments.length)return this._values();if(!P.isArray(t))return this.options.values&&this.options.values.length?this._values(t):this.value();for(i=this.options.values,s=t,n=0;i.length>n;n+=1)i[n]=this._trimAlignValue(s[n]),this._change(null,n);this._refreshValue()},_setOption:function(t,e){var i,s=0;switch("range"===t&&!0===this.options.range&&("min"===e?(this.options.value=this._values(0),this.options.values=null):"max"===e&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),P.isArray(this.options.values)&&(s=this.options.values.length),"disabled"===t&&this.element.toggleClass("ui-state-disabled",!!e),this._super(t,e),t){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===e?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),i=0;i<s;i+=1)this._change(null,i);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var t=this.options.value;return this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],this._trimAlignValue(e);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=0<this.options.step?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=0<i?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step;t=Math.floor(+(t-e).toFixed(this._precision())/i)*i+e,this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var e,i,t,s,n,o=this.options.range,a=this.options,r=this,h=!this._animateOff&&a.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(t){i=(r.values(t)-r._valueMin())/(r._valueMax()-r._valueMin())*100,l["horizontal"===r.orientation?"left":"bottom"]=i+"%",P(this).stop(1,1)[h?"animate":"css"](l,a.animate),!0===r.options.range&&("horizontal"===r.orientation?(0===t&&r.range.stop(1,1)[h?"animate":"css"]({left:i+"%"},a.animate),1===t&&r.range[h?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:a.animate})):(0===t&&r.range.stop(1,1)[h?"animate":"css"]({bottom:i+"%"},a.animate),1===t&&r.range[h?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:a.animate}))),e=i}):(t=this.value(),s=this._valueMin(),n=this._valueMax(),i=n!==s?(t-s)/(n-s)*100:0,l["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[h?"animate":"css"](l,a.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({width:i+"%"},a.animate),"max"===o&&"horizontal"===this.orientation&&this.range[h?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:a.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({height:i+"%"},a.animate),"max"===o&&"vertical"===this.orientation&&this.range[h?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:a.animate}))},_handleEvents:{keydown:function(t){var e,i,s,n=P(t.target).data("ui-slider-handle-index");switch(t.keyCode){case P.ui.keyCode.HOME:case P.ui.keyCode.END:case P.ui.keyCode.PAGE_UP:case P.ui.keyCode.PAGE_DOWN:case P.ui.keyCode.UP:case P.ui.keyCode.RIGHT:case P.ui.keyCode.DOWN:case P.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,P(t.target).addClass("ui-state-active"),!1===this._start(t,n)))return}switch(s=this.options.step,e=i=this.options.values&&this.options.values.length?this.values(n):this.value(),t.keyCode){case P.ui.keyCode.HOME:i=this._valueMin();break;case P.ui.keyCode.END:i=this._valueMax();break;case P.ui.keyCode.PAGE_UP:i=this._trimAlignValue(e+(this._valueMax()-this._valueMin())/this.numPages);break;case P.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(e-(this._valueMax()-this._valueMin())/this.numPages);break;case P.ui.keyCode.UP:case P.ui.keyCode.RIGHT:if(e===this._valueMax())return;i=this._trimAlignValue(e+s);break;case P.ui.keyCode.DOWN:case P.ui.keyCode.LEFT:if(e===this._valueMin())return;i=this._trimAlignValue(e-s)}this._slide(t,n,i)},keyup:function(t){var e=P(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,e),this._change(t,e),P(t.target).removeClass("ui-state-active"))}}}),P.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var s={},n=this.element;return P.each(["min","max","step"],function(t,e){var i=n.attr(e);void 0!==i&&i.length&&(s[e]=i)}),s},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?void delete this.cancelBlur:(this._stop(),this._refresh(),void(this.previous!==this.element.val()&&this._trigger("change",t)))},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((0<e?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(t){function e(){this.element[0]===this.document[0].activeElement||(this.element.focus(),this.previous=i,this._delay(function(){this.previous=i}))}var i;i=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),e.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,e.call(this)}),!1!==this._start(t)&&this._repeat(null,P(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){return P(t.currentTarget).hasClass("ui-state-active")?!1!==this._start(t)&&void this._repeat(null,P(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var t=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=t.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*t.height())&&0<t.height()&&t.height(t.height()),this.options.disabled&&this.disable()},_keydown:function(t){var e=this.options,i=P.ui.keyCode;switch(t.keyCode){case i.UP:return this._repeat(null,1,t),!0;case i.DOWN:return this._repeat(null,-1,t),!0;case i.PAGE_UP:return this._repeat(null,e.page,t),!0;case i.PAGE_DOWN:return this._repeat(null,-e.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon "+this.options.icons.down+"'>&#9660;</span></a>"},_start:function(t){return!(!this.spinning&&!1===this._trigger("start",t))&&(this.counter||(this.counter=1),this.spinning=!0)},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&!1===this._trigger("spin",e,{value:i})||(this._value(i),this.counter++)},_increment:function(t){var e=this.options.incremental;return e?P.isFunction(e)?e(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return i=t-(e=null!==s.min?s.min:0),t=e+(i=Math.round(i/s.step)*s.step),t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){if("culture"===t||"numberFormat"===t){var i=this._parse(this.element.val());return this.options[t]=e,void this.element.val(this._format(i))}("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(e.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(e.down)),this._super(t,e),"disabled"===t&&(this.widget().toggleClass("ui-state-disabled",!!e),this.element.prop("disabled",!!e),this.buttons.button(e?"disable":"enable"))},_setOptions:e(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null!==t&&t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(null!==(i=this._parse(t))&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:e(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:e(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:e(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:e(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?void e(this._value).call(this,t):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),P.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:(v=/#.*$/,function(t){var e,i;e=(t=t.cloneNode(!1)).href.replace(v,""),i=location.href.replace(v,"");try{e=decodeURIComponent(e)}catch(t){}try{i=decodeURIComponent(i)}catch(t){}return 1<t.hash.length&&e===i}),_create:function(){var e=this,t=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",t.collapsible),this._processTabs(),t.active=this._initialActive(),P.isArray(t.disabled)&&(t.disabled=P.unique(t.disabled.concat(P.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=!1!==this.options.active&&this.anchors.length?this._findActive(t.active):P(),this._refresh(),this.active.length&&this.load(t.active)},_initialActive:function(){var i=this.options.active,t=this.options.collapsible,s=location.hash.substring(1);return null===i&&(s&&this.tabs.each(function(t,e){return P(e).attr("aria-controls")===s?(i=t,!1):void 0}),null===i&&(i=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===i||-1===i)&&(i=!!this.tabs.length&&0)),!1!==i&&(-1===(i=this.tabs.index(this.tabs.eq(i)))&&(i=!t&&0)),!t&&!1===i&&this.anchors.length&&(i=0),i},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):P()}},_tabKeydown:function(t){var e=P(this.document[0].activeElement).closest("li"),i=this.tabs.index(e),s=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case P.ui.keyCode.RIGHT:case P.ui.keyCode.DOWN:i++;break;case P.ui.keyCode.UP:case P.ui.keyCode.LEFT:s=!1,i--;break;case P.ui.keyCode.END:i=this.anchors.length-1;break;case P.ui.keyCode.HOME:i=0;break;case P.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i);case P.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i!==this.options.active&&i);default:return}t.preventDefault(),clearTimeout(this.activating),i=this._focusNextTab(i,s),t.ctrlKey||t.metaKey||(e.attr("aria-selected","false"),this.tabs.eq(i).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",i)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===P.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){return t.altKey&&t.keyCode===P.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===P.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,e){for(var i=this.tabs.length-1;-1!==P.inArray((i<t&&(t=0),t<0&&(t=i),t),this.options.disabled);)t=e?t+1:t-1;return t},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).focus(),t},_setOption:function(t,e){return"active"===t?void this._activate(e):"disabled"===t?void this._setupDisabled(e):(this._super(t,e),"collapsible"===t&&(this.element.toggleClass("ui-tabs-collapsible",e),e||!1!==this.options.active||this._activate(0)),"event"===t&&this._setupEvents(e),void("heightStyle"===t&&this._setupHeightStyle(e)))},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,e=this.tablist.children(":has(a[href])");t.disabled=P.map(e.filter(".ui-state-disabled"),function(t){return e.index(t)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!P.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=P()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=P()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var h=this,t=this.tabs,e=this.anchors,i=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){P(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){P(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return P("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=P(),this.anchors.each(function(t,e){var i,s,n,o=P(e).uniqueId().attr("id"),a=P(e).closest("li"),r=a.attr("aria-controls");h._isLocal(e)?(n=(i=e.hash).substring(1),s=h.element.find(h._sanitizeSelector(i))):(i="#"+(n=a.attr("aria-controls")||P({}).uniqueId()[0].id),(s=h.element.find(i)).length||(s=h._createPanel(n)).insertAfter(h.panels[t-1]||h.tablist),s.attr("aria-live","polite")),s.length&&(h.panels=h.panels.add(s)),r&&a.data("ui-tabs-aria-controls",r),a.attr({"aria-controls":n,"aria-labelledby":o}),s.attr("aria-labelledby",o)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),t&&(this._off(t.not(this.tabs)),this._off(e.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(t){return P("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){P.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var e,i=0;e=this.tabs[i];i++)!0===t||-1!==P.inArray(i,t)?P(e).addClass("ui-state-disabled").attr("aria-disabled","true"):P(e).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var i={};t&&P.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,e=this.element.parent();"fill"===t?(i=e.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=P(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=P(this).outerHeight(!0)}),this.panels.each(function(){P(this).height(Math.max(0,i-P(this).innerHeight()+P(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,P(this).height("").height())}).height(i))},_eventHandler:function(t){var e=this.options,i=this.active,s=P(t.currentTarget).closest("li"),n=s[0]===i[0],o=n&&e.collapsible,a=o?P():this._getPanelForTab(s),r=i.length?this._getPanelForTab(i):P(),h={oldTab:i,oldPanel:r,newTab:o?P():s,newPanel:a};t.preventDefault(),s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||n&&!e.collapsible||!1===this._trigger("beforeActivate",t,h)||(e.active=!o&&this.tabs.index(s),this.active=n?P():s,this.xhr&&this.xhr.abort(),r.length||a.length||P.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,h))},_toggle:function(t,e){function i(){n.running=!1,n._trigger("activate",t,e)}function s(){e.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&n.options.show?n._show(o,n.options.show,i):(o.show(),i())}var n=this,o=e.newPanel,a=e.oldPanel;this.running=!0,a.length&&this.options.hide?this._hide(a,this.options.hide,function(){e.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s()}):(e.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),a.hide(),s()),a.attr("aria-hidden","true"),e.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),o.length&&a.length?e.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===P(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr("aria-hidden","false"),e.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var e,i=this._findActive(t);i[0]!==this.active[0]&&(i.length||(i=this.active),e=i.find(".ui-tabs-anchor")[0],this._eventHandler({target:e,currentTarget:e,preventDefault:P.noop}))},_findActive:function(t){return!1===t?P():this.tabs.eq(t)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+t+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){P.data(this,"ui-tabs-destroy")?P(this).remove():P(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=P(this),e=t.data("ui-tabs-aria-controls");e?t.attr("aria-controls",e).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var t=this.options.disabled;!1!==t&&(t=void 0!==i&&(i=this._getIndex(i),P.isArray(t)?P.map(t,function(t){return t!==i?t:null}):P.map(this.tabs,function(t,e){return e!==i?e:null})),this._setupDisabled(t))},disable:function(t){var e=this.options.disabled;if(!0!==e){if(void 0===t)e=!0;else{if(t=this._getIndex(t),-1!==P.inArray(t,e))return;e=P.isArray(e)?P.merge([t],e).sort():[t]}this._setupDisabled(e)}},load:function(t,s){t=this._getIndex(t);var n=this,i=this.tabs.eq(t),e=i.find(".ui-tabs-anchor"),o=this._getPanelForTab(i),a={tab:i,panel:o},r=function(t,e){"abort"===e&&n.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),o.removeAttr("aria-busy"),t===n.xhr&&delete n.xhr};this._isLocal(e[0])||(this.xhr=P.ajax(this._ajaxSettings(e,s,a)),this.xhr&&"canceled"!==this.xhr.statusText&&(i.addClass("ui-tabs-loading"),o.attr("aria-busy","true"),this.xhr.done(function(t,e,i){setTimeout(function(){o.html(t),n._trigger("load",s,a),r(i,e)},1)}).fail(function(t,e){setTimeout(function(){r(t,e)},1)})))},_ajaxSettings:function(t,i,s){var n=this;return{url:t.attr("href"),beforeSend:function(t,e){return n._trigger("beforeLoad",i,P.extend({jqXHR:t,ajaxSettings:e},s))}}},_getPanelForTab:function(t){var e=P(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+e))}}),P.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var t=P(this).attr("title")||"";return P("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(t,e){var i=(t.attr("aria-describedby")||"").split(/\s+/);i.push(e),t.data("ui-tooltip-id",e).attr("aria-describedby",P.trim(i.join(" ")))},_removeDescribedBy:function(t){var e=t.data("ui-tooltip-id"),i=(t.attr("aria-describedby")||"").split(/\s+/),s=P.inArray(e,i);-1!==s&&i.splice(s,1),t.removeData("ui-tooltip-id"),(i=P.trim(i.join(" ")))?t.attr("aria-describedby",i):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=P("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(t,e){var i=this;return"disabled"===t?(this[e?"_disable":"_enable"](),void(this.options[t]=e)):(this._super(t,e),void("content"===t&&P.each(this.tooltips,function(t,e){i._updateContent(e.element)})))},_disable:function(){var s=this;P.each(this.tooltips,function(t,e){var i=P.Event("blur");i.target=i.currentTarget=e.element[0],s.close(i,!0)}),this.element.find(this.options.items).addBack().each(function(){var t=P(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var t=P(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var i=this,e=P(t?t.target:this.element).closest(this.options.items);e.length&&!e.data("ui-tooltip-id")&&(e.attr("title")&&e.data("ui-tooltip-title",e.attr("title")),e.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&e.parents().each(function(){var t,e=P(this);e.data("ui-tooltip-open")&&((t=P.Event("blur")).target=t.currentTarget=this,i.close(t,!0)),e.attr("title")&&(e.uniqueId(),i.parents[this.id]={element:this,title:e.attr("title")},e.attr("title",""))}),this._registerCloseHandlers(t,e),this._updateContent(e,t))},_updateContent:function(e,i){var t,s=this.options.content,n=this,o=i?i.type:null;return"string"==typeof s?this._open(i,e,s):void((t=s.call(e[0],function(t){n._delay(function(){e.data("ui-tooltip-open")&&(i&&(i.type=o),this._open(i,e,t))})}))&&this._open(i,e,t))},_open:function(t,e,i){function s(t){h.of=t,o.is(":hidden")||o.position(h)}var n,o,a,r,h=P.extend({},this.options.position);if(i){if(n=this._find(e))return void n.tooltip.find(".ui-tooltip-content").html(i);e.is("[title]")&&(t&&"mouseover"===t.type?e.attr("title",""):e.removeAttr("title")),n=this._tooltip(e),o=n.tooltip,this._addDescribedBy(e,o.attr("id")),o.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),i.clone?(r=i.clone()).removeAttr("id").find("[id]").removeAttr("id"):r=i,P("<div>").html(r).appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:s}),s(t)):o.position(P.extend({of:e},this.options.position)),o.hide(),this._show(o,this.options.show),this.options.show&&this.options.show.delay&&(a=this.delayedShow=setInterval(function(){o.is(":visible")&&(s(h.of),clearInterval(a))},P.fx.interval)),this._trigger("open",t,{tooltip:o})}},_registerCloseHandlers:function(t,i){var e={keyup:function(t){if(t.keyCode===P.ui.keyCode.ESCAPE){var e=P.Event(t);e.currentTarget=i[0],this.close(e,!0)}}};i[0]!==this.element[0]&&(e.remove=function(){this._removeTooltip(this._find(i).tooltip)}),t&&"mouseover"!==t.type||(e.mouseleave="close"),t&&"focusin"!==t.type||(e.focusout="close"),this._on(!0,i,e)},close:function(t){var e,i=this,s=P(t?t.currentTarget:this.element),n=this._find(s);return n?(e=n.tooltip,void(n.closing||(clearInterval(this.delayedShow),s.data("ui-tooltip-title")&&!s.attr("title")&&s.attr("title",s.data("ui-tooltip-title")),this._removeDescribedBy(s),n.hiding=!0,e.stop(!0),this._hide(e,this.options.hide,function(){i._removeTooltip(P(this))}),s.removeData("ui-tooltip-open"),this._off(s,"mouseleave focusout keyup"),s[0]!==this.element[0]&&this._off(s,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&P.each(this.parents,function(t,e){P(e.element).attr("title",e.title),delete i.parents[t]}),n.closing=!0,this._trigger("close",t,{tooltip:e}),n.hiding||(n.closing=!1)))):void s.removeData("ui-tooltip-open")},_tooltip:function(t){var e=P("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),i=e.uniqueId().attr("id");return P("<div>").addClass("ui-tooltip-content").appendTo(e),e.appendTo(this.document[0].body),this.tooltips[i]={element:t,tooltip:e}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var n=this;P.each(this.tooltips,function(t,e){var i=P.Event("blur"),s=e.element;i.target=i.currentTarget=s[0],n.close(i,!0),P("#"+t).remove(),s.data("ui-tooltip-title")&&(s.attr("title")||s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}});var x,k="ui-effects-",C=P;P.effects={effect:{}},function(c,u){function d(t,e,i){var s=g[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:t<0?0:t>s.max?s.max:t)}function r(a){var r=f(),h=r._rgba=[];return a=a.toLowerCase(),v(t,function(t,e){var i,s=e.re.exec(a),n=s&&e.parse(s),o=e.space||"rgba";return n?(i=r[o](n),r[m[o].cache]=i[m[o].cache],h=r._rgba=i._rgba,!1):u}),h.length?("0,0,0,0"===h.join()&&c.extend(h,l.transparent),r):l[a]}function h(t,e,i){return 6*(i=(i+1)%1)<1?t+6*(e-t)*i:2*i<1?e:3*i<2?t+6*(e-t)*(2/3-i):t}var l,p=/^([\-+])=\s*(\d+\.?\d*)/,t=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],f=c.Color=function(t,e,i,s){return new c.Color.fn.parse(t,e,i,s)},m={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},g={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},a=f.support={},e=c("<p>")[0],v=c.each;e.style.cssText="background-color:rgba(1,1,1,.5)",a.rgba=-1<e.style.backgroundColor.indexOf("rgba"),v(m,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),f.fn=c.extend(f.prototype,{parse:function(n,t,e,i){if(n===u)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=c(n).css(t),t=u);var o=this,s=c.type(n),a=this._rgba=[];return t!==u&&(n=[n,t,e,i],s="array"),"string"===s?this.parse(r(n)||l._default):"array"===s?(v(m.rgba.props,function(t,e){a[e.idx]=d(n[e.idx],e)}),this):"object"===s?(v(m,n instanceof f?function(t,e){n[e.cache]&&(o[e.cache]=n[e.cache].slice())}:function(t,i){var s=i.cache;v(i.props,function(t,e){if(!o[s]&&i.to){if("alpha"===t||null==n[t])return;o[s]=i.to(o._rgba)}o[s][e.idx]=d(n[t],e,!0)}),o[s]&&c.inArray(null,o[s].slice(0,3))<0&&(o[s][3]=1,i.from&&(o._rgba=i.from(o[s])))}),this):u},is:function(t){var n=f(t),o=!0,a=this;return v(m,function(t,e){var i,s=n[e.cache];return s&&(i=a[e.cache]||e.to&&e.to(a._rgba)||[],v(e.props,function(t,e){return null!=s[e.idx]?o=s[e.idx]===i[e.idx]:u})),o}),o},_space:function(){var i=[],s=this;return v(m,function(t,e){s[e.cache]&&i.push(t)}),i.pop()},transition:function(t,a){var r=f(t),e=r._space(),i=m[e],s=0===this.alpha()?f("transparent"):this,h=s[i.cache]||i.to(s._rgba),l=h.slice();return r=r[i.cache],v(i.props,function(t,e){var i=e.idx,s=h[i],n=r[i],o=g[e.type]||{};null!==n&&(l[i]=null===s?n:(o.mod&&(n-s>o.mod/2?s+=o.mod:s-n>o.mod/2&&(s-=o.mod)),d((n-s)*a+s,e)))}),this[e](l)},blend:function(t){if(1===this._rgba[3])return this;var e=this._rgba.slice(),i=e.pop(),s=f(t)._rgba;return f(c.map(e,function(t,e){return(1-i)*s[e]+i*t}))},toRgbaString:function(){var t="rgba(",e=c.map(this._rgba,function(t,e){return null==t?2<e?1:0:t});return 1===e[3]&&(e.pop(),t="rgb("),t+e.join()+")"},toHslaString:function(){var t="hsla(",e=c.map(this.hsla(),function(t,e){return null==t&&(t=2<e?1:0),e&&e<3&&(t=Math.round(100*t)+"%"),t});return 1===e[3]&&(e.pop(),t="hsl("),t+e.join()+")"},toHexString:function(t){var e=this._rgba.slice(),i=e.pop();return t&&e.push(~~(255*i)),"#"+c.map(e,function(t){return 1===(t=(t||0).toString(16)).length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),f.fn.parse.prototype=f.fn,m.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:u<=.5?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},m.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],n=t[3],o=s<=.5?s*(1+i):s+i-s*i,a=2*s-o;return[Math.round(255*h(a,o,e+1/3)),Math.round(255*h(a,o,e)),Math.round(255*h(a,o,e-1/3)),n]},v(m,function(h,t){var i=t.props,a=t.cache,r=t.to,l=t.from;f.fn[h]=function(t){if(r&&!this[a]&&(this[a]=r(this._rgba)),t===u)return this[a].slice();var e,s=c.type(t),n="array"===s||"object"===s?t:arguments,o=this[a].slice();return v(i,function(t,e){var i=n["object"===s?t:e.idx];null==i&&(i=o[e.idx]),o[e.idx]=d(i,e)}),l?((e=f(l(o)))[a]=o,e):f(o)},v(i,function(a,r){f.fn[a]||(f.fn[a]=function(t){var e,i=c.type(t),s="alpha"===a?this._hsla?"hsla":"rgba":h,n=this[s](),o=n[r.idx];return"undefined"===i?o:("function"===i&&(t=t.call(this,o),i=c.type(t)),null==t&&r.empty?this:("string"===i&&((e=p.exec(t))&&(t=o+parseFloat(e[2])*("+"===e[1]?1:-1))),n[r.idx]=t,this[s](n)))})})}),f.hook=function(t){var e=t.split(" ");v(e,function(t,o){c.cssHooks[o]={set:function(t,e){var i,s,n="";if("transparent"!==e&&("string"!==c.type(e)||(i=r(e)))){if(e=f(i||e),!a.rgba&&1!==e._rgba[3]){for(s="backgroundColor"===o?t.parentNode:t;(""===n||"transparent"===n)&&s&&s.style;)try{n=c.css(s,"backgroundColor"),s=s.parentNode}catch(t){}e=e.blend(n&&"transparent"!==n?n:"_default")}e=e.toRgbaString()}try{t.style[o]=e}catch(t){}}},c.fx.step[o]=function(t){t.colorInit||(t.start=f(t.elem,o),t.end=f(t.end),t.colorInit=!0),c.cssHooks[o].set(t.elem,t.start.transition(t.end,t.pos))}})},f.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"),c.cssHooks.borderColor={expand:function(i){var s={};return v(["Top","Right","Bottom","Left"],function(t,e){s["border"+e+"Color"]=i}),s}},l=c.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(C),function(){function a(t){var e,i,s=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,n={};if(s&&s.length&&s[0]&&s[s[0]])for(i=s.length;i--;)"string"==typeof s[e=s[i]]&&(n[P.camelCase(e)]=s[e]);else for(e in s)"string"==typeof s[e]&&(n[e]=s[e]);return n}var o,n,r,h=["add","remove","toggle"],l={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};P.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,e){P.fx.step[e]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(C.style(t.elem,e,t.end),t.setAttr=!0)}}),P.fn.addBack||(P.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),P.effects.animateClass=function(n,t,e,i){var o=P.speed(t,e,i);return this.queue(function(){var t,i=P(this),e=i.attr("class")||"",s=o.children?i.find("*").addBack():i;s=s.map(function(){return{el:P(this),start:a(this)}}),(t=function(){P.each(h,function(t,e){n[e]&&i[e+"Class"](n[e])})})(),s=s.map(function(){return this.end=a(this.el[0]),this.diff=function(t,e){var i,s,n={};for(i in e)s=e[i],t[i]!==s&&(l[i]||(P.fx.step[i]||!isNaN(parseFloat(s)))&&(n[i]=s));return n}(this.start,this.end),this}),i.attr("class",e),s=s.map(function(){var t=this,e=P.Deferred(),i=P.extend({},o,{queue:!1,complete:function(){e.resolve(t)}});return this.el.animate(this.diff,i),e.promise()}),P.when.apply(P,s.get()).done(function(){t(),P.each(arguments,function(){var e=this.el;P.each(this.diff,function(t){e.css(t,"")})}),o.complete.call(i[0])})})},P.fn.extend({addClass:(r=P.fn.addClass,function(t,e,i,s){return e?P.effects.animateClass.call(this,{add:t},e,i,s):r.apply(this,arguments)}),removeClass:(n=P.fn.removeClass,function(t,e,i,s){return 1<arguments.length?P.effects.animateClass.call(this,{remove:t},e,i,s):n.apply(this,arguments)}),toggleClass:(o=P.fn.toggleClass,function(t,e,i,s,n){return"boolean"==typeof e||void 0===e?i?P.effects.animateClass.call(this,e?{add:t}:{remove:t},i,s,n):o.apply(this,arguments):P.effects.animateClass.call(this,{toggle:t},e,i,s)}),switchClass:function(t,e,i,s,n){return P.effects.animateClass.call(this,{add:e,remove:t},i,s,n)}})}(),function(){function s(t,e,i,s){return P.isPlainObject(t)&&(t=(e=t).effect),t={effect:t},null==e&&(e={}),P.isFunction(e)&&(s=e,i=null,e={}),("number"==typeof e||P.fx.speeds[e])&&(s=i,i=e,e={}),P.isFunction(i)&&(s=i,i=null),e&&P.extend(t,e),i=i||e.duration,t.duration=P.fx.off?0:"number"==typeof i?i:i in P.fx.speeds?P.fx.speeds[i]:P.fx.speeds._default,t.complete=s||e.complete,t}function i(t){return!(t&&"number"!=typeof t&&!P.fx.speeds[t])||("string"==typeof t&&!P.effects.effect[t]||(!!P.isFunction(t)||"object"==typeof t&&!t.effect))}var n,o,a;P.extend(P.effects,{version:"1.11.4",save:function(t,e){for(var i=0;e.length>i;i++)null!==e[i]&&t.data(k+e[i],t[0].style[e[i]])},restore:function(t,e){var i,s;for(s=0;e.length>s;s++)null!==e[s]&&(void 0===(i=t.data(k+e[s]))&&(i=""),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createWrapper:function(i){if(i.parent().is(".ui-effects-wrapper"))return i.parent();var s={width:i.outerWidth(!0),height:i.outerHeight(!0),float:i.css("float")},t=P("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:i.width(),height:i.height()},n=document.activeElement;try{n.id}catch(t){n=document.body}return i.wrap(t),(i[0]===n||P.contains(i[0],n))&&P(n).focus(),t=i.parent(),"static"===i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(P.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),P.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),i.css(e),t.css(s).show()},removeWrapper:function(t){var e=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===e||P.contains(t[0],e))&&P(e).focus()),t},setTransition:function(s,t,n,o){return o=o||{},P.each(t,function(t,e){var i=s.cssUnit(e);0<i[0]&&(o[e]=i[0]*n+i[1])}),o}}),P.fn.extend({effect:function(){function t(t){function e(){P.isFunction(s)&&s.call(i[0]),P.isFunction(t)&&t()}var i=P(this),s=o.complete,n=o.mode;(i.is(":hidden")?"hide"===n:"show"===n)?(i[n](),e()):a.call(i[0],o,e)}var o=s.apply(this,arguments),e=o.mode,i=o.queue,a=P.effects.effect[o.effect];return P.fx.off||!a?e?this[e](o.duration,o.complete):this.each(function(){o.complete&&o.complete.call(this)}):!1===i?this.each(t):this.queue(i||"fx",t)},show:(a=P.fn.show,function(t){if(i(t))return a.apply(this,arguments);var e=s.apply(this,arguments);return e.mode="show",this.effect.call(this,e)}),hide:(o=P.fn.hide,function(t){if(i(t))return o.apply(this,arguments);var e=s.apply(this,arguments);return e.mode="hide",this.effect.call(this,e)}),toggle:(n=P.fn.toggle,function(t){if(i(t)||"boolean"==typeof t)return n.apply(this,arguments);var e=s.apply(this,arguments);return e.mode="toggle",this.effect.call(this,e)}),cssUnit:function(t){var i=this.css(t),s=[];return P.each(["em","px","%","pt"],function(t,e){0<i.indexOf(e)&&(s=[parseFloat(i),e])}),s}})}(),x={},P.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,t){x[t]=function(t){return Math.pow(t,e+2)}}),P.extend(x,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),P.each(x,function(t,e){P.easing["easeIn"+t]=e,P.easing["easeOut"+t]=function(t){return 1-e(1-t)},P.easing["easeInOut"+t]=function(t){return t<.5?e(2*t)/2:1-e(-2*t+2)/2}}),P.effects,P.effects.effect.blind=function(t,e){var i,s,n,o=P(this),a=["position","top","bottom","left","right","height","width"],r=P.effects.setMode(o,t.mode||"hide"),h=t.direction||"up",l=/up|down|vertical/.test(h),c=l?"height":"width",u=l?"top":"left",d=/up|left|vertical|horizontal/.test(h),p={},f="show"===r;o.parent().is(".ui-effects-wrapper")?P.effects.save(o.parent(),a):P.effects.save(o,a),o.show(),s=(i=P.effects.createWrapper(o).css({overflow:"hidden"}))[c](),n=parseFloat(i.css(u))||0,p[c]=f?s:0,d||(o.css(l?"bottom":"right",0).css(l?"top":"left","auto").css({position:"absolute"}),p[u]=f?n:s+n),f&&(i.css(c,0),d||i.css(u,n+s)),i.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){"hide"===r&&o.hide(),P.effects.restore(o,a),P.effects.removeWrapper(o),e()}})},P.effects.effect.bounce=function(t,e){var i,s,n,o=P(this),a=["position","top","bottom","left","right","height","width"],r=P.effects.setMode(o,t.mode||"effect"),h="hide"===r,l="show"===r,c=t.direction||"up",u=t.distance,d=t.times||5,p=2*d+(l||h?1:0),f=t.duration/p,m=t.easing,g="up"===c||"down"===c?"top":"left",v="up"===c||"left"===c,_=o.queue(),b=_.length;for((l||h)&&a.push("opacity"),P.effects.save(o,a),o.show(),P.effects.createWrapper(o),u||(u=o["top"===g?"outerHeight":"outerWidth"]()/3),l&&((n={opacity:1})[g]=0,o.css("opacity",0).css(g,v?2*-u:2*u).animate(n,f,m)),h&&(u/=Math.pow(2,d-1)),i=(n={})[g]=0;i<d;i++)(s={})[g]=(v?"-=":"+=")+u,o.animate(s,f,m).animate(n,f,m),u=h?2*u:u/2;h&&((s={opacity:0})[g]=(v?"-=":"+=")+u,o.animate(s,f,m)),o.queue(function(){h&&o.hide(),P.effects.restore(o,a),P.effects.removeWrapper(o),e()}),1<b&&_.splice.apply(_,[1,0].concat(_.splice(b,p+1))),o.dequeue()},P.effects.effect.clip=function(t,e){var i,s,n,o=P(this),a=["position","top","bottom","left","right","height","width"],r="show"===P.effects.setMode(o,t.mode||"hide"),h="vertical"===(t.direction||"vertical"),l=h?"height":"width",c=h?"top":"left",u={};P.effects.save(o,a),o.show(),i=P.effects.createWrapper(o).css({overflow:"hidden"}),n=(s="IMG"===o[0].tagName?i:o)[l](),r&&(s.css(l,0),s.css(c,n/2)),u[l]=r?n:0,u[c]=r?0:n/2,s.animate(u,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){r||o.hide(),P.effects.restore(o,a),P.effects.removeWrapper(o),e()}})},P.effects.effect.drop=function(t,e){var i,s=P(this),n=["position","top","bottom","left","right","opacity","height","width"],o=P.effects.setMode(s,t.mode||"hide"),a="show"===o,r=t.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"pos":"neg",c={opacity:a?1:0};P.effects.save(s,n),s.show(),P.effects.createWrapper(s),i=t.distance||s["top"===h?"outerHeight":"outerWidth"](!0)/2,a&&s.css("opacity",0).css(h,"pos"===l?-i:i),c[h]=(a?"pos"===l?"+=":"-=":"pos"===l?"-=":"+=")+i,s.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&s.hide(),P.effects.restore(s,n),P.effects.removeWrapper(s),e()}})},P.effects.effect.explode=function(t,e){function i(){g.push(this),g.length===l*c&&(u.css({visibility:"visible"}),P(g).remove(),d||u.hide(),e())}var s,n,o,a,r,h,l=t.pieces?Math.round(Math.sqrt(t.pieces)):3,c=l,u=P(this),d="show"===P.effects.setMode(u,t.mode||"hide"),p=u.show().css("visibility","hidden").offset(),f=Math.ceil(u.outerWidth()/c),m=Math.ceil(u.outerHeight()/l),g=[];for(s=0;s<l;s++)for(a=p.top+s*m,h=s-(l-1)/2,n=0;n<c;n++)o=p.left+n*f,r=n-(c-1)/2,u.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-n*f,top:-s*m}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:m,left:o+(d?r*f:0),top:a+(d?h*m:0),opacity:d?0:1}).animate({left:o+(d?0:r*f),top:a+(d?0:h*m),opacity:d?1:0},t.duration||500,t.easing,i)},P.effects.effect.fade=function(t,e){var i=P(this),s=P.effects.setMode(i,t.mode||"toggle");i.animate({opacity:s},{queue:!1,duration:t.duration,easing:t.easing,complete:e})},P.effects.effect.fold=function(t,e){var i,s,n=P(this),o=["position","top","bottom","left","right","height","width"],a=P.effects.setMode(n,t.mode||"hide"),r="show"===a,h="hide"===a,l=t.size||15,c=/([0-9]+)%/.exec(l),u=!!t.horizFirst,d=r!==u,p=d?["width","height"]:["height","width"],f=t.duration/2,m={},g={};P.effects.save(n,o),n.show(),i=P.effects.createWrapper(n).css({overflow:"hidden"}),s=d?[i.width(),i.height()]:[i.height(),i.width()],c&&(l=parseInt(c[1],10)/100*s[h?0:1]),r&&i.css(u?{height:0,width:l}:{height:l,width:0}),m[p[0]]=r?s[0]:l,g[p[1]]=r?s[1]:0,i.animate(m,f,t.easing).animate(g,f,t.easing,function(){h&&n.hide(),P.effects.restore(n,o),P.effects.removeWrapper(n),e()})},P.effects.effect.highlight=function(t,e){var i=P(this),s=["backgroundImage","backgroundColor","opacity"],n=P.effects.setMode(i,t.mode||"show"),o={backgroundColor:i.css("backgroundColor")};"hide"===n&&(o.opacity=0),P.effects.save(i,s),i.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===n&&i.hide(),P.effects.restore(i,s),e()}})},P.effects.effect.size=function(o,t){var e,i,a,r=P(this),s=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["width","height","overflow"],n=["fontSize"],l=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],u=P.effects.setMode(r,o.mode||"effect"),d=o.restore||"effect"!==u,p=o.scale||"both",f=o.origin||["middle","center"],m=r.css("position"),g=d?s:["position","top","bottom","left","right","overflow","opacity"],v={height:0,width:0,outerHeight:0,outerWidth:0};"show"===u&&r.show(),e={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},"toggle"===o.mode&&"show"===u?(r.from=o.to||v,r.to=o.from||e):(r.from=o.from||("show"===u?v:e),r.to=o.to||("hide"===u?v:e)),a={from:{y:r.from.height/e.height,x:r.from.width/e.width},to:{y:r.to.height/e.height,x:r.to.width/e.width}},("box"===p||"both"===p)&&(a.from.y!==a.to.y&&(g=g.concat(l),r.from=P.effects.setTransition(r,l,a.from.y,r.from),r.to=P.effects.setTransition(r,l,a.to.y,r.to)),a.from.x!==a.to.x&&(g=g.concat(c),r.from=P.effects.setTransition(r,c,a.from.x,r.from),r.to=P.effects.setTransition(r,c,a.to.x,r.to))),("content"===p||"both"===p)&&a.from.y!==a.to.y&&(g=g.concat(n).concat(h),r.from=P.effects.setTransition(r,n,a.from.y,r.from),r.to=P.effects.setTransition(r,n,a.to.y,r.to)),P.effects.save(r,g),r.show(),P.effects.createWrapper(r),r.css("overflow","hidden").css(r.from),f&&(i=P.effects.getBaseline(f,e),r.from.top=(e.outerHeight-r.outerHeight())*i.y,r.from.left=(e.outerWidth-r.outerWidth())*i.x,r.to.top=(e.outerHeight-r.to.outerHeight)*i.y,r.to.left=(e.outerWidth-r.to.outerWidth)*i.x),r.css(r.from),("content"===p||"both"===p)&&(l=l.concat(["marginTop","marginBottom"]).concat(n),c=c.concat(["marginLeft","marginRight"]),h=s.concat(l).concat(c),r.find("*[width]").each(function(){var t=P(this),e=t.height(),i=t.width(),s=t.outerHeight(),n=t.outerWidth();d&&P.effects.save(t,h),t.from={height:e*a.from.y,width:i*a.from.x,outerHeight:s*a.from.y,outerWidth:n*a.from.x},t.to={height:e*a.to.y,width:i*a.to.x,outerHeight:e*a.to.y,outerWidth:i*a.to.x},a.from.y!==a.to.y&&(t.from=P.effects.setTransition(t,l,a.from.y,t.from),t.to=P.effects.setTransition(t,l,a.to.y,t.to)),a.from.x!==a.to.x&&(t.from=P.effects.setTransition(t,c,a.from.x,t.from),t.to=P.effects.setTransition(t,c,a.to.x,t.to)),t.css(t.from),t.animate(t.to,o.duration,o.easing,function(){d&&P.effects.restore(t,h)})})),r.animate(r.to,{queue:!1,duration:o.duration,easing:o.easing,complete:function(){0===r.to.opacity&&r.css("opacity",r.from.opacity),"hide"===u&&r.hide(),P.effects.restore(r,g),d||("static"===m?r.css({position:"relative",top:r.to.top,left:r.to.left}):P.each(["top","left"],function(n,t){r.css(t,function(t,e){var i=parseInt(e,10),s=n?r.to.left:r.to.top;return"auto"===e?s+"px":i+s+"px"})})),P.effects.removeWrapper(r),t()}})},P.effects.effect.scale=function(t,e){var i=P(this),s=P.extend(!0,{},t),n=P.effects.setMode(i,t.mode||"effect"),o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"hide"===n?0:100),a=t.direction||"both",r=t.origin,h={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()},l="horizontal"!==a?o/100:1,c="vertical"!==a?o/100:1;s.effect="size",s.queue=!1,s.complete=e,"effect"!==n&&(s.origin=r||["middle","center"],s.restore=!0),s.from=t.from||("show"===n?{height:0,width:0,outerHeight:0,outerWidth:0}:h),s.to={height:h.height*l,width:h.width*c,outerHeight:h.outerHeight*l,outerWidth:h.outerWidth*c},s.fade&&("show"===n&&(s.from.opacity=0,s.to.opacity=1),"hide"===n&&(s.from.opacity=1,s.to.opacity=0)),i.effect(s)},P.effects.effect.puff=function(t,e){var i=P(this),s=P.effects.setMode(i,t.mode||"hide"),n="hide"===s,o=parseInt(t.percent,10)||150,a=o/100,r={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};P.extend(t,{effect:"scale",queue:!1,fade:!0,mode:s,complete:e,percent:n?o:100,from:n?r:{height:r.height*a,width:r.width*a,outerHeight:r.outerHeight*a,outerWidth:r.outerWidth*a}}),i.effect(t)},P.effects.effect.pulsate=function(t,e){var i,s=P(this),n=P.effects.setMode(s,t.mode||"show"),o="show"===n,a="hide"===n,r=o||"hide"===n,h=2*(t.times||5)+(r?1:0),l=t.duration/h,c=0,u=s.queue(),d=u.length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1),i=1;i<h;i++)s.animate({opacity:c},l,t.easing),c=1-c;s.animate({opacity:c},l,t.easing),s.queue(function(){a&&s.hide(),e()}),1<d&&u.splice.apply(u,[1,0].concat(u.splice(d,h+1))),s.dequeue()},P.effects.effect.shake=function(t,e){var i,s=P(this),n=["position","top","bottom","left","right","height","width"],o=P.effects.setMode(s,t.mode||"effect"),a=t.direction||"left",r=t.distance||20,h=t.times||3,l=2*h+1,c=Math.round(t.duration/l),u="up"===a||"down"===a?"top":"left",d="up"===a||"left"===a,p={},f={},m={},g=s.queue(),v=g.length;for(P.effects.save(s,n),s.show(),P.effects.createWrapper(s),p[u]=(d?"-=":"+=")+r,f[u]=(d?"+=":"-=")+2*r,m[u]=(d?"-=":"+=")+2*r,s.animate(p,c,t.easing),i=1;i<h;i++)s.animate(f,c,t.easing).animate(m,c,t.easing);s.animate(f,c,t.easing).animate(p,c/2,t.easing).queue(function(){"hide"===o&&s.hide(),P.effects.restore(s,n),P.effects.removeWrapper(s),e()}),1<v&&g.splice.apply(g,[1,0].concat(g.splice(v,l+1))),s.dequeue()},P.effects.effect.slide=function(t,e){var i,s=P(this),n=["position","top","bottom","left","right","width","height"],o=P.effects.setMode(s,t.mode||"show"),a="show"===o,r=t.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r,c={};P.effects.save(s,n),s.show(),i=t.distance||s["top"===h?"outerHeight":"outerWidth"](!0),P.effects.createWrapper(s).css({overflow:"hidden"}),a&&s.css(h,l?isNaN(i)?"-"+i:-i:i),c[h]=(a?l?"+=":"-=":l?"-=":"+=")+i,s.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){"hide"===o&&s.hide(),P.effects.restore(s,n),P.effects.removeWrapper(s),e()}})},P.effects.effect.transfer=function(t,e){var i=P(this),s=P(t.to),n="fixed"===s.css("position"),o=P("body"),a=n?o.scrollTop():0,r=n?o.scrollLeft():0,h=s.offset(),l={top:h.top-a,left:h.left-r,height:s.innerHeight(),width:s.innerWidth()},c=i.offset(),u=P("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(t.className).css({top:c.top-a,left:c.left-r,height:i.innerHeight(),width:i.innerWidth(),position:n?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){u.remove(),e()})}});
!function($){var min=Math.min,max=Math.max,round=Math.floor,isStr=function(e){return"string"===$.type(e)},runPluginCallbacks=function(Instance,a_fn){if($.isArray(a_fn))for(var i=0,c=a_fn.length;i<c;i++){var fn=a_fn[i];try{isStr(fn)&&(fn=eval(fn)),$.isFunction(fn)&&g(fn)(Instance)}catch(e){}}function g(e){return e}},Ya,Za,$a,_a,ab,bb,cb,db,eb,fb;$.layout={version:"1.4.4",revision:1.0404,browser:{},effects:{slide:{all:{duration:"fast"},north:{direction:"up"},south:{direction:"down"},east:{direction:"right"},west:{direction:"left"}},drop:{all:{duration:"slow"},north:{direction:"up"},south:{direction:"down"},east:{direction:"right"},west:{direction:"left"}},scale:{all:{duration:"fast"}},blind:{},clip:{},explode:{},fade:{},fold:{},puff:{},size:{all:{easing:"swing"}}},config:{optionRootKeys:"effects,panes,north,south,west,east,center".split(","),allPanes:"north,south,west,east,center".split(","),borderPanes:"north,south,west,east".split(","),oppositeEdge:{north:"south",south:"north",east:"west",west:"east"},offscreenCSS:{left:"-99999px",right:"auto"},offscreenReset:"offscreenReset",hidden:{visibility:"hidden"},visible:{visibility:"visible"},resizers:{cssReq:{position:"absolute",padding:0,margin:0,fontSize:"1px",textAlign:"left",overflow:"hidden"},cssDemo:{background:"#DDD",border:"none"}},togglers:{cssReq:{position:"absolute",display:"flex",padding:0,margin:0,overflow:"hidden",textAlign:"center",fontSize:"1px",cursor:"pointer",zIndex:1},cssDemo:{background:"#AAA"}},content:{cssReq:{position:"relative"},cssDemo:{overflow:"auto",padding:"10px"},cssDemoPane:{overflow:"hidden",padding:0}},panes:{cssReq:{position:"absolute",margin:0},cssDemo:{padding:"10px",background:"#FFF",border:"1px solid #BBB",overflow:"auto"}},north:{side:"top",sizeType:"Height",dir:"horz",cssReq:{top:0,bottom:"auto",left:0,right:0,width:"auto"}},south:{side:"bottom",sizeType:"Height",dir:"horz",cssReq:{top:"auto",bottom:0,left:0,right:0,width:"auto"}},east:{side:"right",sizeType:"Width",dir:"vert",cssReq:{left:"auto",right:0,top:"auto",bottom:"auto",height:"auto"}},west:{side:"left",sizeType:"Width",dir:"vert",cssReq:{left:0,right:"auto",top:"auto",bottom:"auto",height:"auto"}},center:{dir:"center",cssReq:{left:"auto",right:"auto",top:"auto",bottom:"auto",height:"auto",width:"auto"}}},callbacks:{},getParentPaneElem:function(e){var t=$(e),i=t.data("layout")||t.data("parentLayout");if(i){var s=i.container;if(s.data("layoutPane"))return s;var n=s.closest("."+$.layout.defaults.panes.paneClass);if(n.data("layoutPane"))return n}return null},getParentPaneInstance:function(e){var t=$.layout.getParentPaneElem(e);return t?t.data("layoutPane"):null},getParentLayoutInstance:function(e){var t=$.layout.getParentPaneElem(e);return t?t.data("parentLayout"):null},getEventObject:function(e){return"object"==typeof e&&e.stopPropagation?e:null},parsePaneName:function(e){var t=$.layout.getEventObject(e),i=e;return t&&(t.stopPropagation(),i=$(this).data("layoutEdge")),i&&!/^(west|east|north|south|center)$/.test(i)&&($.layout.msg('LAYOUT ERROR - Invalid pane-name: "'+i+'"'),i="error"),i},plugins:{draggable:!!$.fn.draggable,effects:{core:!!$.effects,slide:$.effects&&($.effects.slide||$.effects.effect&&$.effects.effect.slide)}},onCreate:[],onLoad:[],onReady:[],onDestroy:[],onUnload:[],afterOpen:[],afterClose:[],scrollbarWidth:function(){return window.scrollbarWidth||$.layout.getScrollbarSize("width")},scrollbarHeight:function(){return window.scrollbarHeight||$.layout.getScrollbarSize("height")},getScrollbarSize:function(e){var t=$('<div style="position: absolute; top: -10000px; left: -10000px; width: 100px; height: 100px; border: 0; overflow: scroll;"></div>').appendTo("body"),i={width:t.outerWidth-t[0].clientWidth,height:100-t[0].clientHeight};return t.remove(),window.scrollbarWidth=i.width,window.scrollbarHeight=i.height,e.match(/^(width|height)$/)?i[e]:i},disableTextSelection:function(){var e=$(document),t="textSelectionDisabled",i="textSelectionInitialized";$.fn.disableSelection&&(e.data(i)||e.on("mouseup",$.layout.enableTextSelection).data(i,!0),e.data(t)||e.disableSelection().data(t,!0))},enableTextSelection:function(){var e=$(document),t="textSelectionDisabled";$.fn.enableSelection&&e.data(t)&&e.enableSelection().data(t,!1)},showInvisibly:function(e,t){if(e&&e.length&&(t||"none"===e.css("display"))){var i=e[0].style,s={display:i.display||"",visibility:i.visibility||""};return e.css({display:"flex",visibility:"hidden"}),s}return{}},getElementDimensions:function(i,s){var n,a,o,l={css:{},inset:{}},r=l.css,d={bottom:0},e=$.layout.cssNum,t=Math.round,c=i.offset();return l.offsetLeft=c.left,l.offsetTop=c.top,s||(s={}),$.each("Left,Right,Top,Bottom".split(","),function(e,t){n=r["border"+t]=$.layout.borderWidth(i,t),a=r["padding"+t]=$.layout.cssNum(i,"padding"+t),o=t.toLowerCase(),l.inset[o]=0<=s[o]?s[o]:a,d[o]=l.inset[o]+n}),r.width=t(i.width()),r.height=t(i.height()),r.top=e(i,"top",!0),r.bottom=e(i,"bottom",!0),r.left=e(i,"left",!0),r.right=e(i,"right",!0),l.outerWidth=t(i.outerWidth()),l.outerHeight=t(i.outerHeight()),l.innerWidth=max(0,l.outerWidth-d.left-d.right),l.innerHeight=max(0,l.outerHeight-d.top-d.bottom),l.layoutWidth=t(i.innerWidth()),l.layoutHeight=t(i.innerHeight()),l},getElementStyles:function(e,t){var i,s,n,a,o,l,r={},d=e[0].style,c=t.split(","),u="Top,Bottom,Left,Right".split(","),p="Color,Style,Width".split(",");for(a=0;a<c.length;a++)if((i=c[a]).match(/(border|padding|margin)$/))for(o=0;o<4;o++)if(s=u[o],"border"===i)for(l=0;l<3;l++)r[i+s+(n=p[l])]=d[i+s+n];else r[i+s]=d[i+s];else r[i]=d[i];return r},cssWidth:function(e,t){if(t<=0)return 0;var i=$.layout.browser,s=i.boxModel?i.boxSizing?e.css("boxSizing"):"content-box":"border-box",n=$.layout.borderWidth,a=$.layout.cssNum,o=t;return"border-box"!==s&&(o-=n(e,"Left")+n(e,"Right")),"content-box"===s&&(o-=a(e,"paddingLeft")+a(e,"paddingRight")),max(0,o)},cssHeight:function(e,t){if(t<=0)return 0;var i=$.layout.browser,s=i.boxModel?i.boxSizing?e.css("boxSizing"):"content-box":"border-box",n=$.layout.borderWidth,a=$.layout.cssNum,o=t;return"border-box"!==s&&(o-=n(e,"Top")+n(e,"Bottom")),"content-box"===s&&(o-=a(e,"paddingTop")+a(e,"paddingBottom")),max(0,o)},cssNum:function(e,t,i){e.jquery||(e=$(e));var s=$.layout.showInvisibly(e),n=$.css(e[0],t,!0),a=i&&"auto"==n?n:Math.round(parseFloat(n)||0);return e.css(s),a},borderWidth:function(e,t){e.jquery&&(e=e[0]);var i="border"+t.substr(0,1).toUpperCase()+t.substr(1);return"none"===$.css(e,i+"Style",!0)?0:Math.round(parseFloat($.css(e,i+"Width",!0))||0)},isMouseOverElem:function(e,t){var i=$(t||this),s=i.offset(),n=s.top,a=s.left,o=a+i.outerWidth(),l=n+i.outerHeight(),r=e.pageX,d=e.pageY;return $.layout.browser.msie&&r<0&&d<0||a<=r&&r<=o&&n<=d&&d<=l},msg:function(e,t,i,s){if($.isPlainObject(e)&&window.debugData){"string"==typeof t?(s=i,i=t):"object"==typeof i&&(s=i,i=null);var n=i||"log( <object> )",a=$.extend({sort:!1,returnHTML:!1,display:!1},s);!0===t||a.display?debugData(e,n,a):window.console&&console.log(debugData(e,n,a))}else if(t)alert(e);else if(window.console)console.log(e);else{var o=$("#layoutLogger");o.length||(o=function(){var e=$.support.fixedPosition?"fixed":"absolute",t=$('<div id="layoutLogger" style="position: '+e+'; top: 5px; z-index: 999999; max-width: 25%; overflow: hidden; border: 1px solid #000; border-radius: 5px; background: #FBFBFB; box-shadow: 0 2px 10px rgba(0,0,0,0.3);"><div style="font-size: 13px; font-weight: bold; padding: 5px 10px; background: #F6F6F6; border-radius: 5px 5px 0 0; cursor: move;"><span style="float: right; padding-left: 7px; cursor: pointer;" title="Remove Console" onclick="$(this).closest(\'#layoutLogger\').remove()">X</span>Layout console.log</div><ul style="font-size: 13px; font-weight: none; list-style: none; margin: 0; padding: 0 0 2px;"></ul></div>').appendTo("body");t.css("left",$(window).width()-t.outerWidth()-5),$.ui.draggable&&t.draggable({handle:":first-child"});return t}()),o.children("ul").append('<li style="padding: 4px 10px; margin: 0; border-top: 1px solid #CCC;">'+e.replace(/\</g,"&lt;").replace(/\>/g,"&gt;")+"</li>")}}},Ya=navigator.userAgent.toLowerCase(),Za=/(chrome)[ \/]([\w.]+)/.exec(Ya)||/(webkit)[ \/]([\w.]+)/.exec(Ya)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(Ya)||/(msie) ([\w.]+)/.exec(Ya)||Ya.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(Ya)||[],$a=Za[1]||"",_a=Za[2]||0,ab="msie"===$a,bb=document.compatMode,cb=$.support,db=void 0!==cb.boxSizing?cb.boxSizing:cb.boxSizingReliable,eb=!ab||!bb||"CSS1Compat"===bb||cb.boxModel||!1,fb=$.layout.browser={version:_a,safari:"webkit"===$a,webkit:"chrome"===$a,msie:ab,isIE6:ab&&6==_a,boxModel:eb,boxSizing:!!("function"==typeof db?db():db)},$a&&(fb[$a]=!0),eb||bb||$(function(){fb.boxModel=cb.boxModel}),$.layout.defaults={name:"",containerClass:"ui-layout-container",inset:null,scrollToBookmarkOnLoad:!0,resizeWithWindow:!0,resizeWithWindowDelay:200,resizeWithWindowMaxDelay:0,maskPanesEarly:!1,onresizeall_start:null,onresizeall_end:null,onload_start:null,onload_end:null,onunload_start:null,onunload_end:null,initPanes:!0,showErrorMessages:!0,showDebugMessages:!1,zIndex:null,zIndexes:{pane_normal:"",content_mask:1,resizer_normal:2,pane_sliding:100,pane_animate:1e3,resizer_drag:1e4},errors:{pane:"pane",selector:"selector",addButtonError:"Error Adding Button\nInvalid ",containerMissing:"UI Layout Initialization Error\nThe specified layout-container does not exist.",centerPaneMissing:"UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element.",noContainerHeight:"UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!",callbackError:"UI Layout Callback Error\nThe EVENT callback is not a valid function."},panes:{applyDemoStyles:!1,closable:!0,resizable:!0,slidable:!0,initClosed:!1,initHidden:!1,contentSelector:".ui-layout-content",contentIgnoreSelector:".ui-layout-ignore",findNestedContent:!1,paneClass:"ui-layout-pane",resizerClass:"ui-layout-resizer",togglerClass:"ui-layout-toggler",buttonClass:"ui-layout-button",minSize:0,maxSize:0,spacing_open:6,spacing_closed:6,togglerLength_open:50,togglerLength_closed:50,togglerAlign_open:"center",togglerAlign_closed:"center",togglerContent_open:"",togglerContent_closed:"",resizerDblClickToggle:!0,autoResize:!0,autoReopen:!0,resizerDragOpacity:1,maskContents:!1,maskObjects:!1,maskZindex:null,resizingGrid:!1,livePaneResizing:!1,liveContentResizing:!1,liveResizingTolerance:1,sliderCursor:"pointer",slideTrigger_open:"click",slideTrigger_close:"mouseleave",slideDelay_open:300,slideDelay_close:300,hideTogglerOnSlide:!1,preventQuickSlideClose:$.layout.browser.webkit,preventPrematureSlideClose:!1,tips:{Open:"Open",Close:"Close",Resize:"Resize",Slide:"Slide Open",Pin:"Pin",Unpin:"Un-Pin",noRoomToOpen:"Not enough room to show this panel.",minSizeWarning:"Panel has reached its minimum size",maxSizeWarning:"Panel has reached its maximum size"},showOverflowOnHover:!1,enableCursorHotkey:!0,customHotkeyModifier:"SHIFT",fxName:"slide",fxSpeed:null,fxSettings:{},fxOpacityFix:!0,animatePaneSizing:!1,children:null,containerSelector:"",initChildren:!0,destroyChildren:!0,resizeChildren:!0,triggerEventsOnLoad:!1,triggerEventsDuringLiveResize:!0,onshow_start:null,onshow_end:null,onhide_start:null,onhide_end:null,onopen_start:null,onopen_end:null,onclose_start:null,onclose_end:null,onresize_start:null,onresize_end:null,onsizecontent_start:null,onsizecontent_end:null,onswap_start:null,onswap_end:null,ondrag_start:null,ondrag_end:null},north:{paneSelector:".ui-layout-north",size:"auto",resizerCursor:"row-resize",customHotkey:""},south:{paneSelector:".ui-layout-south",size:"auto",resizerCursor:"row-resize",customHotkey:""},east:{paneSelector:".ui-layout-east",size:200,resizerCursor:"col-resize",customHotkey:""},west:{paneSelector:".ui-layout-west",size:200,resizerCursor:"col-resize",customHotkey:""},center:{paneSelector:".ui-layout-center",minWidth:0,minHeight:0}},$.layout.optionsMap={layout:"name,instanceKey,stateManagement,effects,inset,zIndexes,errors,zIndex,scrollToBookmarkOnLoad,showErrorMessages,maskPanesEarly,outset,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay,onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end".split(","),center:"paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad,showOverflowOnHover,maskContents,maskObjects,liveContentResizing,containerSelector,children,initChildren,resizeChildren,destroyChildren,onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end".split(","),noDefault:"paneSelector,resizerCursor,customHotkey".split(",")},$.layout.transformData=function(e,t){var i,s,n,a,o,l,r,d=t?{panes:{},center:{}}:{};if("object"!=typeof e)return d;for(s in e)for(i=d,o=e[s],r=(n=s.split("__")).length-1,l=0;l<=r;l++)a=n[l],l===r?$.isPlainObject(o)?i[a]=$.layout.transformData(o):i[a]=o:(i[a]||(i[a]={}),i=i[a]);return d},$.layout.backwardCompatibility={map:{applyDefaultStyles:"applyDemoStyles",childOptions:"children",initChildLayout:"initChildren",destroyChildLayout:"destroyChildren",resizeChildLayout:"resizeChildren",resizeNestedLayout:"resizeChildren",resizeWhileDragging:"livePaneResizing",resizeContentWhileDragging:"liveContentResizing",triggerEventsWhileDragging:"triggerEventsDuringLiveResize",maskIframesOnResize:"maskContents",useStateCookie:"stateManagement.enabled","cookie.autoLoad":"stateManagement.autoLoad","cookie.autoSave":"stateManagement.autoSave","cookie.keys":"stateManagement.stateKeys","cookie.name":"stateManagement.cookie.name","cookie.domain":"stateManagement.cookie.domain","cookie.path":"stateManagement.cookie.path","cookie.expires":"stateManagement.cookie.expires","cookie.secure":"stateManagement.cookie.secure",noRoomToOpenTip:"tips.noRoomToOpen",togglerTip_open:"tips.Close",togglerTip_closed:"tips.Open",resizerTip:"tips.Resize",sliderTip:"tips.Slide"},renameOptions:function(l){var e,t,i,s=$.layout.backwardCompatibility.map;for(var n in s)void 0!==(i=(e=a(n)).branch[e.key])&&((t=a(s[n],!0)).branch[t.key]=i,delete e.branch[e.key]);function a(e,t){for(var i,s=e.split("."),n=s.length-1,a={branch:l,key:s[n]},o=0;o<n;o++)i=s[o],null==a.branch[i]?a.branch=t?a.branch[i]={}:{}:a.branch=a.branch[i];return a}},renameAllOptions:function(i){var s=$.layout.backwardCompatibility.renameOptions;return s(i),i.defaults&&("object"!=typeof i.panes&&(i.panes={}),$.extend(!0,i.panes,i.defaults),delete i.defaults),i.panes&&s(i.panes),$.each($.layout.config.allPanes,function(e,t){i[t]&&s(i[t])}),i}},$.fn.layout=function(opts){var browser=$.layout.browser,_c=$.layout.config,cssW=$.layout.cssWidth,cssH=$.layout.cssHeight,elDims=$.layout.getElementDimensions,styles=$.layout.getElementStyles,evtObj=$.layout.getEventObject,evtPane=$.layout.parsePaneName,options=$.extend(!0,{},$.layout.defaults),effects=options.effects=$.extend(!0,{},$.layout.effects),state={id:"layout"+$.now(),initialized:!1,paneResizing:!1,panesSliding:{},container:{innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0,layoutWidth:0,layoutHeight:0},north:{childIdx:0},south:{childIdx:0},east:{childIdx:0},west:{childIdx:0},center:{childIdx:0}},children={north:null,south:null,east:null,west:null,center:null},timer={data:{},set:function(e,t,i){timer.clear(e),timer.data[e]=setTimeout(t,i)},clear:function(e){var t=timer.data;t[e]&&(clearTimeout(t[e]),delete t[e])}},_log=function(e,t,i){var s=options;return(s.showErrorMessages&&!i||i&&s.showDebugMessages)&&$.layout.msg(s.name+" / "+e,!1!==t),!1},_runCallbacks=function(evtName,pane,skipBoundEvents){var hasPane=pane&&isStr(pane),s=hasPane?state[pane]:state,o=hasPane?options[pane]:options,lName=options.name,lng=evtName+(evtName.match(/_/)?"":"_end"),shrt=lng.match(/_end$/)?lng.substr(0,lng.length-4):"",fn=o[lng]||o[shrt],retVal="NC",args=[],$P=hasPane?$Ps[pane]:0;if(hasPane&&!$P)return retVal;if(hasPane||"boolean"!==$.type(pane)||(skipBoundEvents=pane,pane=""),fn)try{isStr(fn)&&(fn=fn.match(/,/)?(args=fn.split(","),eval(args[0])):eval(fn)),$.isFunction(fn)&&(retVal=args.length?g(fn)(args[1]):hasPane?g(fn)(pane,$Ps[pane],s,o,lName):g(fn)(Instance,s,o,lName))}catch(e){_log(options.errors.callbackError.replace(/EVENT/,$.trim((pane||"")+" "+lng)),!1),"string"===$.type(e)&&string.length&&_log("Exception: "+e,!1)}return skipBoundEvents||!1===retVal||(hasPane?(o=options[pane],s=state[pane],$P.triggerHandler("layoutpane"+lng,[pane,$P,s,o,lName]),shrt&&$P.triggerHandler("layoutpane"+shrt,[pane,$P,s,o,lName])):($N.triggerHandler("layout"+lng,[Instance,s,o,lName]),shrt&&$N.triggerHandler("layout"+shrt,[Instance,s,o,lName]))),hasPane&&"onresize_end"===evtName&&resizeChildren(pane+"",!0),retVal;function g(e){return e}},_fixIframe=function(e){if(!browser.mozilla){var t=$Ps[e];"IFRAME"===state[e].tagName?t.css(_c.hidden).css(_c.visible):t.find("IFRAME").css(_c.hidden).css(_c.visible)}},cssSize=function(e,t){return("horz"==_c[e].dir?cssH:cssW)($Ps[e],t)},cssMinDims=function(e){var t=$Ps[e],i=_c[e].dir,s={minWidth:1001-cssW(t,1e3),minHeight:1001-cssH(t,1e3)};return"horz"===i&&(s.minSize=s.minHeight),"vert"===i&&(s.minSize=s.minWidth),s},setOuterWidth=function(e,t,i){var s,n=e;isStr(e)?n=$Ps[e]:e.jquery||(n=$(e)),s=cssW(n,t),n.css({width:s}),0<s?i&&n.data("autoHidden")&&0<n.innerHeight()&&(n.show().data("autoHidden",!1),browser.mozilla||n.css(_c.hidden).css(_c.visible)):i&&!n.data("autoHidden")&&n.hide().data("autoHidden",!0)},setOuterHeight=function(e,t,i){var s,n=e;isStr(e)?n=$Ps[e]:e.jquery||(n=$(e)),s=cssH(n,t),n.css({height:s,visibility:"visible"}),0<s&&0<n.innerWidth()?i&&n.data("autoHidden")&&(n.show().data("autoHidden",!1),browser.mozilla||n.css(_c.hidden).css(_c.visible)):i&&!n.data("autoHidden")&&n.hide().data("autoHidden",!0)},_parseSize=function(e,t,i){if(i||(i=_c[e].dir),isStr(t)&&t.match(/%/)&&(t="100%"===t?-1:parseInt(t,10)/100),0===t)return 0;if(1<=t)return parseInt(t,10);var s=options,n=0;if("horz"==i?n=sC.innerHeight-($Ps.north?s.north.spacing_open:0)-($Ps.south?s.south.spacing_open:0):"vert"==i&&(n=sC.innerWidth-($Ps.west?s.west.spacing_open:0)-($Ps.east?s.east.spacing_open:0)),-1===t)return n;if(0<t)return round(n*t);if("center"==e)return 0;var a="horz"===i?"height":"width",o=$Ps[e],l="height"===a&&$Cs[e],r=$.layout.showInvisibly(o),d=o.css(a),c=l?l.css(a):0;return o.css(a,"auto"),l&&l.css(a,"auto"),t="height"===a?o.outerHeight():o.outerWidth(),o.css(a,d).css(r),l&&l.css(a,c),t},getPaneSize=function(e,t){var i=$Ps[e],s=options[e],n=state[e],a=t?s.spacing_open:0,o=t?s.spacing_closed:0;return!i||n.isHidden?0:n.isClosed||n.isSliding&&t?o:"horz"===_c[e].dir?i.outerHeight()+a:i.outerWidth()+a},setSizeLimits=function(e,t){if(isInitialized()){var i=options[e],s=state[e],n=_c[e],a=n.dir,o=(n.sizeType.toLowerCase(),null!=t?t:s.isSliding),l=($Ps[e],i.spacing_open),r=_c.oppositeEdge[e],d=state[r],c=$Ps[r],u=!c||!1===d.isVisible||d.isSliding?0:"horz"==a?c.outerHeight():c.outerWidth(),p=(!c||d.isHidden?0:options[r][!1!==d.isClosed?"spacing_closed":"spacing_open"])||0,g="horz"==a?sC.innerHeight:sC.innerWidth,h=cssMinDims("center"),f="horz"==a?max(options.center.minHeight,h.minHeight):max(options.center.minWidth,h.minWidth),m=g-l-(o?0:_parseSize("center",f,a)+u+p),b=s.minSize=max(_parseSize(e,i.minSize),cssMinDims(e).minSize),v=s.maxSize=min(i.maxSize?_parseSize(e,i.maxSize):1e5,m),y=s.resizerPosition={},z=sC.inset.top,$=sC.inset.left,C=sC.innerWidth,w=sC.innerHeight,S=i.spacing_open;switch(e){case"north":y.min=z+b,y.max=z+v;break;case"west":y.min=$+b,y.max=$+v;break;case"south":y.min=z+w-v-S,y.max=z+w-b-S;break;case"east":y.min=$+C-v-S,y.max=$+C-b-S}}},calcNewCenterPaneDims=function(){var e={top:getPaneSize("north",!0),bottom:getPaneSize("south",!0),left:getPaneSize("west",!0),right:getPaneSize("east",!0),width:0,height:0};return e.width=sC.innerWidth-e.left-e.right,e.height=sC.innerHeight-e.bottom-e.top,e.top+=sC.inset.top,e.bottom+=sC.inset.bottom,e.left+=sC.inset.left,e.right+=sC.inset.right,e},getHoverClasses=function(e,t){var i=$(e),s=i.data("layoutRole"),n=i.data("layoutEdge"),a=options[n][s+"Class"],o="-"+n,l="-closed",r="-sliding",d="-hover ",c=i.hasClass(a+l)?l:"-open",u=c===l?"-open":l,p=a+d+(a+o+d)+(a+c+d)+(a+o+c+d);return t&&(p+=a+u+d+(a+o+u+d)),"resizer"==s&&i.hasClass(a+r)&&(p+=a+r+d+(a+o+r+d)),$.trim(p)},addHover=function(e,t){var i=$(t||this);e&&"toggler"===i.data("layoutRole")&&e.stopPropagation(),i.addClass(getHoverClasses(i))},removeHover=function(e,t){var i=$(t||this);i.removeClass(getHoverClasses(i,!0))},onResizerEnter=function(e){var t=$(this).data("layoutEdge"),i=state[t];$(document);i.isResizing||state.paneResizing||options.maskPanesEarly&&showMasks(t,{resizing:!0})},onResizerLeave=function(e,t){var i=t||this,s=$(i).data("layoutEdge"),n=s+"ResizerLeave";$(document);timer.clear(s+"_openSlider"),timer.clear(n),t?options.maskPanesEarly&&!state.paneResizing&&hideMasks():timer.set(n,function(){onResizerLeave(e,i)},200)},_create=function(){initOptions();var e=options,t=state;return t.creatingLayout=!0,runPluginCallbacks(Instance,$.layout.onCreate),!1===_runCallbacks("onload_start")?"cancel":(_initContainer(),initHotkeys(),$(window).bind("unload."+sID,unload),runPluginCallbacks(Instance,$.layout.onLoad),e.initPanes&&_initLayoutElements(),delete t.creatingLayout,state.initialized)},isInitialized=function(){return!(!state.initialized&&!state.creatingLayout)||_initLayoutElements()},_initLayoutElements=function(e){var t=options;if(!$N.is(":visible"))return!e&&browser.webkit&&"BODY"===$N[0].tagName&&setTimeout(function(){_initLayoutElements(!0)},50),!1;if(!getPane("center").length)return _log(t.errors.centerPaneMissing);if(state.creatingLayout=!0,$.extend(sC,elDims($N,t.inset)),initPanes(),t.scrollToBookmarkOnLoad){var i=self.location;i.hash&&i.replace(i.hash)}return Instance.hasParentLayout?t.resizeWithWindow=!1:t.resizeWithWindow&&$(window).bind("resize."+sID,windowResize),delete state.creatingLayout,state.initialized=!0,runPluginCallbacks(Instance,$.layout.onReady),_runCallbacks("onload_end"),!0},createChildren=function(e,t){var a=evtPane.call(this,e),i=$Ps[a];if(i){var s=$Cs[a],o=state[a],n=options[a],l=options.stateManagement||{},r=t?n.children=t:n.children;if($.isPlainObject(r))r=[r];else if(!r||!$.isArray(r))return;$.each(r,function(e,n){$.isPlainObject(n)&&(n.containerSelector?i.find(n.containerSelector):s||i).each(function(){var e=$(this),t=e.data("layout");if(!t){if(setInstanceKey({container:e,options:n},o),l.includeChildren&&state.stateData[a]){var i=(state.stateData[a].children||{})[n.instanceKey],s=n.stateManagement||(n.stateManagement={autoLoad:!0});!0===s.autoLoad&&i&&(s.autoSave=!1,s.includeChildren=!0,s.autoLoad=$.extend(!0,{},i))}(t=e.layout(n))&&refreshChildren(a,t)}})})}},setInstanceKey=function(e,t){var i=e.container,s=e.options,n=s.stateManagement,a=s.instanceKey||i.data("layoutInstanceKey");return a||(a=(n&&n.cookie?n.cookie.name:"")||s.name),a=a?a.replace(/[^\w-]/gi,"_").replace(/_{2,}/g,"_"):"layout"+ ++t.childIdx,s.instanceKey=a,i.data("layoutInstanceKey",a),a},refreshChildren=function(e,t){var i,s=$Ps[e],n=children[e],a=state[e];$.isPlainObject(n)&&($.each(n,function(e,t){t.destroyed&&delete n[e]}),$.isEmptyObject(n)&&(n=children[e]=null)),t||n||(t=s.data("layout")),t&&(t.hasParentLayout=!0,i=t.options,setInstanceKey(t,a),n||(n=children[e]={}),n[i.instanceKey]=t.container.data("layout")),Instance[e].children=children[e],t||createChildren(e)},windowResize=function(){var t=options,e=Number(t.resizeWithWindowDelay);e<10&&(e=100),timer.clear("winResize"),timer.set("winResize",function(){timer.clear("winResize"),timer.clear("winResizeRepeater");var e=elDims($N,t.inset);e.innerWidth===sC.innerWidth&&e.innerHeight===sC.innerHeight||resizeAll()},e),timer.data.winResizeRepeater||setWindowResizeRepeater()},setWindowResizeRepeater=function(){var e=Number(options.resizeWithWindowMaxDelay);0<e&&timer.set("winResizeRepeater",function(){setWindowResizeRepeater(),resizeAll()},e)},unload=function(){_runCallbacks("onunload_start"),runPluginCallbacks(Instance,$.layout.onUnload),_runCallbacks("onunload_end")},_initContainer=function(){var e,t,i=$N[0],s=$("html"),n=sC.tagName=i.tagName,a=sC.id=i.id,o=sC.className=i.className,l=options,r=l.name,d="position,margin,padding,border",c="layoutCSS",u={},p="hidden",g=$N.data("parentLayout"),h=$N.data("layoutEdge"),f=g&&h,m=$.layout.cssNum;sC.selector=$N.selector.split(".slice")[0],sC.ref=(l.name?l.name+" layout / ":"")+n+(a?"#"+a:o?".["+o+"]":""),sC.isBody="BODY"===n,f||sC.isBody||(g=(e=$N.closest("."+$.layout.defaults.panes.paneClass)).data("parentLayout"),h=e.data("layoutEdge"),f=g&&h),$N.data({layout:Instance,layoutContainer:sID}).addClass(l.containerClass);var b={destroy:"",initPanes:"",resizeAll:"resizeAll",resize:"resizeAll"};for(r in b)$N.bind("layout"+r.toLowerCase()+"."+sID,Instance[b[r]||r]);f&&(Instance.hasParentLayout=!0,g.refreshChildren(h,Instance)),$N.data(c)||(sC.isBody?($N.data(c,$.extend(styles($N,d),{height:$N.css("height"),overflow:$N.css("overflow"),overflowX:$N.css("overflowX"),overflowY:$N.css("overflowY")})),s.data(c,$.extend(styles(s,"padding"),{height:"auto",overflow:s.css("overflow"),overflowX:s.css("overflowX"),overflowY:s.css("overflowY")}))):$N.data(c,styles($N,d+",top,bottom,left,right,width,height,overflow,overflowX,overflowY")));try{if(u={overflow:p,overflowX:p,overflowY:p},$N.css(u),l.inset&&!$.isPlainObject(l.inset)&&(t=parseInt(l.inset,10)||0,l.inset={top:t,bottom:t,left:t,right:t}),sC.isBody)l.outset?$.isPlainObject(l.outset)||(t=parseInt(l.outset,10)||0,l.outset={top:t,bottom:t,left:t,right:t}):l.outset={top:m(s,"paddingTop"),bottom:m(s,"paddingBottom"),left:m(s,"paddingLeft"),right:m(s,"paddingRight")},s.css(u).css({height:"100%",border:"none",padding:0,margin:0}),browser.isIE6?($N.css({width:"100%",height:"100%",border:"none",padding:0,margin:0,position:"relative"}),l.inset||(l.inset=elDims($N).inset)):($N.css({width:"auto",height:"auto",margin:0,position:"absolute"}),$N.css(l.outset)),$.extend(sC,elDims($N,l.inset));else{var v=$N.css("position");v&&v.match(/(fixed|absolute|relative)/)||$N.css("position","relative"),$N.is(":visible")&&($.extend(sC,elDims($N,l.inset)),sC.innerHeight<1&&_log(l.errors.noContainerHeight.replace(/CONTAINER/,sC.ref)))}m($N,"minWidth")&&$N.parent().css("overflowX","auto"),m($N,"minHeight")&&$N.parent().css("overflowY","auto")}catch(e){}},initHotkeys=function(e){e=e?e.split(","):_c.borderPanes,$.each(e,function(e,t){var i=options[t];if(i.enableCursorHotkey||i.customHotkey)return $(document).bind("keydown."+sID,keyDown),!1})},initOptions=function(){var i,s,n,e,t,a,o;if(opts=$.layout.transformData(opts,!0),opts=$.layout.backwardCompatibility.renameAllOptions(opts),!$.isEmptyObject(opts.panes)){for(i=$.layout.optionsMap.noDefault,t=0,a=i.length;t<a;t++)n=i[t],delete opts.panes[n];for(i=$.layout.optionsMap.layout,t=0,a=i.length;t<a;t++)n=i[t],delete opts.panes[n]}i=$.layout.optionsMap.layout;var l=$.layout.config.optionRootKeys;for(n in opts)e=opts[n],$.inArray(n,l)<0&&$.inArray(n,i)<0&&(opts.panes[n]||(opts.panes[n]=$.isPlainObject(e)?$.extend(!0,{},e):e),delete opts[n]);$.extend(!0,options,opts),$.each(_c.allPanes,function(e,t){if(_c[t]=$.extend(!0,{},_c.panes,_c[t]),s=options.panes,o=options[t],"center"===t)for(i=$.layout.optionsMap.center,e=0,a=i.length;e<a;e++)n=i[e],opts.center[n]||!opts.panes[n]&&o[n]||(o[n]=s[n]);else o=options[t]=$.extend(!0,{},s,o),function(c){var u=options[c],p=options.panes;u.fxSettings||(u.fxSettings={});p.fxSettings||(p.fxSettings={});$.each(["_open","_close","_size"],function(e,t){var i="fxName"+t,s="fxSpeed"+t,n="fxSettings"+t,a=u[i]=u[i]||p[i]||u.fxName||p.fxName||"none",o=$.effects&&($.effects[a]||$.effects.effect&&$.effects.effect[a]);"none"!==a&&options.effects[a]&&o||(a=u[i]="none");var l=options.effects[a]||{},r=l.all||null,d=l[c]||null;u[s]=u[s]||p[s]||u.fxSpeed||p.fxSpeed||null,u[n]=$.extend(!0,{},r,d,p.fxSettings,u.fxSettings,p[n],u[n])}),delete u.fxName,delete u.fxSpeed,delete u.fxSettings}(t),o.resizerClass||(o.resizerClass="ui-layout-resizer"),o.togglerClass||(o.togglerClass="ui-layout-toggler");o.paneClass||(o.paneClass="ui-layout-pane")});var r=opts.zIndex,d=options.zIndexes;0<r&&(d.pane_normal=r,d.content_mask=max(r+1,d.content_mask),d.resizer_normal=max(r+2,d.resizer_normal)),delete options.panes},getPane=function(e){var t=options[e].paneSelector;if("#"===t.substr(0,1))return $N.find(t).eq(0);var i=$N.children(t).eq(0);return i.length?i:$N.children("form:first").children(t).eq(0)},initPanes=function(e){evtPane(e),$.each(_c.allPanes,function(e,t){addPane(t,!0)}),initHandles(),$.each(_c.borderPanes,function(e,t){$Ps[t]&&state[t].isVisible&&(setSizeLimits(t),makePaneFit(t))}),sizeMidPanes("center"),$.each(_c.allPanes,function(e,t){afterInitPane(t)})},addPane=function(e,t){if(t||isInitialized()){var i,s,n,a=options[e],o=state[e],l=_c[e],r=l.dir,d=(o.fx,a.spacing_open,"center"===e),c={},u=$Ps[e];if(u?removePane(e,!1,!0,!1):$Cs[e]=!1,(u=$Ps[e]=getPane(e)).length){if(!u.data("layoutCSS")){u.data("layoutCSS",styles(u,"position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"))}Instance[e]={name:e,pane:$Ps[e],content:$Cs[e],options:options[e],state:state[e],children:children[e]},u.data({parentLayout:Instance,layoutPane:Instance[e],layoutEdge:e,layoutRole:"pane"}).css(l.cssReq).css("zIndex",options.zIndexes.pane_normal).css(a.applyDemoStyles?l.cssDemo:{}).addClass(a.paneClass+" "+a.paneClass+"-"+e).bind("mouseenter."+sID,addHover).bind("mouseleave."+sID,removeHover);var p,g={hide:"",show:"",toggle:"",close:"",open:"",slideOpen:"",slideClose:"",slideToggle:"",size:"sizePane",sizePane:"sizePane",sizeContent:"",sizeHandles:"",enableClosable:"",disableClosable:"",enableSlideable:"",disableSlideable:"",enableResizable:"",disableResizable:"",swapPanes:"swapPanes",swap:"swapPanes",move:"swapPanes",removePane:"removePane",remove:"removePane",createChildren:"",resizeChildren:"",resizeAll:"resizeAll",resizeLayout:"resizeAll"};for(p in g)u.bind("layoutpane"+p.toLowerCase()+"."+sID,Instance[g[p]||p]);initContent(e,!1),d||(i=o.size=_parseSize(e,a.size),s=_parseSize(e,a.minSize)||1,n=_parseSize(e,a.maxSize)||1e5,0<i&&(i=max(min(i,n),s)),o.autoResize=a.autoResize,o.isClosed=!1,o.isSliding=!1,o.isResizing=!1,o.isHidden=!1,o.pins||(o.pins=[])),o.tagName=u[0].tagName,o.edge=e,o.noRoom=!1,o.isVisible=!0,setPanePosition(e),"horz"===r?c.height=cssH(u,i):"vert"===r&&(c.width=cssW(u,i)),u.css(c),"horz"!=r&&sizeMidPanes(e,!0),state.initialized&&(initHandles(e),initHotkeys(e)),a.initClosed&&a.closable&&!a.initHidden?close(e,!0,!0):a.initHidden||a.initClosed?hide(e):o.noRoom||u.css("display","flex"),u.css("visibility","visible"),a.showOverflowOnHover&&u.hover(allowOverflow,resetOverflow),state.initialized&&afterInitPane(e)}else $Ps[e]=!1}},afterInitPane=function(e){var t=$Ps[e],i=state[e],s=options[e];t&&(t.data("layout")&&refreshChildren(e,t.data("layout")),i.isVisible&&(state.initialized?resizeAll():sizeContent(e),s.triggerEventsOnLoad?_runCallbacks("onresize_end",e):resizeChildren(e,!0)),s.initChildren&&s.children&&createChildren(e))},setPanePosition=function(e){e=e?e.split(","):_c.borderPanes,$.each(e,function(e,t){var i=$Ps[t],s=$Rs[t],n=(options[t],state[t]),a=_c[t].side,o={};if(i){switch(t){case"north":o.top=sC.inset.top,o.left=sC.inset.left,o.right=sC.inset.right;break;case"south":o.bottom=sC.inset.bottom,o.left=sC.inset.left,o.right=sC.inset.right;break;case"west":o.left=sC.inset.left;break;case"east":o.right=sC.inset.right}i.css(o),s&&n.isClosed?s.css(a,sC.inset[a]):s&&!n.isHidden&&s.css(a,sC.inset[a]+getPaneSize(t))}})},initHandles=function(e){e=e?e.split(","):_c.borderPanes,$.each(e,function(e,t){var i=$Ps[t];if($Rs[t]=!1,$Ts[t]=!1,i){var s=options[t],n=state[t],a=(_c[t],"#"===s.paneSelector.substr(0,1)?s.paneSelector.substr(1):""),o=s.resizerClass,l=s.togglerClass,r=(n.isVisible?s.spacing_open:s.spacing_closed,"-"+t),d=(n.isVisible,Instance[t]),c=d.resizer=$Rs[t]=$("<div></div>"),u=d.toggler=!!s.closable&&($Ts[t]=$("<div></div>"));!n.isVisible&&s.slidable&&c.attr("title",s.tips.Slide).css("cursor",s.sliderCursor),c.attr("id",a?a+"-resizer":"").data({parentLayout:Instance,layoutPane:Instance[t],layoutEdge:t,layoutRole:"resizer"}).css(_c.resizers.cssReq).css("zIndex",options.zIndexes.resizer_normal).css(s.applyDemoStyles?_c.resizers.cssDemo:{}).addClass(o+" "+o+r).hover(addHover,removeHover).hover(onResizerEnter,onResizerLeave).mousedown($.layout.disableTextSelection).mouseup($.layout.enableTextSelection).appendTo($N),$.fn.disableSelection&&c.disableSelection(),s.resizerDblClickToggle&&c.bind("dblclick."+sID,toggle),u&&(u.attr("id",a?a+"-toggler":"").data({parentLayout:Instance,layoutPane:Instance[t],layoutEdge:t,layoutRole:"toggler"}).css(_c.togglers.cssReq).css(s.applyDemoStyles?_c.togglers.cssDemo:{}).addClass(l+" "+l+r).hover(addHover,removeHover).bind("mouseenter",onResizerEnter).appendTo(c),s.togglerContent_open&&$("<span>"+s.togglerContent_open+"</span>").data({layoutEdge:t,layoutRole:"togglerContent"}).data("layoutRole","togglerContent").data("layoutEdge",t).addClass("content content-open").css("display","none").appendTo(u),s.togglerContent_closed&&$("<span>"+s.togglerContent_closed+"</span>").data({layoutEdge:t,layoutRole:"togglerContent"}).addClass("content content-closed").css("display","none").appendTo(u),enableClosable(t)),initResizable(t),n.isVisible?setAsOpen(t):(setAsClosed(t),bindStartSlidingEvents(t,!0))}}),sizeHandles()},initContent=function(e,t){if(isInitialized()){var i,s=options[e],n=s.contentSelector,a=Instance[e],o=$Ps[e];n&&(i=a.content=$Cs[e]=s.findNestedContent?o.find(n).eq(0):o.children(n).eq(0)),i&&i.length?(i.data("layoutRole","content"),i.data("layoutCSS")||i.data("layoutCSS",styles(i,"height")),i.css(_c.content.cssReq),s.applyDemoStyles&&(i.css(_c.content.cssDemo),o.css(_c.content.cssDemoPane)),o.css("overflowX").match(/(scroll|auto)/)&&o.css("overflow","hidden"),!(state[e].content={})!==t&&sizeContent(e)):a.content=$Cs[e]=!1}},initResizable=function(e){var y=$.layout.plugins.draggable;e=e?e.split(","):_c.borderPanes,$.each(e,function(e,s){var n=options[s];if(!y||!$Ps[s]||!n.resizable)return!(n.resizable=!1);var a,o,l=state[s],r=options.zIndexes,t=_c[s],d="horz"==t.dir?"top":"left",i=($Ps[s],$Rs[s]),c=n.resizerClass,u=0,p=c+"-drag",g=c+"-"+s+"-drag",h=c+"-dragging",f=c+"-"+s+"-dragging",m=c+"-dragging-limit",b=c+"-"+s+"-dragging-limit",v=!1;l.isClosed||i.attr("title",n.tips.Resize).css("cursor",n.resizerCursor),i.draggable({containment:$N[0],axis:"horz"==t.dir?"y":"x",delay:0,distance:1,grid:n.resizingGrid,helper:"clone",opacity:n.resizerDragOpacity,addClasses:!1,zIndex:r.resizer_drag,start:function(e,t){if(n=options[s],l=state[s],o=n.livePaneResizing,!1===_runCallbacks("ondrag_start",s))return!1;l.isResizing=!0,state.paneResizing=s,timer.clear(s+"_closeSlider"),setSizeLimits(s),a=l.resizerPosition,u=t.position[d],i.addClass(p+" "+g),showMasks(s,{resizing:!(v=!1)})},drag:function(e,t){v||(t.helper.addClass(h+" "+f).css({right:"auto",bottom:"auto"}).children().css("visibility","hidden"),v=!0,l.isSliding&&$Ps[s].css("zIndex",r.pane_sliding));var i=0;t.position[d]<a.min?(t.position[d]=a.min,i=-1):t.position[d]>a.max&&(t.position[d]=a.max,i=1),window.defaultStatus=i?(t.helper.addClass(m+" "+b),0<i&&s.match(/(north|west)/)||i<0&&s.match(/(south|east)/)?n.tips.maxSizeWarning:n.tips.minSizeWarning):(t.helper.removeClass(m+" "+b),""),o&&Math.abs(t.position[d]-u)>=n.liveResizingTolerance&&(u=t.position[d],z(e,t,s))},stop:function(e,t){$("body").enableSelection(),window.defaultStatus="",i.removeClass(p+" "+g),l.isResizing=!1,state.paneResizing=!1,z(e,t,s,!0)}})});var z=function(e,t,i,s){var n,a=t.position,o=_c[i],l=options[i],r=state[i];switch(i){case"north":n=a.top;break;case"west":n=a.left;break;case"south":n=sC.layoutHeight-a.top-l.spacing_open;break;case"east":n=sC.layoutWidth-a.left-l.spacing_open}var d=n-sC.inset[o.side];if(s)!1!==_runCallbacks("ondrag_end",i)&&manualSizePane(i,d,!1,!0),hideMasks(!0),r.isSliding&&showMasks(i,{resizing:!0});else{if(Math.abs(d-r.size)<l.liveResizingTolerance)return;manualSizePane(i,d,!1,!0),sizeMasks()}}},sizeMask=function(){var e=$(this),t=e.data("layoutMask"),i=state[t];"IFRAME"==i.tagName&&i.isVisible&&e.css({top:i.offsetTop,left:i.offsetLeft,width:i.outerWidth,height:i.outerHeight})},sizeMasks=function(){$Ms.each(sizeMask)},showMasks=function(e,t){var i,s,n=_c[e],a=["center"],o=options.zIndexes,l=$.extend({objectsOnly:!1,animation:!1,resizing:!0,sliding:state[e].isSliding},t);l.resizing&&a.push(e),l.sliding&&a.push(_c.oppositeEdge[e]),"horz"===n.dir&&(a.push("west"),a.push("east")),$.each(a,function(e,t){s=state[t],i=options[t],s.isVisible&&(i.maskObjects||!l.objectsOnly&&i.maskContents)&&getMasks(t).each(function(){sizeMask.call(this),this.style.zIndex=s.isSliding?o.pane_sliding+1:o.pane_normal+1,this.style.display="flex"})})},hideMasks=function(e){if(e||!state.paneResizing)$Ms.hide();else if(!e&&!$.isEmptyObject(state.panesSliding))for(var t,i,s=$Ms.length-1;0<=s;s--)t=(i=$Ms.eq(s)).data("layoutMask"),options[t].maskObjects||i.hide()},getMasks=function(e){for(var t,i=$([]),s=0,n=$Ms.length;s<n;s++)(t=$Ms.eq(s)).data("layoutMask")===e&&(i=i.add(t));return i.length?i:createMasks(e)},createMasks=function(e){var t,i,s,n,a,o=$Ps[e],l=state[e],r=options[e],d=options.zIndexes;if(!r.maskContents&&!r.maskObjects)return $([]);for(a=0;a<(r.maskObjects?2:1);a++)t=r.maskObjects&&0==a,i=document.createElement(t?"iframe":"div"),s=$(i).data("layoutMask",e),i.className="ui-layout-mask ui-layout-mask-"+e,(n=i.style).background="#FFF",n.position="absolute",n.display="flex",n.filter=t?(i.src="about:blank",i.frameborder=0,n.border=0,n.opacity=0,"Alpha(Opacity='0')"):(n.opacity=.001,"Alpha(Opacity='1')"),"IFRAME"==l.tagName?(n.zIndex=d.pane_normal+1,$N.append(i)):(s.addClass("ui-layout-mask-inside-pane"),n.zIndex=r.maskZindex||d.content_mask,n.top=0,n.left=0,n.width="100%",n.height="100%",o.append(i)),$Ms=$Ms.add(i);return $Ms},destroy=function(e,i){$(window).unbind("."+sID),$(document).unbind("."+sID),"object"==typeof e?evtPane(e):i=e,$N.clearQueue().removeData("layout").removeData("layoutContainer").removeClass(options.containerClass).unbind("."+sID),$Ms.remove(),$.each(_c.allPanes,function(e,t){removePane(t,!1,!0,i)});var t="layoutCSS";for(var s in $N.data(t)&&!$N.data("layoutRole")&&$N.css($N.data(t)).removeData(t),"BODY"===sC.tagName&&($N=$("html")).data(t)&&$N.css($N.data(t)).removeData(t),runPluginCallbacks(Instance,$.layout.onDestroy),unload(),Instance)s.match(/^(container|options)$/)||delete Instance[s];return Instance.destroyed=!0,Instance},removePane=function(e,t,i,s){if(isInitialized()){var n=evtPane.call(this,e),a=$Ps[n],o=$Cs[n],l=$Rs[n],r=$Ts[n];a&&$.isEmptyObject(a.data())&&(a=!1),o&&$.isEmptyObject(o.data())&&(o=!1),l&&$.isEmptyObject(l.data())&&(l=!1),r&&$.isEmptyObject(r.data())&&(r=!1),a&&a.stop(!0,!0);var d=options[n],c=(state[n],"layoutCSS"),u=children[n],p=$.isPlainObject(u)&&!$.isEmptyObject(u),g=void 0!==s?s:d.destroyChildren;if(p&&g&&($.each(u,function(e,t){t.destroyed||t.destroy(!0),t.destroyed&&delete u[e]}),$.isEmptyObject(u)&&(u=children[n]=null,p=!1)),a&&t&&!p)a.remove();else if(a&&a[0]){var h=d.paneClass,f=h+"-"+n,m="-sliding",b="-closed",v=[h,h+"-open",h+b,h+m,f,f+"-open",f+b,f+m];$.merge(v,getHoverClasses(a,!0)),a.removeClass(v.join(" ")).removeData("parentLayout").removeData("layoutPane").removeData("layoutRole").removeData("layoutEdge").removeData("autoHidden").unbind("."+sID),p&&o?(o.width(o.width()),$.each(u,function(e,t){t.resizeAll()})):o&&o.css(o.data(c)).removeData(c).removeData("layoutRole"),a.data("layout")||a.css(a.data(c)).removeData(c)}r&&r.remove(),l&&l.remove(),Instance[n]=$Ps[n]=$Cs[n]=$Rs[n]=$Ts[n]=!1,{removed:!0},i||resizeAll()}},_hidePane=function(e){var t=$Ps[e],i=options[e],s=t[0].style;i.useOffscreenClose?(t.data(_c.offscreenReset)||t.data(_c.offscreenReset,{left:s.left,right:s.right}),t.css(_c.offscreenCSS)):t.hide().removeData(_c.offscreenReset)},_showPane=function(e){var t=$Ps[e],i=options[e],s=_c.offscreenCSS,n=t.data(_c.offscreenReset),a=t[0].style;t.show().removeData(_c.offscreenReset),i.useOffscreenClose&&n&&(a.left==s.left&&(a.left=n.left),a.right==s.right&&(a.right=n.right))},hide=function(e,t){if(isInitialized()){var i=evtPane.call(this,e),s=options[i],n=state[i],a=$Ps[i],o=$Rs[i];"center"!==i&&a&&!n.isHidden&&(state.initialized&&!1===_runCallbacks("onhide_start",i)||(n.isSliding=!1,delete state.panesSliding[i],o&&o.hide(),!state.initialized||n.isClosed?(n.isClosed=!0,n.isHidden=!0,n.isVisible=!1,state.initialized||_hidePane(i),sizeMidPanes("horz"===_c[i].dir?"":"center"),(state.initialized||s.triggerEventsOnLoad)&&_runCallbacks("onhide_end",i)):(n.isHiding=!0,close(i,!1,t))))}},show=function(e,t,i,s){if(isInitialized()){var n=evtPane.call(this,e),a=(options[n],state[n]),o=$Ps[n];$Rs[n];"center"!==n&&o&&a.isHidden&&!1!==_runCallbacks("onshow_start",n)&&(a.isShowing=!0,a.isSliding=!1,delete state.panesSliding[n],!1===t?close(n,!0):open(n,!1,i,s))}},toggle=function(e,t){if(isInitialized()){var i=evtObj(e),s=evtPane.call(this,e),n=state[s];i&&i.stopImmediatePropagation(),n.isHidden?show(s):n.isClosed?open(s,!!t):close(s)}},_closePane=function(e,t){$Ps[e];var i=state[e];_hidePane(e),i.isClosed=!0,i.isVisible=!1,t&&setAsClosed(e)},close=function(e,i,s,t){var n=evtPane.call(this,e);if("center"!==n)if(state.initialized||!$Ps[n]){if(isInitialized()){var a,o,l,r=$Ps[n],d=($Rs[n],$Ts[n],options[n]),c=state[n];_c[n];$N.queue(function(e){if(!r||!d.closable&&!c.isShowing&&!c.isHiding||!i&&c.isClosed&&!c.isShowing)return e();var t=!c.isShowing&&!1===_runCallbacks("onclose_start",n);if(o=c.isShowing,l=c.isHiding,c.isSliding,delete c.isShowing,delete c.isHiding,t)return e();a=!s&&!c.isClosed&&"none"!=d.fxName_close,c.isMoving=!0,c.isClosed=!0,c.isVisible=!1,l?c.isHidden=!0:o&&(c.isHidden=!1),c.isSliding?bindStopSlidingEvents(n,!1):sizeMidPanes("horz"===_c[n].dir?"":"center",!1),setAsClosed(n),a?(lockPaneForFX(n,!0),r.hide(d.fxName_close,d.fxSettings_close,d.fxSpeed_close,function(){lockPaneForFX(n,!1),c.isClosed&&u(),e()})):(_hidePane(n),u(),e())})}}else _closePane(n,!0);function u(){c.isMoving=!1,bindStartSlidingEvents(n,!0);var e=_c.oppositeEdge[n];state[e].noRoom&&(setSizeLimits(e),makePaneFit(e)),t||!state.initialized&&!d.triggerEventsOnLoad||(o||_runCallbacks("onclose_end",n),o&&_runCallbacks("onshow_end",n),l&&_runCallbacks("onhide_end",n))}},setAsClosed=function(e){if($Rs[e]){$Ps[e];var t=$Rs[e],i=$Ts[e],s=options[e],n=state[e],a=_c[e].side,o=s.resizerClass,l=s.togglerClass,r="-"+e,d="-open",c="-sliding",u="-closed";t.css(a,sC.inset[a]).removeClass(o+d+" "+o+r+d).removeClass(o+c+" "+o+r+c).addClass(o+u+" "+o+r+u),n.isHidden&&t.hide(),s.resizable&&$.layout.plugins.draggable&&t.draggable("disable").removeClass("ui-state-disabled").css("cursor","default").attr("title",""),i&&(i.removeClass(l+d+" "+l+r+d).addClass(l+u+" "+l+r+u).attr("title",s.tips.Open),i.children(".content-open").hide(),i.children(".content-closed").css("display","flex")),syncPinBtns(e,!1),state.initialized&&sizeHandles()}},open=function(e,i,s,n){if(isInitialized()){var a,o,l=evtPane.call(this,e),r=$Ps[l],d=($Rs[l],$Ts[l],options[l]),c=state[l];_c[l];"center"!==l&&$N.queue(function(e){if(!r||!d.resizable&&!d.closable&&!c.isShowing||c.isVisible&&!c.isSliding)return e();if(c.isHidden&&!c.isShowing)return e(),void show(l,!0);c.autoResize&&c.size!=d.size?sizePane(l,d.size,!0,!0,!0):setSizeLimits(l,i);var t=_runCallbacks("onopen_start",l);return"abort"===t?e():("NC"!==t&&setSizeLimits(l,i),c.minSize>c.maxSize?(syncPinBtns(l,!1),!n&&d.tips.noRoomToOpen&&alert(d.tips.noRoomToOpen),e()):(i?bindStopSlidingEvents(l,!0):c.isSliding?bindStopSlidingEvents(l,!1):d.slidable&&bindStartSlidingEvents(l,!1),c.noRoom=!1,makePaneFit(l),o=c.isShowing,delete c.isShowing,a=!s&&c.isClosed&&"none"!=d.fxName_open,c.isMoving=!0,c.isVisible=!0,c.isClosed=!1,o&&(c.isHidden=!1),void(a?(lockPaneForFX(l,!0),r.show(d.fxName_open,d.fxSettings_open,d.fxSpeed_open,function(){lockPaneForFX(l,!1),c.isVisible&&u(),e()})):(_showPane(l),u(),e()))))})}function u(){c.isMoving=!1,_fixIframe(l),c.isSliding||sizeMidPanes("vert"==_c[l].dir?"center":"",!1),setAsOpen(l)}},setAsOpen=function(e,t){var i=$Ps[e],s=$Rs[e],n=$Ts[e],a=options[e],o=state[e],l=_c[e].side,r=a.resizerClass,d=a.togglerClass,c="-"+e,u="-open",p="-closed",g="-sliding";s.css(l,sC.inset[l]+getPaneSize(e)).removeClass(r+p+" "+r+c+p).addClass(r+u+" "+r+c+u),o.isSliding?s.addClass(r+g+" "+r+c+g):s.removeClass(r+g+" "+r+c+g),removeHover(0,s),a.resizable&&$.layout.plugins.draggable?s.draggable("enable").css("cursor",a.resizerCursor).attr("title",a.tips.Resize):o.isSliding||s.css("cursor","default"),n&&(n.removeClass(d+p+" "+d+c+p).addClass(d+u+" "+d+c+u).attr("title",a.tips.Close),removeHover(0,n),n.children(".content-closed").hide(),n.children(".content-open").css("display","flex")),syncPinBtns(e,!o.isSliding),$.extend(o,elDims(i)),state.initialized&&(sizeHandles(),sizeContent(e,!0)),!t&&(state.initialized||a.triggerEventsOnLoad)&&i.is(":visible")&&(_runCallbacks("onopen_end",e),o.isShowing&&_runCallbacks("onshow_end",e),state.initialized&&_runCallbacks("onresize_end",e))},slideOpen=function(e){if(isInitialized()){var t=evtObj(e),i=evtPane.call(this,e),s=state[i],n=options[i].slideDelay_open;"center"!==i&&(t&&t.stopImmediatePropagation(),s.isClosed&&t&&"mouseenter"===t.type&&0<n?timer.set(i+"_openSlider",a,n):a())}function a(){s.isClosed?s.isMoving||open(i,!0):bindStopSlidingEvents(i,!0)}},slideClose=function(e){if(isInitialized()){var t=evtObj(e),i=evtPane.call(this,e),s=options[i],n=state[i],a=n.isMoving?1e3:300;if("center"!==i&&!n.isClosed&&!n.isResizing)if("click"===s.slideTrigger_close)o();else{if(s.preventQuickSlideClose&&n.isMoving)return;if(s.preventPrematureSlideClose&&t&&$.layout.isMouseOverElem(t,$Ps[i]))return;t?timer.set(i+"_closeSlider",o,max(s.slideDelay_close,a)):o()}}function o(){n.isClosed?bindStopSlidingEvents(i,!1):n.isMoving||close(i)}},slideToggle=function(e){var t=evtPane.call(this,e);toggle(t,!0)},lockPaneForFX=function(e,t){var i=$Ps[e],s=state[e],n=options[e],a=options.zIndexes;t?(showMasks(e,{animation:!0,objectsOnly:!0}),i.css({zIndex:a.pane_animate}),"south"==e?i.css({top:sC.inset.top+sC.innerHeight-i.outerHeight()}):"east"==e&&i.css({left:sC.inset.left+sC.innerWidth-i.outerWidth()})):(hideMasks(),i.css({zIndex:s.isSliding?a.pane_sliding:a.pane_normal}),"south"==e?i.css({top:"auto"}):"east"!=e||i.css("left").match(/\-99999/)||i.css({left:"auto"}),browser.msie&&n.fxOpacityFix&&"slide"!=n.fxName_open&&i.css("filter")&&1==i.css("opacity")&&i[0].style.removeAttribute("filter"))},bindStartSlidingEvents=function(e,t){var i=options[e],s=($Ps[e],$Rs[e]),n=i.slideTrigger_open.toLowerCase();!s||t&&!i.slidable||(n.match(/mouseover/)?n=i.slideTrigger_open="mouseenter":n.match(/(click|dblclick|mouseenter)/)||(n=i.slideTrigger_open="click"),i.resizerDblClickToggle&&n.match(/click/)&&s[t?"unbind":"bind"]("dblclick."+sID,toggle),s[t?"bind":"unbind"](n+"."+sID,slideOpen).css("cursor",t?i.sliderCursor:"default").attr("title",t?i.tips.Slide:""))},bindStopSlidingEvents=function(t,e){var i=options[t],s=state[t],n=(_c[t],options.zIndexes),a=i.slideTrigger_close.toLowerCase(),o=e?"bind":"unbind",l=$Ps[t],r=$Rs[t];function d(e){timer.clear(t+"_closeSlider"),e.stopPropagation()}timer.clear(t+"_closeSlider"),e?(s.isSliding=!0,state.panesSliding[t]=!0,bindStartSlidingEvents(t,!1)):(s.isSliding=!1,delete state.panesSliding[t]),l.css("zIndex",e?n.pane_sliding:n.pane_normal),r.css("zIndex",e?n.pane_sliding+2:n.resizer_normal),a.match(/(click|mouseleave)/)||(a=i.slideTrigger_close="mouseleave"),r[o](a,slideClose),"mouseleave"===a&&(l[o]("mouseleave."+sID,slideClose),r[o]("mouseenter."+sID,d),l[o]("mouseenter."+sID,d)),e?"click"!==a||i.resizable||(r.css("cursor",e?i.sliderCursor:"default"),r.attr("title",e?i.tips.Close:"")):timer.clear(t+"_closeSlider")},makePaneFit=function(e,t,i,s){var n=options[e],a=state[e],o=_c[e],l=$Ps[e],r=$Rs[e],d="vert"===o.dir,c=!1;if(("center"===e||d&&a.noVerticalRoom)&&((c=0<=a.maxHeight)&&a.noRoom?(_showPane(e),r&&r.show(),a.isVisible=!0,a.noRoom=!1,d&&(a.noVerticalRoom=!1),_fixIframe(e)):c||a.noRoom||(_hidePane(e),r&&r.hide(),a.isVisible=!1,a.noRoom=!0)),"center"===e);else if(a.minSize<=a.maxSize){if(c=!0,a.size>a.maxSize)sizePane(e,a.maxSize,i,!0,s);else if(a.size<a.minSize)sizePane(e,a.minSize,i,!0,s);else if(r&&a.isVisible&&l.is(":visible")){var u=a.size+sC.inset[o.side];$.layout.cssNum(r,o.side)!=u&&r.css(o.side,u)}a.noRoom&&(a.wasOpen&&n.closable?n.autoReopen?open(e,!1,!0,!0):a.noRoom=!1:show(e,a.wasOpen,!0,!0))}else a.noRoom||(a.noRoom=!0,a.wasOpen=!a.isClosed&&!a.isSliding,a.isClosed||(n.closable?close(e,!0,!0):hide(e,!0)))},manualSizePane=function(e,t,i,s,n){if(isInitialized()){var a=evtPane.call(this,e),o=options[a],l=state[a],r=n||o.livePaneResizing&&!l.isResizing;"center"!==a&&(l.autoResize=!1,sizePane(a,t,i,s,r))}},sizePane=function(e,o,l,t,r){if(isInitialized()){var d,c,u=evtPane.call(this,e),a=options[u],p=state[u],g=$Ps[u],h=$Rs[u],f=_c[u].side,m=_c[u].sizeType.toLowerCase(),b=p.isResizing&&!a.triggerEventsDuringLiveResize,v=!0!==t&&a.animatePaneSizing;"center"!==u&&$N.queue(function(e){if(setSizeLimits(u),d=p.size,o=_parseSize(u,o),o=max(o,_parseSize(u,a.minSize)),(o=min(o,p.maxSize))<p.minSize)return e(),void makePaneFit(u,!1,l);if(!r&&o===d)return e();if(p.newSize=o,!l&&state.initialized&&p.isVisible&&_runCallbacks("onresize_start",u),c=cssSize(u,o),v&&g.is(":visible")){var t=$.layout.effects.size[u]||$.layout.effects.size.all,i=a.fxSettings_size.easing||t.easing,s=options.zIndexes,n={};n[m]=c+"px",p.isMoving=!0,g.css({zIndex:s.pane_animate}).show().animate(n,a.fxSpeed_size,i,function(){g.css({zIndex:p.isSliding?s.pane_sliding:s.pane_normal}),p.isMoving=!1,delete p.newSize,y(),e()})}else g.css(m,c),delete p.newSize,g.is(":visible")?y():p.size=o,e()})}function y(){for(var e="width"===m?g.outerWidth():g.outerHeight(),t=[{pane:u,count:1,target:o,actual:e,correct:o===e,attempt:o,cssSize:c}],i=t[0],s={},n="Inaccurate size after resizing the "+u+"-pane.";!(i.correct||(s={pane:u,count:i.count+1,target:o},i.actual>o?s.attempt=max(0,i.attempt-(i.actual-o)):s.attempt=max(0,i.attempt+(o-i.actual)),s.cssSize=cssSize(u,s.attempt),g.css(m,s.cssSize),s.actual="width"==m?g.outerWidth():g.outerHeight(),s.correct=o===s.actual,1===t.length&&(_log(n,!1,!0),_log(i,!1,!0)),_log(s,!1,!0),3<t.length));)t.push(s),i=t[t.length-1];p.size=o,$.extend(p,elDims(g)),p.isVisible&&g.is(":visible")&&(h&&h.css(f,o+sC.inset[f]),sizeContent(u)),!l&&!b&&state.initialized&&p.isVisible&&_runCallbacks("onresize_end",u),l||(p.isSliding||sizeMidPanes("horz"==_c[u].dir?"":"center",b,r),sizeHandles());var a=_c.oppositeEdge[u];o<d&&state[a].noRoom&&(setSizeLimits(a),makePaneFit(a,!1,l)),1<t.length&&_log(n+"\nSee the Error Console for details.",!0,!0)}},sizeMidPanes=function(e,b,v){e=(e||"east,west,center").split(","),$.each(e,function(e,t){if($Ps[t]){var i=options[t],s=state[t],n=$Ps[t],a=($Rs[t],!0),o={},l=$.layout.showInvisibly(n),r=calcNewCenterPaneDims();if($.extend(s,elDims(n)),"center"===t){if(!v&&s.isVisible&&r.width===s.outerWidth&&r.height===s.outerHeight)return n.css(l),!0;if($.extend(s,cssMinDims(t),{maxWidth:r.width,maxHeight:r.height}),o=r,s.newWidth=o.width,s.newHeight=o.height,o.width=cssW(n,o.width),o.height=cssH(n,o.height),a=0<=o.width&&0<=o.height,!state.initialized&&i.minWidth>r.width){var d=i.minWidth-s.outerWidth,c=options.east.minSize||0,u=options.west.minSize||0,p=state.east.size,g=state.west.size,h=p,f=g;if(0<d&&state.east.isVisible&&c<p&&(d-=p-(h=max(p-c,p-d))),0<d&&state.west.isVisible&&u<g&&(d-=g-(f=max(g-u,g-d))),0===d)return p&&p!=c&&sizePane("east",h,!0,!0,v),g&&g!=u&&sizePane("west",f,!0,!0,v),sizeMidPanes("center",b,v),void n.css(l)}}else{if(s.isVisible&&!s.noVerticalRoom&&$.extend(s,elDims(n),cssMinDims(t)),!v&&!s.noVerticalRoom&&r.height===s.outerHeight)return n.css(l),!0;o.top=r.top,o.bottom=r.bottom,s.newSize=r.height,o.height=cssH(n,r.height),s.maxHeight=o.height,(a=0<=s.maxHeight)||(s.noVerticalRoom=!0)}if(a?(!b&&state.initialized&&_runCallbacks("onresize_start",t),n.css(o),"center"!==t&&sizeHandles(t),!s.noRoom||s.isClosed||s.isHidden||makePaneFit(t),s.isVisible&&($.extend(s,elDims(n)),state.initialized&&sizeContent(t))):!s.noRoom&&s.isVisible&&makePaneFit(t),n.css(l),delete s.newSize,delete s.newWidth,delete s.newHeight,!s.isVisible)return!0;if("center"===t){var m=browser.isIE6||!browser.boxModel;$Ps.north&&(m||"IFRAME"==state.north.tagName)&&$Ps.north.css("width",cssW($Ps.north,sC.innerWidth)),$Ps.south&&(m||"IFRAME"==state.south.tagName)&&$Ps.south.css("width",cssW($Ps.south,sC.innerWidth))}!b&&state.initialized&&_runCallbacks("onresize_end",t)}})},resizeAll=function(e){var t=sC.innerWidth,i=sC.innerHeight;if(evtPane(e),$N.is(":visible"))if(state.initialized){if(!0===e&&$.isPlainObject(options.outset)&&$N.css(options.outset),$.extend(sC,elDims($N,options.inset)),sC.outerHeight){if(!0===e&&setPanePosition(),!1===_runCallbacks("onresizeall_start"))return!1;var s,n;sC.innerHeight,sC.innerWidth;$.each(["south","north","east","west"],function(e,t){$Ps[t]&&(s=options[t],(n=state[t]).autoResize&&n.size!=s.size?sizePane(t,s.size,!0,!0,!0):(setSizeLimits(t),makePaneFit(t,!1,!0,!0)))}),sizeMidPanes("",!0,!0),sizeHandles(),$.each(_c.allPanes,function(e,t){$Ps[t]&&state[t].isVisible&&_runCallbacks("onresize_end",t)}),_runCallbacks("onresizeall_end")}}else _initLayoutElements()},resizeChildren=function(e,t){var i=evtPane.call(this,e);if(options[i].resizeChildren){t||refreshChildren(i);var s=children[i];$.isPlainObject(s)&&$.each(s,function(e,t){t.destroyed||t.resizeAll()})}},sizeContent=function(e,c){if(isInitialized()){var t=evtPane.call(this,e);t=t?t.split(","):_c.allPanes,$.each(t,function(e,n){var t=$Ps[n],a=$Cs[n],i=options[n],s=state[n],o=s.content;if(!t||!a||!t.is(":visible"))return!0;if((a.length||(initContent(n,!1),a))&&!1!==_runCallbacks("onsizecontent_start",n)){(!s.isMoving&&!s.isResizing||i.liveContentResizing||c||null==o.top)&&(d(),0<o.hiddenFooters&&"hidden"===t.css("overflow")&&(t.css("overflow","visible"),d(),t.css("overflow","hidden")));var l=s.innerHeight-(o.spaceAbove-s.css.paddingTop)-(o.spaceBelow-s.css.paddingBottom);a.is(":visible")&&o.height==l||(setOuterHeight(a,l,!0),o.height=l),state.initialized&&_runCallbacks("onsizecontent_end",n)}function r(e){return max(s.css.paddingBottom,parseInt(e.css("marginBottom"),10)||0)}function d(){var e=options[n].contentIgnoreSelector,t=a.nextAll().not(".ui-layout-mask").not(e||":lt(0)"),i=t.filter(":visible"),s=i.filter(":last");(o={top:a[0].offsetTop,height:a.outerHeight(),numFooters:t.length,hiddenFooters:t.length-i.length,spaceBelow:0}).spaceAbove=o.top,o.bottom=o.top+o.height,s.length?o.spaceBelow=s[0].offsetTop+s.outerHeight()-o.bottom+r(s):o.spaceBelow=r(a)}})}},sizeHandles=function(e){var t=evtPane.call(this,e);t=t?t.split(","):_c.borderPanes,$.each(t,function(e,t){var i,s=options[t],n=state[t],a=$Ps[t],o=$Rs[t],l=$Ts[t];if(a&&o){var r,d,c,u=_c[t].dir,p=n.isClosed?"_closed":"_open",g=s["spacing"+p],h=s["togglerAlign"+p],f=s["togglerLength"+p];if(0!==g){if(n.noRoom||n.isHidden||o.show(),"horz"===u?(r=sC.innerWidth,n.resizerLength=r,d=$.layout.cssNum(a,"left"),o.css({width:cssW(o,r),height:cssH(o,g),left:-9999<d?d:sC.inset.left})):(r=a.outerHeight(),n.resizerLength=r,o.css({height:cssH(o,r),width:cssW(o,g),top:sC.inset.top+getPaneSize("north",!0)})),removeHover(s,o),l){if(0===f||n.isSliding&&s.hideTogglerOnSlide)return void l.hide();if(l.show(),!(0<f)||"100%"===f||r<f)f=r,c=0;else if(isStr(h))switch(h){case"top":case"left":c=0;break;case"bottom":case"right":c=r-f;break;case"middle":case"center":default:c=round((r-f)/2)}else{var m=parseInt(h,10);c=0<=h?m:r-f+m}if("horz"===u){var b=cssW(l,f);l.css({width:b,height:cssH(l,g),left:c,top:-1}),l.children(".content").each(function(){(i=$(this)).css("marginLeft",round((b-i.outerWidth())/2))})}else{var v=cssH(l,f);l.css({height:v,width:cssW(l,g),top:c,left:1}),l.children(".content").each(function(){(i=$(this)).css("marginTop",round((v-i.outerHeight())/2))})}removeHover(0,l)}state.initialized||!s.initHidden&&!n.isHidden||(o.hide(),l&&l.hide())}else o.hide()}})},enableClosable=function(e){if(isInitialized()){var t=evtPane.call(this,e),i=$Ts[t],s=options[t];i&&(s.closable=!0,i.bind("click."+sID,function(e){e.stopPropagation(),toggle(t)}).css("visibility","visible").css("cursor","pointer").attr("title",state[t].isClosed?s.tips.Open:s.tips.Close).show())}},disableClosable=function(e,t){if(isInitialized()){var i=evtPane.call(this,e),s=$Ts[i];s&&(options[i].closable=!1,state[i].isClosed&&open(i,!1,!0),s.unbind("."+sID).css("visibility",t?"hidden":"visible").css("cursor","default").attr("title",""))}},enableSlidable=function(e){if(isInitialized()){var t=evtPane.call(this,e),i=$Rs[t];i&&i.data("draggable")&&(options[t].slidable=!0,state[t].isClosed&&bindStartSlidingEvents(t,!0))}},disableSlidable=function(e){if(isInitialized()){var t=evtPane.call(this,e),i=$Rs[t];i&&(options[t].slidable=!1,state[t].isSliding?close(t,!1,!0):(bindStartSlidingEvents(t,!1),i.css("cursor","default").attr("title",""),removeHover(null,i[0])))}},enableResizable=function(e){if(isInitialized()){var t=evtPane.call(this,e),i=$Rs[t],s=options[t];i&&i.data("draggable")&&(s.resizable=!0,i.draggable("enable"),state[t].isClosed||i.css("cursor",s.resizerCursor).attr("title",s.tips.Resize))}},disableResizable=function(e){if(isInitialized()){var t=evtPane.call(this,e),i=$Rs[t];i&&i.data("draggable")&&(options[t].resizable=!1,i.draggable("disable").css("cursor","default").attr("title",""),removeHover(null,i[0]))}},swapPanes=function(e,t){if(isInitialized()){var i=evtPane.call(this,e);if(state[i].edge=t,state[t].edge=i,!1===_runCallbacks("onswap_start",i)||!1===_runCallbacks("onswap_start",t))return state[i].edge=i,void(state[t].edge=t);var s=a(i),n=a(t),u={};return u[i]=s?s.state.size:0,u[t]=n?n.state.size:0,$Ps[i]=!1,$Ps[t]=!1,state[i]={},state[t]={},$Ts[i]&&$Ts[i].remove(),$Ts[t]&&$Ts[t].remove(),$Rs[i]&&$Rs[i].remove(),$Rs[t]&&$Rs[t].remove(),$Rs[i]=$Rs[t]=$Ts[i]=$Ts[t]=!1,o(s,t),o(n,i),s=n=u=null,$Ps[i]&&$Ps[i].css(_c.visible),$Ps[t]&&$Ps[t].css(_c.visible),resizeAll(),_runCallbacks("onswap_end",i),void _runCallbacks("onswap_end",t)}function a(e){var t=$Ps[e],i=$Cs[e];return!!t&&{pane:e,P:!!t&&t[0],C:!!i&&i[0],state:$.extend(!0,{},state[e]),options:$.extend(!0,{},options[e])}}function o(e,t){if(e){var i,s,n=e.P,a=e.C,o=e.pane,l=_c[t],r=$.extend(!0,{},state[t]),d=options[t],c={resizerCursor:d.resizerCursor};$.each("fxName,fxSpeed,fxSettings".split(","),function(e,t){c[t+"_open"]=d[t+"_open"],c[t+"_close"]=d[t+"_close"],c[t+"_size"]=d[t+"_size"]}),$Ps[t]=$(n).data({layoutPane:Instance[t],layoutEdge:t}).css(_c.hidden).css(l.cssReq),$Cs[t]=!!a&&$(a),options[t]=$.extend(!0,{},e.options,c),state[t]=$.extend(!0,{},e.state),i=new RegExp(d.paneClass+"-"+o,"g"),n.className=n.className.replace(i,d.paneClass+"-"+t),initHandles(t),l.dir!=_c[o].dir?(s=u[t]||0,setSizeLimits(t),s=max(s,state[t].minSize),manualSizePane(t,s,!0,!0)):$Rs[t].css(l.side,sC.inset[l.side]+(state[t].isVisible?getPaneSize(t):0)),e.state.isVisible&&!r.isVisible?setAsOpen(t,!0):(setAsClosed(t),bindStartSlidingEvents(t,!0)),e=null}}},syncPinBtns=function(i,s){$.layout.plugins.buttons&&$.each(state[i].pins,function(e,t){$.layout.buttons.setPinState(Instance,$(t),i,s)})};function keyDown(e){if(!e)return!0;var i=e.keyCode;if(i<33)return!0;var s,n,a,o,t={38:"north",40:"south",37:"west",39:"east"},l=(e.altKey,e.shiftKey),r=e.ctrlKey;return r&&37<=i&&i<=40&&options[t[i]].enableCursorHotkey?o=t[i]:(r||l)&&$.each(_c.borderPanes,function(e,t){if(s=options[t],n=s.customHotkey,a=s.customHotkeyModifier,(l&&"SHIFT"==a||r&&"CTRL"==a||r&&l)&&n&&i===(isNaN(n)||n<=9?n.toUpperCase().charCodeAt(0):n))return o=t,!1}),!(o&&$Ps[o]&&options[o].closable&&!state[o].isHidden)||(toggle(o),e.stopPropagation(),e.returnValue=!1)}function allowOverflow(e){var t;if(isInitialized()&&(this&&this.tagName&&(e=this),isStr(e)?t=$Ps[e]:$(e).data("layoutRole")?t=$(e):$(e).parents().each(function(){if($(this).data("layoutRole"))return t=$(this),!1}),t&&t.length)){var i=t.data("layoutEdge"),s=state[i];if(s.cssSaved&&resetOverflow(i),s.isSliding||s.isResizing||s.isClosed)s.cssSaved=!1;else{var n={zIndex:options.zIndexes.resizer_normal+1},a={},o=t.css("overflow"),l=t.css("overflowX"),r=t.css("overflowY");"visible"!=o&&(a.overflow=o,n.overflow="visible"),l&&!l.match(/(visible|auto)/)&&(a.overflowX=l,n.overflowX="visible"),r&&!r.match(/(visible|auto)/)&&(a.overflowY=l,n.overflowY="visible"),s.cssSaved=a,t.css(n),$.each(_c.allPanes,function(e,t){t!=i&&resetOverflow(t)})}}}function resetOverflow(e){var t;if(isInitialized()&&(this&&this.tagName&&(e=this),isStr(e)?t=$Ps[e]:$(e).data("layoutRole")?t=$(e):$(e).parents().each(function(){if($(this).data("layoutRole"))return t=$(this),!1}),t&&t.length)){var i=t.data("layoutEdge"),s=state[i],n=s.cssSaved||{};s.isSliding||s.isResizing||t.css("zIndex",options.zIndexes.pane_normal),t.css(n),s.cssSaved=!1}}var $N=$(this).eq(0);if(!$N.length)return _log(options.errors.containerMissing);if($N.data("layoutContainer")&&$N.data("layout"))return $N.data("layout");var $Ps={},$Cs={},$Rs={},$Ts={},$Ms=$([]),sC=state.container,sID=state.id,Instance={options:options,state:state,container:$N,panes:$Ps,contents:$Cs,resizers:$Rs,togglers:$Ts,hide:hide,show:show,toggle:toggle,open:open,close:close,slideOpen:slideOpen,slideClose:slideClose,slideToggle:slideToggle,setSizeLimits:setSizeLimits,_sizePane:sizePane,sizePane:manualSizePane,sizeContent:sizeContent,swapPanes:swapPanes,showMasks:showMasks,hideMasks:hideMasks,initContent:initContent,addPane:addPane,removePane:removePane,createChildren:createChildren,refreshChildren:refreshChildren,enableClosable:enableClosable,disableClosable:disableClosable,enableSlidable:enableSlidable,disableSlidable:disableSlidable,enableResizable:enableResizable,disableResizable:disableResizable,allowOverflow:allowOverflow,resetOverflow:resetOverflow,destroy:destroy,initPanes:isInitialized,resizeAll:resizeAll,runCallbacks:_runCallbacks,hasParentLayout:!1,children:children,north:!1,south:!1,west:!1,east:!1,center:!1};return"cancel"===_create()?null:Instance}}(jQuery),function(y){y.layout&&(y.ui||(y.ui={}),y.ui.cookie={acceptsCookies:!!navigator.cookieEnabled,read:function(e){var t,i,s,n=document.cookie,a=n?n.split(";"):[];for(s=0;t=a[s];s++)if((i=y.trim(t).split("="))[0]==e)return decodeURIComponent(i[1]);return null},write:function(e,t,i){var s="",n="",a=!1,o=i||{},l=o.expires||null,r=y.type(l);"date"===r?n=l:"string"===r&&0<l&&(l=parseInt(l,10),r="number"),"number"===r&&(n=new Date,0<l?n.setDate(n.getDate()+l):(n.setFullYear(1970),a=!0)),n&&(s+=";expires="+n.toUTCString()),o.path&&(s+=";path="+o.path),o.domain&&(s+=";domain="+o.domain),o.secure&&(s+=";secure"),document.cookie=e+"="+(a?"":encodeURIComponent(t))+s},clear:function(e){y.ui.cookie.write(e,"",{expires:-1})}},y.cookie||(y.cookie=function(e,t,i){var s=y.ui.cookie;if(null===t)s.clear(e);else{if(void 0===t)return s.read(e);s.write(e,t,i)}}),y.layout.plugins.stateManagement=!0,y.layout.defaults.stateManagement={enabled:!1,autoSave:!0,autoLoad:!0,animateLoad:!0,includeChildren:!0,stateKeys:"north.size,south.size,east.size,west.size,north.isClosed,south.isClosed,east.isClosed,west.isClosed,north.isHidden,south.isHidden,east.isHidden,west.isHidden",cookie:{name:"",domain:"",path:"",expires:"",secure:!1}},y.layout.optionsMap.layout.push("stateManagement"),y.layout.config.optionRootKeys.push("stateManagement"),y.layout.state={saveCookie:function(e,t,i){var s=e.options,n=s.stateManagement,a=y.extend(!0,{},n.cookie,i||null),o=e.state.stateData=e.readState(t||n.stateKeys);return y.ui.cookie.write(a.name||s.name||"Layout",y.layout.state.encodeJSON(o),a),y.extend(!0,{},o)},deleteCookie:function(e){var t=e.options;y.ui.cookie.clear(t.stateManagement.cookie.name||t.name||"Layout")},readCookie:function(e){var t=e.options,i=y.ui.cookie.read(t.stateManagement.cookie.name||t.name||"Layout");return i?y.layout.state.decodeJSON(i):{}},loadCookie:function(e){var t=y.layout.state.readCookie(e);return t&&!y.isEmptyObject(t)&&(e.state.stateData=y.extend(!0,{},t),e.loadState(t)),t},loadState:function(i,n,e){if(y.isPlainObject(n)&&!y.isEmptyObject(n)){n=i.state.stateData=y.layout.transformData(n);var t=i.options.stateManagement;if(e=y.extend({animateLoad:!1,includeChildren:t.includeChildren},e),i.state.initialized){var a,o,l,r,d,c,u=!e.animateLoad;if(y.each(y.layout.config.borderPanes,function(e,t){p=n[t],y.isPlainObject(p)&&(s=p.size,a=p.initClosed,o=p.initHidden,ar=p.autoResize,l=i.state[t],r=l.isVisible,ar&&(l.autoResize=ar),r||i._sizePane(t,s,!1,!1,!1),!0===o?i.hide(t,u):!0===a?i.close(t,!1,u):!1===a?i.open(t,!1,u):!1===o&&i.show(t,!1,u),r&&i._sizePane(t,s,!1,!1,u))}),e.includeChildren)y.each(i.children,function(e,t){(d=n[e]?n[e].children:0)&&t&&y.each(t,function(e,t){c=d[e],t&&c&&t.loadState(c)})})}else{var p=y.extend(!0,{},n);y.each(y.layout.config.allPanes,function(e,t){p[t]&&delete p[t].children}),y.extend(!0,i.options,p)}}},readState:function(i,e){"string"===y.type(e)&&(e={keys:e}),e||(e={});var t,s,n,a,o,l,r,d=i.options.stateManagement,c=e.includeChildren,u=void 0!==c?c:d.includeChildren,p=e.stateKeys||d.stateKeys,g={isClosed:"initClosed",isHidden:"initHidden"},h=i.state,f=y.layout.config.allPanes,m={};y.isArray(p)&&(p=p.join(","));for(var b=0,v=(p=p.replace(/__/g,".").split(",")).length;b<v;b++)s=(t=p[b].split("."))[0],n=t[1],y.inArray(s,f)<0||null!=(a=h[s][n])&&("isClosed"==n&&h[s].isSliding&&(a=!0),(m[s]||(m[s]={}))[g[n]?g[n]:n]=a);return u&&y.each(f,function(e,t){l=i.children[t],o=h.stateData[t],y.isPlainObject(l)&&!y.isEmptyObject(l)&&((r=m[t]||(m[t]={})).children||(r.children={}),y.each(l,function(e,t){t.state.initialized?r.children[e]=y.layout.state.readState(t):o&&o.children&&o.children[e]&&(r.children[e]=y.extend(!0,{},o.children[e]))}))}),m},encodeJSON:function(e){return((window.JSON||{}).stringify||function(e){var t,i,s,n=[],a=0,o=y.isArray(e);for(t in e)i=e[t],"string"==(s=typeof i)?i='"'+i+'"':"object"==s&&(i=parse(i)),n[a++]=(o?"":'"'+t+'":')+i;return(o?"[":"{")+n.join(",")+(o?"]":"}")})(e)},decodeJSON:function(e){try{return y.parseJSON?y.parseJSON(e):window.eval("("+e+")")||{}}catch(e){return{}}},_create:function(i){var s=y.layout.state,e=i.options.stateManagement;if(y.extend(i,{readCookie:function(){return s.readCookie(i)},deleteCookie:function(){s.deleteCookie(i)},saveCookie:function(e,t){return s.saveCookie(i,e,t)},loadCookie:function(){return s.loadCookie(i)},loadState:function(e,t){s.loadState(i,e,t)},readState:function(e){return s.readState(i,e)},encodeJSON:s.encodeJSON,decodeJSON:s.decodeJSON}),i.state.stateData={},e.autoLoad)if(y.isPlainObject(e.autoLoad))y.isEmptyObject(e.autoLoad)||i.loadState(e.autoLoad);else if(e.enabled)if(y.isFunction(e.autoLoad)){var t={};try{t=e.autoLoad(i,i.state,i.options,i.options.name||"")}catch(e){}t&&y.isPlainObject(t)&&!y.isEmptyObject(t)&&i.loadState(t)}else i.loadCookie()},_unload:function(e){var t=e.options.stateManagement;if(t.enabled&&t.autoSave)if(y.isFunction(t.autoSave))try{t.autoSave(e,e.state,e.options,e.options.name||"")}catch(e){}else e.saveCookie()}},y.layout.onCreate.push(y.layout.state._create),y.layout.onUnload.push(y.layout.state._unload))}(jQuery),function(l){l.layout&&(l.layout.plugins.buttons=!0,l.layout.defaults.autoBindCustomButtons=!1,l.layout.optionsMap.layout.push("autoBindCustomButtons"),l.layout.buttons={config:{borderPanes:"north,south,west,east"},init:function(s){var n,a=s.options.name||"";l.each("toggle,open,close,pin,toggle-slide,open-slide".split(","),function(e,i){l.each(l.layout.buttons.config.borderPanes.split(","),function(e,t){l(".ui-layout-button-"+i+"-"+t).each(function(){null!=(n=l(this).data("layoutName")||l(this).attr("layoutName"))&&n!==a||s.bindButton(this,i,t)})})})},get:function(e,t,i,s){var n=l(t),a=e.options;if(n.length&&0<=l.layout.buttons.config.borderPanes.indexOf(i)){var o=a[i].buttonClass+"-"+s;n.addClass(o+" "+o+"-"+i).data("layoutName",a.name)}return n},bind:function(e,t,i,s){var n=l.layout.buttons;switch(i.toLowerCase()){case"toggle":n.addToggle(e,t,s);break;case"open":n.addOpen(e,t,s);break;case"close":n.addClose(e,t,s);break;case"pin":n.addPin(e,t,s);break;case"toggle-slide":n.addToggle(e,t,s,!0);break;case"open-slide":n.addOpen(e,t,s,!0)}return e},addToggle:function(t,e,i,s){return l.layout.buttons.get(t,e,i,"toggle").click(function(e){t.toggle(i,!!s),e.stopPropagation()}),t},addOpen:function(t,e,i,s){return l.layout.buttons.get(t,e,i,"open").attr("title",t.options[i].tips.Open).click(function(e){t.open(i,!!s),e.stopPropagation()}),t},addClose:function(t,e,i){return l.layout.buttons.get(t,e,i,"close").attr("title",t.options[i].tips.Close).click(function(e){t.close(i),e.stopPropagation()}),t},addPin:function(t,e,i){var s=l.layout.buttons.get(t,e,i,"pin");if(s.length){var n=t.state[i];s.click(function(e){l.layout.buttons.setPinState(t,l(this),i,n.isSliding||n.isClosed),n.isSliding||n.isClosed?t.open(i):t.close(i),e.stopPropagation()}),l.layout.buttons.setPinState(t,s,i,!n.isClosed&&!n.isSliding),n.pins.push(e)}return t},setPinState:function(e,t,i,s){var n=t.attr("pin");if(!n||s!==("down"==n)){var a=e.options[i],o=a.tips,l=a.buttonClass+"-pin",r=l+"-"+i,d=l+"-up "+r+"-up",c=l+"-down "+r+"-down";t.attr("pin",s?"down":"up").attr("title",s?o.Unpin:o.Pin).removeClass(s?d:c).addClass(s?c:d)}},syncPinBtns:function(i,s,n){l.each(state[s].pins,function(e,t){l.layout.buttons.setPinState(i,l(t),s,n)})},_load:function(s){l.extend(s,{bindButton:function(e,t,i){return l.layout.buttons.bind(s,e,t,i)},addToggleBtn:function(e,t,i){return l.layout.buttons.addToggle(s,e,t,i)},addOpenBtn:function(e,t,i){return l.layout.buttons.addOpen(s,e,t,i)},addCloseBtn:function(e,t){return l.layout.buttons.addClose(s,e,t)},addPinBtn:function(e,t){return l.layout.buttons.addPin(s,e,t)}});for(var e=0;e<4;e++){var t=l.layout.buttons.config.borderPanes[e];s.state[t].pins=[]}s.options.autoBindCustomButtons&&l.layout.buttons.init(s)},_unload:function(e){}},l.layout.onLoad.push(l.layout.buttons._load))}(jQuery),function(c){c.layout.plugins.browserZoom=!0,c.layout.defaults.browserZoomCheckInterval=1e3,c.layout.optionsMap.layout.push("browserZoomCheckInterval"),c.layout.browserZoom={_init:function(e){!1!==c.layout.browserZoom.ratio()&&c.layout.browserZoom._setTimer(e)},_setTimer:function(t){if(!t.destroyed){var i=t.options,s=t.state,e=t.hasParentLayout?5e3:Math.max(i.browserZoomCheckInterval,100);setTimeout(function(){if(!t.destroyed&&i.resizeWithWindow){var e=c.layout.browserZoom.ratio();e!==s.browserZoom&&(s.browserZoom=e,t.resizeAll()),c.layout.browserZoom._setTimer(t)}},e)}},ratio:function(){var e,t,i,s=window,n=screen,a=document,o=a.documentElement||a.body,l=c.layout.browser,r=l.version;return!(!l.msie||8<r)&&(n.deviceXDPI&&n.systemXDPI?d(n.deviceXDPI,n.systemXDPI):l.webkit&&(e=a.body.getBoundingClientRect)?d(e.left-e.right,a.body.offsetWidth):l.webkit&&(t=s.outerWidth)?d(t,s.innerWidth):!(!(t=n.width)||!(i=o.clientWidth))&&d(t,i));function d(e,t){return(parseInt(e,10)/parseInt(t,10)*100).toFixed()}}},c.layout.onReady.push(c.layout.browserZoom._init)}(jQuery),function(m){m.effects&&(m.layout.defaults.panes.useOffscreenClose=!1,m.layout.plugins&&(m.layout.plugins.effects.slideOffscreen=!0),m.layout.effects.slideOffscreen=m.extend(!0,{},m.layout.effects.slide),m.effects.slideOffscreen=function(f){return this.queue(function(){var e=m.effects,t=f.options,i=m(this),s=i.data("layoutEdge"),n=i.data("parentLayout").state,a=n[s].size,o=this.style,l="show"==e.setMode(i,t.mode||"show"),r=t.direction||"left",d="up"==r||"down"==r?"top":"left",c="up"==r||"left"==r,u=m.layout.config.offscreenCSS||{},p=m.layout.config.offscreenReset,g="offscreenResetTop",h={};h[d]=(l?c?"+=":"-=":c?"-=":"+=")+a,l?(i.data(g,{top:o.top,bottom:o.bottom}),c?i.css(d,isNaN(a)?"-"+a:-a):"right"===r?i.css({left:n.container.layoutWidth,right:"auto"}):i.css({top:n.container.layoutHeight,bottom:"auto"}),"top"===d&&i.css(i.data(p)||{})):(i.data(g,{top:o.top,bottom:o.bottom}),i.data(p,{left:o.left,right:o.right})),i.show().animate(h,{queue:!1,duration:f.duration,easing:t.easing,complete:function(){i.data(g)&&i.css(i.data(g)).removeData(g),l?i.css(i.data(p)||{}).removeData(p):i.css(u),f.callback&&f.callback.apply(this,arguments),i.dequeue()}})})})}(jQuery);
!function(e,n){"function"==typeof define&&define.amd?define([],n):"undefined"!=typeof module&&module.exports?module.exports=n():e.ReconnectingWebSocket=n()}(this,function(){function d(c,i){i=i||[],this.debug=!1,this.reconnectInterval=1e3,this.reconnectDecay=1.5,this.reconnectAttempts=0,this.timeoutInterval=2e3;var s,u=this,l=!1,r=!1;this.url=c,this.protocols=i,this.readyState=WebSocket.CONNECTING,this.URL=c,this.onopen=function(e){},this.onclose=function(e){},this.onconnecting=function(e){},this.onmessage=function(e){},function n(o){s=new WebSocket(c,i),o||u.onconnecting(),(u.debug||d.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",c);var e=s,t=setTimeout(function(){(u.debug||d.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",c),r=!0,e.close(),r=!1},u.timeoutInterval);s.onopen=function(e){clearTimeout(t),(u.debug||d.debugAll)&&console.debug("ReconnectingWebSocket","onopen",c),u.readyState=WebSocket.OPEN,o=!1,u.reconnectAttempts=0,u.onopen(e)},s.onclose=function(e){clearTimeout(t),s=null,l?(u.readyState=WebSocket.CLOSED,u.onclose(e)):(u.readyState=WebSocket.CONNECTING,u.onconnecting(),o||r||((u.debug||d.debugAll)&&console.debug("ReconnectingWebSocket","onclose",c),u.onclose(e)),setTimeout(function(){u.reconnectAttempts++,n(!0)},u.reconnectInterval*Math.pow(u.reconnectDecay,u.reconnectAttempts)))},s.onmessage=function(e){(u.debug||d.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",c,e.data),u.onmessage(e)},s.onerror=function(e){(u.debug||d.debugAll)&&console.debug("ReconnectingWebSocket","onerror",c,e),u.onerror(e)}}(!(this.onerror=function(e){})),this.send=function(e){if(s)return(u.debug||d.debugAll)&&console.debug("ReconnectingWebSocket","send",c,e),s.send(e);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(){l=!0,s&&s.close()},this.refresh=function(){s&&s.close()}}return d.debugAll=!1,d});
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return t.returnExportsGlobal=e()}):"object"==typeof exports?module.exports=e():t.Autolinker=e()}(this,function(){var t,e,r,i,m=function(t){m.Util.assign(this,t),this.matchValidator=new m.MatchValidator};return m.prototype={constructor:m,urls:!0,email:!0,twitter:!0,newWindow:!0,stripPrefix:!0,className:"",htmlCharacterEntitiesRegex:/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;)/gi,matcherRegex:(r=/[A-Za-z0-9\.\-]*[A-Za-z0-9\-]/,i=/\.(?:international|construction|contractors|enterprises|photography|productions|foundation|immobilien|industries|management|properties|technology|christmas|community|directory|education|equipment|institute|marketing|solutions|vacations|bargains|boutique|builders|catering|cleaning|clothing|computer|democrat|diamonds|graphics|holdings|lighting|partners|plumbing|supplies|training|ventures|academy|careers|company|cruises|domains|exposed|flights|florist|gallery|guitars|holiday|kitchen|neustar|okinawa|recipes|rentals|reviews|shiksha|singles|support|systems|agency|berlin|camera|center|coffee|condos|dating|estate|events|expert|futbol|kaufen|luxury|maison|monash|museum|nagoya|photos|repair|report|social|supply|tattoo|tienda|travel|viajes|villas|vision|voting|voyage|actor|build|cards|cheap|codes|dance|email|glass|house|mango|ninja|parts|photo|shoes|solar|today|tokyo|tools|watch|works|aero|arpa|asia|best|bike|blue|buzz|camp|club|cool|coop|farm|fish|gift|guru|info|jobs|kiwi|kred|land|limo|link|menu|mobi|moda|name|pics|pink|post|qpon|rich|ruhr|sexy|tips|vote|voto|wang|wien|wiki|zone|bar|bid|biz|cab|cat|ceo|com|edu|gov|int|kim|mil|net|onl|org|pro|pub|red|tel|uno|wed|xxx|xyz|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)\b/,new RegExp(["(",/(^|[^\w])@(\w{1,15})/.source,")","|","(",/(?:[\-;:&=\+\$,\w\.]+@)/.source,r.source,i.source,")","|","(","(?:","(",/(?:[A-Za-z][-.+A-Za-z0-9]+:(?![A-Za-z][-.+A-Za-z0-9]+:\/\/)(?!\d+\/?)(?:\/\/)?)/.source,r.source,")","|","(?:","(.?//)?",/(?:www\.)/.source,r.source,")","|","(?:","(.?//)?",r.source,i.source,")",")","(?:"+/[\-A-Za-z0-9+&@#\/%=~_()|'$*\[\]?!:,.;]*[\-A-Za-z0-9+&@#\/%=~_()|'$*\[\]]/.source+")?",")"].join(""),"gi")),charBeforeProtocolRelMatchRegex:/^(.)?\/\//,link:function(t){var a=this,e=this.getHtmlParser(),o=this.htmlCharacterEntitiesRegex,c=0,l=[];return e.parse(t,{processHtmlNode:function(t,e,r){"a"===e&&(r?c=Math.max(c-1,0):c++),l.push(t)},processTextNode:function(t){if(0===c)for(var e=m.Util.splitAndCapture(t,o),r=0,i=e.length;r<i;r++){var n=e[r],s=a.processTextNode(n);l.push(s)}else l.push(t)}}),l.join("")},getHtmlParser:function(){var t=this.htmlParser;return t||(t=this.htmlParser=new m.HtmlParser),t},getTagBuilder:function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new m.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},processTextNode:function(t){var u=this;return t.replace(this.matcherRegex,function(t,e,r,i,n,s,a,o,c){var l=u.processCandidateMatch(t,e,r,i,n,s,a,o,c);if(l){var h=u.createMatchReturnVal(l.match,l.matchStr);return l.prefixStr+h+l.suffixStr}return t})},processCandidateMatch:function(t,e,r,i,n,s,a,o,c){var l,h=o||c,u="",g="";if(e&&!this.twitter||n&&!this.email||s&&!this.urls||!this.matchValidator.isValidMatch(s,a,h))return null;if(this.matchHasUnbalancedClosingParen(t)&&(t=t.substr(0,t.length-1),g=")"),n)l=new m.match.Email({matchedText:t,email:n});else if(e)r&&(u=r,t=t.slice(1)),l=new m.match.Twitter({matchedText:t,twitterHandle:i});else{if(h){var f=h.match(this.charBeforeProtocolRelMatchRegex)[1]||"";f&&(u=f,t=t.slice(1))}l=new m.match.Url({matchedText:t,url:t,protocolUrlMatch:!!a,protocolRelativeMatch:!!h,stripPrefix:this.stripPrefix})}return{prefixStr:u,suffixStr:g,matchStr:t,match:l}},matchHasUnbalancedClosingParen:function(t){if(")"===t.charAt(t.length-1)){var e=t.match(/\(/g),r=t.match(/\)/g);if((e&&e.length||0)<(r&&r.length||0))return!0}return!1},createMatchReturnVal:function(t,e){var r;return this.replaceFn&&(r=this.replaceFn.call(this,this,t)),"string"==typeof r?r:!1===r?e:r instanceof m.HtmlTag?r.toString():this.getTagBuilder().build(t).toString()}},m.link=function(t,e){return new m(e).link(t)},m.match={},m.Util={abstractMethod:function(){throw"abstract"},assign:function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},extend:function(t,e){var r,i=t.prototype,n=function(){};n.prototype=i;var s=(r=e.hasOwnProperty("constructor")?e.constructor:function(){i.constructor.apply(this,arguments)}).prototype=new n;return s.constructor=r,s.superclass=i,delete e.constructor,m.Util.assign(s,e),r},ellipsis:function(t,e,r){return t.length>e&&(r=null==r?"..":r,t=t.substring(0,e-r.length)+r),t},indexOf:function(t,e){if(Array.prototype.indexOf)return t.indexOf(e);for(var r=0,i=t.length;r<i;r++)if(t[r]===e)return r;return-1},splitAndCapture:function(t,e){if(!e.global)throw new Error("`splitRegex` must have the 'g' flag set");for(var r,i=[],n=0;r=e.exec(t);)i.push(t.substring(n,r.index)),i.push(r[0]),n=r.index+r[0].length;return i.push(t.substring(n)),i}},m.HtmlParser=m.Util.extend(Object,{htmlRegex:(t=/(?:".*?"|'.*?'|[^'"=<>`\s]+)/,e=/[^\s\0"'>\/=\x01-\x1F\x7F]+/.source+"(?:\\s*=\\s*"+t.source+")?",new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",e,"|",t.source+")",")*",">",")","|","(?:","<(/)?","("+/[0-9a-zA-Z][0-9a-zA-Z:]*/.source+")","(?:","\\s+",e,")*","\\s*/?",">",")"].join(""),"gi")),parse:function(t,e){for(var r,i=(e=e||{}).processHtmlNode||function(){},n=e.processTextNode||function(){},s=this.htmlRegex,a=0;null!==(r=s.exec(t));){var o=r[0],c=r[1]||r[3],l=!!r[2],h=t.substring(a,r.index);h&&n(h),i(o,c.toLowerCase(),l),a=r.index+o.length}if(a<t.length){var u=t.substring(a);u&&n(u)}}}),m.HtmlTag=m.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(t){m.Util.assign(this,t),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(t){return this.tagName=t,this},getTagName:function(){return this.tagName||""},setAttr:function(t,e){return this.getAttrs()[t]=e,this},getAttr:function(t){return this.getAttrs()[t]},setAttrs:function(t){var e=this.getAttrs();return m.Util.assign(e,t),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(t){return this.setAttr("class",t)},addClass:function(t){for(var e,r=this.getClass(),i=this.whitespaceRegex,n=m.Util.indexOf,s=r?r.split(i):[],a=t.split(i);e=a.shift();)-1===n(s,e)&&s.push(e);return this.getAttrs().class=s.join(" "),this},removeClass:function(t){for(var e,r=this.getClass(),i=this.whitespaceRegex,n=m.Util.indexOf,s=r?r.split(i):[],a=t.split(i);s.length&&(e=a.shift());){var o=n(s,e);-1!==o&&s.splice(o,1)}return this.getAttrs().class=s.join(" "),this},getClass:function(){return this.getAttrs().class||""},hasClass:function(t){return-1!==(" "+this.getClass()+" ").indexOf(" "+t+" ")},setInnerHtml:function(t){return this.innerHtml=t,this},getInnerHtml:function(){return this.innerHtml||""},toString:function(){var t=this.getTagName(),e=this.buildAttrsStr();return["<",t,e=e?" "+e:"",">",this.getInnerHtml(),"</",t,">"].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var t=this.getAttrs(),e=[];for(var r in t)t.hasOwnProperty(r)&&e.push(r+'="'+t[r]+'"');return e.join(" ")}}),m.MatchValidator=m.Util.extend(Object,{invalidProtocolRelMatchRegex:/^[\w]\/\//,hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]+:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]+:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z]/,isValidMatch:function(t,e,r){return!(e&&!this.isValidUriScheme(e)||this.urlMatchDoesNotHaveProtocolOrDot(t,e)||this.urlMatchDoesNotHaveAtLeastOneWordChar(t,e)||this.isInvalidProtocolRelativeMatch(r))},isValidUriScheme:function(t){var e=t.match(this.uriSchemeRegex)[0];return"javascript:"!==e&&"vbscript:"!==e},urlMatchDoesNotHaveProtocolOrDot:function(t,e){return!(!t||e&&this.hasFullProtocolRegex.test(e)||-1!==t.indexOf("."))},urlMatchDoesNotHaveAtLeastOneWordChar:function(t,e){return!(!t||!e)&&!this.hasWordCharAfterProtocolRegex.test(t)},isInvalidProtocolRelativeMatch:function(t){return!!t&&this.invalidProtocolRelMatchRegex.test(t)}}),m.AnchorTagBuilder=m.Util.extend(Object,{constructor:function(t){m.Util.assign(this,t)},build:function(t){return new m.HtmlTag({tagName:"a",attrs:this.createAttrs(t.getType(),t.getAnchorHref()),innerHtml:this.processAnchorText(t.getAnchorText())})},createAttrs:function(t,e){var r={href:e},i=this.createCssClass(t);return i&&(r.class=i),this.newWindow&&(r.target="_blank"),r},createCssClass:function(t){var e=this.className;return e?e+" "+e+"-"+t:""},processAnchorText:function(t){return this.doTruncate(t)},doTruncate:function(t){return m.Util.ellipsis(t,this.truncate||Number.POSITIVE_INFINITY)}}),m.match.Match=m.Util.extend(Object,{constructor:function(t){m.Util.assign(this,t)},getType:m.Util.abstractMethod,getMatchedText:function(){return this.matchedText},getAnchorHref:m.Util.abstractMethod,getAnchorText:m.Util.abstractMethod}),m.match.Email=m.Util.extend(m.match.Match,{getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),m.match.Twitter=m.Util.extend(m.match.Match,{getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),m.match.Url=m.Util.extend(m.match.Match,{urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrl:function(){var t=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(t=this.url="http://"+t,this.protocolPrepended=!0),t},getAnchorHref:function(){return this.getUrl().replace(/&amp;/g,"&")},getAnchorText:function(){var t=this.getUrl();return this.protocolRelativeMatch&&(t=this.stripProtocolRelativePrefix(t)),this.stripPrefix&&(t=this.stripUrlPrefix(t)),this.removeTrailingSlash(t)},stripUrlPrefix:function(t){return t.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(t){return t.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(t){return"/"===t.charAt(t.length-1)&&(t=t.slice(0,-1)),t}}),m});
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.emmetCodeMirror=e()}}(function(){var define,module,exports;return function a(o,s,y){function l(n,e){if(!s[n]){if(!o[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(c)return c(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var i=s[n]={exports:{}};o[n][0].call(i.exports,function(e){var t=o[n][1][e];return l(t||e)},i,i.exports,a,o,s,y)}return s[n].exports}for(var c="function"==typeof require&&require,e=0;e<y.length;e++)l(y[e]);return l}({1:[function(e,t,n){"use strict";var r=function(){function r(e,t){for(var n in t){var r=t[n];r.configurable=!0,r.value&&(r.writable=!0)}Object.defineProperties(e,t)}return function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}}();Object.defineProperty(n,"__esModule",{value:!0});var i,o=(i=e("./emmet"))&&i.__esModule?i.default:i;n.modeMap={"text/html":"html","application/xml":"xml","text/xsl":"xsl","text/css":"css","text/x-less":"less","text/x-scss":"scss","text/x-sass":"sass"};var a=function(){function n(e){var t=void 0===arguments[1]?0:arguments[1];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),this.context=e,this.selectionIndex=t||0}var t,e;return r(n,{selectionList:{value:function(){var r=this.context;return r.listSelections().map(function(e){var t=s(r,e.anchor),n=s(r,e.head);return{start:Math.min(t,n),end:Math.max(t,n)}})}},getCaretPos:{value:function(){return this.getSelectionRange().start}},setCaretPos:{value:function(e){this.createSelection(e)}},getSelectionRange:{value:function(){return this.selectionList()[this.selectionIndex]}},createSelection:{value:function(e,t){void 0===t&&(t=e);var n=this.selectionList(),r=this.context;n[this.selectionIndex]={start:e,end:t},this.context.setSelections(n.map(function(e){return{head:y(r,e.start),anchor:y(r,e.end)}}))}},getSelection:{value:function(){var e=this.getSelectionRange();return e.start=y(this.context,e.start),e.end=y(this.context,e.end),this.context.getRange(e.start,e.end)}},getCurrentLineRange:{value:function(){var e=y(this.context,this.getCaretPos());return{start:s(this.context,e.line,0),end:s(this.context,e.line,this.context.getLine(e.line).length)}}},getCurrentLine:{value:function(){var e=y(this.context,this.getCaretPos());return this.context.getLine(e.line)||""}},replaceContent:{value:function(e,t,n,r){void 0===n&&(n=void 0===t?this.getContent().length:t),void 0===t&&(t=0),e=this.normalize(e),r||(e=o.utils.common.padString(e,o.utils.common.getLinePaddingFromPosition(this.getContent(),t)));var i=o.tabStops.extract(e,{escape:function(e){return e}});e=i.text;var a=i.tabstops[0]||{start:e.length,end:e.length};a.start+=t,a.end+=t,this.context.replaceRange(e,y(this.context,t),y(this.context,n)),this.createSelection(a.start,a.end)}},normalize:{value:function(e){var t="\t",n=this.context;return n.getOption("indentWithTabs")||(t=o.utils.common.repeatString(" ",n.getOption("indentUnit"))),o.utils.editor.normalize(e,{indentation:t})}},getContent:{value:function(){return this.context.getValue()}},getSyntax:{value:function(){var e=this.context,t=(e.posFromIndex(this.getCaretPos()),e.getModeAt(e.getCursor())),n=t.name;return"xml"===n&&t.configuration&&(n=t.configuration),n||o.utils.action.detectSyntax(this,n)}},getProfileName:{value:function(){return this.context.getOption("profile")?this.context.getOption("profile"):o.utils.action.detectProfile(this)}},prompt:{value:(t=function(e){return prompt(e)},e=function(e){return t.apply(this,arguments)},e.toString=function(){return t.toString()},e)},getFilePath:{value:function(){return location.href}},isValidSyntax:{value:function(){return o.resources.hasSyntax(this.getSyntax())}}}),n}();function s(e,t){return 2<arguments.length&&"object"!=typeof t&&(t={line:arguments[1],ch:arguments[2]}),e.indexFromPos(t)}function y(e,t){return e.posFromIndex(t)}n.default=a},{"./emmet":2}],2:[function(e,t,n){"use strict";var r,i=(r=e("emmet"))&&r.__esModule?r.default:r;e("emmet/bundles/snippets"),e("emmet/bundles/caniuse"),t.exports=i},{emmet:39,"emmet/bundles/caniuse":3,"emmet/bundles/snippets":4}],3:[function(e,t,n){var r=e("../lib/assets/caniuse"),i=e("../lib/caniuse.json");r.load(i,!0)},{"../lib/assets/caniuse":23,"../lib/caniuse.json":35}],4:[function(e,t,n){var r=e("../lib/assets/resources"),i=e("../lib/snippets.json");r.setVocabulary(i,"system")},{"../lib/assets/resources":31,"../lib/snippets.json":68}],5:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var a=e("../assets/htmlMatcher"),l=e("../utils/common"),c=e("../utils/editor"),r=e("../utils/action"),p=e("../assets/range"),u=e("../editTree/css"),f=e("../utils/cssSections"),o=null;function d(e){return e[e.length-1]}function h(e,t){var n;if("string"==typeof e){var r=f.matchEnclosingRule(e,t);r&&(n=u.parse(r.substring(e),{offset:r.start}))}else n=e;if(!n)return null;var i=function(e,t){var n=[e.range(!0)];n.push(e.valueRange(!0));var r=f.nestedSectionsInRule(e),i=e.list();if(i.length||r.length){var a=Number.POSITIVE_INFINITY,o=-1;i.length&&(a=i[0].namePosition(!0),o=d(i).range(!0).end),r.length&&(r[0].start<a&&(a=r[0].start),d(r).end>o&&(o=d(r).end)),n.push(p.create2(a,o))}n=n.concat(r);var s=u.propertyFromPosition(e,t)||i[0];if(s){n.push(s.range(!0));var y=s.valueRange(!0);s.end()||(y._unterminated=!0),n.push(y)}return n}(n,t);return i=i.filter(function(e){return!!e.length}),l.unique(i,function(e){return e.valueOf()})}return{balance:function(e,t){t=String((t||"out").toLowerCase());var n=c.outputInfo(e);return r.isSupportedCSS(n.syntax)?function(e,t){var n=c.outputInfo(e),r=n.content,i=p(e.getSelectionRange()),a=h(n.content,i.start);if(!a&&i.length())try{a=h(u.parse(i.substring(n.content),{offset:i.start}),i.start)}catch(e){}if(!a)return!1;a=p.sort(a,!0);var o=l.find(a,function(e){return e.equal(i)});if(o||(o=l.find(a,function(e){return e._unterminated?e.include(i.start):e.inside(i.start)})),!o)return!1;var s=a.indexOf(o);if(o.equal(i)&&(s+="out"==t?1:-1),s<0||s>=a.length)if(s>=a.length&&"out"==t){pos=o.start-1;var y=h(r,pos);y&&(o=d(y.filter(function(e){return e.inside(pos)})))}else o=null;else o=a[s];return!!o&&(e.createSelection(o.start,o.end),!0)}(e,t):function(e,t){var n=c.outputInfo(e).content,r=p(e.getSelectionRange());if(o&&!o.range.equal(r)&&(o=null),o&&r.length())if("in"==t){if("tag"==o.type&&!o.close)return!1;if(o.range.equal(o.outerRange))o.range=o.innerRange;else{var i=l.narrowToNonSpace(n,o.innerRange);(o=a.find(n,i.start+1))&&o.range.equal(r)&&o.outerRange.equal(r)&&(o.range=o.innerRange)}}else!o.innerRange.equal(o.outerRange)&&o.range.equal(o.innerRange)&&r.equal(o.range)?o.range=o.outerRange:(o=a.find(n,r.start))&&o.range.equal(r)&&o.innerRange.equal(r)&&(o.range=o.outerRange);else o=a.find(n,r.start);return o&&(o.innerRange.equal(r)&&(o.range=o.outerRange),!o.range.equal(r))?(e.createSelection(o.range.start,o.range.end),!0):(o=null,!1)}(e,t)},balanceInwardAction:function(e){return this.balance(e,"in")},balanceOutwardAction:function(e){return this.balance(e,"out")},goToMatchingPairAction:function(e){var t=String(e.getContent()),n=e.getCaretPos();"<"==t.charAt(n)&&n++;var r=a.tag(t,n);return!(!r||!r.close)&&(r.open.range.inside(n)?e.setCaretPos(r.close.range.start):e.setCaretPos(r.open.range.start),!0)}}})},{"../assets/htmlMatcher":26,"../assets/range":30,"../editTree/css":37,"../utils/action":70,"../utils/common":73,"../utils/cssSections":74,"../utils/editor":75}],6:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("../plugin/file"),y=e("../utils/base64"),l=e("../utils/action"),o=e("../utils/editor");function c(e,t,n){return n=n||0,t.charAt(n)==e.charAt(0)&&t.substr(n,e.length)==e}return{encodeDecodeDataUrlAction:function(e){var t=String(e.getSelection()),n=e.getCaretPos(),r=o.outputInfo(e);if(!t)for(var i,a=r.content;0<=n--;){if(c("src=",a,n)){(i=a.substr(n).match(/^(src=(["'])?)([^'"<>\s]+)\1?/))&&(t=i[3],n+=i[1].length);break}if(c("url(",a,n)){(i=a.substr(n).match(/^(url\((['"])?)([^'"\)\s]+)\1?/))&&(t=i[3],n+=i[1].length);break}}return!!t&&(c("data:",t)?function(e,t,n){var r=String(e.prompt("Enter path to file (absolute or relative)"));if(!r)return!1;var i=s.createPath(e.getFilePath(),r);if(!i)throw"Can't save file";return s.save(i,y.decode(t.replace(/^data\:.+?;.+?,/,""))),e.replaceContent("$0"+r,n,n+t.length),!0}(e,t,n):function(r,i,a){var e=r.getFilePath();if(null===e)throw"You should save your file before using this action";var o=s.locateFile(e,i);if(null===o)throw"Can't find "+i+" file";return s.read(o,function(e,t){if(e)throw"Unable to read "+o+": "+e;var n=y.encode(String(t));if(!n)throw"Can't encode file content to base64";n="data:"+(l.mimeTypes[String(s.getExt(o))]||"application/octet-stream")+";base64,"+n,r.replaceContent("$0"+n,a,a+i.length)}),!0}(e,t,n))}}})},{"../plugin/file":63,"../utils/action":70,"../utils/base64":71,"../utils/editor":75}],7:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){function a(e,t,n){t=t||1,n=n||0;var r=e.getCaretPos()+n,i=String(e.getContent()),a=i.length,o=-1,s=/^\s+$/;function y(e){for(var t=e;0<=t;){var n=i.charAt(t);if("\n"==n||"\r"==n)break;t--}return i.substring(t,e)}for(;r<=a&&0<=r;){r+=t;var l=i.charAt(r),c=i.charAt(r+1),p=i.charAt(r-1);switch(l){case'"':case"'":c==l&&"="==p&&(o=r+1);break;case">":"<"==c&&(o=r+1);break;case"\n":case"\r":s.test(y(r-1))&&(o=r)}if(-1!=o)break}return o}return{previousEditPointAction:function(e,t,n){var r=e.getCaretPos(),i=a(e,-1);return i==r&&(i=a(e,-1,-2)),-1!=i&&(e.setCaretPos(i),!0)},nextEditPointAction:function(e,t,n){var r=a(e,1);return-1!=r&&(e.setCaretPos(r),!0)}}})},{}],8:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var a=e("../utils/action"),o=e("../utils/common"),s=e("../utils/math"),y=e("../assets/range");return{evaluateMathAction:function(e){var t=e.getContent(),n=y(e.getSelectionRange());if(n.length()||(n=a.findExpressionBounds(e,function(e){return o.isNumeric(e)||-1!=".+-*/\\".indexOf(e)})),n&&n.length()){var r=n.substring(t);r=r.replace(/([\d\.\-]+)\\([\d\.\-]+)/g,"round($1/$2)");try{var i=o.prettifyNumber(s.evaluate(r));return e.replaceContent(i,n.start,n.end),e.setCaretPos(n.start+i.length),!0}catch(e){}}return!1}}})},{"../assets/range":30,"../utils/action":70,"../utils/common":73,"../utils/math":76}],9:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../assets/handlerList"),s=e("../assets/range"),l=e("../assets/preferences"),y=e("../utils/common"),a=e("../utils/editor"),c=e("../utils/action"),i=e("../resolver/cssGradient"),p=e("../parser/abbreviation");function u(e){var t=s(e.getSelectionRange()),n=String(e.getContent());if(t.length())return t.substring(n);var r=e.getCurrentLineRange();return c.extractAbbreviation(n.substring(r.start,t.start))}var o=r.create();return o.add(function(e,t,n){var r=e.getSelectionRange().end,i=u(e);if(i){var a=p.expand(i,{syntax:t,profile:n,contextNode:c.captureContext(e)});if(a){var o=r-i.length,s=r,y=l.getArray("css.syntaxes");if(y&&~y.indexOf(t))";"==e.getContent().charAt(r)&&";"==a.charAt(a.length-1)&&s++;return e.replaceContent(a,o,s),!0}}return!1},{order:-1}),o.add(i.expandAbbreviationHandler.bind(i)),{expandAbbreviationAction:function(e,t,n){var r=y.toArray(arguments),i=a.outputInfo(e,t,n);return r[1]=i.syntax,r[2]=i.profile,o.exec(!1,r)},expandAbbreviationWithTabAction:function(e,t,n){var r=e.getSelection();if(r){var i=s(e.getSelectionRange()),a=y.padString(r,"\t");e.replaceContent("\t${0}",e.getCaretPos());var o=s(e.getCaretPos(),i.length());return e.replaceContent(a,o.start,o.end,!0),e.createSelection(o.start,o.start+a.length),!0}return this.expandAbbreviationAction(e,t,n)||e.replaceContent("\t",e.getCaretPos()),!0},_defaultHandler:function(e,t,n){var r=e.getSelectionRange().end,i=this.findAbbreviation(e);if(i){var a=c.captureContext(e),o=p.expand(i,t,n,a);if(o)return e.replaceContent(o,r-i.length,r),!0}return!1},addHandler:function(e,t){o.add(e,t)},removeHandler:function(e){o.remove(e)},findAbbreviation:u}})},{"../assets/handlerList":25,"../assets/preferences":28,"../assets/range":30,"../parser/abbreviation":55,"../resolver/cssGradient":65,"../utils/action":70,"../utils/common":73,"../utils/editor":75}],10:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var c=e("../utils/common"),p=e("../utils/action");return{increment01Action:function(e){return this.incrementNumber(e,.1)},increment1Action:function(e){return this.incrementNumber(e,1)},increment10Action:function(e){return this.incrementNumber(e,10)},decrement01Action:function(e){return this.incrementNumber(e,-.1)},decrement1Action:function(e){return this.incrementNumber(e,-1)},decrement10Action:function(e){return this.incrementNumber(e,-10)},incrementNumber:function(e,t){var n,r=!1,i=!1,a=p.findExpressionBounds(e,function(e,t,n){return!!c.isNumeric(e)||("."==e?!!c.isNumeric(n.charAt(t+1))&&(!i&&(i=!0)):"-"==e&&(!r&&(r=!0)))});if(a&&a.length()){var o=a.substring(String(e.getContent())),s=parseFloat(o);if(!isNaN(s)){if(s=c.prettifyNumber(s+t),/^(\-?)0+[1-9]/.test(o)){var y="";RegExp.$1&&(y="-",s=s.substring(1));var l=s.split(".");l[0]=c.zeroPadString(l[0],~(n=(n=o).replace(/^\-/,"")).indexOf(".")?n.split(".")[0].length:n.length),s=y+l.join(".")}return e.replaceContent(s,a.start,a.end),e.createSelection(a.start,a.start+s.length),!0}}return!1}}})},{"../utils/action":70,"../utils/common":73}],11:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var p=e("../assets/preferences"),u=e("../utils/common"),f=(e("../assets/resources"),e("../assets/htmlMatcher")),d=e("../utils/editor"),h=["html","xml","xsl"];return p.define("css.closeBraceIndentation","\n","Indentation before closing brace of CSS rule. Some users prefere indented closing brace of CSS rule for better readability. This preferences value will be automatically inserted before closing brace when user adds newline in newly created CSS rule (e.g. when “Insert formatted linebreak” action will be performed in CSS file). If youre such user, you may want to write put a value like <code>\\n\\t</code> in this preference."),{insertLineBreakAction:function(e){if(!this.insertLineBreakOnlyAction(e)){for(var t,n=d.getCurrentLinePadding(e),r=String(e.getContent()),i=e.getCaretPos(),a=r.length,o="",s=e.getCurrentLineRange().end+1;s<a&&(" "==(t=r.charAt(s))||"\t"==t);s++)o+=t;o.length>n.length?e.replaceContent("\n"+o,i,i,!0):e.replaceContent("\n",i)}return!0},insertLineBreakOnlyAction:function(e){var t=d.outputInfo(e),n=e.getCaretPos();if(~h.indexOf(t.syntax)){var r=f.tag(t.content,n);if(r&&!r.innerRange.length())return e.replaceContent("\n\t"+u.getCaretPlaceholder()+"\n",n),!0}else if("css"==t.syntax){var i=t.content;if(n&&"{"==i.charAt(n-1)){var a=p.get("css.closeBraceIndentation"),o="}"==i.charAt(n);if(!o)for(var s,y=n,l=i.length;y<l&&"{"!=(s=i.charAt(y));y++)if("}"==s){o=!(a="");break}o||(a+="}");var c="\n\t"+u.getCaretPlaceholder()+a;return e.replaceContent(c,n),!0}}return!1}}})},{"../assets/htmlMatcher":26,"../assets/preferences":28,"../assets/resources":31,"../utils/common":73,"../utils/editor":75}],12:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var y=e("../utils/common"),r={},i={base64:e("./base64"),editPoints:e("./editPoints"),evaluateMath:e("./evaluateMath"),expandAbbreviation:e("./expandAbbreviation"),incrementDecrement:e("./incrementDecrement"),lineBreaks:e("./lineBreaks"),balance:e("./balance"),mergeLines:e("./mergeLines"),reflectCSSValue:e("./reflectCSSValue"),removeTag:e("./removeTag"),selectItem:e("./selectItem"),selectLine:e("./selectLine"),splitJoinTag:e("./splitJoinTag"),toggleComment:e("./toggleComment"),updateImageSize:e("./updateImageSize"),wrapWithAbbreviation:e("./wrapWithAbbreviation"),updateTag:e("./updateTag")};function o(e,t,n){e=e.toLowerCase(),"string"==typeof(n=n||{})&&(n={label:n}),n.label||(n.label=l(e)),r[e]={name:e,fn:t,options:n}}function l(e){return y.trim(e.charAt(0).toUpperCase()+e.substring(1).replace(/_[a-z]/g,function(e){return" "+e.charAt(1).toUpperCase()}))}var s=function(e,t){var n=i[e];return n[t].bind(n)};return o("encode_decode_data_url",s("base64","encodeDecodeDataUrlAction"),"Encode\\Decode data:URL image"),o("prev_edit_point",s("editPoints","previousEditPointAction"),"Previous Edit Point"),o("next_edit_point",s("editPoints","nextEditPointAction"),"Next Edit Point"),o("evaluate_math_expression",s("evaluateMath","evaluateMathAction"),"Numbers/Evaluate Math Expression"),o("expand_abbreviation_with_tab",s("expandAbbreviation","expandAbbreviationWithTabAction"),{hidden:!0}),o("expand_abbreviation",s("expandAbbreviation","expandAbbreviationAction"),"Expand Abbreviation"),o("insert_formatted_line_break_only",s("lineBreaks","insertLineBreakOnlyAction"),{hidden:!0}),o("insert_formatted_line_break",s("lineBreaks","insertLineBreakAction"),{hidden:!0}),o("balance_inward",s("balance","balanceInwardAction"),"Balance (inward)"),o("balance_outward",s("balance","balanceOutwardAction"),"Balance (outward)"),o("matching_pair",s("balance","goToMatchingPairAction"),"HTML/Go To Matching Tag Pair"),o("merge_lines",s("mergeLines","mergeLinesAction"),"Merge Lines"),o("reflect_css_value",s("reflectCSSValue","reflectCSSValueAction"),"CSS/Reflect Value"),o("remove_tag",s("removeTag","removeTagAction"),"HTML/Remove Tag"),o("select_next_item",s("selectItem","selectNextItemAction"),"Select Next Item"),o("select_previous_item",s("selectItem","selectPreviousItemAction"),"Select Previous Item"),o("split_join_tag",s("splitJoinTag","splitJoinTagAction"),"HTML/Split\\Join Tag Declaration"),o("toggle_comment",s("toggleComment","toggleCommentAction"),"Toggle Comment"),o("update_image_size",s("updateImageSize","updateImageSizeAction"),"Update Image Size"),o("wrap_with_abbreviation",s("wrapWithAbbreviation","wrapWithAbbreviationAction"),"Wrap With Abbreviation"),o("update_tag",s("updateTag","updateTagAction"),"HTML/Update Tag"),[1,-1,10,-10,.1,-.1].forEach(function(e){var t=0<e?"increment":"decrement",n=String(Math.abs(e)).replace(".","").substring(0,2),r=t+"_number_by_"+n,i=t+n+"Action",a="Numbers/"+t.charAt(0).toUpperCase()+t.substring(1)+" number by "+Math.abs(e);o(r,s("incrementDecrement",i),a)}),{add:o,get:function(e){return r[e.toLowerCase()]},run:function(e,t){Array.isArray(t)||(t=y.toArray(arguments,1));var n=this.get(e);if(!n)throw new Error('Action "'+e+'" is not defined');return n.fn.apply(n,t)},getAll:function(){return r},getList:function(){var t=this.getAll();return Object.keys(t).map(function(e){return t[e]})},getMenu:function(o){var s=[];return o=o||[],this.getList().forEach(function(e){if(!e.options.hidden&&!~o.indexOf(e.name)){var t=l(e.name),n=s;if(e.options.label){var r,i,a=e.options.label.split("/");for(t=a.pop();r=a.shift();)(i=y.find(n,function(e){return"submenu"==e.type&&e.name==r}))||(i={name:r,type:"submenu",items:[]},n.push(i)),n=i.items}n.push({type:"action",name:e.name,label:t})}}),s},getActionNameForMenuTitle:function(t,e){return y.find(e||this.getMenu(),function(e){return"action"!=e.type?this.getActionNameForMenuTitle(t,e.items):e.label==t||e.name==t?e.name:void 0},this)}}})},{"../utils/common":73,"./balance":5,"./base64":6,"./editPoints":7,"./evaluateMath":8,"./expandAbbreviation":9,"./incrementDecrement":10,"./lineBreaks":11,"./mergeLines":13,"./reflectCSSValue":14,"./removeTag":15,"./selectItem":16,"./selectLine":17,"./splitJoinTag":18,"./toggleComment":19,"./updateImageSize":20,"./updateTag":21,"./wrapWithAbbreviation":22}],13:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var y=e("../assets/htmlMatcher"),l=e("../utils/common"),c=e("../utils/editor"),p=e("../assets/range");return{mergeLinesAction:function(e){var t=c.outputInfo(e),n=p(e.getSelectionRange());if(!n.length()){var r=y.find(t.content,e.getCaretPos());r&&(n=r.outerRange)}if(n.length()){for(var i=n.substring(t.content),a=l.splitByLines(i),o=1;o<a.length;o++)a[o]=a[o].replace(/^\s+/,"");var s=(i=a.join("").replace(/\s{2,}/," ")).length;return i=l.escapeText(i),e.replaceContent(i,n.start,n.end),e.createSelection(n.start,n.start+s),!0}return!1}}})},{"../assets/htmlMatcher":26,"../assets/range":30,"../utils/common":73,"../utils/editor":75}],14:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../assets/handlerList"),a=e("../assets/preferences"),y=e("../resolver/css"),l=e("../editTree/css"),c=e("../utils/common"),i=e("../utils/action"),p=e("../utils/editor"),o=e("../resolver/cssGradient");a.define("css.reflect.oldIEOpacity",!1,"Support IE6/7/8 opacity notation, e.g. <code>filter:alpha(opacity=...)</code>.\t\tNote that CSS3 and SVG also provides <code>filter</code> property so this option is disabled by default.");var u=r.create();function s(e,t){var n,r,i,a,o,s=function(e,t,n,r){{if(e=l.baseName(e),n=l.baseName(n),"opacity"==e&&"filter"==n)return r.replace(/opacity=[^)]*/i,"opacity="+Math.floor(100*parseFloat(t)));if("filter"==e&&"opacity"==n){var i=t.match(/opacity=([^)]*)/i);return i?c.prettifyNumber(parseInt(i[1],10)/100):r}}return t}(e.name(),e.value(),t.name(),t.value());n=t.name(),r=s,a=(i=/^\-(\w+)\-/).test(n)?RegExp.$1.toLowerCase():"",(o=l.findParts(r)).reverse(),o.forEach(function(e){var t=e.substring(r).replace(i,""),n=y.vendorPrefixes(t);n&&(a&&~n.indexOf(a)&&(t="-"+a+"-"+t),r=c.replaceSubstring(r,t,e))}),s=r,t.value(s)}return(n=n||{}).exports={reflectCSSValueAction:function(e){return"css"==e.getSyntax()&&i.compoundUpdate(e,function(e){var t=p.outputInfo(e),n=e.getCaretPos(),r=l.parseFromPosition(t.content,n);if(r){var i=r.itemFromPosition(n,!0);if(i){var a=r.source,o=r.options.offset,s=n-o-i.range().start;return u.exec(!1,[i]),a!==r.source?{data:r.source,start:o,end:o+a.length,caret:o+i.range().start+s}:void 0}}}(e))},_defaultHandler:function(t){var e,n,r,i=(e=t.name(),r="^(?:\\-\\w+\\-)?","opacity"!=(e=l.baseName(e))&&"filter"!=e||!a.get("css.reflect.oldIEOpacity")?(n=e.match(/^border-radius-(top|bottom)(left|right)/))?new RegExp(r+"(?:"+e+"|border-"+n[1]+"-"+n[2]+"-radius)$"):(n=e.match(/^border-(top|bottom)-(left|right)-radius/))?new RegExp(r+"(?:"+e+"|border-radius-"+n[1]+n[2]+")$"):new RegExp(r+e+"$"):new RegExp(r+"(?:opacity|filter)$"));t.parent.list().forEach(function(e){i.test(e.name())&&s(t,e)})},addHandler:function(e,t){u.add(e,t)},removeHandler:function(e){u.remove(e)}},u.add(n.exports._defaultHandler.bind(n.exports),{order:-1}),u.add(o.reflectValueHandler.bind(o)),n.exports})},{"../assets/handlerList":25,"../assets/preferences":28,"../editTree/css":37,"../resolver/css":64,"../resolver/cssGradient":65,"../utils/action":70,"../utils/common":73,"../utils/editor":75}],15:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("../utils/common"),y=e("../utils/editor"),l=e("../assets/htmlMatcher");return{removeTagAction:function(e){var t=y.outputInfo(e),n=l.tag(t.content,e.getCaretPos());if(n){if(n.close){var r=s.narrowToNonSpace(t.content,n.innerRange),i=s.findNewlineBounds(t.content,r.start),a=s.getLinePadding(i.substring(t.content)),o=r.substring(t.content);o=s.unindentString(o,a),e.replaceContent(s.getCaretPlaceholder()+s.escapeText(o),n.outerRange.start,n.outerRange.end)}else e.replaceContent(s.getCaretPlaceholder(),n.range.start,n.range.end);return!0}return!1}}})},{"../assets/htmlMatcher":26,"../utils/common":73,"../utils/editor":75}],16:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var u=e("../assets/range"),l=e("../utils/common"),f=e("../utils/editor"),r=e("../utils/action"),c=e("../assets/stringStream"),y=e("../parser/xml"),s=e("../editTree/css"),i=e("../utils/cssSections"),a=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/;function o(e,t,n,r){for(var i,a,o=f.outputInfo(e).content,s=o.length,y=u(-1,0),l=u(e.getSelectionRange()),c=l.start,p=1e5;0<=c&&c<s&&0<--p;){if(i=n(o,c,t)){if(y.equal(i))break;if(y=i.clone(),a=r(i.substring(o),i.start,l.clone()))return e.createSelection(a.start,a.end),!0;c=t?i.start:i.end-1}c+=t?-1:1}return!1}function p(e){var n=!0;return o(e,!1,function(e,t){return n?(n=!1,function(e,t){var n;for(;0<=t;){if(n=m(e,t))return n;t--}return null}(e,t)):m(e,t)},function(e,t,n){return h(e,t,n,!1)})}function d(t,e,n){n=n||0;var r,i,a=[],o=-1,s="",y="";return e.forEach(function(e){switch(e.type){case"tag":i=t.substring(e.start,e.end),/^<[\w\:\-]/.test(i)&&a.push(u({start:e.start+1,end:e.end}));break;case"attribute":o=e.start,s=t.substring(e.start,e.end);break;case"string":a.push(u(o,e.end-o)),r=u(e),g((y=r.substring(t)).charAt(0))&&r.start++,g(y.charAt(y.length-1))&&r.end--,a.push(r),"class"==s&&(a=a.concat(function(e,t){t=t||0;var n,r=[],i=c.create(e);i.eatSpace(),i.start=i.pos;for(;n=i.next();)/[\s\u00a0]/.test(n)&&(r.push(u(i.start+t,i.pos-i.start-1)),i.eatSpace(),i.start=i.pos);return r.push(u(i.start+t,i.pos-i.start)),r}(r.substring(t),r.start)))}}),a=a.filter(function(e){if(e.length())return e.shift(n),!0}),l.unique(a,function(e){return e.toString()})}function h(e,t,n,r){var i=d(e,y.parse(e),t);r&&i.reverse();var a=l.find(i,function(e){return e.equal(n)});if(a){var o=i.indexOf(a);return o<i.length-1?i[o+1]:null}if(r)return l.find(i,function(e){return e.start<n.start});if(!a){var s=i.filter(function(e){return e.inside(n.end)});if(1<s.length)return s[1]}return l.find(i,function(e){return e.end>n.end})}function m(e,t){var n;if("<"==e.charAt(t)&&(n=e.substring(t,e.length).match(a)))return u(t,n[0])}function g(e){return'"'==e||"'"==e}function b(e){var n=[e.nameRange(!0)];return i.nestedSectionsInRule(e).forEach(function(e){n.push(u.create2(e.start,e._selectorEnd))}),e.list().forEach(function(e){var t,i,a,o;n=n.concat((i=(t=e).valueRange(!0),a=[t.range(!0),i],o=t.value(),t.valueParts().forEach(function(e){var t=e.clone();a.push(t.shift(i.start));var n=c.create(e.substring(o));if(n.match(/^[\w\-]+\(/,!0)){n.start=n.pos,n.backUp(1),n.skipToPair("(",")"),n.backUp(1);var r=n.current();a.push(u(t.start+n.start,r)),s.findParts(r).forEach(function(e){a.push(u(t.start+n.start+e.start,e.substring(r)))})}}),a))}),n=(n=u.sort(n)).filter(function(e){return!!e.length()}),l.unique(n,function(e){return e.toString()})}function x(e,t,n){var r=b(e);n&&r.reverse();var i=l.find(r,function(e){return e.equal(t)});if(i)return r[r.indexOf(i)+1];var a=r.filter(function(e){return e.inside(t.end)});if(a.length)return a.sort(function(e,t){return e.length()-t.length()})[0];i=l.find(r,n?function(e){return e.end<t.start}:function(e){return e.end>t.start});return i||(i=r[0]),i}function w(e,t,n){return x(s.parse(e,{offset:t}),n,!1)}function v(e,t,n){return x(s.parse(e,{offset:t}),n,!0)}return{selectNextItemAction:function(e){return r.isSupportedCSS(e.getSyntax())?o(e,!1,i.locateRule.bind(i),w):p(e)},selectPreviousItemAction:function(e){return r.isSupportedCSS(e.getSyntax())?o(e,!0,i.locateRule.bind(i),v):o(e,!0,m,function(e,t,n){return h(e,t,n,!0)})}}})},{"../assets/range":30,"../assets/stringStream":32,"../editTree/css":37,"../parser/xml":62,"../utils/action":70,"../utils/common":73,"../utils/cssSections":74,"../utils/editor":75}],17:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){return{selectLineAction:function(e){var t=e.getCurrentLineRange();return e.createSelection(t.start,t.end),!0}}})},{}],18:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var m=e("../utils/common"),g=(e("../assets/resources"),e("../assets/htmlMatcher")),b=e("../utils/editor"),x=e("../assets/profile");return{splitJoinTagAction:function(e,t){var n,r,i,a,o,s,y,l,c,p,u,f=b.outputInfo(e,null,t),d=x.get(f.profile),h=g.tag(f.content,e.getCaretPos());return!!h&&(h.close?(y=e,l=h,c=d.selfClosing()||" /",p=l.open.range.substring(l.source).replace(/\s*>$/,c+">"),u=y.getCaretPos(),p.length+l.outerRange.start<u&&(u=p.length+l.outerRange.start),p=m.escapeText(p),y.replaceContent(p,l.outerRange.start,l.outerRange.end),y.setCaretPos(u)):(r=d,i=h,a=(n=e).getCaretPos(),o=!0===r.tag_nl?"\n\t\n":"",s=i.outerContent().replace(/\s*\/>$/,">"),a=i.outerRange.start+s.length,s+=o+"</"+i.open.name+">",s=m.escapeText(s),n.replaceContent(s,i.outerRange.start,i.outerRange.end),n.setCaretPos(a)),!0)}}})},{"../assets/htmlMatcher":26,"../assets/profile":29,"../assets/resources":31,"../utils/common":73,"../utils/editor":75}],19:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var i=e("../assets/preferences"),l=e("../assets/range"),c=e("../utils/common"),a=e("../utils/action"),p=e("../utils/editor"),o=e("../assets/htmlMatcher"),u=e("../editTree/css");function s(e){var t,n,r,i,a=l(e.getSelectionRange()),o=p.outputInfo(e);if(!a.length()){var s=u.parseFromPosition(o.content,e.getCaretPos());if(s){var y=(t=s,n=e.getCaretPos(),r=n-(t.options.offset||0),i=/^[\s\n\r]/,c.find(t.list(),function(e){return e.range().end===r?i.test(t.source.charAt(r)):e.range().inside(r)}));a=y?y.range(!0):l(s.nameRange(!0).start,s.source)}}return a.length()||(a=l(e.getCurrentLineRange()),c.narrowToNonSpace(o.content,a)),f(e,"/*","*/",a)}function f(e,t,n,r){var i=p.outputInfo(e).content,a=e.getCaretPos(),o=null;var s=function(n,e,t,r){for(var i=-1,a=-1,o=function(e,t){return n.substr(t,e.length)==e};e--;)if(o(t,e)){i=e;break}if(-1!=i){e=i;for(var s=n.length;s>=e++;)if(o(r,e)){a=e+r.length;break}}return-1!=i&&-1!=a?l(i,a-i):null}(i,a,t,n);return s&&s.overlap(r)?o=(r=s).substring(i).replace(new RegExp("^"+c.escapeForRegexp(t)+"\\s*"),function(e){return a-=e.length,""}).replace(new RegExp("\\s*"+c.escapeForRegexp(n)+"$"),""):(o=t+" "+r.substring(i).replace(new RegExp(c.escapeForRegexp(t)+"\\s*|\\s*"+c.escapeForRegexp(n),"g"),"")+" "+n,a+=t.length+1),null!==o&&(o=c.escapeText(o),e.setCaretPos(r.start),e.replaceContent(p.unindent(e,o),r.start,r.end),e.setCaretPos(a),!0)}return{toggleCommentAction:function(e){var t=p.outputInfo(e);if(a.isSupportedCSS(t.syntax)){var n=e.getCaretPos(),r=o.tag(t.content,n);r&&r.open.range.inside(n)&&(t.syntax="html")}return~i.getArray("css.syntaxes").indexOf(t.syntax)?s(e):function(e){var t=l(e.getSelectionRange()),n=p.outputInfo(e);if(!t.length()){var r=o.tag(n.content,e.getCaretPos());r&&(t=r.outerRange)}return f(e,"\x3c!--","--\x3e",t)}(e)}}})},{"../assets/htmlMatcher":26,"../assets/preferences":28,"../assets/range":30,"../editTree/css":37,"../utils/action":70,"../utils/common":73,"../utils/editor":75}],20:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var o=e("../utils/common"),s=e("../utils/editor"),y=e("../utils/action"),a=e("../editTree/xml"),l=e("../editTree/css"),c=e("../utils/base64"),p=e("../plugin/file");function u(e,t,n){var r;if(t){if(/^data:/.test(t))return r=c.decode(t.replace(/^data\:.+?;.+?,/,"")),n(y.getImageSize(r));var i=p.locateFile(e.getFilePath(),t);if(null===i)throw"Can't find "+t+" file";p.read(i,function(e,t){if(e)throw"Unable to read "+i+": "+e;t=String(t),n(y.getImageSize(t))})}}return{updateImageSizeAction:function(e){var n,r,t,i;return y.isSupportedCSS(e.getSyntax())?function(n){var r=n.getCaretPos(),e=s.outputInfo(n),i=l.parseFromPosition(e.content,r,!0);if(i){var t,a=i.itemFromPosition(r,!0);a&&(t=/url\((["']?)(.+?)\1\)/i.exec(a.value()||""))&&u(n,t[2],function(e){if(e){var t=i.range(!0);i.value("width",e.width+"px"),i.value("height",e.height+"px",i.indexOf("width")+1),y.compoundUpdate(n,o.extend(t,{data:i.toString(),caret:r}))}})}}(e):(r=(n=e).getCaretPos(),t=s.outputInfo(n),(i=a.parseFromPosition(t.content,r,!0))&&"img"==(i.name()||"").toLowerCase()&&u(n,i.value("src"),function(e){if(e){var t=i.range(!0);i.value("width",e.width),i.value("height",e.height,i.indexOf("width")+1),y.compoundUpdate(n,o.extend(t,{data:i.toString(),caret:r}))}})),!0}}})},{"../editTree/css":37,"../editTree/xml":38,"../plugin/file":63,"../utils/action":70,"../utils/base64":71,"../utils/common":73,"../utils/editor":75}],21:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("../editTree/xml"),a=(e("../utils/editor"),e("../utils/action")),y=e("../utils/common"),l=e("../parser/abbreviation");return{updateTagAction:function(e,t){if(!(t=t||e.prompt("Enter abbreviation")))return!1;var n=e.getContent(),r=a.captureContext(e),i=this.getUpdatedTag(t,r,n);return!!i&&(i.name()!=r.name&&r.match.close&&e.replaceContent("</"+i.name()+">",r.match.close.range.start,r.match.close.range.end,!0),e.replaceContent(i.source,r.match.open.range.start,r.match.open.range.end,!0),!0)},getUpdatedTag:function(e,t,n,r){if(!t)return null;var i=l.parse(e,r||{}),a=s.parse(t.match.open.range.substring(n),{offset:t.match.outerRange.start});i.children.forEach(function(e,t){!function(i,t,e){var n=(t.attribute("class")||"").split(/\s+/g);e&&n.push("+"+t.name());var a=function(e){return y.replaceCounter(e,t.counter)};n.forEach(function(e){if(e){var t=(e=a(e)).charAt(0);"+"==t?i.addClass(e.substr(1)):"-"==t?i.removeClass(e.substr(1)):i.value("class",e)}}),t.attributeList().forEach(function(e){if("class"!=e.name.toLowerCase()){var t=e.name.charAt(0);if("+"==t){var n=e.name.substr(1),r=i.get(n);r?r.value(r.value()+a(e.value)):i.value(n,a(e.value))}else"-"==t?i.remove(e.name.substr(1)):i.value(e.name,a(e.value))}})}(a,e,t)});var o=i.children[0];return o.data("nameResolved")||a.name(o.name()),a}}})},{"../editTree/xml":38,"../parser/abbreviation":55,"../utils/action":70,"../utils/common":73,"../utils/editor":75}],22:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var l=e("../assets/range"),c=e("../assets/htmlMatcher"),p=e("../utils/common"),u=e("../utils/editor"),f=e("../utils/action"),d=e("../parser/abbreviation");return{wrapWithAbbreviationAction:function(e,t,n,r){var i=u.outputInfo(e,n,r);if(!(t=t||e.prompt("Enter abbreviation")))return null;t=String(t);var a=l(e.getSelectionRange());if(!a.length()){var o=c.tag(i.content,a.start);if(!o)return!1;a=p.narrowToNonSpace(i.content,o.range)}var s=p.escapeText(a.substring(i.content)),y=d.expand(t,{pastedContent:u.unindent(e,s),syntax:i.syntax,profile:i.profile,contextNode:f.captureContext(e)});return!!y&&(e.replaceContent(y,a.start,a.end),!0)}}})},{"../assets/htmlMatcher":26,"../assets/range":30,"../parser/abbreviation":55,"../utils/action":70,"../utils/common":73,"../utils/editor":75}],23:[function(t,n,r){if("object"==typeof n&&"function"!=typeof s)var s=function(e){n.exports=e(t,r,n)};s(function(e,t,n){var f=e("./preferences"),d=e("../utils/common");f.define("caniuse.enabled",!0,"Enable support of Can I Use database. When enabled,\t\tCSS abbreviation resolver will look at Can I Use database first before detecting\t\tCSS properties that should be resolved"),f.define("caniuse.vendors","all","A comma-separated list vendor identifiers\t\t(as described in Can I Use database) that should be supported\t\twhen resolving vendor-prefixed properties. Set value to <code>all</code>\t\tto support all available properties"),f.define("caniuse.era","e-2","Browser era, as defined in Can I Use database.\t\tExamples: <code>e0</code> (current version), <code>e1</code> (near future)\t\t<code>e-2</code> (2 versions back) and so on.");var i={"border-image":["border-image"],"css-boxshadow":["box-shadow"],"css3-boxsizing":["box-sizing"],multicolumn:["column-width","column-count","columns","column-gap","column-rule-color","column-rule-style","column-rule-width","column-rule","column-span","column-fill"],"border-radius":["border-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius"],transforms2d:["transform"],"css-hyphens":["hyphens"],"css-transitions":["transition","transition-property","transition-duration","transition-timing-function","transition-delay"],"font-feature":["font-feature-settings"],"css-animation":["animation","animation-name","animation-duration","animation-timing-function","animation-iteration-count","animation-direction","animation-play-state","animation-delay","animation-fill-mode","@keyframes"],"css-gradients":["linear-gradient"],"css-masks":["mask-image","mask-source-type","mask-repeat","mask-position","mask-clip","mask-origin","mask-size","mask","mask-type","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat","mask-box-image","clip-path","clip-rule"],"css-featurequeries":["@supports"],flexbox:["flex","inline-flex","flex-direction","flex-wrap","flex-flow","order","flex"],calc:["calc"],"object-fit":["object-fit","object-position"],"css-grid":["grid","inline-grid","grid-template-rows","grid-template-columns","grid-template-areas","grid-template","grid-auto-rows","grid-auto-columns"," grid-auto-flow","grid-auto-position","grid"," grid-row-start","grid-column-start","grid-row-end","grid-column-end","grid-column","grid-row","grid-area","justify-self","justify-items","align-self","align-items"],"css-repeating-gradients":["repeating-linear-gradient"],"css-filters":["filter"],"user-select-none":["user-select"],"intrinsic-width":["min-content","max-content","fit-content","fill-available"],"css3-tabsize":["tab-size"]},h=null,m=null,g=null;function r(e,t){"string"==typeof e&&(e=JSON.parse(e)),t||(e=a(e)),m=e.vendors,h=e.css,g=e.era}function a(e){return"string"==typeof e&&(e=JSON.parse(e)),{vendors:(n=e,r={},Object.keys(n.agents).forEach(function(e){var t=n.agents[e];r[e]={prefix:t.prefix,versions:t.versions}}),r),css:function(n){var r={};n.cats.CSS;return Object.keys(n.data).forEach(function(e){var t=n.data[e];e in i&&i[e].forEach(function(e){r[e]=t.stats})}),r}(e),era:(t=e,Object.keys(t.eras).sort(function(e,t){return parseInt(e.substr(1))-parseInt(t.substr(1))}))};var t,n,r}var o=null;return function(e){if(void 0===s||!s.amd)try{var t=e("fs"),n=e("path");o=t.readFileSync(n.join(__dirname,"../caniuse.json"),{encoding:"utf8"})}catch(e){}}(e),o&&r(o),{load:r,optimize:a,resolvePrefixes:function(e){if(!(f.get("caniuse.enabled")&&h&&e in h))return null;var t,n,r,i,a,o,s,y,l,c=[],p=h[e],u=(t=f.get("caniuse.era"),~(n=g.indexOf(t))||(n=g.indexOf("e-2")),n);return(y=Object.keys(m),l=f.getArray("caniuse.vendors"),l&&"all"!=l[0]?(a=[],s=i=l,(o=r=y).length>s.length&&(o=i,s=r),s.forEach(function(e){~o.indexOf(e)&&a.push(e)}),a):y).forEach(function(e){for(var t,n=m[e].versions.slice(u),r=0;r<n.length;r++)if((t=n[r])&&~p[e][t].indexOf("x")){c.push(m[e].prefix);break}}),d.unique(c).sort(function(e,t){return t.length-e.length})}}})},{"../utils/common":73,"./preferences":28}],24:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var i={},a=/([@\!]?)([\w\-:]+)\s*=\s*(['"])(.*?)\3/g;function r(e){return{data:e}}return(n=n||{}).exports={add:function(t,n){var r=this;i[t]=function(){var e=n.apply(r,arguments);return e&&(e.type=t),e}},get:function(e){return i[e]},create:function(e){var t=[].slice.call(arguments,1),n=this.get(e);return n?n.apply(this,t):null},is:function(e,t){return this.type(e)===t},type:function(e){return e&&e.type}},n.exports.add("element",function(e,t,n){var r={name:e,is_empty:!!n};if(t)if(r.attributes=[],Array.isArray(t))r.attributes=t;else if("string"==typeof t)for(var i;i=a.exec(t);)r.attributes.push({name:i[2],value:i[4],isDefault:"@"==i[1],isImplied:"!"==i[1]});else r.attributes=Object.keys(t).map(function(e){return{name:e,value:t[e]}});return r}),n.exports.add("snippet",r),n.exports.add("reference",r),n.exports.add("empty",function(){return{}}),n.exports})},{}],25:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var i=e("../utils/common");function r(){this._list=[]}return r.prototype={add:function(e,t){var n=this._list.length;t&&"order"in t&&(n=1e4*t.order),this._list.push(i.extend({},t,{order:n,fn:e}))},remove:function(t){var e=i.find(this._list,function(e){return e.fn===t});e&&this._list.splice(this._list.indexOf(e),1)},list:function(){return this._list.sort(function(e,t){return t.order-e.order})},listFn:function(){return this.list().map(function(e){return e.fn})},exec:function(t,n){n=n||[];var r=null;return i.find(this.list(),function(e){if((r=e.fn.apply(e,n))!==t)return!0}),r}},{create:function(){return new r}}})},{"../utils/common":73}],26:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var f=e("./range"),c=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,p=/^<\/([\w\:\-]+)[^>]*>/;function d(s){var y,l={};return{open:function(e){var t=this.matches(e);return t&&"open"==t.type?t:null},close:function(e){var t=this.matches(e);return t&&"close"==t.type?t:null},matches:function(e){var t,n,r,i,a="p"+e;if(!(a in l)&&(l[a]=!1,"<"==s.charAt(e))){var o=s.slice(e);(y=o.match(c))?l[a]=(r=e,{name:(i=y)[1],selfClose:!!i[3],range:f(r,i[0]),type:"open"}):(y=o.match(p))&&(l[a]=(t=e,{name:(n=y)[1],range:f(t,n[0]),type:"close"}))}return l[a]},text:function(){return s},clean:function(){l=s=y=null}}}function h(e,t,n){return e.substring(t,t+n.length)==n}function m(e,t){for(var n=[],r=null,i=t.text(),a=e.range.end,o=i.length;a<o;a++){if(h(i,a,"\x3c!--"))for(var s=a;s<o;s++)if(h(i,s,"--\x3e")){a=s+3;break}if(r=t.matches(a)){if("open"!=r.type||r.selfClose){if("close"==r.type){if(!n.length)return r.name==e.name?r:null;if(n[n.length-1]==r.name)n.pop();else{for(var y=!1;n.length&&!y;){n.pop()==r.name&&(y=!0)}if(!n.length&&!y)return r.name==e.name?r:null}}}else n.push(r.name);a=r.range.end-1}}}return{find:function(e,t){for(var n,r,i,a,o=d(e),s=null,y=null,l=t;0<=l;l--)if(s=o.open(l)){if(s.selfClose){if(s.range.cmp(t,"lt","gt"))break;continue}if(y=m(s,o)){if(f.create2(s.range.start,y.range.end).contains(t))break}else if(s.range.contains(t))break;s=null}else if(h(e,l,"--\x3e")){for(n=l-1;0<=n&&!h(e,n,"--\x3e");n--)if(h(e,n,"\x3c!--")){l=n;break}}else if(h(e,l,"\x3c!--")){for(n=l+4,r=e.length;n<r;n++)if(h(e,n,"--\x3e")){n+=3;break}s={range:f(i=l,"number"==typeof(a=n)?a-i:a[0]),type:"comment"};break}if(o.clean(),s){var c=null,p=null;if(y?(c=f.create2(s.range.start,y.range.end),p=f.create2(s.range.end,y.range.start)):c=p=f.create2(s.range.start,s.range.end),"comment"==s.type){var u=c.substring(e);p.start+=u.length-u.replace(/^<\!--\s*/,"").length,p.end-=u.length-u.replace(/\s*-->$/,"").length}return{open:s,close:y,type:"comment"==s.type?"comment":"tag",innerRange:p,innerContent:function(){return this.innerRange.substring(e)},outerRange:c,outerContent:function(){return this.outerRange.substring(e)},range:p.length()&&p.cmp(t,"lte","gte")?p:c,content:function(){return this.range.substring(e)},source:e}}},tag:function(e,t){var n=this.find(e,t);if(n&&"tag"==n.type)return n}}})},{"./range":30}],27:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){return{log:function(){"undefined"!=typeof console&&console.log&&console.log.apply(console,arguments)}}})},{}],28:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../utils/common"),i={},a={},o=null,s=null;return{define:function(e,t,n){var r=e;"string"==typeof e&&((r={})[e]={value:t,description:n}),Object.keys(r).forEach(function(e){var t,n=r[e];a[e]="object"==typeof(t=n)&&!Array.isArray(t)&&"value"in t&&Object.keys(t).length<3?n:{value:n}})},set:function(e,t){var r=e;"string"==typeof e&&((r={})[e]=t),Object.keys(r).forEach(function(e){var t,n=r[e];if(!(e in a))throw new Error('Property "'+e+'" is not defined. You should define it first with `define` method of current module');if(n!==a[e].value){switch(typeof a[e].value){case"boolean":n="string"==typeof(t=n)?"yes"==(t=t.toLowerCase())||"true"==t||"1"==t:!!t;break;case"number":n=parseInt(n+"",10)||0;break;default:null!==n&&(n+="")}i[e]=n}else e in i&&delete i[e]})},get:function(e){return e in i?i[e]:e in a?a[e].value:void 0},getArray:function(e){var t=this.get(e);return null==t||""===t?null:(t=t.split(",").map(r.trim)).length?t:null},getDict:function(e){var n={};return this.getArray(e).forEach(function(e){var t=e.split(":");n[t[0]]=t[1]}),n},description:function(e){return e in a?a[e].description:void 0},remove:function(e){Array.isArray(e)||(e=[e]),e.forEach(function(e){e in i&&delete i[e],e in a&&delete a[e]})},list:function(){return Object.keys(a).sort().map(function(e){return{name:e,value:this.get(e),type:typeof a[e].value,description:a[e].description}},this)},load:function(t){Object.keys(t).forEach(function(e){this.set(e,t[e])},this)},exportModified:function(){return r.extend({},i)},reset:function(){i={}},_startTest:function(){o=a,s=i,a={},i={}},_stopTest:function(){a=o,i=s}}})},{"../utils/common":73}],29:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../utils/common"),i=e("./resources"),a=e("./preferences");a.define("profile.allowCompactBoolean",!0,'This option can be used to globally disable compact form of boolean attribues (attributes where name and value are equal). With compactform enabled, HTML tags can be outputted as <code>&lt;div contenteditable&gt;</code> instead of <code>&lt;div contenteditable="contenteditable"&gt;</code>'),a.define("profile.booleanAttributes","^contenteditable|seamless$","A regular expression for attributes that should be boolean by default.If attribute name matches this expression, you dont have to write dot after attribute name in Emmet abbreviation to mark it as boolean.");var o={},s={tag_case:"asis",attr_case:"asis",attr_quotes:"double",tag_nl:"decide",tag_nl_leaf:!1,place_cursor:!0,indent:!0,inline_break:3,compact_bool:!1,self_closing_tag:"xhtml",filters:"",extraFilters:""};function y(e){r.extend(this,s,e)}function l(e,t){switch(String(t||"").toLowerCase()){case"lower":return e.toLowerCase();case"upper":return e.toUpperCase()}return e}function c(e,t){return o[e.toLowerCase()]=new y(t)}function p(){c("xhtml"),c("html",{self_closing_tag:!1,compact_bool:!0}),c("xml",{self_closing_tag:!0,tag_nl:!0}),c("plain",{tag_nl:!1,indent:!1,place_cursor:!1}),c("line",{tag_nl:!1,indent:!1,extraFilters:"s"}),c("css",{tag_nl:!0}),c("css_line",{tag_nl:!1})}return y.prototype={tagName:function(e){return l(e,this.tag_case)},attributeName:function(e){return l(e,this.attr_case)},attributeQuote:function(){return"single"==this.attr_quotes?"'":'"'},selfClosing:function(){return"xhtml"==this.self_closing_tag?" /":!0===this.self_closing_tag?"/":""},cursor:function(){return this.place_cursor?r.getCaretPlaceholder():""},isBoolean:function(e,t){if(e==t)return!0;var n=a.get("profile.booleanAttributes");return!(t||!n)&&(n=new RegExp(n,"i")).test(e)},allowCompactBoolean:function(){return this.compact_bool&&a.get("profile.allowCompactBoolean")}},p(),{create:function(e,t){return 2==arguments.length?c(e,t):new y(r.defaults(e||{},s))},get:function(e,t){if(!e&&t){var n=i.findItem(t,"profile");n&&(e=n)}return e?e instanceof y?e:"string"==typeof e&&e.toLowerCase()in o?o[e.toLowerCase()]:this.create(e):o.plain},remove:function(e){(e=(e||"").toLowerCase())in o&&delete o[e]},reset:function(){o={},p()},stringCase:l}})},{"../utils/common":73,"./preferences":28,"./resources":31}],30:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){function a(e,t,n){switch(n){case"eq":case"==":return e===t;case"lt":case"<":return e<t;case"lte":case"<=":return e<=t;case"gt":case">":return t<e;case"gte":case">=":return t<=e}}function o(e,t){"object"==typeof e&&"start"in e?(this.start=Math.min(e.start,e.end),this.end=Math.max(e.start,e.end)):Array.isArray(e)?(this.start=e[0],this.end=e[1]):(t="string"==typeof t?t.length:+t,this.start=e,this.end=e+t)}return o.prototype={length:function(){return Math.abs(this.end-this.start)},equal:function(e){return this.cmp(e,"eq","eq")},shift:function(e){return this.start+=e,this.end+=e,this},overlap:function(e){return e.start<=this.end&&e.end>=this.start},intersection:function(e){if(this.overlap(e)){var t=Math.max(e.start,this.start);return new o(t,Math.min(e.end,this.end)-t)}return null},union:function(e){if(this.overlap(e)){var t=Math.min(e.start,this.start);return new o(t,Math.max(e.end,this.end)-t)}return null},inside:function(e){return this.cmp(e,"lte","gt")},contains:function(e){return this.cmp(e,"lt","gt")},include:function(e){return this.cmp(e,"lte","gte")},cmp:function(e,t,n){var r,i;return e instanceof o?(r=e.start,i=e.end):r=i=e,a(this.start,r,t||"<=")&&a(this.end,i,n||">")},substring:function(e){return 0<this.length()?e.substring(this.start,this.end):""},clone:function(){return new o(this.start,this.length())},toArray:function(){return[this.start,this.end]},toString:function(){return this.valueOf()},valueOf:function(){return"{"+this.start+", "+this.length()+"}"}},n.exports=function(e,t){return null==e?null:e instanceof o?e:("object"==typeof e&&"start"in e&&"end"in e&&(t=e.end-e.start,e=e.start),new o(e,t))},n.exports.create=n.exports,n.exports.isRange=function(e){return e instanceof o},n.exports.create2=function(e,t){return"number"==typeof e&&"number"==typeof t&&(t-=e),this.create(e,t)},n.exports.sort=function(e,t){return e=e.sort(function(e,t){return e.start===t.start?t.end-e.end:e.start-t.start}),t&&e.reverse(),e},n.exports})},{}],31:[function(t,n,r){if("object"==typeof n&&"function"!=typeof g)var g=function(e){n.exports=e(t,r,n)};g(function(e,i,t){var n=e("./handlerList"),s=e("../utils/common"),y=e("./elements"),a=(e("../assets/logger"),e("../vendor/stringScore")),r=e("../resolver/css"),o="system",l={},c=/^<(\w+\:?[\w\-]*)((?:\s+[@\!]?[\w\:\-]+\s*=\s*(['"]).*?\3)*)\s*(\/?)>/,p={},u={},f=n.create();function d(t,n){t&&Object.keys(t).forEach(function(e){n(t[e],e)})}function h(e,t,n){var r,i,a,o;return r=t,t=s.replaceUnescapedSymbol(r,"|",s.getCaretPlaceholder()),"snippets"==n?y.create("snippet",t):"abbreviations"==n?(i=e,a=t,i=s.trim(i),(o=c.exec(a))?y.create("element",o[1],o[2],"/"==o[4]):y.create("reference",a)):void 0}function m(e){return e.replace(/:$/,"").replace(/:/g,"-")}return s.extend(i,{setVocabulary:function(e,t){l={};var r={};d(e,function(e,t){var n={};d(e,function(e,t){var i;"abbreviations"!=t&&"snippets"!=t||(i={},d(e,function(e,t){for(var n=t.split("|"),r=n.length-1;0<=r;r--)i[n[r]]=e}),e=i),n[t]=e}),r[t]=n}),t==o?p=r:u=r},getVocabulary:function(e){return e==o?p:u},getMatchedResource:function(e,t){return f.exec(null,s.toArray(arguments))||this.findSnippet(t,e.name())},getVariable:function(e){return(this.getSection("variables")||{})[e]},setVariable:function(e,t){var n=this.getVocabulary("user")||{};"variables"in n||(n.variables={}),n.variables[e]=t,this.setVocabulary(n,"user")},hasSyntax:function(e){return e in this.getVocabulary("user")||e in this.getVocabulary(o)},addResolver:function(e,t){f.add(e,t)},removeResolver:function(e){f.remove(e)},getSection:function(e){if(!e)return null;e in l||(l[e]=s.deepMerge({},p[e],u[e]));for(var t,n=l[e],r=s.toArray(arguments,1);n&&(t=r.shift());){if(!(t in n))return null;n=n[t]}return n},findItem:function(e,t){for(var n=this.getSection(e);n;){if(t in n)return n[t];n=this.getSection(n.extends)}},findSnippet:function(e,t,n){if(!e||!t)return null;n=n||[];var r=[t];~t.indexOf("-")&&r.push(t.replace(/\-/g,":"));var i=this.getSection(e),a=null;return["snippets","abbreviations"].some(function(t){var n=this.getSection(e,t);if(n)return r.some(function(e){if(n[e])return a=h(e,n[e],t)})},this),n.push(e),a||!i.extends||~n.indexOf(i.extends)?a:this.findSnippet(i.extends,t,n)},fuzzyFindSnippet:function(e,t,n){var r=this.fuzzyFindMatches(e,t,n)[0];if(r)return r.value.parsedValue},fuzzyFindMatches:function(e,n,t){t=t||.3,n=m(n);var r=this.getAllSnippets(e);return Object.keys(r).map(function(e){var t=r[e];return{key:e,score:a.score(t.nk,n,.1),value:t}}).filter(function(e){return e.score>=t}).sort(function(e,t){return e.score-t.score}).reverse()},getAllSnippets:function(e){var t="all-"+e;if(!l[t]){var i=[],n=e,r=[];do{var a=this.getSection(n);if(!a)break;["snippets","abbreviations"].forEach(function(n){var r={};d(a[n]||null,function(e,t){r[t]={nk:m(t),value:e,parsedValue:h(t,e,n),type:n}}),i.push(r)}),r.push(n),n=a.extends}while(n&&!~r.indexOf(n));l[t]=s.extend.apply(s,i.reverse())}return l[t]},getNewline:function(){var e=this.getVariable("newline");return"string"==typeof e?e:"\n"},setNewline:function(e){this.setVariable("newline",e),this.setVariable("nl",e)}}),i.addResolver(r.resolve.bind(r)),function(e){if(void 0===g||!g.amd)try{var t=e("fs"),n=e("path"),r=t.readFileSync(n.join(__dirname,"../snippets.json"),{encoding:"utf8"});i.setVocabulary(JSON.parse(r),o)}catch(e){}}(e),i})},{"../assets/logger":27,"../resolver/css":64,"../utils/common":73,"../vendor/stringScore":79,"./elements":24,"./handlerList":25}],32:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){function r(e){this.pos=this.start=0,this.string=e,this._length=e.length}return r.prototype={eol:function(){return this.pos>=this._length},sol:function(){return 0===this.pos},peek:function(){return this.string.charAt(this.pos)},next:function(){if(this.pos<this._length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this._length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(-1<t)return this.pos=t,!0},skipToPair:function(e,t,n){for(var r,i=0,a=this.pos,o=this._length;a<o;)if((r=this.string.charAt(a++))==e)i++;else if(r==t){if(--i<1)return this.pos=a,!0}else!n||'"'!=r&&"'"!=r||this.skipString(r);return!1},skipQuoted:function(e){var t=this.string.charAt(e?this.pos:this.pos-1);if('"'===t||"'"===t)return e&&this.pos++,this.skipString(t)},skipString:function(e){for(var t,n=this.pos,r=this._length;n<r;)if("\\"!=(t=this.string.charAt(n++))&&t==e)return this.pos=n,!0;return!1},backUp:function(e){this.pos-=e},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&!1!==t&&(this.pos+=r[0].length),r}var i=n?function(e){return e.toLowerCase()}:function(e){return e};if(i(this.string).indexOf(i(e),this.pos)==this.pos)return!1!==t&&(this.pos+=e.length),!0},current:function(e){return this.string.slice(this.start,this.pos-(e?1:0))}},n.exports=function(e){return new r(e)},n.exports.create=n.exports,n.exports})},{}],33:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var l=e("../utils/common"),c=e("./stringStream"),o=e("./resources"),s=100,y=0,p={replaceCarets:!1,escape:function(e){return"\\"+e},tabstop:function(e){return e.token},variable:function(e){return e.token}};return{extract:function(r,e){var i={carets:""},a=[];(e=l.extend({},p,e,{tabstop:function(e){var t=e.token,n="";return"cursor"==e.placeholder?a.push({start:e.start,end:e.start+t.length,group:"carets",value:""}):("placeholder"in e&&(i[e.group]=e.placeholder),e.group in i&&(n=i[e.group]),a.push({start:e.start,end:e.start+t.length,group:e.group,value:n})),t}})).replaceCarets&&(r=r.replace(new RegExp(l.escapeForRegexp(l.getCaretPlaceholder()),"g"),"${0:cursor}")),r=this.processText(r,e);var o="",s=0,t=a.map(function(e){var t=(o+=r.substring(s,e.start)).length,n=i[e.group]||"";return o+=n,s=e.end,{group:e.group,start:t,end:t+n.length}});return{text:o+=r.substring(s),tabstops:t.sort(function(e,t){return e.start-t.start})}},processText:function(e,t){t=l.extend({},p,t);for(var n,r,i,a="",o=c.create(e);n=o.next();)if("\\"!=n||o.eol()){if("$"==(i=n))if(o.start=o.pos-1,r=o.match(/^[0-9]+/))i=t.tabstop({start:a.length,group:o.current().substr(1),token:o.current()});else if(r=o.match(/^\{([a-z_\-][\w\-]*)\}/))i=t.variable({start:a.length,name:r[1],token:o.current()});else if(r=o.match(/^\{([0-9]+)(:.+?)?\}/,!1)){o.skipToPair("{","}");var s={start:a.length,group:r[1],token:o.current()},y=s.token.substring(s.group.length+2,s.token.length-1);y&&(s.placeholder=y.substr(1)),i=t.tabstop(s)}a+=i}else a+=t.escape(o.next());return a},upgrade:function(t,n){var r=0,i={tabstop:function(e){var t=parseInt(e.group,10);return r<t&&(r=t),e.placeholder?"${"+(t+n)+":"+e.placeholder+"}":"${"+(t+n)+"}"}};return["start","end","content"].forEach(function(e){t[e]=this.processText(t[e],i)},this),r},variablesResolver:function(i){var a={};return function(e,t){if("child"==t)return e;if("cursor"==t)return l.getCaretPlaceholder();var n=i.attribute(t);if(void 0!==n&&n!==e)return n;var r=o.getVariable(t);return r||(a[t]||(a[t]=s++),"${"+a[t]+":"+t+"}")}},replaceVariables:function(e,n){var r="function"==typeof(n=n||{})?n:function(e,t){return t in n?n[t]:null};return this.processText(e,{variable:function(e){var t=r(e.token,e.name,e);return null===t&&(t=o.getVariable(e.name)),null==t&&(t=e.token),t}})},resetTabstopIndex:function(){y=0,s=100},abbrOutputProcessor:function(e,t,n){var r=0,i=this,a={tabstop:function(e){var t=parseInt(e.group,10);return 0===t?"${0}":(r<t&&(r=t),e.placeholder?"${"+(t+y)+":"+i.processText(e.placeholder,a)+"}":"${"+(t+y)+"}")}};return e=this.processText(e,a),e=this.replaceVariables(e,this.variablesResolver(t)),y+=r+1,e}}})},{"../utils/common":73,"./resources":31,"./stringStream":32}],34:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){function r(e){this.tokens=e,this._position=0,this.reset()}return r.prototype={next:function(){if(this.hasNext()){var e=this.tokens[++this._i];return this._position=e.start,e}return this._i=this._il,null},current:function(){return this.tokens[this._i]},peek:function(){return this.tokens[this._i+i]},position:function(){return this._position},hasNext:function(){return this._i<this._il-1},reset:function(){this._i=0,this._il=this.tokens.length},item:function(){return this.tokens[this._i]},itemNext:function(){return this.tokens[this._i+1]},itemPrev:function(){return this.tokens[this._i-1]},nextUntil:function(t,e){for(var n,r="string"==typeof t?function(e){return e.type==t}:t;(n=this.next())&&(e&&e.call(this,n),!r.call(this,n)););}},{create:function(e){return new r(e)}}})},{}],35:[function(e,t,n){t.exports={eras:{"e-26":"26 versions back","e-25":"25 versions back","e-24":"24 versions back","e-23":"23 versions back","e-22":"22 versions back","e-21":"21 versions back","e-20":"20 versions back","e-19":"19 versions back","e-18":"18 versions back","e-17":"17 versions back","e-16":"16 versions back","e-15":"15 versions back","e-14":"14 versions back","e-13":"13 versions back","e-12":"12 versions back","e-11":"11 versions back","e-10":"10 versions back","e-9":"9 versions back","e-8":"8 versions back","e-7":"7 versions back","e-6":"6 versions back","e-5":"5 versions back","e-4":"4 versions back","e-3":"3 versions back","e-2":"2 versions back","e-1":"Previous version",e0:"Current",e1:"Near future",e2:"Farther future"},agents:{ie:{browser:"IE",abbr:"IE",prefix:"ms",type:"desktop",usage_global:{10:10.7866,11:.114751,5.5:.009298,6:.204912,7:.508182,8:8.31124,9:5.21297},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"5.5","6","7","8","9","10","11",null,null],current_version:""},firefox:{browser:"Firefox",abbr:"FF",prefix:"moz",type:"desktop",usage_global:{10:.112406,11:.088319,12:.208754,13:.096348,14:.096348,15:.136493,16:.264957,17:.192696,18:.112406,19:.128464,2:.016058,20:.16058,21:.216783,22:.256928,23:.907277,24:11.0318,25:.529914,26:.016058,27:.016058,3:.088319,3.5:.040145,3.6:.305102,4:.072261,5:.048174,6:.048174,7:.040145,8:.072261,9:.056203},versions:[null,"2","3","3.5","3.6","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27"],current_version:""},chrome:{browser:"Chrome",abbr:"Chr.",prefix:"webkit",type:"desktop",usage_global:{10:.048174,11:.112406,12:.064232,13:.056203,14:.056203,15:.072261,16:.048174,17:.040145,18:.08029,19:.040145,20:.040145,21:.48174,22:.248899,23:.216783,24:.200725,25:.361305,26:.353276,27:.369334,28:.610204,29:5.08236,30:24.6089,31:.16058,32:.064232,4:.024087,5:.024087,6:.032116,7:.024087,8:.032116,9:.024087},versions:["4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32"],current_version:""},safari:{browser:"Safari",abbr:"Saf.",prefix:"webkit",type:"desktop",usage_global:{3.1:0,3.2:.008692,4:.104377,5:.305102,5.1:1.28464,6:2.04739,6.1:.064232,7:.16058},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"3.1","3.2","4","5","5.1","6","6.1","7",null,null],current_version:""},opera:{browser:"Opera",abbr:"Op.",prefix:"o",type:"desktop",usage_global:{"10.0-10.1":.016058,10.5:.008392,10.6:.008029,11:.008219,11.1:.008219,11.5:.016058,11.6:.032116,12:.040145,12.1:.48174,15:.032116,16:.104377,17:.16058,18:0,"9.5-9.6":.008219},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,"9.5-9.6","10.0-10.1","10.5","10.6","11","11.1","11.5","11.6","12","12.1","15","16","17","18",null],current_version:"",prefix_exceptions:{15:"webkit",16:"webkit",17:"webkit",18:"webkit"}},ios_saf:{browser:"iOS Safari",abbr:"iOS",prefix:"webkit",type:"mobile",usage_global:{3.2:.00400113,"4.0-4.1":.00800226,"4.2-4.3":.0280079,"5.0-5.1":.28408,"6.0-6.1":1.15633,"7.0":2.52071},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"3.2","4.0-4.1","4.2-4.3","5.0-5.1","6.0-6.1","7.0",null,null],current_version:""},op_mini:{browser:"Opera Mini",abbr:"O.Mini",prefix:"o",type:"mobile",usage_global:{"5.0-7.0":4.58374},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"5.0-7.0",null,null],current_version:""},android:{browser:"Android Browser",abbr:"And.",prefix:"webkit",type:"mobile",usage_global:{2.1:.0251229,2.2:.0854178,2.3:1.32146,3:.00502458,4:.994867,4.1:1.87417,"4.2-4.3":.743638,4.4:0},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"2.1","2.2","2.3","3","4","4.1","4.2-4.3","4.4",null],current_version:""},op_mob:{browser:"Opera Mobile",abbr:"O.Mob",prefix:"o",type:"mobile",usage_global:{0:0,10:0,11.5:.00726525,12:.0363263,12.1:.101714},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"10",null,null,"11.5","12","12.1","0",null,null],current_version:"16",prefix_exceptions:{0:"webkit"}},bb:{browser:"Blackberry Browser",abbr:"BB",prefix:"webkit",type:"mobile",usage_global:{10:0,7:.141419},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"7","10",null,null],current_version:""},and_chr:{browser:"Chrome for Android",abbr:"Chr/And.",prefix:"webkit",type:"mobile",usage_global:{0:1.38176},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"0",null,null],current_version:"30"},and_ff:{browser:"Firefox for Android",abbr:"FF/And.",prefix:"moz",type:"mobile",usage_global:{0:.070956},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"0",null,null],current_version:"25"},ie_mob:{browser:"IE Mobile",abbr:"IE.Mob",prefix:"ms",type:"mobile",usage_global:{10:.205595},versions:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"10",null,null],current_version:""}},statuses:{rec:"Recommendation",pr:"Proposed Recommendation",cr:"Candidate Recommendation",wd:"Working Draft",other:"Other",unoff:"Unofficial / Note"},cats:{CSS:["CSS","CSS2","CSS3"],HTML5:["Canvas","HTML5"],"JS API":["JS API"],Other:["PNG","Other","DOM"],SVG:["SVG"]},updated:1383587152,data:{"png-alpha":{title:"PNG alpha transparency",description:"Semi-transparent areas in PNG files",spec:"http://www.w3.org/TR/PNG/",status:"rec",links:[{url:"http://dillerdesign.com/experiment/DD_belatedPNG/",title:"Workaround for IE6"},{url:"http://en.wikipedia.org/wiki/Portable_Network_Graphics",title:"Wikipedia"}],categories:["PNG"],stats:{ie:{5.5:"n",6:"p",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"IE6 does support full transparency in 8-bit PNGs, which can sometimes be an alternative to 24-bit PNGs.",usage_perc_y:94.36,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},apng:{title:"Animated PNG (APNG)",description:"Like animated GIFs, but allowing 24-bit colors and alpha transparency",spec:"https://wiki.mozilla.org/APNG_Specification",status:"unoff",links:[{url:"http://en.wikipedia.org/wiki/APNG",title:"Wikipedia"},{url:"https://github.com/davidmz/apng-canvas",title:"Polyfill using canvas"},{url:"https://chrome.google.com/webstore/detail/ehkepjiconegkhpodgoaeamnpckdbblp",title:"Chrome extension providing support"},{url:"http://www.truekolor.net/learn-how-to-create-an-animated-png/",title:"APNG tutorial"}],categories:["PNG"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"n",32:"n"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"n"},and_chr:{0:"n"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"Where support for APNG is missing, only the first frame is displayed",usage_perc_y:16.19,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},video:{title:"Video element",description:"Method of playing videos on webpages (without requiring a plug-in)",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#video",status:"wd",links:[{url:"https://raw.github.com/phiggins42/has.js/master/detect/video.js#video",title:"has.js test"},{url:"http://webmproject.org",title:"WebM format information"},{url:"http://docs.webplatform.org/wiki/html/elements/video",title:"WebPlatform Docs"},{url:"http://camendesign.co.uk/code/video_for_everybody",title:"Video for Everybody"},{url:"http://diveinto.org/html5/video.html",title:"Video on the Web - includes info on Android support"},{url:"http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/",title:"Detailed article on video/audio elements"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a",2.2:"a",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Different browsers have support for different video formats, see sub-features for details. \r\n\r\nThe Android browser (before 2.3) requires <a href="http://www.broken-links.com/2010/07/08/making-html5-video-work-on-android-phones/">specific handling</a> to run the video element.',usage_perc_y:80.71,usage_perc_a:.11,ucprefix:!1,parent:"",keywords:"<video>"},audio:{title:"Audio element",description:"Method of playing sound on webpages (without requiring a plug-in)",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#audio",status:"wd",links:[{url:"http://html5doctor.com/native-audio-in-the-browser/",title:"HTML5 Doctor article"},{url:"http://textopia.org/androidsoundformats.html",title:"File format test page"},{url:"http://www.jplayer.org/latest/demos/",title:"Demos of audio player that uses &lt;audio>"},{url:"http://www.phoboslab.org/log/2011/03/the-state-of-html5-audio",title:"The State of HTML5 Audio"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/audio.js#audio",title:"has.js test"},{url:"http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/",title:"Detailed article on video/audio elements"},{url:"http://docs.webplatform.org/wiki/html/elements/audio",title:"WebPlatform Docs"},{url:"http://24ways.org/2010/the-state-of-html5-audio",title:"Detailed article on support"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"a","10.0-10.1":"a",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:80.7,usage_perc_a:.02,ucprefix:!1,parent:"",keywords:""},contenteditable:{title:"contenteditable attribute (basic support)",description:"Method of making any HTML element editable",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#contenteditable",status:"wd",links:[{url:"http://accessgarage.wordpress.com/2009/05/08/how-to-hack-your-app-to-make-contenteditable-work/",title:"Blog post on usage problems"},{url:"http://html5demos.com/contenteditable",title:"Demo page"},{url:"http://blog.whatwg.org/the-road-to-html-5-contenteditable",title:"WHATWG blog post"},{url:"http://docs.webplatform.org/wiki/html/attributes/contentEditable",title:"WebPlatform Docs"}],categories:["HTML5"],stats:{ie:{5.5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"a",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"This support only refers to very basic editing capability, implementations vary significantly on how certain elements can be edited.",usage_perc_y:88.37,usage_perc_a:.09,ucprefix:!1,parent:"",keywords:""},dragndrop:{title:"Drag and Drop",description:"Method of easily dragging and dropping elements on a page, requiring minimal JavaScript.",spec:"http://www.w3.org/TR/html5/editing.html#dnd",status:"wd",links:[{url:"http://html5demos.com/drag",title:"Demo with link blocks"},{url:"http://html5doctor.com/native-drag-and-drop/",title:"HTML5 Doctor article"},{url:"http://docs.webplatform.org/wiki/dom/events/drag",title:"WebPlatform Docs"},{url:"http://nettutsplus.s3.amazonaws.com/64_html5dragdrop/demo/index.html",title:"Shopping cart demo"}],categories:["HTML5"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"a",9:"a",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"p",10.6:"p",11:"p",11.1:"p",11.5:"p",11.6:"p",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"p",11:"p",11.1:"p",11.5:"p",12:"p",12.1:"y",0:"n"},and_chr:{0:"n"},and_ff:{0:"n"},ie_mob:{10:"y"}},notes:"Partial support in older IE refers to no support for the dataTransfer.files or .types objects and limited supported formats for dataTransfer.setData/getData.",usage_perc_y:64.83,usage_perc_a:14.25,ucprefix:!1,parent:"",keywords:"draganddrop"},queryselector:{title:"querySelector/querySelectorAll",description:"Method of accessing DOM elements using CSS selectors",spec:"http://www.w3.org/TR/selectors-api/",status:"rec",links:[{url:"http://docs.webplatform.org/wiki/css/selectors_api/querySelector",title:"WebPlatform Docs"},{url:"http://cjihrig.com/blog/javascripts-selectors-api/",title:"Blog post"},{url:"https://developer.mozilla.org/En/DOM/Element.querySelectorAll",title:"MDN article on querySelectorAll"},{url:"https://developer.mozilla.org/en/DOM/element.querySelector",title:"MDN article on querySelector"}],categories:["DOM"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Only works for the CSS selectors available. Thus the IE8 implementation is limited to the CSS 2.1 selectors",usage_perc_y:93.74,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"query,selectors,selectors api"},getelementsbyclassname:{title:"getElementsByClassName",description:"Method of accessing DOM elements by class name",spec:"http://www.w3.org/TR/dom/#dom-document-getelementsbyclassname",status:"wd",links:[{url:"http://www.quirksmode.org/dom/tests/basics.html#getElementsByClassName",title:"Test page"},{url:"http://docs.webplatform.org/wiki/dom/methods/getElementsByClassName",title:"WebPlatform Docs"}],categories:["DOM","HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"p",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:85.52,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"byclassname"},forms:{title:"HTML5 form features",description:'Expanded form options, including things like date pickers, sliders, validation, placeholders and multiple file uploads. Previously known as "Web forms 2.0".',spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html",status:"wd",links:[{url:"https://github.com/westonruter/webforms2",title:"Cross-browser JS implementation (based on original spec)"},{url:"http://www.miketaylr.com/code/input-type-attr.html",title:"HTML5 inputs and attribute support page"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"p",10:"a",11:"a"},firefox:{2:"p",3:"p",3.5:"p",3.6:"p",4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a"},chrome:{4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"p",3.2:"p",4:"a",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"n","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"a"},bb:{7:"n",10:"a"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"a"},and_chr:{0:"a"},and_ff:{0:"a"},ie_mob:{10:"a"}},notes:"",usage_perc_y:4.75,usage_perc_a:65.35,ucprefix:!1,parent:"",keywords:"input,datepicker"},html5semantic:{title:"New semantic elements",description:"HTML5 offers some new elements, primarily for semantic purposes. The elements include: section, article, aside, header, footer, nav, figure, figcaption, time, mark.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#sections",status:"wd",links:[{url:"http://oli.jp/2009/html5-structure3/",title:"Article on structural elements"},{url:"http://blog.whatwg.org/supporting-new-elements-in-ie",title:"Workaround for IE"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/dom.js#dom-html5-elements",title:"has.js test"},{url:"http://blog.whatwg.org/styling-ie-noscript",title:"Alternate workaround"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"a",3.5:"a",3.6:"a",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"a",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"a",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"a","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"a",11:"a",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"a",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"a",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support refers to missing the default styling. This is easily taken care of by using display:block for all new elements (except time and mark, these should be display:inline anyway).",usage_perc_y:80.26,usage_perc_a:5.26,ucprefix:!1,parent:"",keywords:""},"offline-apps":{title:"Offline web applications",description:"Method of defining web page files to be cached using a cache manifest file, allowing them to work offline on subsequent visits to the page",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html",status:"wd",links:[{url:"http://www.sitepoint.com/offline-web-application-tutorial/",title:"Sitepoint tutorial"},{url:"http://diveinto.org/html5/offline.html",title:"Dive Into HTML5 article"},{url:"http://docs.webplatform.org/wiki/apis/appcache/ApplicationCache",title:"WebPlatform Docs"},{url:"http://hacks.mozilla.org/2010/01/offline-web-applications/",title:"Mozilla Hacks article/demo"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"n",10:"y",11:"y"},firefox:{2:"p",3:"a",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"p",10.5:"p",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:75.59,usage_perc_a:.09,ucprefix:!1,parent:"",keywords:"appcache,app cache,application cache,online"},webworkers:{title:"Web Workers",description:"Method of running scripts in the background, isolated from the web page",spec:"http://www.w3.org/TR/workers/",status:"cr",links:[{url:"http://code.google.com/p/ie-web-worker/",title:"Polyfill for IE (single threaded)"},{url:"http://net.tutsplus.com/tutorials/javascript-ajax/getting-started-with-web-workers/",title:"Tutorial"},{url:"https://developer.mozilla.org/En/Using_web_workers",title:"MDN article"},{url:"http://nerget.com/rayjs-mt/rayjs.html",title:"Web Worker demo"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"p",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"p",10.5:"p",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"p",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:70.53,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},fontface:{title:"@font-face Web fonts",description:"Method of displaying fonts downloaded from websites",spec:"http://www.w3.org/TR/css3-webfonts/",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/atrules/@font-face",title:"WebPlatform Docs"},{url:"http://www.css3files.com/font/",title:"Information page"},{url:"http://webfonts.info",title:"News and information site"},{url:"http://en.wikipedia.org/wiki/Web_typography",title:"Wikipedia"}],categories:["CSS3"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"a",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"a",2.3:"a",3:"a",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"a",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support before IE8 refers to only supporting EOT fonts. Safari for iOS 4.1 and below only supports SVG fonts.",usage_perc_y:79.25,usage_perc_a:10.6,ucprefix:!1,parent:"",keywords:"font face"},eot:{title:"EOT - Embedded OpenType fonts",description:"Type of font that can be derived from a regular font, allowing small files and legal use of high-quality fonts. Usage is restricted by the file being tied to the website",spec:"http://www.w3.org/Submission/EOT/",status:"unoff",links:[{url:"http://www.microsoft.com/typography/web/embedding/default.aspx",title:"Example pages"},{url:"http://en.wikipedia.org/wiki/Embedded_OpenType",title:"Wikipedia"}],categories:["Other"],stats:{ie:{5.5:"n",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"n",32:"n"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Proposal by Microsoft, being considered for W3C standardization.",usage_perc_y:25.14,usage_perc_a:0,ucprefix:!1,parent:"fontface",keywords:""},woff:{title:"WOFF - Web Open Font Format",description:"Compressed TrueType/OpenType font that contains information about the font's source.",spec:"http://www.w3.org/TR/WOFF/",status:"rec",links:[{url:"http://hacks.mozilla.org/2009/10/woff/",title:"Mozilla hacks blog post"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Reported to be supported in some modified versions of the Android 4.0 browser.",usage_perc_y:75.23,usage_perc_a:0,ucprefix:!1,parent:"fontface",keywords:""},multibackgrounds:{title:"CSS3 Multiple backgrounds",description:"Method of using multiple images as a background",spec:"http://www.w3.org/TR/css3-background/",status:"cr",links:[{url:"http://www.css3.info/preview/multiple-backgrounds/",title:"Demo & information page"},{url:"http://www.css3files.com/background/",title:"Information page"},{url:"http://docs.webplatform.org/wiki/css/properties/background-image",title:"WebPlatform Docs"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:85.37,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},"border-image":{title:"CSS3 Border images",description:"Method of using images for borders",spec:"http://www.w3.org/TR/css3-background/#the-border-image",status:"cr",links:[{url:"http://www.css3files.com/border/",title:"Information page"},{url:"http://docs.webplatform.org/wiki/css/properties/border-image",title:"WebPlatform Docs"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"y"},firefox:{2:"n",3:"n",3.5:"a x",3.6:"a x",4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a x",3.2:"a x",4:"a x",5:"a x",5.1:"a x",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"a",10.6:"a",11:"a x",11.1:"a x",11.5:"a x",11.6:"a x",12:"a x",12.1:"a x",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a x","4.0-4.1":"a x","4.2-4.3":"a x","5.0-5.1":"a x","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a x",2.2:"a x",2.3:"a x",3:"a x",4:"a x",4.1:"a x","4.2-4.3":"a x",4.4:"y"},bb:{7:"a x",10:"y"},op_mob:{10:"n",11:"a x",11.1:"a x",11.5:"a x",12:"a x",12.1:"a x",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"In Firefox both the border-style and border-width must be specified for border-images to work. Partial support refers to supporting the shorthand syntax, but not the individual properties (border-image-source, border-image-slice, etc).",usage_perc_y:54.86,usage_perc_a:9.76,ucprefix:!1,parent:"",keywords:""},"background-img-opts":{title:"CSS3 Background-image options",description:"New properties to affect background images, including background-clip, background-origin and background-size",spec:"http://www.w3.org/TR/css3-background/#backgrounds",status:"cr",links:[{url:"https://github.com/louisremi/background-size-polyfill",title:"Polyfill for IE7-8"},{url:"http://www.standardista.com/css3/css3-background-properties",title:"Detailed compatibility tables and demos"},{url:"http://www.css3files.com/background/",title:"Information page"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"a x",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"a",5:"y",5.1:"y",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"a x",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"a x",2.2:"y x",2.3:"y x",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support in Opera Mini refers to not supporting background sizing or background attachments. Partial support in Safari 6 refers to not supporting background sizing offset from edges syntax.",usage_perc_y:78.07,usage_perc_a:7.32,ucprefix:!1,parent:"",keywords:""},"css-table":{title:"CSS Table display",description:"Method of displaying elements as tables, rows, and cells",spec:"http://www.w3.org/TR/CSS21/tables.html",status:"rec",links:[{url:"http://blog.12spokes.com/web-design-development/when-to-choose-between-the-html-table-element-and-css-displaytable-property/",title:"Deciding on HTML or CSS tables"},{url:"http://www.onenaught.com/posts/201/use-css-displaytable-for-layout",title:"Blog post on usage"}],categories:["CSS2"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:93.86,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"display:table, display: table,table-cell,table-row,table-layout"},"css-gencontent":{title:"CSS Generated content",description:"Method of displaying text or images before or after the given element's contents using the :before and :after pseudo-elements",spec:"http://www.w3.org/TR/CSS21/generate.html",status:"rec",links:[{url:"http://www.westciv.com/style_master/academy/css_tutorial/advanced/generated_content.html",title:"Guide on usage"},{url:"http://docs.webplatform.org/wiki/css/generated_and_replaced_content",title:"WebPlatform Docs"},{url:"http://dev.opera.com/articles/view/css-generated-content-techniques/",title:"Dev.Opera article"}],categories:["CSS2","CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"a",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"IE8 only supports the single-colon CSS 2.1 syntax (i.e. pseudo-class). It does not support the double-colon CSS3 syntax (i.e. pseudo-element)",usage_perc_y:85.55,usage_perc_a:8.31,ucprefix:!1,parent:"",keywords:"before,after"},"css-fixed":{title:"CSS position:fixed",description:"Method of keeping an element in a fixed location regardless of scroll position",spec:"http://www.w3.org/TR/CSS21/visuren.html#fixed-positioning",status:"rec",links:[{url:"http://www.css-101.org/fixed-positioning/05.php",title:"Workaround for IE6"},{url:"http://bradfrostweb.com/blog/mobile/fixed-position/",title:"Article on mobile support"},{url:"http://docs.webplatform.org/wiki/css/properties/position",title:"WebPlatform Docs"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"p",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a",2.2:"a",2.3:"a",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Only works in Android 2.2+ by using the following meta tag: &lt;meta name="viewport" content="width=device-width, user-scalable=no">. Partial support in iOS Safari refers to <a href="http://remysharp.com/2012/05/24/issues-with-position-fixed-scrolling-on-ios/">buggy behavior</a>.',usage_perc_y:84.35,usage_perc_a:5.39,ucprefix:!1,parent:"",keywords:""},hashchange:{title:"Hashchange event",description:"Event triggered in JavaScript when the URL's hash has changed (for example: page.html#foo to page.html#bar) ",spec:"http://www.w3.org/TR/html5/history.html#event-hashchange",status:"cr",links:[{url:"http://www.quirksmode.org/dom/events/tests/hashchange.html",title:"Simple demo"},{url:"http://docs.webplatform.org/wiki/dom/events/hashchange",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/en/DOM/window.onhashchange",title:"MDN article"},{url:"http://github.com/3nr1c/jUri.js",title:"Polyfill"},{url:"http://msdn.microsoft.com/en-us/library/cc288209(VS.85).aspx",title:"MSDN article"}],categories:["HTML5","JS API"],stats:{ie:{5.5:"p",6:"p",7:"p",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"p",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"p",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"p",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"p",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"p",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:88.92,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"onhashchange,HashChangeEvent"},"css-sel2":{title:"CSS 2.1 selectors",description:"Allows more accurate element selecting, using >, +, [attr], :first-child, etc.",spec:"http://www.w3.org/TR/CSS21/selector.html",status:"rec",links:[{url:"http://www.quirksmode.org/css/contents.html",title:"Detailed support information"},{url:"http://docs.webplatform.org/wiki/css/selectors",title:"WebPlatform Docs"},{url:"http://selectivizr.com",title:"Selectivizr: Polyfill for IE6-8"},{url:"http://www.yourhtmlsource.com/stylesheets/advancedselectors.html",title:"Examples of advanced selectors"}],categories:["CSS2"],stats:{ie:{5.5:"n",6:"p",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:94.36,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"child selector,:hover,adjacent,sibling,adjacent sibling"},"css-sel3":{title:"CSS3 selectors",description:"Advanced element selection using selectors like :nth-child(), :last-child, :first-of-type, etc.",spec:"http://www.w3.org/TR/css3-selectors/",status:"rec",links:[{url:"http://www.css3.info/selectors-test/",title:"Automated CSS3 selector test"},{url:"http://docs.webplatform.org/wiki/css/selectors",title:"WebPlatform Docs"},{url:"http://www.quirksmode.org/css/contents.html",title:"Detailed support information"},{url:"http://selectivizr.com",title:"Selectivizr: Polyfill for IE6-8"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:85.43,usage_perc_a:0,ucprefix:!1,parent:"",keywords:":target,:not"},"css-textshadow":{title:"CSS3 Text-shadow",description:"Method of applying one or more shadow or blur effects to text",spec:"http://www.w3.org/TR/css-text-decor-3/#text-shadow-property",status:"wd",links:[{url:"http://ie.microsoft.com/testdrive/Graphics/hands-on-css3/hands-on_text-shadow.htm",title:"Live editor"},{url:"http://docs.webplatform.org/wiki/css/properties/text-shadow",title:"WebPlatform Docs"},{url:"http://hacks.mozilla.org/2009/06/text-shadow/",title:"Mozilla hacks article"},{url:"http://www.css3files.com/shadow/#textshadow",title:"Information page"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"a",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Opera Mini ignores the blur-radius set, so no blur effect is visible. Text-shadow behavior can be somewhat emulated in older IE versions using the non-standard "dropshadow" or "glow" filters. ',usage_perc_y:75.49,usage_perc_a:4.73,ucprefix:!1,parent:"",keywords:""},"css-boxshadow":{title:"CSS3 Box-shadow",description:"Method of displaying an inner or outer shadow effect to elements",spec:"http://www.w3.org/TR/css3-background/#box-shadow",status:"cr",links:[{url:"http://www.css3files.com/shadow/",title:"Information page"},{url:"https://developer.mozilla.org/En/CSS/-moz-box-shadow",title:"MDN article"},{url:"http://westciv.com/tools/boxshadows/index.html",title:"Live editor"},{url:"http://tests.themasta.com/blogstuff/boxshadowdemo.html",title:"Demo of various effects"},{url:"http://docs.webplatform.org/wiki/css/properties/box-shadow",title:"WebPlatform Docs"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y x",3.6:"y x",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a x",3.2:"a x",4:"a x",5:"y x",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a x",2.2:"a x",2.3:"a x",3:"a x",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y x",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Can be partially emulated in older IE versions using the non-standard "shadow" filter. Partial support in Safari, iOS Safari and Android Browser refers to missing "inset" and blur radius value support.',usage_perc_y:79.27,usage_perc_a:1.55,ucprefix:!1,parent:"",keywords:"box-shadows,boxshadows,box shadow,shaow"},"css3-colors":{title:"CSS3 Colors",description:"Method of describing colors using Hue, Saturation and Lightness (hsl()) rather than just RGB, as well as allowing alpha-transparency with rgba() and hsla().",spec:"http://www.w3.org/TR/css3-color/",status:"rec",links:[{url:"http://www.zenelements.com/blog/css3-rgb-rgba-color-opacity/",title:"Guide to RGB & RGBA"},{url:"http://www.css3files.com/color/",title:"Information page"},{url:"http://www.zenelements.com/blog/css3-hsl-hsla-color-opacity/",title:"Guide to HSL & HSLA"},{url:"http://docs.webplatform.org/wiki/css/color#RGBA_Notation",title:"WebPlatform Docs"},{url:"http://dev.opera.com/articles/view/color-in-opera-10-hsl-rgb-and-alpha-transparency/",title:"Dev.Opera article"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"a","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:85.51,usage_perc_a:.02,ucprefix:!1,parent:"",keywords:"rgb,hsl,rgba,hsla"},"css3-boxsizing":{title:"CSS3 Box-sizing",description:"Method of specifying whether or not an element's borders and padding should be included in size units",spec:"http://www.w3.org/TR/css3-ui/#box-sizing",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/properties/box-sizing",title:"WebPlatform Docs"},{url:"http://css-tricks.com/box-sizing/",title:"CSS Tricks"},{url:"https://github.com/Schepp/box-sizing-polyfill",title:"Polyfill for IE"},{url:"https://developer.mozilla.org/En/CSS/Box-sizing",title:"MDN article"},{url:"http://www.456bereastreet.com/archive/201104/controlling_width_with_css3_box-sizing/",title:"Blog post"}],categories:["CSS3"],stats:{ie:{5.5:"p",6:"p",7:"p",8:"a",9:"a",10:"a",11:"a"},firefox:{2:"y x",3:"y x",3.5:"y x",3.6:"y x",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"a x",3.2:"a x",4:"a x",5:"a x",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"a",11:"a",11.1:"a",11.5:"a",11.6:"a",12:"a",12.1:"a",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"a x","4.0-4.1":"a x","4.2-4.3":"a x","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"a"},android:{2.1:"a x",2.2:"a x",2.3:"a x",3:"a x",4:"a",4.1:"a","4.2-4.3":"a",4.4:"a"},bb:{7:"a x",10:"a"},op_mob:{10:"a",11:"a",11.1:"a",11.5:"a",12:"a",12.1:"a",0:"a"},and_chr:{0:"a"},and_ff:{0:"y x"},ie_mob:{10:"a"}},notes:'Partial support refers to supporting only the "border-box" value, not "padding-box" (which was added to the spec later).',usage_perc_y:15.43,usage_perc_a:78.42,ucprefix:!1,parent:"",keywords:"border-box,content-box,padding-box"},"css-mediaqueries":{title:"CSS3 Media Queries",description:"Method of applying styles based on media information. Includes things like page and device dimensions",spec:"http://www.w3.org/TR/css3-mediaqueries/",status:"rec",links:[{url:"http://docs.webplatform.org/wiki/css/atrules/@media",title:"WebPlatform Docs"},{url:"http://ie.microsoft.com/testdrive/HTML5/85CSS3_MediaQueries/",title:"IE demo page with information"},{url:"https://github.com/scottjehl/Respond",title:"Polyfill for IE"},{url:"http://webdesignerwall.com/tutorials/responsive-design-with-css3-media-queries",title:"Media Queries tutorial"}],categories:["CSS3"],stats:{ie:{5.5:"p",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Incomplete support by older webkit browsers refers to only acknowledging different media rules on page reload",usage_perc_y:85.42,usage_perc_a:.01,ucprefix:!1,parent:"",keywords:"@media"},multicolumn:{title:"CSS3 Multiple column layout",description:"Method of flowing information in multiple columns",spec:"http://www.w3.org/TR/css3-multicol/",status:"cr",links:[{url:"http://dev.opera.com/articles/view/css3-multi-column-layout/",title:"Dev.Opera article"},{url:"http://docs.webplatform.org/wiki/css/properties/column-width",title:"WebPlatform Docs"},{url:"http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/an-introduction-to-the-css3-multiple-column-layout-module/",title:"Introduction page"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"a x",3:"a x",3.5:"a x",3.6:"a x",4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"a x",23:"a x",24:"a x",25:"a x",26:"a x",27:"a x"},chrome:{4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"a x",23:"a x",24:"a x",25:"a x",26:"a x",27:"a x",28:"a x",29:"a x",30:"a x",31:"a x",32:"a x"},safari:{3.1:"a x",3.2:"a x",4:"a x",5:"a x",5.1:"a x",6:"a x",6.1:"a x",7:"a x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"a x",16:"a x",17:"a x",18:"a x"},ios_saf:{3.2:"a x","4.0-4.1":"a x","4.2-4.3":"a x","5.0-5.1":"a x","6.0-6.1":"a x","7.0":"a x"},op_mini:{"5.0-7.0":"y"},android:{2.1:"a x",2.2:"a x",2.3:"a x",3:"a x",4:"a x",4.1:"a x","4.2-4.3":"a x",4.4:"a x"},bb:{7:"a x",10:"a x"},op_mob:{10:"n",11:"n",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"a x"},and_chr:{0:"a x"},and_ff:{0:"a x"},ie_mob:{10:"y"}},notes:"Partial support refers to not supporting the break-before, break-after, break-inside properties. Webkit browsers do have equivalent support for the non-standard -webkit-column-break-* properties.",usage_perc_y:16.41,usage_perc_a:63.85,ucprefix:!1,parent:"",keywords:"column-count"},"border-radius":{title:"CSS3 Border-radius (rounded corners)",description:"Method of making the border corners round",spec:"http://www.w3.org/TR/css3-background/#the-border-radius",status:"cr",links:[{url:"http://docs.webplatform.org/wiki/css/properties/border-radius",title:"WebPlatform Docs"},{url:"http://muddledramblings.com/table-of-css3-border-radius-compliance",title:"Detailed compliance table"},{url:"http://www.css3files.com/border/#borderradius",title:"Information page"},{url:"http://css3pie.com/",title:"Polyfill which includes border-radius"},{url:"http://border-radius.com",title:"Border-radius CSS Generator"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"a x",3:"y x",3.5:"y x",3.6:"y x",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y x",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y x",3.2:"y x",4:"y x",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y x","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y x",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:80.91,usage_perc_a:.02,ucprefix:!1,parent:"",keywords:"roundedcorners, border radius,-moz-border-radius"},transforms2d:{title:"CSS3 Transforms",description:"Method of transforming an element including rotating, scaling, etc.",spec:"http://www.w3.org/TR/css3-2d-transforms/",status:"wd",links:[{url:"http://www.westciv.com/tools/transforms/",title:"Live editor"},{url:"http://www.useragentman.com/IETransformsTranslator/",title:"Converter for IE"},{url:"http://docs.webplatform.org/wiki/css/transforms/transform",title:"WebPlatform Docs"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/css.js#css-transform",title:"has.js test"},{url:"https://developer.mozilla.org/en/CSS/-moz-transform",title:"MDN article"},{url:"http://www.webresourcesdepot.com/cross-browser-css-transforms-csssandpaper/",title:"Workaround script for IE"},{url:"http://www.css3files.com/transform/",title:"Information page"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y x",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y x",3.6:"y x",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"y x",3.2:"y x",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y x",10.6:"y x",11:"y x",11.1:"y x",11.5:"y x",11.6:"y x",12:"y x",12.1:"y",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"y x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y x",2.2:"y x",2.3:"y x",3:"y x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y x"},bb:{7:"y x",10:"y x"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'The scale transform can be emulated in IE < 9 using Microsoft\'s "zoom" extension, others are (not easily) possible using the MS Matrix filter',usage_perc_y:80.82,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"transformation,translate,rotation,rotate,scale,css-transforms"},"use-strict":{title:"ECMAScript 5 Strict Mode",description:'Method of placing code in a "strict" operating context.',spec:"http://ecma-international.org/ecma-262/5.1/#sec-14.1",status:"other",links:[{url:"http://javascriptweblog.wordpress.com/2011/05/03/javascript-strict-mode/",title:"Article with test suite"},{url:"http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/",title:"Information page"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"a",5.1:"a",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support in older Safari refers to strict mode still accepting a lot of JS that should be considered invalid.",usage_perc_y:71.65,usage_perc_a:1.59,ucprefix:!1,parent:"",keywords:""},transforms3d:{title:"CSS3 3D Transforms",description:"Method of transforming an element in the third dimension",spec:"http://www.w3.org/TR/css3-3d-transforms/",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/transforms/transform",title:"WebPlatform Docs"},{url:"http://css3.bradshawenterprises.com/flip/",title:"Multi-browser demo"},{url:"http://thewebrocks.com/demos/3D-css-tester/",title:"3D CSS Tester"},{url:"http://hacks.mozilla.org/2011/10/css-3d-transformations-in-firefox-nightly/",title:"Mozilla hacks article"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/css.js#css-transform",title:"has.js test"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"a",11:"a"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"y x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y x"},bb:{7:"y x",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y"},ie_mob:{10:"a"}},notes:'Partial support in IE10 refers to not supporting <a href="http://msdn.microsoft.com/en-us/library/ie/hh673529%28v=vs.85%29.aspx#the_ms_transform_style_property">the transform-style: preserve-3d property</a>. This prevents nesting 3D transformed elements.',usage_perc_y:61.31,usage_perc_a:11.11,ucprefix:!1,parent:"",keywords:"css 3d,3dtransforms,translate3d,transform3d"},sharedworkers:{title:"Shared Web Workers",description:"Method of allowing multiple scripts to communicate with a single web worker.",spec:"http://www.w3.org/TR/workers/#shared-workers-introduction",status:"cr",links:[{url:"http://www.sitepoint.com/javascript-shared-web-workers-html5/",title:"Sitepoint article"},{url:"http://greenido.wordpress.com/2011/11/03/web-workers-part-3-out-of-3-shared-wrokers/",title:"Blog post"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"u",27:"u"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"y",10:"y"},op_mob:{10:"u",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"n"},and_chr:{0:"n"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Expected to be supported in Firefox 27.",usage_perc_y:40.07,usage_perc_a:0,ucprefix:!1,parent:"webworkers",keywords:"shared worker"},"css-hyphens":{title:"CSS Hyphenation",description:'Method of controlling when words at the end of lines should be hyphenated using the "hyphens" property.',spec:"http://www.w3.org/TR/css3-text/#hyphenation",status:"wd",links:[{url:"https://developer.mozilla.org/en/CSS/hyphens",title:"MDN article"},{url:"http://docs.webplatform.org/wiki/css/properties/hyphens",title:"WebPlatform Docs"},{url:"http://blog.fontdeck.com/post/9037028497/hyphens",title:"Blog post"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y x",11:"y x"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"n",32:"n"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"y x"},ie_mob:{10:"n"}},notes:'Chrome 29- and Android 4.0 Browser support "-webkit-hyphens: none", but not the "auto" property. Chrome 30+ doesn\'t support it either.',usage_perc_y:33.31,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"hyphen,shy"},"css-transitions":{title:"CSS3 Transitions",description:"Simple method of animating certain properties of an element",spec:"http://www.w3.org/TR/css3-transitions/",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/properties/transition",title:"WebPlatform Docs"},{url:"http://www.webdesignerdepot.com/2010/01/css-transitions-101/",title:"Article on usage"},{url:"http://www.opera.com/docs/specs/presto2.12/css/transitions/#anima",title:"Animation of property types support in Opera"},{url:"http://www.css3files.com/transition/",title:"Information page"},{url:"http://www.the-art-of-web.com/css/timing-function/",title:"Examples on timing functions"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y x",3.2:"y x",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y x",10.6:"y x",11:"y x",11.1:"y x",11.5:"y x",11.6:"y x",12:"y x",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y x",2.2:"y x",2.3:"y x",3:"y x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y"},bb:{7:"y x",10:"y x"},op_mob:{10:"y x",11:"y x",11.1:"y x",11.5:"y x",12:"y x",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:75.27,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"css transition"},"font-feature":{title:"Font feature settings",description:"Method of applying advanced typographic and language-specific font features to supported OpenType fonts.",spec:"http://w3.org/TR/css3-fonts/#font-rend-props",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/properties/font-feature-settings",title:"WebPlatform Docs"},{url:"http://hacks.mozilla.org/2010/11/firefox-4-font-feature-support/",title:"Mozilla hacks article"},{url:"http://html5accessibility.com/",title:"Detailed tables on accessability support"},{url:"http://ie.microsoft.com/testdrive/Graphics/opentype/",title:"Demo pages (IE/Firefox only)"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"a",5:"a",5.1:"a",6:"a",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y x"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y x"},ie_mob:{10:"n"}},notes:"Partial support in older Firefox versions refers to using an older syntax. Partial support in older Chrome versions refers to lacking support in Mac OS X. ",usage_perc_y:62.13,usage_perc_a:6.41,ucprefix:!1,parent:"",keywords:"font-feature,font-feature-settings,kern,kerning,font-variant-alternates,ligatures,font-variant-ligatures"},"css-animation":{title:"CSS3 Animation",description:"Complex method of animating certain properties of an element",spec:"http://www.w3.org/TR/css3-animations/",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/properties/animations",title:"WebPlatform Docs"},{url:"http://www.css3files.com/animation/",title:"Information page"},{url:"http://robertnyman.com/2010/05/06/css3-animations/",title:"Blog post on usage"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"y x",12.1:"y",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"y x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a x",2.2:"a x",2.3:"a x",3:"a x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y x"},bb:{7:"y x",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"y",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support in Android browser refers to buggy behavior in different scenarios.",usage_perc_y:73.62,usage_perc_a:1.44,ucprefix:!1,parent:"",keywords:"animations,css-animations,keyframe,keyframes"},"css-gradients":{title:"CSS Gradients",description:"Method of defining a linear or radial color gradient as a CSS image.",spec:"http://www.w3.org/TR/css3-images/",status:"cr",links:[{url:"http://www.colorzilla.com/gradient-editor/",title:"Cross-browser editor"},{url:"http://docs.webplatform.org/wiki/css/functions/linear-gradient",title:"WebPlatform Docs"},{url:"http://www.css3files.com/gradient/",title:"Information page"},{url:"http://css3pie.com/",title:"Tool to emulate support in IE"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y x",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"a x",5:"a x",5.1:"y x",6:"y x",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"a x",11.5:"a x",11.6:"y x",12:"y x",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a x","4.0-4.1":"a x","4.2-4.3":"a x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a x",2.2:"a x",2.3:"a x",3:"a x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y"},bb:{7:"a x",10:"y x"},op_mob:{10:"n",11:"n",11.1:"a x",11.5:"a x",12:"y x",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Partial support in Opera 11.10 and 11.50 also refers to only having support for linear gradients. Support can be somewhat emulated in older IE versions using the non-standard "gradient" filter. Firefox 10+, Opera 11.6+, Chrome 26+ and IE10 also support the new "to (side)" syntax.',usage_perc_y:73.31,usage_perc_a:2.22,ucprefix:!1,parent:"",keywords:"linear,linear-gradient,gradiant"},"css-canvas":{title:"CSS Canvas Drawings",description:"Method of using HTML5 Canvas as a background image",spec:"http://webkit.org/blog/176/css-canvas-drawing/",status:"unoff",links:[{url:"http://webkit.org/blog/176/css-canvas-drawing/",title:"Webkit blog post"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"u",27:"u"},chrome:{4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"y x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y x",2.2:"y x",2.3:"y x",3:"y x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y x"},bb:{7:"y x",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Proposal by Webkit, being considered for W3C standardization. A similar effect can be achieved in Firefox 4+ using the -moz-element() background property",usage_perc_y:48.41,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},"css-reflections":{title:"CSS Reflections",description:"Method of displaying a reflection of an element",spec:"http://webkit.org/blog/182/css-reflections/",status:"unoff",links:[{url:"http://webkit.org/blog/182/css-reflections/",title:"Webkit blog post"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"y x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y x",2.2:"y x",2.3:"y x",3:"y x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y x"},bb:{7:"y x",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Similar effect can be achieved in Firefox 4+ using the -moz-element() background property",usage_perc_y:48.41,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"box-reflect"},"css-masks":{title:"CSS Masks",description:"Method of displaying part of an element, using a selected image as a mask",spec:"http://www.w3.org/TR/css-masking/",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/properties/mask",title:"WebPlatform Docs"},{url:"http://www.html5rocks.com/en/tutorials/masking/adobe/",title:"HTML5 Rocks article"},{url:"http://thenittygritty.co/css-masking",title:"Detailed blog post"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"u",27:"u"},chrome:{4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"a x",23:"a x",24:"a x",25:"a x",26:"a x",27:"a x",28:"a x",29:"a x",30:"a x",31:"a x",32:"a x"},safari:{3.1:"n",3.2:"n",4:"a x",5:"a x",5.1:"a x",6:"a x",6.1:"a x",7:"a x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"a x",16:"a x",17:"a x",18:"a x"},ios_saf:{3.2:"a x","4.0-4.1":"a x","4.2-4.3":"a x","5.0-5.1":"a x","6.0-6.1":"a x","7.0":"a x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a x",2.2:"a x",2.3:"a x",3:"a x",4:"a x",4.1:"a x","4.2-4.3":"a x",4.4:"a x"},bb:{7:"a x",10:"a x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"a x"},and_chr:{0:"a x"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Previously a WebKit-only property, now a W3C specification. Partial support refers to not yet fully supporting the new spec (details currently unknown).",usage_perc_y:0,usage_perc_a:48.41,ucprefix:!1,parent:"",keywords:""},svg:{title:"SVG (basic support)",description:"Method of displaying basic Vector Graphics features using the embed or object elements",spec:"http://www.w3.org/Graphics/SVG/",status:"rec",links:[{url:"http://en.wikipedia.org/wiki/Scalable_Vector_Graphics",title:"Wikipedia"},{url:"http://code.google.com/p/svgweb/",title:"SVG Web: Flash-based polyfill"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/graphics.js#svg",title:"has.js test"},{url:"http://svg-edit.googlecode.com",title:"Web-based SVG editor"},{url:"http://www.alistapart.com/articles/using-svg-for-flexible-scalable-and-fun-backgrounds-part-i",title:"A List Apart article"},{url:"http://svg-wow.org/",title:"SVG showcase site"}],categories:["SVG"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:84.1,usage_perc_a:.02,ucprefix:!1,parent:"",keywords:""},"svg-css":{title:"SVG in CSS backgrounds",description:"Method of using SVG images as CSS backgrounds",spec:"http://www.w3.org/TR/css3-background/#background-image",status:"cr",links:[{url:"http://designfestival.com/a-farewell-to-css3-gradients/",title:"Tutorial for advanced effects"}],categories:["SVG","CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"a",4:"a",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"a",11:"a",11.1:"a",11.5:"a",12:"a",12.1:"a",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support in older Firefox and Opera Mini/Mobile refers to SVG images being blurry when scaled. Partial support in iOS Safari and older Safari versions refers to failing to support tiling or the background-position property.",usage_perc_y:75.45,usage_perc_a:8.2,ucprefix:!1,parent:"",keywords:"svg-in-css,svgincss,css-svg"},"svg-smil":{title:"SVG SMIL animation",description:"Method of using animation elements to animate SVG images",spec:"http://www.w3.org/TR/SVG/animate.html",status:"rec",links:[{url:"https://github.com/madsgraphics/SVGEventListener",title:"Polyfill for SMIL animate events on SVG"},{url:"https://developer.mozilla.org/en/SVG/SVG_animation_with_SMIL",title:"MDN article"},{url:"http://svg-wow.org/blog/category/animation/",title:"Examples on SVG WOW"},{url:"http://leunen.me/fakesmile/",title:"JS library to support SMIL in SVG"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/graphics.js#svg-smil",title:"has.js test"}],categories:["SVG"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p"},firefox:{2:"p",3:"p",3.5:"p",3.6:"p",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"a",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"p"}},notes:"Partial support in Safari refers to not working in HTML files.",usage_perc_y:54.76,usage_perc_a:7.99,ucprefix:!1,parent:"",keywords:""},"svg-fonts":{title:"SVG fonts",description:"Method of using fonts defined as SVG shapes",spec:"http://www.w3.org/TR/SVG/fonts.html",status:"rec",links:[{url:"http://opentype.info/blog/2010/04/13/the-ipad-and-svg-fonts-in-mobile-safari/",title:"Blog post on usage for iPad"},{url:"http://jeremie.patonnier.net/post/2011/02/07/Why-are-SVG-Fonts-so-different",title:"Blog post"}],categories:["SVG"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Supported in Opera Mini in SVG images only, not in HTML.",usage_perc_y:47.78,usage_perc_a:0,ucprefix:!1,parent:"fontface",keywords:""},"svg-filters":{title:"SVG filters",description:"Method of using photoshop-like effects on SVG objects including blurring and color manipulation.",spec:"http://www.w3.org/TR/SVG/filters.html",status:"rec",links:[{url:"http://electricbeach.org/?p=950",title:"Experiments with filter effects"},{url:"http://svg-wow.org/blog/category/filters/",title:"SVG filter demos"},{url:"http://docs.webplatform.org/wiki/svg/elements/filter",title:"WebPlatform Docs"}],categories:["SVG"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"a",6:"a",7:"a",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:72.99,usage_perc_a:.08,ucprefix:!1,parent:"",keywords:""},"svg-html":{title:"SVG effects for HTML",description:"Method of using SVG transforms, filters, etc on HTML elements using either CSS or the foreignObject element",spec:"http://www.w3.org/TR/SVG11/extend.html#ForeignObjectElement",status:"wd",links:[{url:"https://developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content",title:"MDN Reference page"},{url:"https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html",title:"Filter Effects draft"},{url:"https://developer.mozilla.org/en/SVG/Tutorial/Other_content_in_SVG",title:"MDN Tutorial"}],categories:["SVG"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"a",10:"a",11:"a"},firefox:{2:"n",3:"a",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"n",3.2:"n",4:"a",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"a","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"a",11:"a",11.1:"a",11.5:"a",11.6:"a",12:"a",12.1:"a",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"a"},bb:{7:"n",10:"y"},op_mob:{10:"a",11:"a",11.1:"a",11.5:"a",12:"a",12.1:"a",0:"a"},and_chr:{0:"a"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:'Partial support refers to lack of filter support or buggy result from effects. A <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html">CSS Filter Effects</a> specification is in the works that would replace this method.',usage_perc_y:15.33,usage_perc_a:60.21,ucprefix:!1,parent:"",keywords:""},"svg-html5":{title:"Inline SVG in HTML5",description:"Method of using SVG tags directly in HTML documents. Requires HTML5 parser.",spec:"http://www.w3.org/TR/html5/embedded-content-0.html#svg-0",status:"cr",links:[{url:"http://hacks.mozilla.org/2010/05/firefox-4-the-html5-parser-inline-svg-speed-and-more/",title:"Mozilla Hacks blog post"},{url:"http://samples.msdn.microsoft.com/ietestcenter/html5/svghtml_harness.htm?url=SVG_HTML_Elements_001",title:"Test suite"}],categories:["SVG","HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"p",3.6:"p",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"p",5:"p",6:"p",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"p",5:"p",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"p",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"p",11:"p",11.1:"p",11.5:"p",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:78.45,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},canvas:{title:"Canvas (basic support)",description:"Method of generating fast, dynamic graphics using JavaScript",spec:"http://www.w3.org/TR/html5/embedded-content-0.html#the-canvas-element",status:"cr",links:[{url:"https://developer.mozilla.org/en/Canvas_tutorial",title:"Tutorial by Mozilla"},{url:"http://explorercanvas.googlecode.com/",title:"Implementation for Internet Explorer"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/graphics.js#canvas",title:"has.js test"},{url:"http://www.diveinto.org/html5/canvas.html",title:"Another tutorial"},{url:"http://glimr.rubyforge.org/cake/canvas.html",title:"Animation kit "},{url:"http://www.canvasdemos.com/",title:"Showcase site"}],categories:["Canvas","HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"a",2.2:"a",2.3:"a",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Opera Mini supports the canvas element, but is unable to play animations or run other more complex applications. Android 2.x supports canvas except the toDataURL() function. See http://code.google.com/p/android/issues/detail?id=7901 Some (slow) workarounds are described here: http://stackoverflow.com/q/10488033/841830",usage_perc_y:79.53,usage_perc_a:6.02,ucprefix:!1,parent:"",keywords:""},"canvas-text":{title:"Text API for Canvas",description:"Method of displaying text on Canvas elements",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#text-0",status:"wd",links:[{url:"http://code.google.com/p/canvas-text/",title:"Support library"},{url:"http://docs.webplatform.org/wiki/apis/canvas/CanvasRenderingContext2D/fillText",title:"WebPlatform Docs"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/graphics.js#canvas-text",title:"has.js test"},{url:"https://developer.mozilla.org/en/Drawing_text_using_a_canvas#Additional_examples",title:"Examples by Mozilla"}],categories:["Canvas","HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"p",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:80.82,usage_perc_a:0,ucprefix:!1,parent:"canvas",keywords:""},"namevalue-storage":{title:"Web Storage - name/value pairs",description:"Method of storing data locally like cookies, but for larger amounts of data (sessionStorage and localStorage, used to fall under HTML5).",spec:"http://www.w3.org/TR/webstorage/#storage",status:"rec",links:[{url:"http://html5demos.com/storage",title:"Simple demo"},{url:"http://docs.webplatform.org/wiki/apis/web-storage/Storage/localStorage",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/En/DOM/Storage",title:"Gecko reference"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-localstorage;native-sessionstorage",title:"has.js test"},{url:"http://code.google.com/p/sessionstorage/",title:"Support library"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"a",3:"a",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"In private browsing mode Safari and iOS Safari don't support setting localStorage.",usage_perc_y:89.13,usage_perc_a:.1,ucprefix:!1,parent:"",keywords:"webstorage,local storage"},"sql-storage":{title:"Web SQL Database",description:"Method of storing data client-side, allows Sqlite database queries for access and manipulation",spec:"http://www.w3.org/TR/webdatabase/",status:"unoff",links:[{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-sql-db",title:"has.js test"},{url:"http://html5doctor.com/introducing-web-sql-databases/",title:"HTML5 Doctor article"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"The Web SQL Database specification is no longer being maintained and support may be dropped in future versions.",usage_perc_y:49.18,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"db-storage,websql"},indexeddb:{title:"IndexedDB",description:"Method of storing data client-side, allows indexed database queries. Previously known as WebSimpleDB API.",spec:"http://www.w3.org/TR/IndexedDB/",status:"wd",links:[{url:"http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/",title:"Mozilla Hacks article"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-indexeddb",title:"has.js test"},{url:"http://docs.webplatform.org/wiki/apis/indexedDB",title:"WebPlatform Docs"},{url:"https://github.com/axemclion/IndexedDBShim",title:"Polyfill for browsers supporting WebSQL"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"a x",23:"y x",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"a x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Partial support in BB10 refers to an <a href="http://www.w3.org/TR/2011/WD-IndexedDB-20110419/">outdated specification</a> being implemented. Code targeting the <a href="http://www.w3.org/TR/IndexedDB/">current state of the specification</a> might not work.',usage_perc_y:59.46,usage_perc_a:1.68,ucprefix:!1,parent:"",keywords:"indexdb"},eventsource:{title:"Server-sent DOM events",description:"Method of continuously sending data from a server to the browser, rather than repeatedly requesting it (EventSource interface, used to fall under HTML5)",spec:"http://www.w3.org/TR/eventsource/",status:"cr",links:[{url:"http://www.html5rocks.com/tutorials/eventsource/basics/",title:"HTML5 Rocks tutorial"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-eventsource",title:"has.js test"},{url:"http://samshull.blogspot.com/2010/10/ajax-push-in-ios-safari-and-chrome-with.html",title:"Blog post with demo"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"a","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"a",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"a",11:"a",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:58.8,usage_perc_a:.06,ucprefix:!1,parent:"",keywords:"serversent,s-sent-events"},"x-doc-messaging":{title:"Cross-document messaging",description:"Method of sending information from a page on one domain to a page on a different one (using postMessage)",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages",status:"wd",links:[{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-crosswindowmessaging",title:"has.js test"},{url:"http://html5demos.com/postmessage2",title:"Simple demo"},{url:"https://developer.mozilla.org/en/DOM/window.postMessage",title:"MDN article"},{url:"http://docs.webplatform.org/wiki/apis/web-messaging/methods/postMessage_%28window%29",title:"WebPlatform Docs"},{url:"http://72lions.com/2011/05/cross-origin-communication-with-html5",title:"Article and demo"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"a",9:"a",10:"a",11:"y"},firefox:{2:"n",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"a"}},notes:'Partial support in IE8-9 refers to only working in frames/iframes (not other tabs/windows). Also in IE 9 and below an object cannot be sent using postMessage. Partial support in IE10 refers to <a href="http://stackoverflow.com/questions/16226924/is-cross-origin-postmessage-broken-in-ie10">limitations in certain conditions</a>',usage_perc_y:69.31,usage_perc_a:24.52,ucprefix:!1,parent:"",keywords:""},datauri:{title:"Data URIs",description:"Method of embedding images and other files in webpages as a string of text",spec:"http://www.ietf.org/rfc/rfc2397.txt",status:"other",links:[{url:"http://www.websiteoptimization.com/speed/tweak/inline-images/",title:"Data URL converter"},{url:"http://css-tricks.com/5970-data-uris/",title:"Information page"},{url:"http://en.wikipedia.org/wiki/data_URI_scheme",title:"Wikipedia"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"a",9:"a",10:"a",11:"a"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"a"}},notes:"Support in Internet Explorer 8 is limited to images and linked resources like CSS files, not HTML files. Max URI length in IE8 is 32KB. In IE9+ JavaScript files are supported too and the maximum size limit set to 4GB.",usage_perc_y:69.23,usage_perc_a:24.63,ucprefix:!1,parent:"",keywords:"data url,datauris,data uri,dataurl,dataurls"},mathml:{title:"MathML",description:"An XML language that allows mathematical formulas and notations to be written on web pages.",spec:"http://www.w3.org/TR/MathML/",status:"rec",links:[{url:"http://www.mozilla.org/projects/mathml/demo/",title:"MathML demos"},{url:"http://en.wikipedia.org/wiki/MathML",title:"Wikipedia"},{url:"http://www.mathjax.org",title:"Cross-browser support script"},{url:"https://developer.mozilla.org/en/MathML/Element",title:"MDN element reference"}],categories:["Other"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"n",10:"n",11:"n"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"p",20:"p",21:"p",22:"p",23:"p",24:"y",25:"p",26:"p",27:"p",28:"p",29:"p",30:"p",31:"p",32:"p"},safari:{3.1:"p",3.2:"p",4:"p",5:"p",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"a",11:"a",11.1:"a",11.5:"a",11.6:"a",12:"a",12.1:"a",15:"p",16:"p",17:"p",18:"p"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"p"},android:{2.1:"p",2.2:"p",2.3:"p",3:"p",4:"p",4.1:"p","4.2-4.3":"p",4.4:"p"},bb:{7:"p",10:"y"},op_mob:{10:"p",11:"p",11.1:"p",11.5:"p",12:"p",12.1:"p",0:"p"},and_chr:{0:"p"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"Opera's support is limited to a CSS profile of MathML. Support was added in Chrome 24, but removed afterwards due to instability.",usage_perc_y:23.15,usage_perc_a:.63,ucprefix:!1,parent:"",keywords:""},"css-featurequeries":{title:"CSS Feature Queries",description:"CSS Feature Queries allow authors to condition rules based on whether particular property declarations are supported in CSS using the @supports at rule.",spec:"http://www.w3.org/TR/css3-conditional/#at-supports",status:"cr",links:[{url:"http://dabblet.com/gist/3895764",title:"Test case"},{url:"http://mcc.id.au/blog/2012/08/supports",title:"@supports in Firefox"},{url:"https://developer.mozilla.org/en-US/docs/Web/CSS/@supports",title:"MDN Article"},{url:"http://docs.webplatform.org/wiki/css/atrules/@supports",title:"WebPlatform Docs"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:45.52,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"supports,conditional"},xhtml:{title:"XHTML served as application/xhtml+xml",description:"A strict form of HTML, and allows embedding of other XML languages",spec:"http://www.w3.org/TR/xhtml1/",status:"rec",links:[{url:"http://en.wikipedia.org/wiki/XHTML",title:"Wikipedia"},{url:"http://docs.webplatform.org/wiki/concepts/internet_and_web/the_web_standards_model#What_is_XHTML.3F",title:"WebPlatform Docs"},{url:"http://www.xmlplease.com/xhtml/xhtml5polyglot/",title:"Information on XHTML5"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'The XHTML syntax is very close to HTML, and thus is almost always (<a href="https://developer.mozilla.org/en-US/docs/XHTML#MIME_type_versus_DOCTYPE">incorrectly</a>) served as text/html on the web.',usage_perc_y:85.55,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"xhtml+xml"},xhtmlsmil:{title:"XHTML+SMIL animation",description:"Method of using SMIL animation in web pages",spec:"http://www.w3.org/TR/XHTMLplusSMIL/",status:"unoff",links:[{url:"http://en.wikipedia.org/wiki/XHTML%2BSMIL",title:"Wikipedia"},{url:"http://leunen.me/fakesmile/",title:"JS library to support XHTML+SMIL"}],categories:["Other"],stats:{ie:{5.5:"n",6:"a",7:"a",8:"a",9:"n",10:"n",11:"n"},firefox:{2:"p",3:"p",3.5:"p",3.6:"p",4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"p",20:"p",21:"p",22:"p",23:"p",24:"p",25:"p",26:"p",27:"p"},chrome:{4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"p",20:"p",21:"p",22:"p",23:"p",24:"p",25:"p",26:"p",27:"p",28:"p",29:"p",30:"p",31:"p",32:"p"},safari:{3.1:"p",3.2:"p",4:"p",5:"p",5.1:"p",6:"p",6.1:"p",7:"p"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"p",10.6:"p",11:"p",11.1:"p",11.5:"p",11.6:"p",12:"p",12.1:"p",15:"p",16:"p",17:"p",18:"p"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"p","6.0-6.1":"p","7.0":"p"},op_mini:{"5.0-7.0":"p"},android:{2.1:"p",2.2:"p",2.3:"p",3:"p",4:"p",4.1:"p","4.2-4.3":"p",4.4:"p"},bb:{7:"p",10:"p"},op_mob:{10:"p",11:"p",11.1:"p",11.5:"p",12:"p",12.1:"p",0:"p"},and_chr:{0:"p"},and_ff:{0:"p"},ie_mob:{10:"n"}},notes:"Internet Explorer supports the W3C proposal HTML+TIME, which is largely the same as XHTML+SMIL",usage_perc_y:0,usage_perc_a:9.02,ucprefix:!1,parent:"xhtml",keywords:""},"wai-aria":{title:"WAI-ARIA Accessibility features",description:"Method of providing ways for people with disabilities to use dynamic web content and web applications.",spec:"http://www.w3.org/TR/wai-aria/",status:"cr",links:[{url:"http://www.alistapart.com/articles/the-accessibility-of-wai-aria/",title:"ALA Article"},{url:"http://en.wikipedia.org/wiki/WAI-ARIA",title:"Wikipedia"},{url:"http://zufelt.ca/blog/are-you-confused-html5-and-wai-aria-yet",title:"HTML5/WAI-ARIA information"},{url:"http://www.w3.org/WAI/intro/aria",title:"Information page"},{url:"http://www.paciellogroup.com/blog/2011/10/browser-assistive-technology-tests-redux/",title:"Links to various test results"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"a",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"n",3.2:"n",4:"a",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"a",11:"a",11.1:"a",11.5:"a",11.6:"a",12:"a",12.1:"a",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"a"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"a"},bb:{7:"n",10:"n"},op_mob:{10:"a",11:"a",11.1:"a",11.5:"a",12:"a",12.1:"a",0:"a"},and_chr:{0:"a"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:40.05,usage_perc_a:48.6,ucprefix:!1,parent:"",keywords:"wai,aria"},geolocation:{title:"Geolocation",description:"Method of informing a website of the user's geographical location",spec:"http://www.w3.org/TR/geolocation-API/",status:"cr",links:[{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-geolocation",title:"has.js test"},{url:"http://docs.webplatform.org/wiki/apis/geolocation",title:"WebPlatform Docs"},{url:"http://html5demos.com/geo",title:"Simple demo"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"p",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"p",10.5:"p",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"n",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"p",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:80.65,usage_perc_a:.02,ucprefix:!1,parent:"",keywords:""},flexbox:{title:"Flexible Box Layout Module",description:"Method of positioning elements in horizontal or vertical stacks.",spec:"http://www.w3.org/TR/css3-flexbox/",status:"cr",links:[{url:"http://css-tricks.com/snippets/css/a-guide-to-flexbox/",title:"A Complete Guide to Flexbox"},{url:"http://bennettfeely.com/flexplorer/",title:"Flexbox CSS generator"},{url:"http://www.adobe.com/devnet/html5/articles/working-with-flexbox-the-new-spec.html",title:"Article on using the latest spec"},{url:"http://philipwalton.github.io/solved-by-flexbox/",title:"Examples on how to solve common layout problems with flexbox"},{url:"http://dev.opera.com/articles/view/advanced-cross-browser-flexbox/",title:"Tutorial on cross-browser support"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"a x #2",11:"y"},firefox:{2:"a x #1",3:"a x #1",3.5:"a x #1",3.6:"a x #1",4:"a x #1",5:"a x #1",6:"a x #1",7:"a x #1",8:"a x #1",9:"a x #1",10:"a x #1",11:"a x #1",12:"a x #1",13:"a x #1",14:"a x #1",15:"a x #1",16:"a x #1",17:"a x #1",18:"a x #1",19:"a x #1",20:"a x #1",21:"a x #1",22:"a #3",23:"a #3",24:"a #3",25:"a #3",26:"a #3",27:"a #3"},chrome:{4:"a x #1",5:"a x #1",6:"a x #1",7:"a x #1",8:"a x #1",9:"a x #1",10:"a x #1",11:"a x #1",12:"a x #1",13:"a x #1",14:"a x #1",15:"a x #1",16:"a x #1",17:"a x #1",18:"a x #1",19:"a x #1",20:"a x #1",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a x #1",3.2:"a x #1",4:"a x #1",5:"a x #1",5.1:"a x #1",6:"a x #1",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"y",15:"y x",16:"y x",17:"y",18:"y"},ios_saf:{3.2:"a x #1","4.0-4.1":"a x #1","4.2-4.3":"a x #1","5.0-5.1":"a x #1","6.0-6.1":"a x #1","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a x #1",2.2:"a x #1",2.3:"a x #1",3:"a x #1",4:"a x #1",4.1:"a x #1","4.2-4.3":"a x #1",4.4:"y"},bb:{7:"a x #1",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"a x #1"},ie_mob:{10:"a x #2"}},notes:'Most partial support refers to supporting an <a href="http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/">older version</a> of the specification or an <a href="http://www.w3.org/TR/2012/WD-css3-flexbox-20120322/">older syntax</a>. For Firefox 21+ it refers to lack of flex-wrap & flex-flow support.',usage_perc_y:37.88,usage_perc_a:37.66,ucprefix:!1,parent:"",keywords:"flex"},webgl:{title:"WebGL - 3D Canvas graphics",description:"Method of generating dynamic 3D graphics using JavaScript, accelerated through hardware",spec:"https://www.khronos.org/registry/webgl/specs/1.0/",status:"other",links:[{url:"http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation",title:"Instructions on enabling WebGL"},{url:"http://webkit.org/blog/603/webgl-now-available-in-webkit-nightlies/",title:"Webkit blog post"},{url:"http://www.khronos.org/webgl/wiki/Tutorial",title:"Tutorial"},{url:"http://hacks.mozilla.org/2009/12/webgl-draft-released-today/",title:"Firefox blog post"},{url:"http://iewebgl.com/",title:"Polyfill for IE"}],categories:["Canvas"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"p",10:"p",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"a",12.1:"a",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"a",12.1:"a",0:"y"},and_chr:{0:"n"},and_ff:{0:"y"},ie_mob:{10:"p"}},notes:'Support listed as "partial" refers to the fact that not all users with these browsers have WebGL access. This is due to the additional requirement for users to have <a href="http://www.khronos.org/webgl/wiki/BlacklistsAndWhitelists">up to date video drivers</a>. This problem was <a href="http://blog.chromium.org/2012/02/gpu-accelerating-2d-canvas-and-enabling.html">solved in Chrome</a> as of version 18.\r\n\r\nNote that WebGL is part of the <a href="http://www.khronos.org/webgl/">Khronos Group</a>, not the W3C. On Chrome for Android, WebGL is disabled by default, but can be enabled by enabling the "Enable WebGL" flag under chrome://flags',usage_perc_y:33.4,usage_perc_a:19.68,ucprefix:!1,parent:"canvas",keywords:"web gl"},fileapi:{title:"File API",description:"Method of manipulating file objects in web applications client-side, as well as programmatically selecting them and accessing their data.",spec:"http://www.w3.org/TR/FileAPI/",status:"wd",links:[{url:"https://developer.mozilla.org/en/Using_files_from_web_applications",title:"MDN article"},{url:"http://docs.webplatform.org/wiki/apis/file",title:"WebPlatform Docs"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"a",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"a",4:"a",4.1:"a","4.2-4.3":"a",4.4:"y"},bb:{7:"a",10:"y"},op_mob:{10:"n",11:"n",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"Partial support in older Safari refers to lacking FileReader support. ",usage_perc_y:67.73,usage_perc_a:5.38,ucprefix:!1,parent:"",keywords:"FileReader"},shadowdom:{title:"Shadow DOM",description:"Method of establishing and maintaining functional boundaries between DOM trees and how these trees interact with each other within a document, thus enabling better functional encapsulation within the DOM.",spec:"http://www.w3.org/TR/shadow-dom/",status:"wd",links:[{url:"http://www.html5rocks.com/tutorials/webcomponents/shadowdom/",title:"HTML5Rocks - Shadow DOM 101 article"},{url:"http://html5-demos.appspot.com/static/shadowdom-visualizer/index.html",title:"Shadow DOM Visualizer"}],categories:["DOM","HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"y x",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y x"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"",usage_perc_y:33.29,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"web components"},websockets:{title:"Web Sockets",description:"Bidirectional communication technology for web apps",spec:"http://www.w3.org/TR/websockets/",status:"cr",links:[{url:"http://docs.webplatform.org/wiki/apis/websocket",title:"WebPlatform Docs"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-websockets",title:"has.js test"},{url:"http://websocket.org/aboutwebsocket.html",title:"WebSockets information"},{url:"http://en.wikipedia.org/wiki/WebSocket",title:"Wikipedia"},{url:"http://updates.html5rocks.com/2011/08/What-s-different-in-the-new-WebSocket-protocol",title:"Details on newer protocol"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a",5:"a",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"a",5.1:"a",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"a",11.1:"a",11.5:"a",11.6:"a",12:"a",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"a",11.1:"a",11.5:"a",12:"a",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support refers to the websockets implementation using an older version of the protocol and/or the implementation being disabled by default (due to security issues with the older protocol).",usage_perc_y:67.46,usage_perc_a:2.62,ucprefix:!0,parent:"",keywords:""},"script-async":{title:"async attribute for external scripts",description:"The boolean async attribute on script elements allows the external JavaScript file to run when it's available, without delaying page load first.",spec:"http://www.w3.org/TR/html5/scripting-1.html#attr-script-async",status:"cr",links:[{url:"https://developer.mozilla.org/en/HTML/Element/script#Attributes",title:"MDN article"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/script.js#script-async",title:"has.js test"},{url:"http://ie.microsoft.com/testdrive/Performance/AsyncScripts/Default.html",title:"Demo"}],categories:["HTML5","DOM"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"a",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Using script.async = false; to maintain execution order for dynamically-added scripts isn't supported in Safari 5.0",usage_perc_y:72.82,usage_perc_a:.31,ucprefix:!1,parent:"",keywords:""},cors:{title:"Cross-Origin Resource Sharing",description:"Method of performing XMLHttpRequests across domains",spec:"http://www.w3.org/TR/cors/",status:"cr",links:[{url:"http://saltybeagle.com/2009/09/cross-origin-resource-sharing-demo/",title:"Demo and script with cross-browser support"},{url:"http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/",title:"Mozilla Hacks blog post"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-cors-xhr",title:"has.js test"},{url:"http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx",title:"Alternative implementation by IE8"},{url:"http://dev.opera.com/articles/view/dom-access-control-using-cross-origin-resource-sharing/",title:"DOM access using CORS"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"a",9:"a",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Supported somewhat in IE8 and IE9 using the XDomainRequest object (but has <a href=" http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx">limitations</a>)',usage_perc_y:75.51,usage_perc_a:13.52,ucprefix:!1,parent:"",keywords:""},calc:{title:"calc() as CSS unit value",description:"Method of allowing calculated values for length units, i.e. width: calc(100% - 3em)",spec:"http://www.w3.org/TR/css3-values/#calc",status:"cr",links:[{url:"http://docs.webplatform.org/wiki/css/functions/calc",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/en/CSS/-moz-calc",title:"MDN article"},{url:"http://hacks.mozilla.org/2010/06/css3-calc/",title:"Mozilla Hacks article"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y x",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y x","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Support can be somewhat emulated in older versions of IE using the non-standard expression() syntax. ",usage_perc_y:71.77,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},ruby:{title:"Ruby annotation",description:"Method of adding pronunciation or other annotations using ruby elements (primarily used in East Asian typography)",spec:"http://www.w3.org/TR/html-markup/ruby.html",status:"wd",links:[{url:"https://addons.mozilla.org/firefox/addon/6812/",title:'Addon "HTML Ruby" for Firefox support'},{url:"http://html5doctor.com/ruby-rt-rp-element/",title:"HTML5 Doctor article"},{url:"http://docs.webplatform.org/wiki/html/elements/ruby",title:"WebPlatform Docs"},{url:"https://addons.mozilla.org/firefox/addon/1935/",title:'Add-on "XHTML Ruby Support" for Firefox'}],categories:["HTML5"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a"},firefox:{2:"p",3:"p",3.5:"p",3.6:"p",4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"p",20:"p",21:"p",22:"p",23:"p",24:"p",25:"p",26:"p",27:"p"},chrome:{4:"p",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"p",3.2:"p",4:"p",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"p",10.6:"p",11:"p",11.1:"p",11.5:"p",11.6:"p",12:"p",12.1:"p",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"p"},android:{2.1:"p",2.2:"p",2.3:"p",3:"a",4:"a",4.1:"a","4.2-4.3":"a",4.4:"a"},bb:{7:"p",10:"a"},op_mob:{10:"p",11:"p",11.1:"p",11.5:"p",12:"p",12.1:"p",0:"a"},and_chr:{0:"a"},and_ff:{0:"p"},ie_mob:{10:"a"}},notes:"Browsers without native support can still simulate support using CSS. Partial support refers to only supporting basic ruby, may still be missing writing-mode, Complex ruby and CSS3 Ruby",usage_perc_y:0,usage_perc_a:72.03,ucprefix:!1,parent:"",keywords:""},"css-opacity":{title:"CSS3 Opacity",description:"Method of setting the transparency level of an element",spec:"http://www.w3.org/TR/css3-color/",status:"rec",links:[{url:"http://www.css3files.com/color/#opacity",title:"Information page"},{url:"http://docs.webplatform.org/wiki/css/properties/opacity",title:"WebPlatform Docs"}],categories:["CSS3"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"a",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Transparency for elements in IE8 and older can be achieved using the proprietary "filter" property and does not work well with PNG images using alpha transparency.',usage_perc_y:85.55,usage_perc_a:9.03,ucprefix:!1,parent:"",keywords:"transparent,transparency,alpha"},"form-validation":{title:"Form validation",description:"Method of setting required fields and field types without requiring JavaScript",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#client-side-form-validation",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/html/attributes/required",title:"WebPlatform Docs"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"a"}},notes:"Partial support in Safari refers to lack of notice when form with required fields is attempted to be submitted. Partial support in IE10 mobile refers to lack of warning when blocking submission.",usage_perc_y:61.75,usage_perc_a:4.07,ucprefix:!1,parent:"forms",keywords:""},history:{title:"Session history management",description:"Method of manipulating the user's browser's session history in JavaScript using history.pushState, history.replaceState and the popstate event",spec:"http://www.w3.org/TR/html5/browsers.html#history-1",status:"cr",links:[{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-history-state",title:"has.js test"},{url:"https://github.com/browserstate/history.js",title:"History.js polyfill "},{url:"http://docs.webplatform.org/wiki/dom/history",title:"WebPlatform Docs"},{url:"http://html5demos.com/history",title:"Demo page"},{url:"http://www.adequatelygood.com/2010/7/Saner-HTML5-History-Management",title:"Introduction to history management"},{url:"https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history",title:"MDN article"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"a","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"y",2.3:"y",3:"n",4:"n",4.1:"n","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Older iOS versions and Android 4.0.4 claim support, but implementation is too buggy to be useful. Partial support in other Safari browsers refers to other buggy behavior.",usage_perc_y:68.29,usage_perc_a:3.89,ucprefix:!1,parent:"",keywords:"onpushstate,onreplacestate"},json:{title:"JSON parsing",description:"Method of converting JavaScript objects to JSON strings and JSON back to objects using JSON.stringify() and JSON.parse()",spec:"http://es5.github.com/#x15.12",status:"other",links:[{url:"http://docs.webplatform.org/wiki/apis/json",title:"WebPlatform Docs"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/json.js#json",title:"has.js test"},{url:"http://www.json.org/js.html",title:"JSON in JS (includes script w/support)"},{url:"https://developer.mozilla.org/En/Using_native_JSON",title:"MDN article"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Requires document to be in IE8+ <a href="http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx">standards mode</a> to work in IE8.',usage_perc_y:93.71,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},classlist:{title:"classList (DOMTokenList )",description:"Method of easily manipulating classes on elements, using the DOMTokenList object.",spec:"http://www.w3.org/TR/dom/#dom-element-classlist",status:"wd",links:[{url:"https://github.com/eligrey/classList.js",title:"Polyfill script"},{url:"http://hacks.mozilla.org/2010/01/classlist-in-firefox-3-6/",title:"Mozilla Hacks article"},{url:"http://docs.webplatform.org/wiki/dom/properties/classList",title:"WebPlatform Docs"},{url:"https://github.com/eligrey/classList.js/pull/12",title:"Polyfill script for classList on SVG elements on WebKit"}],categories:["DOM","HTML5"],stats:{ie:{5.5:"p",6:"p",7:"p",8:"p",9:"p",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"p",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"p",5:"p",6:"p",7:"p",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"p",5:"p",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"p",10.6:"p",11:"p",11.1:"p",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"p"},android:{2.1:"p",2.2:"p",2.3:"p",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"p",11:"p",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:73.54,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},"text-overflow":{title:"CSS3 Text-overflow",description:"Append ellipsis when text overflows its containing element",spec:"http://www.w3.org/TR/css3-ui/#text-overflow0",status:"wd",links:[{url:"http://www.css3files.com/text/",title:"Information page"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/css.js#css-text-overflow",title:"has.js test"},{url:"http://docs.webplatform.org/wiki/css/properties/text-overflow",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/En/CSS/Text-overflow",title:"MDN article"},{url:"https://github.com/rmorse/AutoEllipsis",title:"jQuery polyfill for Firefox"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"p",3:"p",3.5:"p",3.6:"p",4:"p",5:"p",6:"p",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y x","9.5-9.6":"y x","10.0-10.1":"y x",10.5:"y x",10.6:"y x",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y x"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y x",11:"y x",11.1:"y x",11.5:"y x",12:"y x",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:93.95,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"textoverflow,ellipsis"},webm:{title:"WebM/VP8 video format",description:"Multimedia format designed to provide a royalty-free, high-quality open video compression format for use with HTML5 video.",spec:"http://www.webmproject.org/",status:"other",links:[{url:"http://perian.org/",title:"Perian :Mac OSX Webm Codec install"},{url:"https://tools.google.com/dlpage/webmmf",title:"Codec for IE9 support"},{url:"http://webmproject.org",title:"Officical website"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/video.js#video-webm",title:"has.js test"},{url:"http://www.broken-links.com/2010/09/01/playing-webm-in-safari-with-plugins/",title:"Info on supporting WebM in Safari"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"p",10:"p",11:"p"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"p",4:"p",5:"p",5.1:"p",6:"p",6.1:"p",7:"p"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"p"}},notes:"Will work in IE9+ and Safari/MacOSX provided the user has the WebM codecs installed.",usage_perc_y:55.72,usage_perc_a:0,ucprefix:!1,parent:"video",keywords:"matroska"},mpeg4:{title:"MPEG-4/H.264 video format",description:"Commonly used video compression format (not royalty-free)",spec:"http://ip.hhi.de/imagecom_G1/assets/pdfs/csvt_overview_0305.pdf",status:"other",links:[{url:"http://www.interoperabilitybridges.com/html5-extension-for-wmp-plugin",title:"Firefox extension allowing support in Win7"},{url:"http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC",title:"Wikipedia article"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a",2.2:"a",2.3:"a",3:"a",4:"a",4.1:"a","4.2-4.3":"a",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"a"},ie_mob:{10:"y"}},notes:'The Android 2.3 browser currently requires <a href="http://www.broken-links.com/2010/07/08/making-html5-video-work-on-android-phones/">specific handling</a> to play videos. Firefox <a href="http://blog.lizardwrangler.com/2012/03/18/video-user-experience-and-our-mission/">will include support</a> on some platforms in upcoming versions. Firefox supports H.264 on Windows 7 and later since version 21. Partial support for Firefox refers to the lack of support in OSX & Linux platforms, for Android Firefox it refers to the inability of hardware acceleration.',usage_perc_y:59.55,usage_perc_a:18.1,ucprefix:!1,parent:"video",keywords:"avc,mp4,mpv,mov,aac"},ogv:{title:"Ogg/Theora video format",description:"Free lossy video compression format.",spec:"http://theora.org/doc/",status:"other",links:[{url:"http://en.wikipedia.org/wiki/Theora",title:"Wikipedia article"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"p",10:"p",11:"p"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"y"},ie_mob:{10:"p"}},notes:"",usage_perc_y:49.8,usage_perc_a:0,ucprefix:!1,parent:"video",keywords:"xiph"},wordwrap:{title:"CSS3 Overflow-wrap",description:"Allows lines to be broken within words if an otherwise unbreakable string is too long to fit.",spec:"http://www.w3.org/TR/css3-text/#overflow-wrap",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/properties/word-wrap",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/En/CSS/Word-wrap",title:"MDN article"},{url:"http://www.css3files.com/text/#wordwrap",title:"Information page"}],categories:["CSS3"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a"},firefox:{2:"n",3:"n",3.5:"a",3.6:"a",4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a"},chrome:{4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"a",5:"a",5.1:"a",6:"a",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"a",10.6:"a",11:"a",11.1:"a",11.5:"a",11.6:"a",12:"a",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"a",2.2:"a",2.3:"a",3:"a",4:"a",4.1:"a","4.2-4.3":"a",4.4:"y"},bb:{7:"a",10:"y"},op_mob:{10:"a",11:"a",11.1:"a",11.5:"a",12:"a",12.1:"a",0:"y"},and_chr:{0:"y"},and_ff:{0:"a"},ie_mob:{10:"a"}},notes:'Partial support refers to requiring the legacy name "word-wrap" (rather than overflow-wrap) to work.',usage_perc_y:36.93,usage_perc_a:57.51,ucprefix:!1,parent:"",keywords:"wordwrap,word-wrap"},progressmeter:{title:"Progress & Meter",description:"Method of indicating a progress state (progress element) or the current level of a gauge (meter element).\r\n",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-progress-element",status:"wd",links:[{url:"http://dev.opera.com/articles/view/new-form-features-in-HTML5/#newoutput",title:"Dev.Opera article"},{url:"http://peter.sh/examples/?/html/meter-progress.html",title:"Examples of progress and meter elements"},{url:"http://docs.webplatform.org/wiki/html/elements/progress",title:"WebPlatform Docs"},{url:"http://html5doctor.com/measure-up-with-the-meter-tag/",title:"HTML5 Doctor on meter element "}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"a",11:"a"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"a"}},notes:'Partial support in Firefox 6-15, IE10 & iOS7 Safari refers to supporting the progress element, but not the meter element. iOS7 Safari also does not support "indeterminate" progress elements.',usage_perc_y:52.21,usage_perc_a:14.58,ucprefix:!1,parent:"forms",keywords:""},"object-fit":{title:"CSS3 object-fit/object-position",description:'Method of specifying how an object (image or video) should fit inside its box. object-fit options include "contain" (fit according to aspect ratio), "fill" (stretches object to fill) and "cover" (overflows box but maintains ratio), where object-position allows the object to be repositioned like background-image does.',spec:"http://www.w3.org/TR/css3-images/",status:"cr",links:[{url:"http://dev.opera.com/articles/view/css3-object-fit-object-position/",title:"Dev.Opera article"},{url:"http://docs.webplatform.org/wiki/css/properties/object-fit",title:"WebPlatform Docs"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"u",27:"u"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"n",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"y x",11:"y x",11.1:"y x",11.5:"y x",11.6:"y x",12:"y x",12.1:"y x",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"y x",11.1:"y x",11.5:"y x",12:"y x",12.1:"y x",0:"n"},and_chr:{0:"n"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Can be enabled in Chrome 31+ and Opera 18+ by enabling experimental Web Platform features under chrome://flags/ or opera://flags/.",usage_perc_y:.81,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"objectfit,objectposition"},xhr2:{title:"XMLHttpRequest 2",description:"Adds more functionality to AJAX requests like file uploads, transfer progress information and the ability to send form data.",spec:"http://www.w3.org/TR/XMLHttpRequest2/",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/apis/xhr/XMLHttpRequest",title:"WebPlatform Docs"},{url:"http://www.profilepicture.co.uk/tutorials/ajax-file-upload-xmlhttprequest-level-2/",title:"Article with file upload demo"},{url:"https://developer.mozilla.org/en/XMLHttpRequest/FormData",title:"MDN article on FormData"},{url:"https://github.com/3nr1c/jUri.js",title:"Polyfill for FormData object"}],categories:["DOM","JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"a",3.6:"a",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"u",5:"u",6:"u",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:73.51,usage_perc_a:.35,ucprefix:!1,parent:"",keywords:"formdata"},minmaxwh:{title:"CSS min/max-width/height",description:"Method of setting a minimum or maximum width or height to an element. ",spec:"http://www.w3.org/TR/CSS21/visudet.html#min-max-widths",status:"rec",links:[{url:"http://docs.webplatform.org/wiki/css/properties/min-width",title:"WebPlatform Docs"},{url:"http://code.google.com/p/ie7-js/",title:"JS library with support"},{url:"http://www.impressivewebs.com/min-max-width-height-css/",title:"CSS Basics post"}],categories:["CSS2"],stats:{ie:{5.5:"p",6:"p",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'IE7 does not support "inherit" as a value on any of these properties. IE8 has some bugs with max-width/height combined with overflow: auto/scroll.',usage_perc_y:94.36,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"min-width,min-height,max-width,max-height"},details:{title:"Details & Summary elements",description:"The &lt;details> element generates a simple no-JavaScript widget to show/hide element contents, optionally by clicking on its child &lt;summary> element.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#the-details-element",status:"wd",links:[{url:"http://html5doctor.com/summary-figcaption-element/",title:"HTML5 Doctor article"},{url:"http://mathiasbynens.be/notes/html5-details-jquery",title:"jQuery fallback script"},{url:"http://docs.webplatform.org/wiki/html/elements/details",title:"WebPlatform Docs"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-details",title:"has.js test"},{url:"https://gist.github.com/370590",title:"Fallback script"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"p",3.5:"p",3.6:"p",4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"p",20:"p",21:"p",22:"p",23:"p",24:"p",25:"p",26:"p",27:"p"},chrome:{4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"p",5:"p",5.1:"p",6:"y",6.1:"y",7:"y"},opera:{9:"p","9.5-9.6":"p","10.0-10.1":"p",10.5:"p",10.6:"p",11:"p",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"p","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"p"},android:{2.1:"p",2.2:"p",2.3:"p",3:"p",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"p",10:"y"},op_mob:{10:"p",11:"p",11.1:"p",11.5:"p",12:"p",12.1:"p",0:"y"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"",usage_perc_y:44.5,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},"text-stroke":{title:"CSS text-stroke",description:"Method of declaring the outline (stroke) width and color for text.",spec:"http://developer.apple.com/library/safari/documentation/appleapplications/reference/SafariCSSRef/Articles/StandardCSSProperties.html#//apple_ref/doc/uid/TP30001266-_webkit_text_stroke",status:"unoff",links:[{url:"http://www.westciv.com/tools/textStroke/",title:"Live editor"},{url:"http://css-tricks.com/7405-adding-stroke-to-web-text/",title:"Information & workarounds"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"u",27:"u"},chrome:{4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"y x",3.2:"y x",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"a x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y x",2.2:"y x",2.3:"y x",3:"n",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y x"},bb:{7:"y x",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:'Does not yet appear in any W3C specification. Was briefly included in a spec as the "text-outline" property, but this was removed.',usage_perc_y:48.41,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"textstroke,stroke-color,stroke-width,fill-color"},"inline-block":{title:"CSS inline-block",description:"Method of displaying an element as a block while flowing it with text. ",spec:"http://www.w3.org/TR/CSS21/visuren.html#fixed-positioning",status:"rec",links:[{url:"http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/",title:"Blog post w/info"},{url:"http://docs.webplatform.org/wiki/css/properties/display",title:"WebPlatform Docs"},{url:"http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/",title:"Info on cross browser support"}],categories:["CSS2"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"a x",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Only supported in IE6 and IE7 on elements with a display of "inline" by default. <a href="http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/">Alternative properties</a> are available to provide complete cross-browser support.',usage_perc_y:93.84,usage_perc_a:.74,ucprefix:!1,parent:"",keywords:"inlineblock"},notifications:{title:"Web Notifications",description:"Method of alerting the user outside of a web page by displaying notifications (that do not require interaction by the user).",spec:"http://www.w3.org/TR/notifications/",status:"wd",links:[{url:"http://www.html5rocks.com/tutorials/notifications/quick/",title:"HTML5 Rocks tutorial"},{url:"http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification",title:"Chromium API"},{url:"https://addons.mozilla.org/en-us/firefox/addon/221523/",title:"Add-on "}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"a x"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"a x"},and_chr:{0:"a x"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:45.27,usage_perc_a:2.66,ucprefix:!1,parent:"",keywords:""},stream:{title:"getUserMedia/Stream API",description:"Method of accessing external device data (such as a webcam video stream). Formerly this was envisioned as the &lt;device> element.",spec:"http://www.w3.org/TR/mediacapture-streams/",status:"wd",links:[{url:"http://my.opera.com/core/blog/2011/03/23/webcam-orientation-preview",title:"Technology preview from Opera"},{url:"http://docs.webplatform.org/wiki/dom/methods/getUserMedia",title:"WebPlatform Docs"}],categories:["HTML5","JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"y",12.1:"y",15:"n",16:"n",17:"n",18:"y x"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"y",12.1:"y",0:"y x"},and_chr:{0:"y"},and_ff:{0:"y x"},ie_mob:{10:"n"}},notes:"",usage_perc_y:48.44,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"camera,device,getUserMedia,media stream,Media Capture API"},"svg-img":{title:"SVG in HTML img element",description:"Method of displaying SVG images in HTML using &lt;img>",spec:"http://www.w3.org/TR/html5/embedded-content-1.html#the-img-element",status:"cr",links:[{url:"http://www.codedread.com/blog/",title:"Blog with SVGs an images"},{url:"http://blog.dholbert.org/2010/10/svg-as-image.html",title:"Blog post with examples"}],categories:["SVG"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"a",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:83.65,usage_perc_a:.01,ucprefix:!1,parent:"",keywords:"svg-as-img,svg-in-img"},datalist:{title:"Datalist element",description:"Method of setting a list of options for a user to select in a text field, while leaving the ability to enter a custom value.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element",status:"wd",links:[{url:"http://demo.agektmr.com/datalist/",title:"Eiji Kitamura's options demos & tests"},{url:"http://docs.webplatform.org/wiki/html/elements/datalist",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/en/HTML/Element/datalist",title:"MDN reference"},{url:"http://afarkas.github.com/webshim/demos/",title:"HTML5 Library including datalist support"},{url:"http://hacks.mozilla.org/2010/11/firefox-4-html5-forms/",title:"Mozilla Hacks article"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"p",7:"p",8:"p",9:"p",10:"a",11:"a"},firefox:{2:"p",3:"p",3.5:"p",3.6:"p",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"n",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"p",3.2:"p",4:"p",5:"p",5.1:"p",6:"n",6.1:"n",7:"n"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"p","6.0-6.1":"p","7.0":"p"},op_mini:{"5.0-7.0":"n"},android:{2.1:"p",2.2:"p",2.3:"p",3:"p",4:"p",4.1:"p","4.2-4.3":"p",4.4:"p"},bb:{7:"p",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"p"},and_chr:{0:"p"},and_ff:{0:"y"},ie_mob:{10:"p"}},notes:'Partial support in IE10 refers to <a href="http://playground.onereason.eu/2013/04/ie10s-lousy-support-for-datalists/">significantly buggy behavior</a>.',usage_perc_y:48.86,usage_perc_a:10.9,ucprefix:!1,parent:"forms",keywords:"list attribute"},dataset:{title:"dataset & data-* attributes",description:"Method of applying and accessing custom data to elements.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data-with-the-data-*-attributes",status:"wd",links:[{url:"http://www.orangesoda.net/jquery.dataset.html",title:"jQuery polyfill for dataset support"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/dom.js#dom-dataset",title:"has.js test"},{url:"http://html5demos.com/dataset",title:"Demo using dataset"},{url:"http://html5doctor.com/html5-custom-data-attributes/",title:"HTML5 Doctor article"},{url:"http://docs.webplatform.org/wiki/html/attributes/data-*",title:"WebPlatform Docs"}],categories:["HTML5"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"y"},firefox:{2:"a",3:"a",3.5:"a",3.6:"a",4:"a",5:"a",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"a",6:"a",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"a",5:"a",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"a","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"a",11:"a",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"a",2.2:"a",2.3:"a",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"a",11:"a",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"a"}},notes:'All browsers can already use data-* attributes and access them using getAttribute. "Supported" refers to accessing the values using the dataset property. Current spec only refers to support on HTML elements, only some browsers also have support for SVG/MathML elements.',usage_perc_y:62.15,usage_perc_a:32.43,ucprefix:!1,parent:"",keywords:"DOMStringMap"},"css-grid":{title:"CSS Grid Layout",description:"Method of using a grid concept to lay out content, providing a mechanism for authors to divide available space for lay out into columns and rows using a set of predictable sizing behaviors",spec:"http://www.w3.org/TR/css3-grid-layout/",status:"wd",links:[{url:"https://bugzilla.mozilla.org/show_bug.cgi?id=616605",title:"Mozilla (Firefox) feature request"},{url:"http://blogs.msdn.com/b/ie/archive/2011/04/14/ie10-platform-preview-and-css-features-for-adaptive-layouts.aspx",title:"IE Blog post"},{url:"https://github.com/codler/Grid-Layout-Polyfill",title:"Grid Layout Polyfill"},{url:"https://bugs.webkit.org/show_bug.cgi?id=60731",title:"Webkit (Chrome, Safari, etc.) feature request"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"p",10:"y x",11:"y x"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"p",20:"p",21:"p",22:"p",23:"p",24:"p",25:"p",26:"u",27:"u"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"p",26:"p",27:"p",28:"p",29:"p",30:"p",31:"u",32:"u"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"p",6.1:"p",7:"p"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"p","7.0":"p"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"p",4.4:"p"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"p"},and_chr:{0:"p"},and_ff:{0:"n"},ie_mob:{10:"y x"}},notes:"",usage_perc_y:11.11,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"grids,grid-row,grid-column"},menu:{title:"Toolbar/context menu",description:"Method of defining a toolbar menu, a context menu or a list of (interactive) options using the &lt;menu> element.",spec:"http://www.w3.org/TR/html5/interactive-elements.html#context-menus",status:"cr",links:[{url:"https://raw.github.com/phiggins42/has.js/master/detect/events.js#event-contextmenu",title:"has.js test"},{url:"https://bug617528.bugzilla.mozilla.org/attachment.cgi?id=554309",title:"Demo"},{url:"http://addyosmani.github.com/jQuery-contextMenu/",title:"jQuery polyfill"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"u",32:"u"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:'Partial support in Firefox refers to using the non-standard "menuitem" child elements, where the current spec uses "<a href="http://www.w3.org/TR/html5/interactive-elements.html#the-command-element">command</a>" child elements. It is also currently limited to context menus, not toolbar menus.',usage_perc_y:0,usage_perc_a:14.7,ucprefix:!1,parent:"",keywords:"contextmenu,menuitem,command"},rem:{title:"rem (root em) units",description:'Type of unit similar to "em", but relative only to the root element, not any parent element. Thus compounding does not occur as it does with "em" units.',spec:"http://www.w3.org/TR/css3-values/#font-relative-lengths",status:"cr",links:[{url:"http://snook.ca/archives/html_and_css/font-size-with-rem",title:"Article on usage"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"u",5:"u",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:80.56,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},ttf:{title:"TTF/OTF - TrueType and OpenType font support",description:"Support for the TrueType (.ttf)and OpenType (.otf) outline font formats in @font-face. ",spec:"http://developer.apple.com/fonts/TTRefMan/index.html",status:"other",links:[{url:"http://stackoverflow.com/questions/17694143/what-is-the-status-of-ttf-support-in-internet-explorer",title:"What is the status of TTF support in Internet Explorer?"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"a",10:"a",11:"a"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"u"}},notes:'Partial support in IE9 refers to the fonts only working <a href="http://blogs.msdn.com/b/ie/archive/2010/07/15/the-css-corner-better-web-typography-for-better-design.aspx">when set to be "installable"</a>.',usage_perc_y:64.48,usage_perc_a:16.11,ucprefix:!1,parent:"fontface",keywords:""},touch:{title:"Touch events",description:"Method of registering when, where and how the interface is touched, for devices with a touch screen. These DOM events are similar to mousedown, mousemove, etc.",spec:"http://www.w3.org/TR/touch-events/",status:"rec",links:[{url:"http://schepers.cc/getintouch",title:"Information on the spec development"},{url:"http://www.quirksmode.org/mobile/tableTouch.html",title:"Detailed support tables"},{url:"http://www.quirksmode.org/m/tests/drag2.html",title:"Multi-touch demo"},{url:"http://msdn.microsoft.com/en-us/library/ie/hh673557(v=vs.85).aspx",title:"Internet Explorer's gesture and touch implementation."}],categories:["DOM","JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"p",11:"p"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"a",5:"a",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"p"}},notes:"Internet Explorer implements Pointer Events specification which supports more input devices than Touch Events one.",usage_perc_y:58.16,usage_perc_a:.12,ucprefix:!1,parent:"",keywords:"touchstart,touchend,touchmove,touchenter,touchleave,touchcancel"},matchesselector:{title:"matches() DOM method",description:"Method of testing whether or not a DOM element matches a given selector. Formerly known (and largely supported with prefix) as matchesSelector.",spec:"http://www.w3.org/TR/selectors-api2/",status:"wd",links:[{url:"https://developer.mozilla.org/en/DOM/Element.mozMatchesSelector",title:"MDN article"},{url:"http://docs.webplatform.org/wiki/dom/methods/matchesSelector",title:"WebPlatform Docs"}],categories:["DOM","JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"a x",10:"a x",11:"a x"},firefox:{2:"n",3:"n",3.5:"n",3.6:"a x",4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"a x",23:"a x",24:"a x",25:"a x",26:"a x",27:"a x"},chrome:{4:"a x",5:"a x",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"a x",23:"a x",24:"a x",25:"a x",26:"a x",27:"a x",28:"a x",29:"a x",30:"a x",31:"a x",32:"a x"},safari:{3.1:"n",3.2:"n",4:"n",5:"a x",5.1:"a x",6:"a x",6.1:"a x",7:"a x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"a x",11.6:"a x",12:"a x",12.1:"a x",15:"a x",16:"a x",17:"a x",18:"a x"},ios_saf:{3.2:"n","4.0-4.1":"a x","4.2-4.3":"a x","5.0-5.1":"a x","6.0-6.1":"a x","7.0":"a x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"a x",2.3:"a x",3:"a x",4:"a x",4.1:"a x","4.2-4.3":"a x",4.4:"a x"},bb:{7:"a x",10:"a x"},op_mob:{10:"n",11:"n",11.1:"a x",11.5:"a x",12:"a x",12.1:"a x",0:"a x"},and_chr:{0:"a x"},and_ff:{0:"a x"},ie_mob:{10:"a x"}},notes:'Partial support refers to supporting the older specification\'s "matchesSelector" name rather than just "matches".',usage_perc_y:0,usage_perc_a:80.6,ucprefix:!1,parent:"",keywords:" matchesSelector"},"pointer-events":{title:"CSS pointer-events (for HTML)",description:'This CSS property, when set to "none" allows elements to not receive hover/click events, instead the event will occur on anything behind it. ',spec:"http://wiki.csswg.org/spec/css4-ui#pointer-events",status:"unoff",links:[{url:"http://robertnyman.com/2010/03/22/css-pointer-events-to-allow-clicks-on-underlying-elements/",title:"Article & tutorial"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/css.js#css-pointerevents",title:"has.js test"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"Already part of the SVG specification, and all SVG-supporting browsers appear to support the property on SVG elements.",usage_perc_y:63.82,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"pointerevents"},blobbuilder:{title:"Blob constructing",description:"Construct Blobs (binary large objects) either using the BlobBuilder API (deprecated) or the Blob constructor.",spec:"http://www.w3.org/TR/file-writer-api/#the-blobbuilder-interface",status:"wd",links:[{url:"https://developer.mozilla.org/en/DOM/BlobBuilder",title:"MDN article on BlobBuilder"},{url:"https://developer.mozilla.org/en-US/docs/DOM/Blob",title:"MDN article on Blobs"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"a x",7:"a x",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"a x",4:"a x",4.1:"a x","4.2-4.3":"a x",4.4:"a x"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"y",0:"y"},and_chr:{0:"a x"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support refers to only supporting the now deprecated BlobBuilder to create blobs.",usage_perc_y:64.97,usage_perc_a:6.3,ucprefix:!0,parent:"fileapi",keywords:""},filereader:{title:"FileReader API",description:"Method of reading the contents of a File or Blob object into memory",spec:"http://www.w3.org/TR/FileAPI/#dfn-filereader",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/apis/file/FileReader",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/en/DOM/FileReader",title:"FileReader API"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:71.89,usage_perc_a:0,ucprefix:!1,parent:"fileapi",keywords:""},filesystem:{title:"Filesystem & FileWriter API",description:"Method of reading and writing files to a sandboxed file system.\r\n",spec:"http://www.w3.org/TR/file-system-api/",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/apis/filesystem",title:"WebPlatform Docs"},{url:"http://www.html5rocks.com/en/tutorials/file/filesystem/",title:"HTML5 Rocks tutorial"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"a x",9:"a x",10:"a x",11:"a x",12:"a x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y x"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"",usage_perc_y:34.87,usage_perc_a:.28,ucprefix:!1,parent:"",keywords:"filewriter"},bloburls:{title:"Blob URLs",description:"Method of creating URL handles to the specified File or Blob object.",spec:"http://www.w3.org/TR/FileAPI/#url",status:"wd",links:[{url:"https://developer.mozilla.org/en/DOM/window.URL.createObjectURL",title:"MDN article"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y x",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y x","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:70.6,usage_perc_a:0,ucprefix:!1,parent:"fileapi",keywords:"createobjecturl"},typedarrays:{title:"Typed Arrays",description:"JavaScript typed arrays provide a mechanism for accessing raw binary data much more efficiently.\r\n",spec:"http://www.khronos.org/registry/typedarray/specs/latest/",status:"other",links:[{url:"https://developer.mozilla.org/en/javascript_typed_arrays",title:"MDN article"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:73.11,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"float64array,dataview,uint8array"},deviceorientation:{title:"DeviceOrientation events",description:"API for detecting orientation and motion events from the device running the browser.",spec:"http://www.w3.org/TR/orientation-event/",status:"wd",links:[{url:"http://html5labs.interoperabilitybridges.com/prototypes/device-orientation-events/device-orientation-events/info",title:"DeviceOrientation implementation prototype for IE10"},{url:"http://www.html5rocks.com/en/tutorials/device/orientation/",title:"HTML5 Rocks tutorial"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/features.js#native-orientation",title:"has.js test"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"a"},firefox:{2:"n",3:"n",3.5:"n",3.6:"p",4:"p",5:"p",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a"},chrome:{4:"n",5:"n",6:"n",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"a",4:"a",4.1:"a","4.2-4.3":"a",4.4:"a"},bb:{7:"n",10:"a"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"y",12.1:"y",0:"a"},and_chr:{0:"a"},and_ff:{0:"a"},ie_mob:{10:"n"}},notes:'Partial support refers to the lack of compassneedscalibration event. Partial support also refers to the lack of devicemotion event support for Chrome 30- and Opera. Opera Mobile 14 lost the ondevicemotion event support. Firefox 3.6, 4 and 5 support the non-standard <a href="https://developer.mozilla.org/en/DOM/MozOrientation">MozOrientation</a> event.',usage_perc_y:.14,usage_perc_a:57.76,ucprefix:!1,parent:"",keywords:""},"script-defer":{title:"defer attribute for external scripts",description:"The boolean defer attribute on script elements allows the external JavaScript file to run when the DOM is loaded, without delaying page load first.",spec:"http://www.w3.org/TR/html5/the-script-element.html#attr-script-defer",status:"cr",links:[{url:"https://developer.mozilla.org/en/HTML/Element/script#Attributes",title:"MDN article"},{url:"http://docs.webplatform.org/wiki/html/attributes/defer",title:"WebPlatform Docs"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/script.js#script-defer",title:"has.js test"}],categories:["DOM","HTML5"],stats:{ie:{5.5:"a",6:"a",7:"a",8:"a",9:"a",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support refers to a buggy implementation in IE<10",usage_perc_y:73.17,usage_perc_a:14.25,ucprefix:!1,parent:"",keywords:""},"nav-timing":{title:"Navigation Timing API",description:"API for accessing timing information related to navigation and elements.",spec:"http://www.w3.org/TR/navigation-timing/",status:"cr",links:[{url:"https://developer.mozilla.org/en/API/navigationTiming",title:"MDN article"},{url:"http://www.html5rocks.com/en/tutorials/webperformance/basics/",title:"HTML5 Rocks tutorial"},{url:"http://docs.webplatform.org/wiki/apis/navigation_timing",title:"WebPlatform Docs"}],categories:["DOM","JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:69.95,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"performance,performance.timing"},"audio-api":{title:"Web Audio API",description:"High-level JavaScript API for processing and synthesizing audio",spec:"http://www.w3.org/TR/webaudio/",status:"wd",links:[{url:"http://www.doboism.com/projects/webaudio-compatibility/",title:"Additional browser compatibility tests for specific features"},{url:"http://docs.webplatform.org/wiki/apis/webaudio",title:"WebPlatform Docs"},{url:"https://github.com/corbanbrook/audionode.js",title:"Polyfill to support Web Audio API in Firefox"},{url:"https://github.com/g200kg/WAAPISim",title:"Polyfill to enable Web Audio API through Firefox Audio Data api or flash"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"y x"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"Firefox versions < 25 support an alternative, deprecated audio API.",usage_perc_y:41.68,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"web-audio"},"css-regions":{title:"CSS Regions",description:"Method of flowing content into multiple elements.",spec:"http://www.w3.org/TR/css3-regions/",status:"wd",links:[{url:"http://msdn.microsoft.com/en-us/ie/hh272902#_CSSConnected",title:"IE10 developer guide info"},{url:"http://html.adobe.com/webstandards/cssregions/",title:"Adobe demos and samples"},{url:"http://docs.webplatform.org/wiki/css/atrules/@region",title:"WebPlatform Docs"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"a x",11:"a x"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"a x",16:"a x",17:"a x",18:"a x",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"n",32:"n"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"n"},ie_mob:{10:"a x"}},notes:'Currently supported in WebKit Nightly using <code>-webkit-flow-into: flow_name;</code> and <code>-webkit-from-flow: flow_name;</code>. Support in Chrome 19+ is disabled by default and can be enabled using a runtime flag (see <code>about:flags</code>) or a command line flag (see <a href="http://peter.sh/experiments/chromium-command-line-switches/#enable-css-regions">this list</a>). For Chrome 19-22 the flag is named "Enable CSS Regions" / <code>--enable-css-regions</code>, while for Chrome 23+ the flag is named "Enable experimental WebKit features" / <code>--enable-experimental-webkit-features</code>. Support in IE10 is limited to using an iframe as a content source with the <code>-ms-flow-into: flow_name;</code> and <code>-ms-flow-from: flow_name;</code> syntax. Support for Safari 6.1&7 is <a href="http://www.broken-links.com/2013/07/10/web-platform-technologies-in-safari-6-1-and-7/">likely</a> but not official.',usage_perc_y:2.75,usage_perc_a:11.35,ucprefix:!1,parent:"",keywords:""},fullscreen:{title:"Full Screen API",description:"API for allowing content (like a video or canvas element) to take up the entire screen.",spec:"http://www.w3.org/TR/fullscreen/",status:"wd",links:[{url:"https://developer.mozilla.org/en/DOM/Using_full-screen_mode",title:"MDN article"},{url:"http://jlongster.com/2011/11/21/canvas.html",title:"Blog post"},{url:"http://hacks.mozilla.org/2012/01/using-the-fullscreen-api-in-web-browsers/",title:"Mozilla hacks article"},{url:"http://docs.webplatform.org/wiki/dom/methods/requestFullscreen",title:"WebPlatform Docs"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"y x"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"a x",11:"a x",12:"a x",13:"a x",14:"a x",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"a x",21:"a x",22:"a x",23:"a x",24:"a x",25:"a x",26:"a x",27:"a x"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"a x",16:"a x",17:"a x",18:"a x",19:"a x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"a x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"y",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"a"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"a x"},ie_mob:{10:"n"}},notes:"Partial support refers to supporting an earlier draft of the spec.",usage_perc_y:37.35,usage_perc_a:16.21,ucprefix:!1,parent:"",keywords:"full-screen"},requestanimationframe:{title:"requestAnimationFrame",description:"API allowing a more efficient way of running script-based animation, compared to traditional methods using timeouts.",spec:"http://www.w3.org/TR/animation-timing/#requestAnimationFrame",status:"wd",links:[{url:"http://hacks.mozilla.org/2011/08/animating-with-javascript-from-setinterval-to-requestanimationframe/",title:"Mozilla Hacks article"},{url:"http://paulirish.com/2011/requestanimationframe-for-smart-animating/",title:"Blog post"},{url:"http://docs.webplatform.org/wiki/apis/timing/methods/requestAnimationFrame",title:"WebPlatform Docs"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y x",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y x","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y x"},ie_mob:{10:"y"}},notes:"",usage_perc_y:67.13,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},"input-range":{title:"Range input type",description:"Form field type that allows the user to select a value using a slider widget.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#range-state-(type=range)",status:"wd",links:[{url:"https://github.com/fryn/html5slider",title:"Polyfill for Firefox"},{url:"http://docs.webplatform.org/wiki/html/elements/input/type/range",title:"WebPlatform Docs"},{url:"http://tutorialzine.com/2011/12/what-you-need-to-know-html5-range-input/",title:"Tutorial"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/form.js#input-type-range",title:"has.js test"},{url:"https://github.com/freqdec/fd-slider",title:"Cross-browser polyfill"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"u",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a",2.2:"a",2.3:"a",3:"a",4:"a",4.1:"a","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Currently all Android browsers with partial support hide the slider input field by default. However, the element <a href="http://tiffanybbrown.com/2012/02/07/input-typerange-and-androids-stock-browser/">can be styled</a> to be made visible and usable.',usage_perc_y:68.52,usage_perc_a:4.31,ucprefix:!1,parent:"forms",keywords:""},matchmedia:{title:"matchMedia",description:"API for finding out whether or not a media query applies to the document.",spec:"http://www.w3.org/TR/cssom-view/#dom-window-matchmedia",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/media_queries/apis/matchMedia",title:"WebPlatform Docs"},{url:"https://github.com/paulirish/matchMedia.js/",title:"matchMedia.js polyfill"},{url:"https://developer.mozilla.org/en/DOM/window.matchMedia",title:"MDN article"},{url:"https://developer.mozilla.org/en/CSS/Using_media_queries_from_code",title:"MDN tutorial"}],categories:["JS API","DOM"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:72.81,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"mediaquerylist"},"input-datetime":{title:"Date/time input types",description:"Form field widget to easily allow users to enter dates and/or times, generally by using a calendar widget.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-state-(type=date)",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/html/elements/input/type/date",title:"WebPlatform Docs"},{url:"http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-cross-browser-datepickers-within-minutes/",title:"Datepicker tutorial w/polyfill"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/form.js#input-type-datetime;input-type-datetime-local",title:"has.js test"},{url:"https://github.com/zoltan-dulac/html5Forms.js",title:"Polyfill for HTML5 forms"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"a"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:'Safari provides date-formatted text fields, but no real calendar widget. Partial support in Chrome refers to a missing calendar widget for the "datetime" type (and other types in older versions). Some modified versions of the Android 4.x browser do have support for date/time fields. ',usage_perc_y:6.13,usage_perc_a:33.1,ucprefix:!1,parent:"forms",keywords:"datepicker,timepicker"},"input-color":{title:"Color input type",description:"Form field allowing the user to select a color.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#color-state-(type=color)",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/html/elements/input/type/color",title:"WebPlatform Docs"},{url:"http://www.html5tutorial.info/html5-color.php",title:"Tutorial"},{url:"https://github.com/jonstipe/color-polyfill",title:"Polyfill"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"n",16:"n",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"",usage_perc_y:35.22,usage_perc_a:0,ucprefix:!1,parent:"forms",keywords:"colour"},"input-number":{title:"Number input type",description:"Form field type for numbers.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)",status:"wd",links:[{url:"https://raw.github.com/phiggins42/has.js/master/detect/form.js#input-type-number",title:"has.js test"},{url:"http://www.html5tutorial.info/html5-number.php",title:"Tutorial"},{url:"https://github.com/jonstipe/number-polyfill",title:"Polyfill"},{url:"http://docs.webplatform.org/wiki/html/elements/input/type/number",title:"WebPlatform Docs"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"a",11:"a"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"u",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"a",4.1:"a","4.2-4.3":"a",4.4:"a"},bb:{7:"n",10:"a"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"a"},and_chr:{0:"a"},and_ff:{0:"n"},ie_mob:{10:"a"}},notes:'iOS Safari, Android 4 and Chrome for Android show number input, but do not use "step", "min" or "max" attributes or show increment/decrement buttons. Internet Explorer 10 does not show increment/decrement buttons.',usage_perc_y:38.44,usage_perc_a:20.1,ucprefix:!1,parent:"forms",keywords:"spinner"},"iframe-sandbox":{title:"sandbox attribute for iframes",description:"Method of running external site pages with reduced privileges (e.g. no JavaScript) in iframes",spec:"http://www.w3.org/TR/html5/the-iframe-element.html#attr-iframe-sandbox",status:"cr",links:[{url:"http://msdn.microsoft.com/en-us/hh563496",title:"MSDN article"},{url:"http://blog.chromium.org/2010/05/security-in-depth-html5s-sandbox.html",title:"Chromium blog article"},{url:"http://docs.webplatform.org/wiki/html/attributes/sandbox",title:"WebPlatform Docs"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:59.45,usage_perc_a:13.57,ucprefix:!1,parent:"",keywords:""},"css-counters":{title:"CSS Counters",description:"Method of controlling number values in generated content, using the counter-reset and counter-increment properties.",spec:"http://www.w3.org/TR/CSS21/generate.html#counters",status:"wd",links:[{url:"http://onwebdev.blogspot.com/2012/02/css-counters-tutorial.html",title:"Tutorial and information"},{url:"http://docs.webplatform.org/wiki/css/properties/counter-reset",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/en/CSS_Counters",title:"MDN article"}],categories:["CSS2"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"y"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:93.86,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},"css-resize":{title:"CSS resize property",description:"Method of allowing an element to be resized by the user, with options to limit to a given direction. ",spec:"http://www.w3.org/TR/css3-ui/#resize",status:"wd",links:[{url:"http://css-tricks.com/almanac/properties/r/resize/",title:"CSS Tricks info"},{url:"http://davidwalsh.name/textarea-resize",title:"On textarea resizing"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y x",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"a",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"Opera 12.10+ currently only supports the resize property for textarea elements.",usage_perc_y:52.82,usage_perc_a:.48,ucprefix:!1,parent:"",keywords:"horizontal,vertical"},"input-placeholder":{title:"input placeholder attribute",description:"Method of setting placeholder text for text-like input fields, to suggest the expected inserted information.",spec:"http://dev.w3.org/html5/spec/Overview.html#attr-input-placeholder",status:"cr",links:[{url:"http://docs.webplatform.org/wiki/html/attributes/placeholder",title:"WebPlatform Docs"},{url:"https://raw.github.com/phiggins42/has.js/master/detect/form.js#input-attr-placeholder",title:"has.js test"},{url:"http://www.zachleat.com/web/placeholder/",title:"Article on usage"},{url:"https://github.com/mathiasbynens/jquery-placeholder",title:"Polyfill"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"a",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"a",11.1:"a",11.5:"a",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support in older Safari and Opera versions refers to lacking placeholder support on textarea elements. ",usage_perc_y:75.1,usage_perc_a:.15,ucprefix:!1,parent:"forms",keywords:""},spdy:{title:"SPDY networking protocol",description:"Networking protocol for low-latency transport of content over the web.",spec:"http://tools.ietf.org/html/draft-mbelshe-httpbis-spdy-00",status:"unoff",links:[{url:"http://en.wikipedia.org/wiki/SPDY",title:"Wikipedia"},{url:"http://dev.chromium.org/spdy/spdy-whitepaper",title:"SPDY whitepaper"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"a"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"n",10:"u"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:53.69,usage_perc_a:.11,ucprefix:!1,parent:"",keywords:""},"css-repeating-gradients":{title:"CSS Repeating Gradients",description:"Method of defining a repeating linear or radial color gradient as a CSS image.",spec:"http://www.w3.org/TR/css3-images/#repeating-gradients",status:"cr",links:[{url:"http://docs.webplatform.org/wiki/css/repeating-linear-gradient",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/en/CSS/repeating-linear-gradient",title:"MDN article"},{url:"http://www.css3files.com/gradient/#repeatinglineargradient",title:"Information page"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"y x",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"y x",6:"y x",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"a x",11.5:"a x",11.6:"y x",12:"y x",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"a x",11.5:"a x",12:"y x",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y x"},ie_mob:{10:"y"}},notes:'Firefox 10+, Chrome 26+ and Opera 11.6+ also support the new "to (side)" syntax.',usage_perc_y:73.31,usage_perc_a:.03,ucprefix:!1,parent:"css-gradients",keywords:""},"css-filters":{title:"CSS Filter Effects",description:"Method of applying filter effects (like blur, grayscale, brightness, contrast and hue) to elements, previously only possible by using SVG.",spec:"http://www.w3.org/TR/filter-effects/",status:"wd",links:[{url:"http://dl.dropbox.com/u/3260327/angular/CSS3ImageManipulation.html",title:"Filter editor"},{url:"http://bennettfeely.com/filters/",title:"Filter Playground"},{url:"http://html5-demos.appspot.com/static/css/filters/index.html",title:"Demo file for WebKit browsers"},{url:"http://www.html5rocks.com/en/tutorials/filters/understanding-css/",title:"Mozilla hacks article"}],categories:["CSS3","CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"u",27:"u"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y x"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:'Note that this property is significantly different from and incompatible with Microsoft\'s <a href="http://msdn.microsoft.com/en-us/library/ie/ms530752%28v=vs.85%29.aspx">older "filter" property</a>.',usage_perc_y:40.55,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"sepia,hue-rotate,invert,saturate"},getcomputedstyle:{title:"getComputedStyle",description:"API to get the current computed CSS styles applied to an element. This may be the current value applied by an animation or as set by a stylesheet.",spec:"http://www.w3.org/TR/cssom/#dom-window-getcomputedstyle",status:"rec",links:[{url:"http://ie.microsoft.com/testdrive/HTML5/getComputedStyle/",title:"Demo"},{url:"http://snipplr.com/view/13523/",title:"Polyfill for IE"},{url:"https://developer.mozilla.org/en/DOM/window.getComputedStyle",title:"MDN article"},{url:"http://docs.webplatform.org/wiki/css/cssom/methods/getComputedStyle",title:"WebPlatform Docs"}],categories:["JS API","CSS3","DOM"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"a",3.5:"a",3.6:"a",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"a",3.2:"a",4:"a",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"a","9.5-9.6":"a","10.0-10.1":"a",10.5:"a",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"a"},android:{2.1:"a",2.2:"a",2.3:"a",3:"a",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"a",10:"y"},op_mob:{10:"a",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"Partial support in older Firefox versions refers to requiring the second parameter to be included. Partial support in all other browsers refers to not supporting getComputedStyle on pseudo-elements.",usage_perc_y:78.53,usage_perc_a:7,ucprefix:!1,parent:"",keywords:""},"word-break":{title:"CSS3 word-break",description:"Property to prevent or allow words to be broken over multiple lines between letters.",spec:"http://www.w3.org/TR/css3-text/#word-break",status:"wd",links:[{url:"http://docs.webplatform.org/wiki/css/properties/word-break",title:"WebPlatform Docs"},{url:"https://developer.mozilla.org/en/CSS/word-break",title:"MDN article"}],categories:["CSS3"],stats:{ie:{5.5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"a",5:"a",6:"a",7:"a",8:"a",9:"a",10:"a",11:"a",12:"a",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"a",3.2:"a",4:"a",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"a",16:"a",17:"a",18:"a"},ios_saf:{3.2:"a","4.0-4.1":"a","4.2-4.3":"a","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"a",2.2:"a",2.3:"a",3:"a",4:"a",4.1:"a","4.2-4.3":"a",4.4:"a"},bb:{7:"a",10:"a"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"a"},and_chr:{0:"a"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:'Partial support refers to supporting the "break-all" value, but not the "keep-all" value.',usage_perc_y:39.39,usage_perc_a:48.42,ucprefix:!1,parent:"",keywords:"break-all,keep-all"},"viewport-units":{title:"Viewport units: vw, vh, vmin, vmax",description:"Length units representing 1% of the viewport size for viewport width (vw), height (vh), the smaller of the two (vmin), or the larger of the two (vmax).",spec:"http://www.w3.org/TR/css3-values/#viewport-relative-lengths",status:"cr",links:[{url:"http://css-tricks.com/viewport-sized-typography/",title:"Blog post"},{url:"https://github.com/saabi/vminpoly",title:"Polyfill"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"a",10:"a",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"a","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"a"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"a"}},notes:'Partial support in IE9 refers to supporting "vm" instead of "vmin". All other partial support refers to not supporting the "vmax" unit.',usage_perc_y:48.9,usage_perc_a:21.18,ucprefix:!1,parent:"",keywords:"vm,viewport-percentage"},contentsecuritypolicy:{title:"Content Security Policy",description:"Mitigate cross-site scripting attacks by whitelisting allowed sources of script, style, and other resources.",spec:"http://www.w3.org/TR/CSP/",status:"cr",links:[{url:"http://content-security-policy.com/",title:"CSP Examples & Quick Reference"},{url:"http://html5rocks.com/en/tutorials/security/content-security-policy/",title:"HTML5Rocks article"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"a x",11:"a x"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"a x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"a x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y x"},ie_mob:{10:"a x"}},notes:"The HTTP header is 'X-Content-Security-Policy' for Firefox and IE 10&11, and 'X-WebKit-CSP' for Safari and Chrome. IE 10&11's support is limited to the 'sandbox' directive.",usage_perc_y:55.74,usage_perc_a:12.68,ucprefix:!1,parent:"",keywords:"csp,security,header"},pagevisibility:{title:"PageVisibility",description:"JavaScript API for determining whether a document is visible on the display",spec:"http://www.w3.org/TR/page-visibility/",status:"cr",links:[{url:"https://developer.mozilla.org/en-US/docs/DOM/Using_the_Page_Visibility_API",title:"MDN article"},{url:"http://docs.webplatform.org/wiki/apis/timing/properties/visibilityState",title:"WebPlatform Docs"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"y",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y x"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"y",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:63.89,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"visibilitystate"},stricttransportsecurity:{title:"Strict Transport Security",description:"Declare that a website is only accessible over a secure connection (HTTPS).",spec:"http://tools.ietf.org/html/rfc6797",status:"other",links:[{url:"http://dev.chromium.org/sts",title:"Strict Transport Security @ Chromium"},{url:"https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security",title:"Strict Transport Security @ Mozilla Developer Network"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"u"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"The HTTP header is 'Strict-Transport-Security'.",usage_perc_y:50.76,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"sts,hsts,security,header"},"style-scoped":{title:"Scoped CSS",description:"Allows CSS rules to be scoped to part of the document, based on the position of the style element.",spec:"http://www.w3.org/TR/html5/document-metadata.html#attr-style-scoped",status:"cr",links:[{url:"https://github.com/PM5544/scoped-polyfill",title:"Polyfill"},{url:"http://html5doctor.com/the-scoped-attribute/",title:"HTML5 Doctor article"},{url:"http://updates.html5rocks.com/2012/03/A-New-Experimental-Feature-style-scoped",title:"HTML5Rocks article"}],categories:["CSS","HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"u",32:"u"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"u",0:"n"},and_chr:{0:"n"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:'Supported in Chrome 20+ by enabling the "experimental WebKit features" flag in chrome://flags.',usage_perc_y:13.05,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"scope"},"svg-fragment":{title:"SVG fragment identifiers",description:"Method of displaying only a part of an SVG image by defining a view ID or view box dimensions as the file's fragment identifier.",spec:"http://www.w3.org/TR/SVG/linking.html#SVGFragmentIdentifiers",status:"rec",links:[{url:"http://www.broken-links.com/2012/08/14/better-svg-sprites-with-fragment-identifiers/",title:"Blog post"}],categories:["SVG"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"u",32:"u"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"u",0:"n"},and_chr:{0:"n"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:25.15,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"fragments,sprite"},outline:{title:"CSS outline",description:"The CSS outline property is a shorthand property for setting one or more of the individual outline properties outline-style, outline-width and outline-color in a single rule. In most cases the use of this shortcut is preferable and more convenient.",spec:"http://www.w3.org/TR/CSS2/ui.html#propdef-outline",status:"rec",links:[{url:"https://developer.mozilla.org/en-US/docs/CSS/outline",title:"Mozilla Developer Network: outline"},{url:"http://dev.w3.org/csswg/css3-ui/#outline",title:"CSS Basic User Interface Module Level 3"}],categories:["CSS2"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"y",9:"y",10:"y",11:"y"},firefox:{2:"y",3:"y",3.5:"y",3.6:"y",4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"y","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"y","4.0-4.1":"y","4.2-4.3":"y","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y",2.2:"y",2.3:"y",3:"y",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"y",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"y"}},notes:"",usage_perc_y:89.27,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"-moz-outline,outline-width,outline-style,outline-color"},download:{title:"Download attribute",description:"When used on an anchor, this attribute signifies that the resource it points to should be downloaded by the browser rather than navigate to it.",spec:"http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#downloading-resources",status:"wd",links:[{url:"http://html5-demos.appspot.com/static/a.download.html",title:"Demo: creating a text file and downloading it."},{url:"http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download",title:"HTML5Rocks post"}],categories:["HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"y"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:48.02,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"download,a.download,a[download],download attribute"},pointer:{title:"Pointer events",description:'This specification integrates various inputs from mice, touchscreens, and pens, making separate implementations no longer necessary and authoring for cross-device pointers easier. Not to be mistaken with the unrelated "pointer-events" CSS property.',spec:"http://www.w3.org/TR/pointerevents/",status:"cr",links:[{url:"http://blogs.msdn.com/b/eternalcoding/archive/2013/01/16/hand-js-a-polyfill-for-supporting-pointer-events-on-every-browser.aspx",title:"Hand.js, the polyfill for browsers only supporting Touch Events"},{url:"http://blogs.msdn.com/b/ie/archive/2011/09/20/touch-input-for-ie10-and-metro-style-apps.aspx",title:"Implementation of Pointer Events in IE10"},{url:"http://blogs.msdn.com/b/davrous/archive/2013/02/20/handling-touch-in-your-html5-apps-thanks-to-the-pointer-events-of-ie10-and-windows-8.aspx",title:"Article & tutorial"}],categories:["DOM","JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"a x",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"p",20:"p",21:"p",22:"p",23:"p",24:"p",25:"p",26:"p",27:"p"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"p",23:"p",24:"p",25:"p",26:"p",27:"p",28:"p",29:"p",30:"p",31:"p",32:"p"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"p",16:"p",17:"p",18:"p"},ios_saf:{3.2:"p","4.0-4.1":"p","4.2-4.3":"p","5.0-5.1":"p","6.0-6.1":"p","7.0":"p"},op_mini:{"5.0-7.0":"n"},android:{2.1:"p",2.2:"p",2.3:"p",3:"p",4:"p",4.1:"p","4.2-4.3":"p",4.4:"p"},bb:{7:"p",10:"p"},op_mob:{10:"n",11:"p",11.1:"p",11.5:"p",12:"p",12.1:"p",0:"p"},and_chr:{0:"p"},and_ff:{0:"p"},ie_mob:{10:"a x"}},notes:"Partial support in IE10 refers the lack of pointerenter and pointerleave events.",usage_perc_y:.11,usage_perc_a:10.99,ucprefix:!1,parent:"",keywords:"pointerdown,pointermove,pointerup,pointercancel,pointerover,pointerout,pointerenter,pointerleave"},"user-select-none":{title:"CSS user-select: none",description:"Method of preventing text/element selection using CSS. ",spec:"https://developer.mozilla.org/en-US/docs/CSS/user-select",status:"unoff",links:[{url:"http://msdn.microsoft.com/en-us/library/ie/hh781492(v=vs.85).aspx",title:"MSDN Documentation"},{url:"https://developer.mozilla.org/en-US/docs/CSS/user-select",title:"MDN article"},{url:"http://css-tricks.com/almanac/properties/u/user-select/",title:"CSS Tricks article"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y x",11:"y x"},firefox:{2:"y x",3:"y x",3.5:"y x",3.6:"y x",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"u",5:"u",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"y x",3.2:"y x",4:"y x",5:"y x",5.1:"y x",6:"y x",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"y x","4.0-4.1":"y x","4.2-4.3":"y x","5.0-5.1":"y x","6.0-6.1":"y x","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"y x",2.2:"y x",2.3:"y x",3:"y x",4:"y x",4.1:"y x","4.2-4.3":"y x",4.4:"y x"},bb:{7:"y x",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y x"},ie_mob:{10:"y x"}},notes:'Currently the user-select property does not appear in any W3C specification. Support information here is only for "none" value, not others.',usage_perc_y:74.91,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},webp:{title:"WebP image format",description:"Image format that supports lossy and lossless compression, as well as animation and alpha transparency.",spec:"https://developers.google.com/speed/webp/",status:"other",links:[{url:"http://libwebpjs.appspot.com/",title:"Decoder in JS"},{url:"https://developers.google.com/speed/webp/",title:"Official website"},{url:"http://antimatter15.github.io/weppy/demo.html",title:"Polyfill for browsers with WebM support"},{url:"http://webpjs.appspot.com/",title:"Polyfill for browsers with or without WebM support (i.e. IE6-IE9, Safari/iOS version 6.1 and below; Firefox versions 24 and bel"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"p",5:"p",6:"p",7:"p",8:"p",9:"p",10:"p",11:"p",12:"p",13:"p",14:"p",15:"p",16:"p",17:"p",18:"p",19:"p",20:"p",21:"p",22:"p",23:"p",24:"p",25:"p",26:"p",27:"p"},chrome:{4:"n",5:"n",6:"p",7:"p",8:"p",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"p",11:"p",11.1:"p",11.5:"p",11.6:"p",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"y",4.1:"y","4.2-4.3":"y",4.4:"y"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"a",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"n"}},notes:"Animated webp images are supported in Chrome 32+ and Opera 19+.",usage_perc_y:39.4,usage_perc_a:.01,ucprefix:!1,parent:"",keywords:""},"intrinsic-width":{title:"Intrinsic & Extrinsic Sizing",description:"Allows for the heights and widths to be specified in intrinsic values using the fill-available, max-content, min-content, and fit-content properties.",spec:"http://www.w3.org/TR/css3-sizing/",status:"wd",links:[{url:"http://demosthenes.info/blog/662/Design-From-the-Inside-Out-With-CSS-MinContent",title:"Min-Content tutorial"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"y x",7:"y x"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y x",16:"y x",17:"y x",18:"y x"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"y x"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y x"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y x"},ie_mob:{10:"n"}},notes:'Prefixes are on the values, not the property names (e.g. -webkit-min-content) Firefox currently supports the "-moz-available" property rather than "-moz-fill-available".',usage_perc_y:51.68,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"fill-available,max-content,min-content,fit-content,contain-floats"},template:{title:"HTML templates",description:"Method of declaring a portion of reusable markup that is parsed but not rendered until cloned.",spec:"http://www.w3.org/TR/html-templates/",status:"wd",links:[{url:"http://www.html5rocks.com/en/tutorials/webcomponents/template/",title:"HTML5Rocks - HTML's New template Tag"},{url:"http://polymer-project.org",title:"Polymer project (polyfill & web compontents framework)"}],categories:["DOM","HTML5"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:45.76,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"web components, template"},opus:{title:"Opus",description:"Royalty-free open audio codec by IETF, which incorporated SILK from Skype and CELT from Xiph.org, to serve higher sound quality and lower latency at the same bitrate.",spec:"http://tools.ietf.org/html/rfc6716",status:"other",links:[{url:"https://hacks.mozilla.org/2012/07/firefox-beta-15-supports-the-new-opus-audio-format/",title:"Introduction of Opus by Mozilla"},{url:"http://www.ietf.org/mail-archive/web/rtcweb/current/msg04953.html",title:"Google's statement about the use of VP8 and Opus codec for WebRTC standard"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"n",32:"n"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"u"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"Chrome does not support Opus by default but users can enable it via the 'enable-opus-playback' flag. When it comes to Opera, it is said that the Linux version may be able to play it when the GStreamer module is up to date and the served mime-type is 'audio/ogg'.",usage_perc_y:14.04,usage_perc_a:0,ucprefix:!1,parent:"audio",keywords:""},jpegxr:{title:"JPEG XR image format",description:"The latest JPEG image format of Joint Photographic Experts Group which boasts better compression and supports lossless compression, alpha channel, and 48-bit deep color over normal jpg format.",spec:"http://www.itu.int/rec/T-REC-T.832",status:"other",links:[{url:"http://msdn.microsoft.com/en-us/library/windows/desktop/hh707223(v=vs.85).aspx",title:"Microsoft JPEG XR Codec Overview"}],categories:["Other"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"n",31:"n",32:"n"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"n",7:"n"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"n"},and_ff:{0:"n"},ie_mob:{10:"y"}},notes:"",usage_perc_y:16.32,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""},"channel-messaging":{title:"Channel messaging",description:"Method for having two-way communication between browsing contexts (using MessageChannel)",spec:"http://www.w3.org/TR/webmessaging/#channel-messaging",status:"cr",links:[{url:"http://dev.opera.com/articles/view/window-postmessage-messagechannel/#channel",title:"An Introduction to HTML5 web messaging"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"y",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"u","10.0-10.1":"u",10.5:"u",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"y","6.0-6.1":"y","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"u",11:"y",11.1:"y",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"y"}},notes:"",usage_perc_y:55.07,usage_perc_a:0,ucprefix:!1,parent:"x-doc-messaging",keywords:""},"css3-tabsize":{title:"CSS3 tab-size",description:"Method of customizing the width of a tab character. Only effective using 'white-space: pre'.",spec:"http://www.w3.org/TR/css3-text/#tab-size1",status:"wd",links:[{url:"https://developer.mozilla.org/en-US/docs/Web/CSS/tab-size",title:"MDN article"}],categories:["CSS3"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"y x",11:"y x",11.1:"y x",11.5:"y x",11.6:"y x",12:"y x",12.1:"y x",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"y",10:"y"},op_mob:{10:"n",11:"y x",11.1:"y x",11.5:"y x",12:"y x",12.1:"y x",0:"y"},and_chr:{0:"y"},and_ff:{0:"y x"},ie_mob:{10:"n"}},notes:"",usage_perc_y:53.05,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"tab-size,tab-width"},mutationobserver:{title:"Mutation Observer",description:"Method for observing and reacting to changes to the DOM. Replaces MutationEvents, which is deprecated.",spec:"http://www.w3.org/TR/dom/",status:"wd",links:[{url:"https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver",title:"MutationObserver from MDN"},{url:"https://github.com/Polymer/MutationObservers",title:"Polyfill"}],categories:["DOM","JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"p",10:"p",11:"y"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"y x",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"y x","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"p",4.1:"p","4.2-4.3":"p",4.4:"y"},bb:{7:"n",10:"y x"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"p"}},notes:"When the content of a node with a single CharacterData child node is changed by innerHTML attribute and the node have a single different one as a result, WebKit browsers consider it as a characterData mutation of the child CharacterData node, while other browsers think it as a childList mutation of the parent node.",usage_perc_y:54.8,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"MutationObserver"},"css-selection":{title:"::selection CSS pseudo-element",description:"The ::selection CSS pseudo-element applies rules to the portion of a document that has been highlighted (e.g., selected with the mouse or another pointing device) by the user.",spec:"https://developer.mozilla.org/en-US/docs/Web/CSS/::selection",status:"unoff",links:[{url:"http://docs.webplatform.org/wiki/css/selectors/pseudo-elements/::selection",title:"WebPlatform Docs"},{url:"http://quirksmode.org/css/selectors/selection.html",title:"::selection test"}],categories:["CSS"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"y",10:"y",11:"y"},firefox:{2:"y x",3:"y x",3.5:"y x",3.6:"y x",4:"y x",5:"y x",6:"y x",7:"y x",8:"y x",9:"y x",10:"y x",11:"y x",12:"y x",13:"y x",14:"y x",15:"y x",16:"y x",17:"y x",18:"y x",19:"y x",20:"y x",21:"y x",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"y",5:"y",6:"y",7:"y",8:"y",9:"y",10:"y",11:"y",12:"y",13:"y",14:"y",15:"y",16:"y",17:"y",18:"y",19:"y",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y",28:"y",29:"y",30:"y",31:"y",32:"y"},safari:{3.1:"y",3.2:"y",4:"y",5:"y",5.1:"y",6:"y",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"y","10.0-10.1":"y",10.5:"y",10.6:"y",11:"y",11.1:"y",11.5:"y",11.6:"y",12:"y",12.1:"y",15:"y",16:"y",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"n"},op_mob:{10:"u",11:"u",11.1:"u",11.5:"y",12:"y",12.1:"y",0:"y"},and_chr:{0:"y"},and_ff:{0:"n"},ie_mob:{10:"y"}},notes:"",usage_perc_y:71.68,usage_perc_a:0,ucprefix:!1,parent:"",keywords:"::selection,selection"},"canvas-blending":{title:"Canvas blend modes",description:"Method of defining the effect resulting from overlaying two layers on a Canvas element. ",spec:"http://www.w3.org/TR/compositing-1/#blending",status:"wd",links:[{url:"http://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/",title:"Blog post"}],categories:["Canvas"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"y",21:"y",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"n",24:"n",25:"n",26:"n",27:"n",28:"n",29:"n",30:"y",31:"y",32:"y"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"y",7:"y"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"y",18:"y"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"y"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"y"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"n"},and_chr:{0:"y"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:"",usage_perc_y:42.33,usage_perc_a:0,ucprefix:!1,parent:"canvas",keywords:""},clipboard:{title:"Clipboard API",description:"API to provide copy, cut and paste functionality using the OS clipboard.",spec:"http://www.w3.org/TR/clipboard-apis/",status:"wd",links:[{url:"http://www.deluxeblogtips.com/2010/06/javascript-copy-to-clipboard.html",title:"Blog post on cross-browser usage"},{url:"https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent",title:"MDN page on ClipboardEvent"}],categories:["JS API"],stats:{ie:{5.5:"a #1",6:"a #1",7:"a #1",8:"a #1",9:"a #1",10:"a #1",11:"a #1"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y",23:"y",24:"y",25:"y",26:"y",27:"y"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"a",14:"a",15:"a",16:"a",17:"a",18:"a",19:"a",20:"a",21:"a",22:"a",23:"a",24:"a",25:"a",26:"a",27:"a",28:"a",29:"a",30:"a",31:"a",32:"a"},safari:{3.1:"u",3.2:"u",4:"a",5:"a",5.1:"a",6:"a",6.1:"a",7:"a"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"a",17:"a",18:"a"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"a","6.0-6.1":"a","7.0":"a"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"a"},bb:{7:"n",10:"a"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"a"},and_chr:{0:"a"},and_ff:{0:"y"},ie_mob:{10:"n"}},notes:'Partial support in IE refers using <a href="http://msdn.microsoft.com/en-us/library/ie/ms535220%28v=vs.85%29.aspx">a non-standard method</a> of interacting with the clipboard. For other browsers it refers to not supporting the ClipboardEvent constructor.',usage_perc_y:12.83,usage_perc_a:67.91,ucprefix:!1,parent:"",keywords:"cut,copy,paste,clipboarddata"},rtcpeerconnection:{title:"WebRTC Peer-to-peer connections",description:"Method of allowing two users to communicate directly, browser to browser using the RTCPeerConnection API.",spec:"http://www.w3.org/TR/webrtc/#peer-to-peer-connections",status:"wd",links:[{url:"http://www.webrtc.org/",title:"WebRTC Project site"}],categories:["JS API"],stats:{ie:{5.5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n"},firefox:{2:"n",3:"n",3.5:"n",3.6:"n",4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"y x",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x"},chrome:{4:"n",5:"n",6:"n",7:"n",8:"n",9:"n",10:"n",11:"n",12:"n",13:"n",14:"n",15:"n",16:"n",17:"n",18:"n",19:"n",20:"n",21:"n",22:"n",23:"y x",24:"y x",25:"y x",26:"y x",27:"y x",28:"y x",29:"y x",30:"y x",31:"y x",32:"y x"},safari:{3.1:"n",3.2:"n",4:"n",5:"n",5.1:"n",6:"n",6.1:"u",7:"u"},opera:{9:"n","9.5-9.6":"n","10.0-10.1":"n",10.5:"n",10.6:"n",11:"n",11.1:"n",11.5:"n",11.6:"n",12:"n",12.1:"n",15:"n",16:"n",17:"n",18:"n"},ios_saf:{3.2:"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0":"n"},op_mini:{"5.0-7.0":"n"},android:{2.1:"n",2.2:"n",2.3:"n",3:"n",4:"n",4.1:"n","4.2-4.3":"n",4.4:"n"},bb:{7:"n",10:"n"},op_mob:{10:"n",11:"n",11.1:"n",11.5:"n",12:"n",12.1:"n",0:"y x"},and_chr:{0:"y x"},and_ff:{0:"y x"},ie_mob:{10:"n"}},notes:"BlackBerry 10 recognizes RTCPeerConnection but real support is unconfirmed.",usage_perc_y:46.24,usage_perc_a:0,ucprefix:!1,parent:"",keywords:""}}}},{}],36:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("../assets/range"),y=e("../utils/common"),r=e("../vendor/klass");function i(e,t){this.options=y.extend({offset:0},t),this.source=e,this._children=[],this._positions={name:0},this.initialize.apply(this,arguments)}function a(e,t,n){this.parent=e,this._name=t.value,this._value=n?n.value:"",this._positions={name:t.start,value:n?n.start:-1},this.initialize.apply(this,arguments)}return i.extend=r.extend,i.prototype={type:"container",initialize:function(){},_pos:function(e,t){return e+(t?this.options.offset:0)},_updateSource:function(e,t,n){var r=s.create(t,void 0===n?0:n-t),i=e.length-r.length(),a=function(t){Object.keys(t).forEach(function(e){t[e]>=r.end&&(t[e]+=i)})};a(this._positions);var o=function(e){e.forEach(function(e){a(e._positions),"container"==e.type&&o(e.list())})};o(this.list()),this.source=y.replaceSubstring(this.source,e,r)},add:function(e,t,n){var r=new a(e,t);return this._children.push(r),r},get:function(t){return"number"==typeof t?this.list()[t]:"string"==typeof t?y.find(this.list(),function(e){return e.name()===t}):t},getAll:function(e){Array.isArray(e)||(e=[e]);var n=[],r=[];return e.forEach(function(e){"string"==typeof e?n.push(e):"number"==typeof e&&r.push(e)}),this.list().filter(function(e,t){return~r.indexOf(t)||~n.indexOf(e.name())})},list:function(){return this._children},remove:function(e){var t=this.get(e);if(t){this._updateSource("",t.fullRange());var n=this._children.indexOf(t);~n&&this._children.splice(n,1)}},indexOf:function(e){return this.list().indexOf(this.get(e))},value:function(e,t,n){var r=this.get(e);return r?r.value(t):void 0!==t?this.add(e,t,n):void 0},values:function(e){return this.getAll(e).map(function(e){return e.value()})},name:function(e){return void 0!==e&&this._name!==(e=String(e))&&(this._updateSource(e,this._positions.name,this._positions.name+this._name.length),this._name=e),this._name},nameRange:function(e){return s.create(this._positions.name+(e?this.options.offset:0),this.name())},range:function(e){return s.create(e?this.options.offset:0,this.valueOf())},itemFromPosition:function(t,n){return y.find(this.list(),function(e){return e.range(n).inside(t)})},toString:function(){return this.valueOf()},valueOf:function(){return this.source}},a.extend=r.extend,a.prototype={type:"element",initialize:function(){},_pos:function(e,t){return e+(t?this.parent.options.offset:0)},value:function(e){return void 0!==e&&this._value!==(e=String(e))&&(this.parent._updateSource(e,this.valueRange()),this._value=e),this._value},name:function(e){return void 0!==e&&this._name!==(e=String(e))&&(this.parent._updateSource(e,this.nameRange()),this._name=e),this._name},namePosition:function(e){return this._pos(this._positions.name,e)},valuePosition:function(e){return this._pos(this._positions.value,e)},range:function(e){return s.create(this.namePosition(e),this.valueOf())},fullRange:function(e){return this.range(e)},nameRange:function(e){return s.create(this.namePosition(e),this.name())},valueRange:function(e){return s.create(this.valuePosition(e),this.value())},toString:function(){return this.valueOf()},valueOf:function(){return this.name()+this.value()}},{EditContainer:i,EditElement:a,createToken:function(e,t,n){var r={start:e||0,value:t||"",type:n};return r.end=r.start+r.value.length,r}}})},{"../assets/range":30,"../utils/common":73,"../vendor/klass":78}],37:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var c=e("../utils/common"),p=e("./base"),y=e("../parser/css"),l=e("../utils/cssSections"),u=e("../assets/range"),o=e("../assets/stringStream"),s=e("../assets/tokenIterator"),f={styleBefore:"\n\t",styleSeparator:": ",offset:0},i=/^\s+/,d=/\s+$/,h=1,m=2;function g(e,t,n){var r;return n=n||h|m,t=e.substring(t),n&h&&(r=t.match(i))&&(e.start+=r[0].length),n&m&&(r=t.match(d))&&(e.end-=r[0].length),e.end<e.start&&(e.end=e.start),e}function b(e,t){var n,r,i,a=e.current();if(!a)return null;for(var o={white:1,line:1,comment:1};(a=e.current())&&a.type in o;)e.next();if(!e.hasNext())return null;a=e.current(),n=u(a.start,a.value);for(var s,y="@"==a.value.charAt(0);a=e.next();)if(n.end=a.end,":"==a.type||"white"==a.type){if(n.end=a.start,e.next(),":"==a.type||y)break}else if(";"==a.type||"line"==a.type){n.end=a.start,r=u(a.start,0),e.next();break}if(a=e.current(),!r&&a)for("line"==a.type&&(s=a),r=u(a.start,a.value);a=e.next();)if(r.end=a.end,"line"==a.type)s=a;else{if("}"==a.type||";"==a.type){r.end=a.start,";"==a.type&&(i=u(a.start,a.value)),e.next();break}if(":"==a.type&&s){r.end=s.start,e._i=e.tokens.indexOf(s);break}}return r||(r=u(n.end,0)),{name:g(n,t),value:g(r,t,h|(i?m:0)),end:i||u(r.end,0)}}function r(e){var t,n=o.create(e),r=[],i=/[\s\u00a0,;]/,a=function(){n.next(),r.push(u(n.start,n.current())),n.start=n.pos};for(n.eatSpace(),n.start=n.pos;t=n.next();)if('"'==t||"'"==t){if(n.next(),!n.skipTo(t))break;a()}else if("("==t){if(n.backUp(1),!n.skipToPair("(",")"))break;n.backUp(1),a()}else i.test(t)&&(r.push(u(n.start,n.current().length-1)),n.eatWhile(i),n.start=n.pos);return a(),c.unique(r.filter(function(e){return!!e.length()}))}function x(t,e,n){a(e,n).forEach(function(e){t._children.push(new v(t,p.createToken(e.name.start,e.nameText),p.createToken(e.value.start,e.valueText),p.createToken(e.end.start,e.endText)))})}function a(e,t){t=t||0;var n=[];if(!(e=e.replace(d,"")))return n;for(var r,i=y.parse(e),a=s.create(i);r=b(a,e);)n.push({nameText:r.name.substring(e),name:r.name.shift(t),valueText:r.value.substring(e),value:r.value.shift(t),endText:r.end.substring(e),end:r.end.shift(t)});return n}var w=p.EditContainer.extend({initialize:function(t,e){c.extend(this.options,f,e),Array.isArray(t)&&(t=y.toSource(t));var n=l.findAllRules(t),r=n.shift(),i=[];n.forEach(function(t){!c.find(i,function(e){return e.contains(t)})&&i.push(t)});var a=u.create2(r.start,r._selectorEnd);this._name=a.substring(t),this._positions.name=a.start,this._positions.contentStart=r._contentStart+1;var o=r._contentStart+1,s=(r.end,this);i.forEach(function(e){x(s,t.substring(o,e.start),o);c.extend({},s.options,{offset:e.start+s.options.offset});o=e.end}),x(this,t.substring(o,r.end-1),o),this._saveStyle()},_saveStyle:function(){var r=this._positions.contentStart,i=this.source;this.list().forEach(function(e){if("container"!==e.type){e.styleBefore=i.substring(r,e.namePosition());var t=c.splitByLines(e.styleBefore);1<t.length&&(e.styleBefore="\n"+t[t.length-1]),e.styleSeparator=i.substring(e.nameRange().end,e.valuePosition());var n=e.styleBefore.split("*/");e.styleBefore=n[n.length-1],e.styleSeparator=e.styleSeparator.replace(/\/\*.*?\*\//g,""),r=e.range().end}})},namePosition:function(e){return this._pos(this._positions.name,e)},valuePosition:function(e){return this._pos(this._positions.contentStart,e)},valueRange:function(e){return u.create2(this.valuePosition(e),this._pos(this.valueOf().length,e)-1)},add:function(e,t,n){var r=this.list(),i=this._positions.contentStart,a=c.pick(this.options,"styleBefore","styleSeparator");void 0===n&&(n=r.length);var o=r[n];o?i=o.fullRange().start:(o=r[n-1])&&(o.end(";"),i=o.range().end),o&&(a=c.pick(o,"styleBefore","styleSeparator"));var s=p.createToken(i+a.styleBefore.length,e),y=p.createToken(s.end+a.styleSeparator.length,t),l=new v(this,s,y,p.createToken(y.end,";"));return c.extend(l,a),this._updateSource(l.styleBefore+l.toString(),i),this._children.splice(n,0,l),l}}),v=p.EditElement.extend({initialize:function(e,t,n,r){this.styleBefore=e.options.styleBefore,this.styleSeparator=e.options.styleSeparator,this._end=r.value,this._positions.end=r.start},valueParts:function(e){var t=r(this.value());if(e){var n=this.valuePosition(!0);t.forEach(function(e){e.shift(n)})}return t},value:function(e){var t=void 0!==e,n=this.parent.list();if(t&&this.isIncomplete()){var r=this,i=c.find(n,function(e){return e!==r&&!e.isIncomplete()});this.styleSeparator=i?i.styleSeparator:this.parent.options.styleSeparator,this.parent._updateSource(this.styleSeparator,u(this.valueRange().start,0))}var a=this.constructor.__super__.value.apply(this,arguments);t&&(n.indexOf(this)===n.length-1||this.end()||this.end(";"));return a},isIncomplete:function(){return this.nameRange().end===this.valueRange().start},end:function(e){return void 0!==e&&this._end!==e&&(this.parent._updateSource(e,this._positions.end,this._positions.end+this._end.length),this._end=e),this._end},fullRange:function(e){var t=this.range(e);return t.start-=this.styleBefore.length,t},valueOf:function(){return this.name()+this.styleSeparator+this.value()+this.end()}});return{parse:function(e,t){return new w(e,t)},parseFromPosition:function(e,t,n){var r=l.locateRule(e,t,n);return r&&r.inside(t)?this.parse(r.substring(e),{offset:r.start}):null},propertyFromPosition:function(e,t){var n=null,r="string"==typeof e?this.parseFromPosition(e,t,!0):e;return r&&((n=r.itemFromPosition(t,!0))||(n=c.find(r.list(),function(e){return e.range(!0).end==t}))),n},baseName:function(e){return e.replace(/^\s*\-\w+\-/,"")},findParts:r,extractPropertiesFromSource:a}})},{"../assets/range":30,"../assets/stringStream":32,"../assets/tokenIterator":34,"../parser/css":56,"../utils/common":73,"../utils/cssSections":74,"./base":36}],38:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var y=e("./base"),r=e("../parser/xml"),l=e("../assets/range"),c=e("../utils/common"),i={styleBefore:" ",styleSeparator:"=",styleQuote:'"',offset:0},p=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/m,a=y.EditContainer.extend({initialize:function(t,e){c.defaults(this.options,i),this._positions.name=1;var n=null;r.parse(t).forEach(function(e){switch(e.value=l.create(e).substring(t),e.type){case"tag":/^<[^\/]+/.test(e.value)&&(this._name=e.value.substring(1));break;case"attribute":n&&this._children.push(new u(this,n)),n=e;break;case"string":this._children.push(new u(this,n,e)),n=null}},this),n&&this._children.push(new u(this,n)),this._saveStyle()},_saveStyle:function(){var t=this.nameRange().end,n=this.source;this.list().forEach(function(e){e.styleBefore=n.substring(t,e.namePosition()),-1!==e.valuePosition()&&(e.styleSeparator=n.substring(e.namePosition()+e.name().length,e.valuePosition()-e.styleQuote.length)),t=e.range().end})},add:function(e,t,n){var r=this.list(),i=this.nameRange().end,a=c.pick(this.options,"styleBefore","styleSeparator","styleQuote");void 0===n&&(n=r.length);var o=r[n];o?i=o.fullRange().start:(o=r[n-1])&&(i=o.range().end),o&&(a=c.pick(o,"styleBefore","styleSeparator","styleQuote")),t=a.styleQuote+t+a.styleQuote;var s=new u(this,y.createToken(i+a.styleBefore.length,e),y.createToken(i+a.styleBefore.length+e.length+a.styleSeparator.length,t));return c.extend(s,a),this._updateSource(s.styleBefore+s.toString(),i),this._children.splice(n,0,s),s},addClass:function(e){var t=this.get("class");if(e=c.trim(e),!t)return this.add("class",e);var n=t.value();~(" "+n.replace(/\n/g," ")+" ").indexOf(" "+e+" ")||t.value(n+" "+e)},removeClass:function(e){var t=this.get("class");if(e=c.trim(e),t){var n=new RegExp("(^|\\s+)"+c.escapeForRegexp(e)),r=t.value().replace(n,"");c.trim(r)?t.value(r):this.remove("class")}}}),u=y.EditElement.extend({initialize:function(e,t,n){this.styleBefore=e.options.styleBefore,this.styleSeparator=e.options.styleSeparator;var r="",i=e.options.styleQuote;n&&('"'==(i=(r=n.value).charAt(0))||"'"==i?r=r.substring(1):i="",i&&r.charAt(r.length-1)==i&&(r=r.substring(0,r.length-1))),this.styleQuote=i,this._value=r,this._positions.value=n?n.start+i.length:-1},fullRange:function(e){var t=this.range(e);return t.start-=this.styleBefore.length,t},valueOf:function(){return this.name()+this.styleSeparator+this.styleQuote+this.value()+this.styleQuote}});return{parse:function(e,t){return new a(e,t)},parseFromPosition:function(e,t,n){var r=this.extractTag(e,t,n);return r&&r.inside(t)?this.parse(r.substring(e),{offset:r.start}):null},extractTag:function(n,e,t){var r,i=n.length,a=Math.min(2e3,i),o=null,s=function(e){var t;if("<"==n.charAt(e)&&(t=n.substr(e,a).match(p)))return l.create(e,t[0])};for(r=e;0<=r&&!(o=s(r));r--);if(o&&(o.inside(e)||t))return o;if(!o&&t)return null;for(r=e;r<i;r++)if(o=s(r))return o}}})},{"../assets/range":30,"../parser/xml":62,"../utils/common":73,"./base":36}],39:[function(require,module,exports){if("object"==typeof module&&"function"!=typeof define)var define=function(e){module.exports=e(require,exports,module)};define(function(require,exports,module){var global="undefined"!=typeof self?self:this,utils=require("./utils/common"),actions=require("./action/main"),parser=require("./parser/abbreviation"),file=require("./plugin/file"),preferences=require("./assets/preferences"),resources=require("./assets/resources"),profile=require("./assets/profile"),ciu=require("./assets/caniuse"),logger=require("./assets/logger"),sliceFn=Array.prototype.slice;function getFileName(e){var t=/([\w\.\-]+)$/i.exec(e);return t?t[1]:""}function normalizeProfile(e){return"object"==typeof e&&("indent"in e&&(e.indent=!!e.indent),"self_closing_tag"in e&&"number"==typeof e.self_closing_tag&&(e.self_closing_tag=!!e.self_closing_tag)),e}return{expandAbbreviation:function(e,t,n,r){return parser.expand(e,{syntax:t,profile:n,contextNode:r})},run:function(e){return actions.run.apply(actions,sliceFn.call(arguments,0))},loadExtensions:function(fileList){var payload={},userSnippets=null,that=this;fileList=fileList.filter(function(e){var t=file.getExt(e);return"json"===t||"js"===t});var reader=(file.readText||file.read).bind(file),next=function(){if(fileList.length){var f=fileList.shift();reader(f,function(err,content){if(err)return logger.log('Unable to read "'+f+'" file: '+err),next();switch(file.getExt(f)){case"js":try{eval(content)}catch(e){logger.log('Unable to eval "'+f+'" file: '+e)}break;case"json":var fileName=getFileName(f).toLowerCase().replace(/\.json$/,"");/^snippets/.test(fileName)?"snippets"===fileName?userSnippets=utils.parseJSON(content):payload.snippets=utils.deepMerge(payload.snippets||{},utils.parseJSON(content)):payload[fileName]=content}next()})}else userSnippets&&(payload.snippets=utils.deepMerge(payload.snippets||{},userSnippets)),that.loadUserData(payload)};next()},loadPreferences:function(e){preferences.load(utils.parseJSON(e))},loadSnippets:function(e){e=utils.parseJSON(e);var t=resources.getVocabulary("user")||{};resources.setVocabulary(utils.deepMerge(t,e),"user")},loadSystemSnippets:function(e){resources.setVocabulary(utils.parseJSON(e),"system")},loadCIU:function(e){ciu.load(utils.parseJSON(e))},resetSnippets:function(){resources.setVocabulary({},"user")},loadUserData:function(e){(e=utils.parseJSON(e)).snippets&&this.loadSnippets(e.snippets),e.preferences&&this.loadPreferences(e.preferences),e.profiles&&this.loadProfiles(e.profiles),e.caniuse&&this.loadCIU(e.caniuse);var t=e.syntaxProfiles||e.syntaxprofiles;t&&this.loadSyntaxProfiles(t)},resetUserData:function(){this.resetSnippets(),preferences.reset(),profile.reset()},loadSyntaxProfiles:function(n){n=utils.parseJSON(n);var r={};Object.keys(n).forEach(function(e){var t=n[e];e in r||(r[e]={}),r[e].profile=normalizeProfile(t)}),this.loadSnippets(r)},loadProfiles:function(t){t=utils.parseJSON(t),Object.keys(t).forEach(function(e){profile.create(e,normalizeProfile(t[e]))})},require:require,actions:actions,file:file,preferences:preferences,resources:resources,profile:profile,tabStops:require("./assets/tabStops"),htmlMatcher:require("./assets/htmlMatcher"),utils:{common:utils,action:require("./utils/action"),editor:require("./utils/editor")}}})},{"./action/main":12,"./assets/caniuse":23,"./assets/htmlMatcher":26,"./assets/logger":27,"./assets/preferences":28,"./assets/profile":29,"./assets/resources":31,"./assets/tabStops":33,"./parser/abbreviation":55,"./plugin/file":63,"./utils/action":70,"./utils/common":73,"./utils/editor":75}],40:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("./html"),i=e("../assets/preferences"),a=e("../utils/abbreviation"),o=e("../utils/common");i.define("bem.elementSeparator","__","Class names element separator."),i.define("bem.modifierSeparator","_","Class names modifier separator."),i.define("bem.shortElementPrefix","-","Symbol for describing short “block-element” notation. Class names prefixed with this symbol will be treated as element name for parents block name. Each symbol instance traverses one level up in parsed tree for block name lookup. Empty value will disable short notation.");var s=!1;function p(){return{element:i.get("bem.elementSeparator"),modifier:i.get("bem.modifierSeparator")}}function y(t){if(a.isSnippet(t))return t;t.__bem={block:"",element:"",modifier:""};var e=function(e){e=(" "+(e||"")+" ").replace(/\s+/g," ");var t=i.get("bem.shortElementPrefix");if(t){var n=new RegExp("\\s("+o.escapeForRegexp(t)+"+)","g");e=e.replace(n,function(e,t){return" "+o.repeatString(p().element,t.length)})}return o.trim(e)}(t.attribute("class")).split(" "),n=/^[a-z]\-/i;return t.__bem.block=o.find(e,function(e){return n.test(e)}),t.__bem.block||(n=/^[a-z]/i,t.__bem.block=o.find(e,function(e){return n.test(e)})||""),e=e.map(function(e){return function(e,t){e=u(e=u(e,t,"element"),t,"modifier");var n="",r="",i="",a=p();if(~e.indexOf(a.element)){var o=e.split(a.element);n=o.shift();var s=o.pop().split(a.modifier);o.push(s.shift()),r=o.join(a.element),i=s.join(a.modifier)}else if(~e.indexOf(a.modifier)){var y=e.split(a.modifier);n=y.shift(),i=y.join(a.modifier)}if(n||r||i){n||(n=t.__bem.block);var l=n,c=[];return r&&(l+=a.element+r),c.push(l),i&&c.push(l+a.modifier+i),t.__bem.block=n,t.__bem.element=r,t.__bem.modifier=i,c}return e}(e,t)}),(e=o.unique(o.flatten(e)).join(" "))&&t.attribute("class",e),t}function u(e,t,n){var r=p(),i=new RegExp("^("+r[n]+")+","g");if(i.test(e)){for(var a=0,o=e.replace(i,function(e){return a=e.length/r[n].length,""}),s=t;s.parent&&a--;)s=s.parent;if(s&&s.__bem||(s=t),s&&s.__bem){var y=s.__bem.block;return"modifier"==n&&s.__bem.element&&(y+=r.element+s.__bem.element),y+r[n]+o}}return e}return function(e,t){return s=!1,e=function t(e,n){return e.name&&y(e),e.children.forEach(function(e){t(e,n),!a.isSnippet(e)&&e.start&&(s=!0)}),e}(e,t),s&&(e=r(e,t)),e}})},{"../assets/preferences":28,"../utils/abbreviation":69,"../utils/common":73,"./html":46}],41:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("../assets/preferences"),y=e("../utils/common"),r=e("../utils/template"),i=e("../utils/abbreviation");e("./main");function a(e,t,n){return e.children.forEach(function(e){i.isBlock(e)&&function(i,e,t){var n=s.get("filter.commentTrigger");if("*"!=n&&!y.find(n.split(","),function(e){return!!i.attribute(y.trim(e))}))return;var r={node:i,name:i.name(),padding:i.parent?i.parent.padding:"",attr:function(e,t,n){var r=i.attribute(e);return r?(t||"")+r+(n||""):""}},a=e?e(r):"",o=t?t(r):"";i.start=i.start.replace(/</,a+"<"),i.end=i.end.replace(/>/,">"+o)}(e,t,n),a(e,t,n)}),e}return s.define("filter.commentAfter",'\n\x3c!-- /<%= attr("id", "#") %><%= attr("class", ".") %> --\x3e',"A definition of comment that should be placed <i>after</i> matched element when <code>comment</code> filter is applied. This definition is an ERB-style template passed to <code>_.template()</code> function (see Underscore.js docs for details). In template context, the following properties and functions are availabe:\n<ul><li><code>attr(name, before, after)</code> a function that outputsspecified attribute value concatenated with <code>before</code> and <code>after</code> strings. If attribute doesn't exists, the empty string will be returned.</li><li><code>node</code> current node (instance of <code>AbbreviationNode</code>)</li><li><code>name</code> name of current tag</li><li><code>padding</code> current string padding, can be used for formatting</li></ul>"),s.define("filter.commentBefore","","A definition of comment that should be placed <i>before</i> matched element when <code>comment</code> filter is applied. For more info, read description of <code>filter.commentAfter</code> property"),s.define("filter.commentTrigger","id, class","A comma-separated list of attribute names that should exist in abbreviatoin where comment should be added. If you wish to add comment for every element, set this option to <code>*</code>"),function(e){return a(e,r(s.get("filter.commentBefore")),r(s.get("filter.commentAfter")))}})},{"../assets/preferences":28,"../utils/abbreviation":69,"../utils/common":73,"../utils/template":77,"./main":49}],42:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){return function n(e,r,i){return i=i||0,e.children.forEach(function(e){var t;(t=e).parent&&!t.parent.parent&&!t.index()||!1===r.tag_nl||(e.start="\n"+e.start),n(e,r,i+1)}),e}})},{}],43:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r={"<":"&lt;",">":"&gt;","&":"&amp;"};function i(e){return e.replace(/([<>&])/g,function(e,t){return r[t]})}return function t(e){return e.children.forEach(function(e){e.start=i(e.start),e.end=i(e.end),e.content=i(e.content),t(e)}),e}})},{}],44:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../utils/common"),u=e("../utils/abbreviation"),f=e("../assets/preferences");e("../assets/resources");f.define("format.noIndentTags","html","A comma-separated list of tag names that should not get inner indentation."),f.define("format.forceIndentationForTags","body","A comma-separated list of tag names that should <em>always</em> get inner indentation.");function d(e){return e.parent&&!e.parent.parent&&!e.index()}function h(e,t){return!(!0!==t.tag_nl&&!u.isBlock(e))||!(!e.parent||!t.inline_break)&&m(e.parent,t)}function m(e,t){var n=0;return!!r.find(e.children,function(e){if(e.isTextNode()||!u.isInline(e)?n=0:u.isInline(e)&&n++,n>=t.inline_break)return!0})}function o(e,t){e.start=e.end="%s";var n,r,i,a,o,s,y=u.isUnary(e),l="\n",c=(n=e,~(f.getArray("format.noIndentTags")||[]).indexOf(n.name())?"":"\t");if(!1!==t.tag_nl){var p=!0===t.tag_nl&&(t.tag_nl_leaf||e.children.length);if(!p)p=~(f.getArray("format.forceIndentationForTags")||[]).indexOf(e.name());e.isTextNode()||(h(e,t)?(d(e)||u.isSnippet(e.parent)&&!e.index()||(e.start=l+e.start),(u.hasBlockChildren(e)||(s=t,(o=e).children.length&&h(o.children[0],s))||p&&!y)&&(e.end=l+e.end),(u.hasTagsInContent(e)||p&&!e.children.length&&!y)&&(e.start+=l+c)):u.isInline(e)&&((a=e).parent&&u.hasBlockChildren(a.parent))&&!d(e)?e.start=l+e.start:u.isInline(e)&&(i=t,(r=e).children.some(function(e){return!u.isSnippet(e)&&!u.isInline(e)})||m(r,i))&&(e.end=l+e.end),e.padding=c)}return e}return function r(e,i,a){return a=a||0,e.children.forEach(function(e){var t,n;u.isSnippet(e)?(n=i,(t=e).start=t.end="",!d(t)&&!1!==n.tag_nl&&h(t,n)&&(t.parent.parent&&u.isInline(t.parent)||(t.start="\n"+t.start))):o(e,i),r(e,i,a+1)}),e}})},{"../assets/preferences":28,"../assets/resources":31,"../utils/abbreviation":69,"../utils/common":73}],45:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var y=e("../utils/common"),l=e("../utils/abbreviation"),i=e("./format");function c(e,r){var t,n,i,a="",o=[],s=(r.attributeQuote(),r.cursor());return e.attributeList().forEach(function(e){var t,n=r.attributeName(e.name);switch(n.toLowerCase()){case"id":a+="#"+(e.value||s);break;case"class":a+="."+(t=e.value||s,y.trim(t).replace(/\s+/g,"."));break;default:o.push({name:n,value:e.value||s,isBoolean:r.isBoolean(e.name,e.value)})}}),o.length&&(a+=function n(e,r){var i=r.attributeQuote();return"{"+e.map(function(e){var t=i+e.value+i;return Array.isArray(e.value)?t=n(e.value,r):e.isBoolean&&(t="true"),":"+e.name+" => "+t}).join(", ")+"}"}((t=[],n=null,i=/^data-/i,o.forEach(function(e){i.test(e.name)?(n||(n=[],t.push({name:"data",value:n})),n.push(y.extend({},e,{name:e.name.replace(i,"")}))):t.push(e)}),t),r)),a}return function t(e,n,r){return(r=r||0)||(e=i(e,"_format",n)),e.children.forEach(function(e){l.isSnippet(e)||function(e,t){if(!e.parent)return;var n,r=c(e,t),i=t.cursor(),a=l.isUnary(e),o=t.self_closing_tag&&a?"/":"",s="%"+t.tagName(e.name());"%div"==s.toLowerCase()&&r&&-1==r.indexOf("{")&&(s=""),e.end="",n=s+r+o,e.content&&!/^\s/.test(e.content)&&(e.content=" "+e.content),e.start=y.replaceSubstring(e.start,n,e.start.indexOf("%s"),"%s"),e.children.length||a||(e.start+=i)}(e,n),t(e,n,r+1)}),e}})},{"../utils/abbreviation":69,"../utils/common":73,"./format":44}],46:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var u=e("../utils/abbreviation"),f=e("../utils/common"),d=e("../assets/tabStops"),i=e("./format");return function t(e,n,r){return(r=r||0)||(e=i(e,n,r)),e.children.forEach(function(e){u.isSnippet(e)||function(e,t){if(!e.parent)return;var n,i,a,o,r=(n=e,a=(i=t).attributeQuote(),o=i.cursor(),n.attributeList().map(function(e){var t=i.isBoolean(e.name,e.value),n=i.attributeName(e.name),r=t?n:e.value;return t&&i.allowCompactBoolean()?" "+n:" "+n+"="+a+(r||o)+a}).join("")),s=t.cursor(),y=u.isUnary(e),l="",c="";if(!e.isTextNode()){var p=t.tagName(e.name());y?(l="<"+p+r+t.selfClosing()+">",e.end=""):(l="<"+p+r+">",c="</"+p+">")}e.start=f.replaceSubstring(e.start,l,e.start.indexOf("%s"),"%s"),e.end=f.replaceSubstring(e.end,c,e.end.indexOf("%s"),"%s"),e.children.length||y||~e.content.indexOf(s)||d.extract(e.content).tabstops.length||(e.start+=s)}(e,n),t(e,n,r+1)}),e}})},{"../assets/tabStops":33,"../utils/abbreviation":69,"../utils/common":73,"./format":44}],47:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("../utils/common"),y=e("../utils/abbreviation"),i=e("./format"),l=e("../assets/tabStops"),a=e("../assets/profile"),c=/[\n\r]/,p=/^\s*\|/,u=/^\s/;function f(e,r){var t,n,i="",a=[],o=(r.attributeQuote(),r.cursor());return e.attributeList().forEach(function(e){var t,n=r.attributeName(e.name);switch(n.toLowerCase()){case"id":i+="#"+(e.value||o);break;case"class":i+="."+(t=e.value||o,s.trim(t).replace(/\s+/g,"."));break;default:a.push({name:n,value:e.value||o,isBoolean:r.isBoolean(e.name,e.value)})}}),a.length&&(i+=(t=a,n=r.attributeQuote(),"("+t.map(function(e){return e.isBoolean?e.name:e.name+"="+n+e.value+n}).join(", ")+")")),i}function o(e,t){if(!e.parent)return e;var n=f(e,t),r=t.cursor(),i=y.isUnary(e),a=t.tagName(e.name());"div"==a.toLowerCase()&&n&&"("!=n.charAt(0)&&(a=""),e.end="";var o=a+n;!function(e){if(e.content){var t=l.replaceVariables(e.content,function(e,t){return"nl"===t||"newline"===t?"\n":e});c.test(t)&&!p.test(t)?e.content="\n| "+s.padString(t,"| "):u.test(t)||(e.content=" "+t)}}(e);return e.start=s.replaceSubstring(e.start,o,e.start.indexOf("%s"),"%s"),e.children.length||i||(e.start+=r),e}return function t(e,n,r){return(r=r||0)||(e=i(e,a.get("xml"))),e.children.forEach(function(e){y.isSnippet(e)||o(e,n),t(e,n,r+1)}),e}})},{"../assets/profile":29,"../assets/tabStops":33,"../utils/abbreviation":69,"../utils/common":73,"./format":44}],48:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r={class:"className",for:"htmlFor"};return function t(e){return e.children.forEach(function(e){e._attributes.forEach(function(e){e.name in r&&(e.name=r[e.name])}),t(e)}),e}})},{}],49:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var i=e("../utils/common"),a=e("../assets/profile"),o=e("../assets/resources"),s={html:e("./html"),haml:e("./haml"),jade:e("./jade"),jsx:e("./jsx"),slim:e("./slim"),xsl:e("./xsl"),css:e("./css"),bem:e("./bem"),c:e("./comment"),e:e("./escape"),s:e("./singleLine"),t:e("./trim")};function y(e){return e?"string"==typeof e?e.split(/[\|,]/g):e:[]}return{add:function(e,t){s[e]=t},apply:function(n,e,r){return r=a.get(r),y(e).forEach(function(e){var t=i.trim(e.toLowerCase());t&&t in s&&(n=s[t](n,r))}),n},composeList:function(e,t,n){var r=y((t=a.get(t)).filters||o.findItem(e,"filters")||"html");return t.extraFilters&&(r=r.concat(y(t.extraFilters))),n&&(r=r.concat(y(n))),r&&r.length||(r=y("html")),r},extract:function(e){var n="";return[e=e.replace(/\|([\w\|\-]+)$/,function(e,t){return n=t,""}),y(n)]}}})},{"../assets/profile":29,"../assets/resources":31,"../utils/common":73,"./bem":40,"./comment":41,"./css":42,"./escape":43,"./haml":45,"./html":46,"./jade":47,"./jsx":48,"./singleLine":50,"./slim":51,"./trim":52,"./xsl":53}],50:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../utils/abbreviation"),i=/^\s+/,a=/[\n\r]/g;return function t(e){return e.children.forEach(function(e){r.isSnippet(e)||(e.start=e.start.replace(i,""),e.end=e.end.replace(i,"")),e.start=e.start.replace(a,""),e.end=e.end.replace(a,""),e.content=e.content.replace(a,""),t(e)}),e}})},{"../utils/abbreviation":69}],51:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var y=e("../utils/common"),l=e("../utils/abbreviation"),i=e("./format"),c=e("../assets/tabStops"),a=e("../assets/preferences"),o=e("../assets/profile"),p=/[\n\r]/,u=/^\s*\|/,f=/^\s/;function s(e,t){var n=t.attributeQuote(),r=function(){var e=" ",t="";switch(a.get("slim.attributesWrapper")){case"round":e="(",t=")";break;case"square":e="[",t="]";break;case"curly":e="{",t="}"}return{start:e,end:t}}();return r.start+e.map(function(e){var t=n+e.value+n;if(e.isBoolean){if(r.end)return e.name;t="true"}return e.name+"="+t}).join(" ")+r.end}function d(e,r){var i="",a=[],o=(r.attributeQuote(),r.cursor());return e.attributeList().forEach(function(e){var t,n=r.attributeName(e.name);switch(n.toLowerCase()){case"id":i+="#"+(e.value||o);break;case"class":i+="."+(t=e.value||o,y.trim(t).replace(/\s+/g,"."));break;default:a.push({name:n,value:e.value||o,isBoolean:r.isBoolean(e.name,e.value)})}}),a.length&&(i+=s(a,r)),i}function h(e,t){if(!e.parent)return e;var n=d(e,t),r=t.cursor(),i=l.isUnary(e),a=t.self_closing_tag&&i?"/":"",o=t.tagName(e.name());"div"==o.toLowerCase()&&n&&-1=="([{".indexOf(n.charAt(0))&&(o=""),e.end="";var s=o+n+a;!function(e){if(e.content){var t=c.replaceVariables(e.content,function(e,t){return"nl"===t||"newline"===t?"\n":e});p.test(t)&&!u.test(t)?e.content="\n| "+y.padString(t," "):f.test(t)||(e.content=" "+t)}}(e);return e.start=y.replaceSubstring(e.start,s,e.start.indexOf("%s"),"%s"),e.children.length||i||(e.start+=r),e}return a.define("slim.attributesWrapper","none","Defines how attributes will be wrapped:<ul><li><code>none</code> no wrapping;</li><li><code>round</code> — wrap attributes with round braces;</li><li><code>square</code> — wrap attributes with round braces;</li><li><code>curly</code> — wrap attributes with curly braces.</li></ul>"),function t(e,n,r){return(r=r||0)||(e=i(e,o.get("xml"))),e.children.forEach(function(e){l.isSnippet(e)||h(e,n),t(e,n,r+1)}),e}})},{"../assets/preferences":28,"../assets/profile":29,"../assets/tabStops":33,"../utils/abbreviation":69,"../utils/common":73,"./format":44}],52:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../assets/preferences");return r.define("filter.trimRegexp","[\\s|\\u00a0]*[\\d|#|\\-|*|\\u2022]+\\.?\\s*","Regular expression used to remove list markers (numbers, dashes, bullets, etc.) in <code>t</code> (trim) filter. The trim filter is useful for wrapping with abbreviation lists, pased from other documents (for example, Word documents)."),function(e){return function t(e,n){return e.children.forEach(function(e){e.content&&(e.content=e.content.replace(n,"")),t(e,n)}),e}(e,new RegExp(r.get("filter.trimRegexp")))}})},{"../assets/preferences":28}],53:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../utils/abbreviation"),i={"xsl:variable":1,"xsl:with-param":1};return function n(e){return e.children.forEach(function(e){var t;!r.isSnippet(e)&&(e.name()||"").toLowerCase()in i&&e.children.length&&((t=e).start=t.start.replace(/\s+select\s*=\s*(['"]).*?\1/,"")),n(e)}),e}})},{"../utils/abbreviation":69}],54:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var o=e("../assets/preferences"),s={en:{common:["lorem","ipsum","dolor","sit","amet","consectetur","adipisicing","elit"],words:["exercitationem","perferendis","perspiciatis","laborum","eveniet","sunt","iure","nam","nobis","eum","cum","officiis","excepturi","odio","consectetur","quasi","aut","quisquam","vel","eligendi","itaque","non","odit","tempore","quaerat","dignissimos","facilis","neque","nihil","expedita","vitae","vero","ipsum","nisi","animi","cumque","pariatur","velit","modi","natus","iusto","eaque","sequi","illo","sed","ex","et","voluptatibus","tempora","veritatis","ratione","assumenda","incidunt","nostrum","placeat","aliquid","fuga","provident","praesentium","rem","necessitatibus","suscipit","adipisci","quidem","possimus","voluptas","debitis","sint","accusantium","unde","sapiente","voluptate","qui","aspernatur","laudantium","soluta","amet","quo","aliquam","saepe","culpa","libero","ipsa","dicta","reiciendis","nesciunt","doloribus","autem","impedit","minima","maiores","repudiandae","ipsam","obcaecati","ullam","enim","totam","delectus","ducimus","quis","voluptates","dolores","molestiae","harum","dolorem","quia","voluptatem","molestias","magni","distinctio","omnis","illum","dolorum","voluptatum","ea","quas","quam","corporis","quae","blanditiis","atque","deserunt","laboriosam","earum","consequuntur","hic","cupiditate","quibusdam","accusamus","ut","rerum","error","minus","eius","ab","ad","nemo","fugit","officia","at","in","id","quos","reprehenderit","numquam","iste","fugiat","sit","inventore","beatae","repellendus","magnam","recusandae","quod","explicabo","doloremque","aperiam","consequatur","asperiores","commodi","optio","dolor","labore","temporibus","repellat","veniam","architecto","est","esse","mollitia","nulla","a","similique","eos","alias","dolore","tenetur","deleniti","porro","facere","maxime","corrupti"]},sp:{common:["mujer","uno","dolor","más","de","poder","mismo","si"],words:["ejercicio","preferencia","perspicacia","laboral","paño","suntuoso","molde","namibia","planeador","mirar","demás","oficinista","excepción","odio","consecuencia","casi","auto","chicharra","velo","elixir","ataque","no","odio","temporal","cuórum","dignísimo","facilismo","letra","nihilista","expedición","alma","alveolar","aparte","león","animal","como","paria","belleza","modo","natividad","justo","ataque","séquito","pillo","sed","ex","y","voluminoso","temporalidad","verdades","racional","asunción","incidente","marejada","placenta","amanecer","fuga","previsor","presentación","lejos","necesariamente","sospechoso","adiposidad","quindío","pócima","voluble","débito","sintió","accesorio","falda","sapiencia","volutas","queso","permacultura","laudo","soluciones","entero","pan","litro","tonelada","culpa","libertario","mosca","dictado","reincidente","nascimiento","dolor","escolar","impedimento","mínima","mayores","repugnante","dulce","obcecado","montaña","enigma","total","deletéreo","décima","cábala","fotografía","dolores","molesto","olvido","paciencia","resiliencia","voluntad","molestias","magnífico","distinción","ovni","marejada","cerro","torre","y","abogada","manantial","corporal","agua","crepúsculo","ataque","desierto","laboriosamente","angustia","afortunado","alma","encefalograma","materialidad","cosas","o","renuncia","error","menos","conejo","abadía","analfabeto","remo","fugacidad","oficio","en","almácigo","vos","pan","represión","números","triste","refugiado","trote","inventor","corchea","repelente","magma","recusado","patrón","explícito","paloma","síndrome","inmune","autoinmune","comodidad","ley","vietnamita","demonio","tasmania","repeler","apéndice","arquitecto","columna","yugo","computador","mula","a","propósito","fantasía","alias","rayo","tenedor","deleznable","ventana","cara","anemia","corrupto"]},ru:{common:["далеко-далеко","за","словесными","горами","в стране","гласных","и согласных","живут","рыбные","тексты"],words:["вдали","от всех","они","буквенных","домах","на берегу","семантика","большого","языкового","океана","маленький","ручеек","даль","журчит","по всей","обеспечивает","ее","всеми","необходимыми","правилами","эта","парадигматическая","страна","которой","жаренные","предложения","залетают","прямо","рот","даже","всемогущая","пунктуация","не","имеет","власти","над","рыбными","текстами","ведущими","безорфографичный","образ","жизни","однажды","одна","маленькая","строчка","рыбного","текста","имени","lorem","ipsum","решила","выйти","большой","мир","грамматики","великий","оксмокс","предупреждал","о","злых","запятых","диких","знаках","вопроса","коварных","точках","запятой","но","текст","дал","сбить","себя","толку","он","собрал","семь","своих","заглавных","букв","подпоясал","инициал","за","пояс","пустился","дорогу","взобравшись","первую","вершину","курсивных","гор","бросил","последний","взгляд","назад","силуэт","своего","родного","города","буквоград","заголовок","деревни","алфавит","подзаголовок","своего","переулка","грустный","реторический","вопрос","скатился","его","щеке","продолжил","свой","путь","дороге","встретил","рукопись","она","предупредила","моей","все","переписывается","несколько","раз","единственное","что","меня","осталось","это","приставка","возвращайся","ты","лучше","свою","безопасную","страну","послушавшись","рукописи","наш","продолжил","свой","путь","вскоре","ему","повстречался","коварный","составитель","рекламных","текстов","напоивший","языком","речью","заманивший","свое","агенство","которое","использовало","снова","снова","своих","проектах","если","переписали","то","живет","там","до","сих","пор"]}};function y(e,t){return Math.round(Math.random()*(t-e)+e)}function l(t,e){for(var n=t.length,r=Math.min(n,e),i=[];i.length<r;){var a=y(0,n-1);~i.indexOf(a)||i.push(a)}return i.map(function(e){return t[e]})}function c(e,t){return e.length&&(e[0]=e[0].charAt(0).toUpperCase()+e[0].substring(1)),e.join(" ")+(t||("string"==typeof(n="?!...")?n.charAt(y(0,n.length-1)):n[y(0,n.length-1)]));var n}function p(e){var t=e.length;if(!(t<2)){var n=0;n=3<t&&t<=6?y(0,1):6<t&&t<=12?y(0,2):y(1,4);for(var r,i,a=0;a<n;a++)","!==(i=e[r=y(0,e.length-2)]).charAt(i.length-1)&&(e[r]+=",")}}return o.define("lorem.defaultLang","en",'Default language of generated dummy text. Currently, <code>en</code>\t\tand <code>ru</code> are supported, but users can add their own syntaxes\t\tsee <a href="http://docs.emmet.io/abbreviations/lorem-ipsum/">docs</a>.'),o.define("lorem.omitCommonPart",!1,"Omit commonly used part (e.g. “Lorem ipsum dolor sit amet“) from generated text."),{addLang:function(e,t){"string"==typeof t?t={words:t.split(" ").filter(function(e){return!!e})}:Array.isArray(t)&&(t={words:t}),s[e]=t},preprocessor:function(e){var r,i=/^(?:lorem|lipsum)([a-z]{2})?(\d*)$/i,a=!o.get("lorem.omitCommonPart");e.findAll(function(e){if(e._name&&(r=e._name.match(i))){var t=r[2]||30,n=r[1]||o.get("lorem.defaultLang")||"en";e._name="",e.data("forceNameResolving",e.isRepeating()||e.attributeList().length),e.data("pasteOverwrites",!0),e.data("paste",function(e){return function(e,t,n){var r=s[e];if(!r)return"";var i,a=[],o=0;for(t=parseInt(t,10),n&&r.common&&(5<(i=r.common.slice(0,t)).length&&(i[4]+=","),o+=i.length,a.push(c(i,".")));o<t;)o+=(i=l(r.words,Math.min(y(2,30),t-o))).length,p(i),a.push(c(i));return a.join(" ")}(n,t,!e&&a)})}})}}})},{"../assets/preferences":28}],55:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var o=e("../assets/tabStops"),s=e("../assets/profile"),y=e("../filter/main"),c=e("../utils/common"),a=e("../utils/abbreviation"),p=e("../assets/stringStream"),r=e("../generator/lorem"),i=e("./processor/pastedContent"),l=e("./processor/tagName"),u=e("./processor/resourceMatcher"),f=e("./processor/attributes"),d=e("./processor/href"),h=/^[\w\-\$\:@\!%]+\+?$/i,m=/[\w\-:\$@]/,g="%default",b={"[":"]","(":")","{":"}"},x=Array.prototype.splice,w=[],v=[],_=[];function k(e){this.parent=null,this.children=[],this._attributes=[],this.abbreviation="",this.counter=1,this._name=null,this._text="",this.repeatCount=1,this.hasImplicitRepeat=!1,this._data={},this.start="",this.end="",this.content="",this.padding=""}function S(e){return e.substring(1,e.length-1)}function C(e){var t=e.charAt(0);'"'!=t&&"'"!=t||(e=e.substr(1)).charAt(e.length-1)===t&&(e=e.substr(0,e.length-1));return e}function M(e){var r=/^[\w\-:\$@]+\.?$/;return function(e){e=c.trim(e);for(var t,n=[],r=p(e);t=r.next();)if(" "==t){for(n.push(c.trim(r.current()));" "==r.peek();)r.next();r.start=r.pos}else if(('"'==t||"'"==t)&&!r.skipString(t))throw new Error("Invalid attribute set");return n.push(c.trim(r.current())),n}(e).map(function(e){if(r.test(e)){var t="";return"."==e.charAt(e.length-1)&&(t=e=e.substr(0,e.length-1)),{name:e,value:t}}if(~e.indexOf("=")){var n=e.split("=");return{name:n.shift(),value:C(n.join("="))}}return{name:g,value:C(e)}})}function T(e){e=e.map(function(e){return c.clone(e)});var n={};return e.filter(function(e){if(!(e.name in n))return n[e.name]=e;var t=n[e.name];return"class"==e.name.toLowerCase()?t.value+=(t.value.length?" ":"")+e.value:(t.value=e.value,t.isImplied=!!e.isImplied),!1})}function P(e){for(var t,n,r,i=e.children.length-1;0<=i;i--)if((n=e.children[i]).isRepeating())for(r=t=n.repeatCount,n.repeatCount=1,n.updateProperty("counter",1),n.updateProperty("maxCount",r);0<--t;)n.parent.addChild(n.clone(),i+1).updateProperty("counter",t+1).updateProperty("maxCount",r);return e.children.forEach(P),e}function A(e){for(var t=e.children.length-1;0<=t;t--){var n=e.children[t];n.isGroup()?n.replace(A(n).children):n.isEmpty()&&n.remove()}return e.children.forEach(A),e}function j(e){var t=e.charCodeAt(0);return 64<t&&t<91||96<t&&t<123||47<t&&t<58||-1!="#.*:$-_!@|%".indexOf(e)}return k.prototype={addChild:function(e,t){return(e=e||new k).parent=this,void 0===t?this.children.push(e):this.children.splice(t,0,e),e},clone:function(){var t=new k;return["abbreviation","counter","_name","_text","repeatCount","hasImplicitRepeat","start","end","content","padding"].forEach(function(e){t[e]=this[e]},this),t._attributes=this._attributes.map(function(e){return c.extend({},e)}),t._data=c.extend({},this._data),t.children=this.children.map(function(e){return(e=e.clone()).parent=t,e}),t},remove:function(){if(this.parent){var e=this.parent.children.indexOf(this);~e&&this.parent.children.splice(e,1)}return this},replace:function(){var t=this.parent,e=t.children.indexOf(this),n=c.flatten(arguments);x.apply(t.children,[e,1].concat(n)),n.forEach(function(e){e.parent=t})},updateProperty:function(t,n){return this[t]=n,this.children.forEach(function(e){e.updateProperty(t,n)}),this},find:function(e){return this.findAll(e,{amount:1})[0]},findAll:function(t,n){if(n=c.extend({amount:0,found:0},n||{}),"function"!=typeof t){var r=t.toLowerCase();t=function(e){return e.name().toLowerCase()==r}}var i=[];return this.children.forEach(function(e){t(e)&&(i.push(e),n.found++,n.amount&&n.found>=n.amount)||(i=i.concat(e.findAll(t)))}),i.filter(function(e){return!!e})},data:function(e,t){return 2==arguments.length&&(this._data[e]=t),this._data[e]},name:function(){return this._name},attributeList:function(){return T(this._attributes.slice(0))},attribute:function(t,e){if(2==arguments.length){if(null===e){var n=this._attributes.filter(function(e){return e.name===t}),r=this;return void n.forEach(function(e){var t=r._attributes.indexOf(e);~t&&r._attributes.splice(t,1)})}var i=this._attributes.map(function(e){return e.name}).indexOf(t.toLowerCase());~i?this._attributes[i].value=e:this._attributes.push({name:t,value:e})}return(c.find(this.attributeList(),function(e){return e.name==t})||{}).value},index:function(){return this.parent?this.parent.children.indexOf(this):-1},_setRepeat:function(e){e?this.repeatCount=parseInt(e,10)||1:this.hasImplicitRepeat=!0},setAbbreviation:function(e){var n=this;e=(e=e||"").replace(/\*(\d+)?$/,function(e,t){return n._setRepeat(t),""});var t=function(e){if(!~e.indexOf("{"))return null;var t=p.create(e);for(;!t.eol();)switch(t.peek()){case"[":case"(":t.skipToPair(t.peek(),b[t.peek()]);break;case"{":return t.start=t.pos,t.skipToPair("{","}"),{element:e.substring(0,t.start),text:S(t.current())};default:t.next()}}(this.abbreviation=e);t&&(e=t.element,this.content=this._text=t.text);var r=function(e){var t=[],n={"#":"id",".":"class"},r=null,i=p.create(e);for(;!i.eol();)switch(i.peek()){case"#":case".":null===r&&(r=i.pos);var a=n[i.peek()];i.next(),i.start=i.pos,i.eatWhile(m),t.push({name:a,value:i.current()});break;case"[":if(null===r&&(r=i.pos),i.start=i.pos,!i.skipToPair("[","]"))throw new Error("Invalid attribute set definition");t=t.concat(M(S(i.current())));break;default:i.next()}return t.length?{element:e.substring(0,r),attributes:T(t)}:null}(e);if(r&&(e=r.element,this._attributes=r.attributes),this._name=e,this._name&&!h.test(this._name))throw new Error("Invalid abbreviation")},valueOf:function(){var t=this.start,n=this.end,r=this.content,i=this;_.forEach(function(e){t=e(t,i,"start"),r=e(r,i,"content"),n=e(n,i,"end")});var e=this.children.map(function(e){return e.valueOf()}).join("");return r=a.insertChildContent(r,e,{keepVariable:!1}),t+c.padString(r,this.padding)+n},toString:function(){return this.valueOf()},hasEmptyChildren:function(){return!!c.find(this.children,function(e){return e.isEmpty()})},hasImplicitName:function(){return!this._name&&!this.isTextNode()},isGroup:function(){return!this.abbreviation},isEmpty:function(){return!this.abbreviation&&!this.children.length},isRepeating:function(){return 1<this.repeatCount||this.hasImplicitRepeat},isTextNode:function(){return!this.name()&&!this.attributeList().length},isElement:function(){return!this.isEmpty()&&!this.isTextNode()},deepestChild:function(){if(!this.children.length)return null;for(var e=this;e.children.length;)e=e.children[e.children.length-1];return e}},_.push(function(e,t){return c.replaceCounter(e,t.counter,t.maxCount)}),_.push(o.abbrOutputProcessor.bind(o)),[r,u,f,i,l,d].forEach(function(e){e.preprocessor&&w.push(e.preprocessor.bind(e)),e.postprocessor&&v.push(e.postprocessor.bind(e))}),{DEFAULT_ATTR_NAME:g,parse:function(e,t){t=t||{};var n=function e(t){t=c.trim(t);for(var n,r=new k,i=r.addChild(),a=p.create(t),o=1e3,s=function(e){i.addChild(e)};!a.eol()&&0<--o;)switch(a.peek()){case"(":if(a.start=a.pos,!a.skipToPair("(",")"))throw new Error('Invalid abbreviation: mo matching ")" found for character at '+a.pos);var y=e(S(a.current()));(n=a.match(/^\*(\d+)?/,!0))&&i._setRepeat(n[1]),y.children.forEach(s);break;case">":i=i.addChild(),a.next();break;case"+":i=i.parent.addChild(),a.next();break;case"^":var l=i.parent||i;i=(l.parent||l).addChild(),a.next();break;default:a.start=a.pos,a.eatWhile(function(e){if("["==e||"{"==e){if(a.skipToPair(e,b[e]))return a.backUp(1),!0;throw new Error('Invalid abbreviation: mo matching "'+b[e]+'" found for character at '+a.pos)}if("+"!=e)return"("!=e&&j(e);a.next();var t=a.eol()||~"+>^*".indexOf(a.peek());return a.backUp(1),t}),i.setAbbreviation(a.current()),a.start=a.pos}if(o<1)throw new Error("Endless loop detected");return r}(e),r=this;if(t.contextNode){n._name=t.contextNode.name;var i={};n._attributes.forEach(function(e){i[e.name]=e}),t.contextNode.attributes.forEach(function(e){e.name in i?i[e.name].value=e.value:(e=c.clone(e),n._attributes.push(e),i[e.name]=e)})}return w.forEach(function(e){e(n,t,r)}),"counter"in t&&n.updateProperty("counter",t.counter),n=A(P(n)),v.forEach(function(e){e(n,t,r)}),n},expand:function(e,t){if(!e)return"";if("string"==typeof t)throw new Error("Deprecated use of `expand` method: `options` must be object");(t=t||{}).syntax||(t.syntax=c.defaultSyntax());var n=s.get(t.profile,t.syntax);o.resetTabstopIndex();var r=y.extract(e),i=this.parse(r[0],t),a=y.composeList(t.syntax,n,r[1]);return y.apply(i,a,n),i.valueOf()},AbbreviationNode:k,addPreprocessor:function(e){~w.indexOf(e)||w.push(e)},removeFilter:function(e){var t=w.indexOf(e);~t&&w.splice(t,1)},addPostprocessor:function(e){~v.indexOf(e)||v.push(e)},removePostprocessor:function(e){var t=v.indexOf(e);~t&&v.splice(t,1)},addOutputProcessor:function(e){~_.indexOf(e)||_.push(e)},removeOutputProcessor:function(e){var t=_.indexOf(e);~t&&_.splice(t,1)},isAllowedChar:function(e){return j(e=String(e))||~">+^[](){}".indexOf(e)}}})},{"../assets/profile":29,"../assets/stringStream":32,"../assets/tabStops":33,"../filter/main":49,"../generator/lorem":54,"../utils/abbreviation":69,"../utils/common":73,"./processor/attributes":57,"./processor/href":58,"./processor/pastedContent":59,"./processor/resourceMatcher":60,"./processor/tagName":61}],56:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r={tokens:null},a={init:function(e){this.source=e,this.ch="",this.chnum=-1,this.nextChar()},nextChar:function(){return this.ch=this.source.charAt(++this.chnum)},peek:function(){return this.source.charAt(this.chnum+1)}};function i(e,t){return 97<=(t=t||e.charCodeAt(0))&&t<=122||65<=t&&t<=90||1024<=t&&t<=1279||"&"===e||"_"===e||"<"===e||">"===e||"="===e||"-"===e}function o(e,t){return 48<=(t=t||e.charCodeAt(0))&&t<=57}var s=function(){for(var e="{}[]()+*=.,;:>~|\\%$#@^!".split(""),t="*^|$~".split(""),n={},r={},i=0;i<e.length;i+=1)n[e[i]]=!0;for(i=0;i<t.length;i+=1)r[t[i]]=!0;return function(e,t){return t?e in r:e in n}}();function y(e,t){r.tokens.push({value:e,type:t||e,start:null,end:null})}function l(e){var t=function(e){var t=function(e){for(var t=e.chnum,n=e.source.replace(/\r\n?/g,"\n"),r=e.source.substring(0,t+1).replace(/\r\n?/g,"\n").split("\n"),i=(r[r.length-1]||"").length,a=n.split("\n")[r.length-1]||"",o=Math.max(0,i-100),s=a.substr(o,200)+"\n",y=0;y<i-o-1;y++)s+="-";return s+="^",{line:r.length,ch:i,text:a,hint:s}}(a);r.tokens;r.tokens=null;var n="CSS parsing error at line "+t.line+", char "+t.ch+": "+e;return{name:"ParseError",message:n+="\n"+t.hint,hint:t.hint,line:t.line,ch:t.ch}}(e),n=new Error(t.message,"",t.line);throw n.line=t.line,n.ch=t.ch,n.name=t.name,n.hint=t.hint,n}function c(){var e,t=a,n=t.ch,r=n,i=n;for(n=t.nextChar();n!==r;)"\n"===n?"\\"===(e=t.nextChar())?i+=n+e:l("Unterminated string"):i+="\\"===n?n+t.nextChar():n,n=t.nextChar();return i+=n}function p(e){for(var t=a.ch,n=e?e+t:t,r=(t=a.nextChar()).charCodeAt(0);i(t,r)||o(t,r);)n+=t,r=(t=a.nextChar()).charCodeAt(0);y(n,"identifier")}function u(){var e,t=a.ch;return" "===t||"\t"===t?function(){for(var e=a.ch,t="";" "===e||"\t"===e;)t+=e,e=a.nextChar();y(t,"white")}():"/"===t?function(){var e,t=a,n=t.ch,r=n;if("/"===(e=t.nextChar()))for(;n&&"\n"!==e&&"\r"!==e;)r+=e,n=e,e=t.nextChar();else{if("*"!==e)return y(r,r);for(;n&&("*"!==n||"/"!==e);)r+=e,n=e,e=t.nextChar()}r+=e,t.nextChar(),y(r,"comment")}():'"'===t||"'"===t?(e=c(),a.nextChar(),void y(e,"string")):"("===t?function(){var e=a,t=e.ch,n=1,r=t,i=!1;for(t=e.nextChar();t&&!i;)"("===t?n++:")"===t?--n||(i=!0):'"'===t||"'"===t?t=c():""===t&&l("Unterminated brace"),r+=t,t=e.nextChar();y(r,"brace")}():"-"===t||"."===t||o(t)?function(){var e,t=a,n=t.ch,r=n,i="."===r;if(e=!o(n=t.nextChar()),i&&e)return y(r,".");if("-"===r&&e)return p("-");for(;""!==n&&(o(n)||!i&&"."===n);)"."===n&&(i=!0),r+=n,n=t.nextChar();y(r,"number")}():i(t)?p():s(t)?function(){var e=a,t=e.ch,n=e.nextChar();if("="===n&&s(t,!0))return y(t+=n,"match"),void e.nextChar();y(t,t)}():"\r"===t?("\n"===a.peek()&&(t+=a.nextChar()),y(t,"line"),void a.nextChar()):"\n"===t?(y(t,"line"),void a.nextChar()):void l("Unrecognized character '"+t+"'")}return{lex:function(e){if(a.init(e),r.tokens=[],e)for(;""!==a.ch;)u();else r.tokens.push(this.white());var t=r.tokens;return r.tokens=null,t},parse:function(e){for(var t,n=this.lex(e),r=0,i=0,a=n.length;i<a;i++)(t=n[i]).start=r,t.end=r+=t.value.length;return n},white:function(){return{value:"",type:"white",start:0,end:0}},toSource:function(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}}})},{}],57:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var y=e("../../utils/common"),l=function(e){return e.isDefault},c=function(e){return e.isImplied},p=function(e){return!e.value};return{preprocessor:function(e,t,n){!function o(e,s){e.children.forEach(function(t){var e=t.attributeList(),n=t.attribute(s.DEFAULT_ATTR_NAME);if(void 0!==n){if(t.attribute(s.DEFAULT_ATTR_NAME,null),e.length){var r=y.find(e,l)||y.find(e,c)||y.find(e,p);if(r){var i=t.attribute(r.name),a=y.replaceUnescapedSymbol(i,"|",n);i==a&&(a=n),t.attribute(r.name,a)}}}else e.forEach(function(e){e.isImplied&&t.attribute(e.name,null)});o(t,s)})}(e,n)}}})},{"../../utils/common":73}],58:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var o=e("../../assets/preferences"),s=e("../../utils/common"),y=e("./pastedContent");return o.define("href.autodetect",!0,"Enables or disables automatic URL recognition when wrapping\t\ttext with <code>&lt;a&gt;</code> tag. With this option enabled,\t\tif wrapped text matches URL or e-mail pattern it will be automatically\t\tinserted into <code>href</code> attribute."),o.define("href.urlPattern","^(?:(?:https?|ftp|file)://|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#/%=~_|$])","RegExp pattern to match wrapped URLs. Matched content will be inserts\t\tas-is into <code>href</code> attribute, only whitespace will be trimmed."),o.define("href.emailPattern","^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,5}$","RegExp pattern to match wrapped e-mails. Unlike <code>href.urlPattern</code>,\t\twrapped content will be prefixed with <code>mailto:</code> in <code>href</code>\t\tattribute"),{postprocessor:function(e,n){if(o.get("href.autodetect")){var r=new RegExp(o.get("href.urlPattern"),"i"),i=new RegExp(o.get("href.emailPattern"),"i"),a=/^([a-z]+:)?\/\//i;e.findAll(function(e){if("a"==e.name().toLowerCase()&&!e.attribute("href")){var t=s.trim(y.pastedContent(e)||n.pastedContent);t&&(r.test(t)?(a.test(t)||(t="http://"+t),e.attribute("href",t)):i.test(t)&&e.attribute("href","mailto:"+t))}})}}}})},{"../../assets/preferences":28,"../../utils/common":73,"./pastedContent":59}],59:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../../utils/common"),a=e("../../utils/abbreviation"),i=e("../../assets/stringStream"),o=e("../../assets/range"),s="$#";function y(e){for(var t=[],n=i.create(e);!n.eol();){if("\\"==n.peek())n.next();else if(n.start=n.pos,n.match(s,!0)){t.push(o.create(n.start,s));continue}n.next()}return t}function l(t,n){return y(t).reverse().forEach(function(e){t=r.replaceSubstring(t,n,e)}),t}function c(e){return!!y(e.content).length||!!r.find(e.attributeList(),function(e){return!!y(e.value).length})}function p(e,t,n){var r=e.findAll(function(e){return c(e)});if(c(e)&&r.unshift(e),r.length)r.forEach(function(e){e.content=l(e.content,t),e._attributes.forEach(function(e){e.value=l(e.value,t)})});else{var i=e.deepestChild()||e;i.content=n?t:a.insertChildContent(i.content,t)}}return{pastedContent:function(e){var t=e.data("paste");return Array.isArray(t)?t[e.counter-1]:"function"==typeof t?t(e.counter-1,e.content):t||void 0},preprocessor:function(e,t){if(t.pastedContent){var n=r.splitByLines(t.pastedContent,!0).map(r.trim);e.findAll(function(e){if(e.hasImplicitRepeat)return e.data("paste",n),e.repeatCount=n.length})}},postprocessor:function(e,t){var n=this;!e.findAll(function(e){var t=n.pastedContent(e);return t&&p(e,t,!!e.data("pasteOverwrites")),!!t}).length&&t.pastedContent&&p(e,t.pastedContent)}}})},{"../../assets/range":30,"../../assets/stringStream":32,"../../utils/abbreviation":69,"../../utils/common":73}],60:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var p=e("../../assets/resources"),u=e("../../assets/elements"),r=e("../../utils/common"),f=e("../../utils/abbreviation");return{preprocessor:function(e,t,n){!function y(e,l,c){e.children.slice(0).forEach(function(n){var e=p.getMatchedResource(n,l);"string"==typeof e&&(e=u.create("snippet",e)),n.data("resource",e);var t=u.type(e);if("snippet"==t){var r=e.data,i=n._text||n.content;i&&(r=f.insertChildContent(r,i)),n.content=r}else if("element"==t)n._name=e.name,Array.isArray(e.attributes)&&(n._attributes=[].concat(e.attributes,n._attributes));else if("reference"==t){var a=c.parse(e.data,{syntax:l});if(1<n.repeatCount){var o=a.findAll(function(e){return e.hasImplicitRepeat});o.length||(o=a.children),o.forEach(function(e){e.repeatCount=n.repeatCount,e.hasImplicitRepeat=!1})}var s=a.deepestChild();s&&(n.children.forEach(function(e){s.addChild(e)}),s.content=n.content),a.children.forEach(function(t){n.attributeList().forEach(function(e){t.attribute(e.name,e.value)})}),n.replace(a.children)}y(n,l,c)})}(e,t.syntax||r.defaultSyntax(),n)}}})},{"../../assets/elements":24,"../../assets/resources":31,"../../utils/abbreviation":69,"../../utils/common":73}],61:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../../resolver/tagName");return{postprocessor:function t(e){return e.children.forEach(function(e){(e.hasImplicitName()||e.data("forceNameResolving"))&&(e._name=r.resolve(e.parent.name()),e.data("nameResolved",!0)),t(e)}),e}}})},{"../../resolver/tagName":67}],62:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var a=e("../assets/stringStream"),o={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!0,allowMissing:!0},s=null,y=null;function l(t,n){function e(e){return(n.tokenize=e)(t,n)}var r,i=t.next();if("<"!=i)return"&"!=i?(t.eatWhile(/[^&<]/),"text"):(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"))?"atom":"error";if(t.eat("!"))return t.eat("[")?t.match("CDATA[")?e(p("atom","]]>")):null:t.match("--")?e(p("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),e(function r(i){return function(e,t){for(var n;null!==(n=e.next());){if("<"==n)return t.tokenize=r(i+1),t.tokenize(e,t);if(">"==n){if(1!=i)return t.tokenize=r(i-1),t.tokenize(e,t);t.tokenize=l;break}}return"meta"}}(1))):null;if(t.eat("?"))return t.eatWhile(/[\w\._\-]/),n.tokenize=p("meta","?>"),"meta";for(y=t.eat("/")?"closeTag":"openTag",t.eatSpace(),s="";r=t.eat(/[^\s\u00a0=<>\"\'\/?]/);)s+=r;return n.tokenize=c,"tag"}function c(e,t){var n,r=e.next();return">"==r||"/"==r&&e.eat(">")?(t.tokenize=l,y=">"==r?"endTag":"selfcloseTag","tag"):"="==r?(y="equals",null):/[\'\"]/.test(r)?(t.tokenize=(n=r,function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=c;break}return"string"}),t.tokenize(e,t)):(e.eatWhile(/[^\s\u00a0=<>\"\'\/?]/),"word")}function p(n,r){return function(e,t){for(;!e.eol();){if(e.match(r)){t.tokenize=l;break}e.next()}return n}}var r,u=null;function i(){for(var e=arguments.length-1;0<=e;e--)u.cc.push(arguments[e])}function f(){return i.apply(null,arguments),!0}function d(){u.context&&(u.context=u.context.prev)}function h(e){if("openTag"==e)return u.tagName=s,f(g,(i=u.startOfLine,function(e){return"selfcloseTag"==e||"endTag"==e&&o.autoSelfClosers.hasOwnProperty(u.tagName.toLowerCase())?m(u.tagName.toLowerCase()):"endTag"==e&&(m(u.tagName.toLowerCase()),t=u.tagName,n=i,r=o.doNotIndent.hasOwnProperty(t)||u.context&&u.context.noIndent,u.context={prev:u.context,tagName:t,indent:u.indented,startOfLine:n,noIndent:r}),f();var t,n,r}));if("closeTag"!=e)return f();var t,i,n=!1;return u.context?u.context.tagName!=s&&(o.implicitlyClosed.hasOwnProperty(u.context.tagName.toLowerCase())&&d(),n=!u.context||u.context.tagName!=s):n=!0,n&&(r="error"),f((t=n,function(e){return t&&(r="error"),"endTag"==e?(d(),f()):(r="error",f(arguments.callee))}))}function m(e){for(var t;;){if(!u.context)return;if(t=u.context.tagName.toLowerCase(),!o.contextGrabbers.hasOwnProperty(t)||!o.contextGrabbers[t].hasOwnProperty(e))return;d()}}function g(e){return"word"==e?(r="attribute",f(b,g)):"endTag"==e||"selfcloseTag"==e?i():(r="error",f(g))}function b(e){return"equals"==e?f(x,g):(o.allowMissing||(r="error"),"endTag"==e||"selfcloseTag"==e?i():f())}function x(e){return"string"==e?f(w):"word"==e&&o.allowUnquoted?(r="string",f()):(r="error","endTag"==e||"selfCloseTag"==e?i():f())}function w(e){return"string"==e?f(w):i()}function v(e,t){if(e.sol()&&(t.startOfLine=!0,t.indented=0),e.eatSpace())return null;r=y=s=null;var n=t.tokenize(e,t);if(t.type=y,(n||y)&&"comment"!=n)for(u=t;;){if((t.cc.pop()||h)(y||n))break}return t.startOfLine=!1,r||n}return{parse:function(e,t){t=t||0;for(var n={tokenize:l,cc:[],indented:0,startOfLine:!0,tagName:null,context:null},r=a.create(e),i=[];!r.eol();)i.push({type:v(r,n),start:r.start+t,end:r.pos+t}),r.start=r.pos;return i}}})},{"../assets/stringStream":32}],63:[function(t,n,r){if("object"==typeof n&&"function"!=typeof i)var i=function(e){n.exports=e(t,r,n)};i(function(t,e,n){var r=t("../utils/common");function s(e){return/^https?:\/\//.test(e)}return function(e){if(void 0===i||!i.amd)try{fs=e("fs"),path=e("path")}catch(e){}}(t),n.exports=function(e){e&&r.extend(n.exports,e)},r.extend(n.exports,{_parseParams:function(e){var t={path:e[0],size:0};return e=r.toArray(e,1),t.callback=e[e.length-1],(e=e.slice(0,e.length-1)).length&&(t.size=e[0]),t},_read:function(i,a){if(s(i.path))var o=t(/^https:/.test(i.path)?"https":"http").get(i.path,function(e){var t=[],n=0,r=!1;e.on("data",function(e){n+=e.length,t.push(e),i.size&&n>=i.size&&(r=!0,a(null,Buffer.concat(t)),o.abort())}).on("end",function(){r||(r=!0,a(null,Buffer.concat(t)))})}).on("error",a);else if(i.size){var e=fs.openSync(i.path,"r"),n=new Buffer(i.size);fs.read(e,n,0,i.size,null,function(e,t){a(e,n)})}else a(null,fs.readFileSync(i.path))},read:function(e,t,n){var r=this._parseParams(arguments);this._read(r,function(e,t){r.callback(e,e?"":function(e){for(var t=[],n=0,r=e.length;n<r;n++)t.push(String.fromCharCode(e[n]));return t.join("")}(t))})},readText:function(e,t,n){var r=this._parseParams(arguments);this._read(r,function(e,t){r.callback(e,e?"":t.toString())})},locateFile:function(e,t){if(s(t))return t;var n,r=e;for(t=t.replace(/^\/+/,"");r&&r!==path.dirname(r);)if(r=path.dirname(r),n=path.join(r,t),fs.existsSync(n))return n;return""},createPath:function(e,t,n){var r=fs.statSync(e);return r&&!r.isDirectory()&&(e=path.dirname(e)),n(path.resolve(e,t))},save:function(e,t){fs.writeFileSync(e,t,"ascii")},getExt:function(e){var t=(e||"").match(/\.([\w\-]+)$/);return t?t[1].toLowerCase():""}})})},{"../utils/common":73}],64:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var v=e("../assets/preferences"),_=e("../assets/resources"),i=e("../assets/stringStream"),r=e("../assets/caniuse"),k=e("../utils/common"),a=e("../utils/template"),S=e("../editTree/css"),o={prefix:"emmet",obsolete:!1,transformName:function(e){return"-"+this.prefix+"-"+e},properties:function(){return function(e){var t=v.getArray(e),n=v.getArray(e+"Addon");n&&n.forEach(function(e){"-"==e.charAt(0)?t=k.without(t,e.substr(1)):("+"==e.charAt(0)&&(e=e.substr(1)),t.push(e))});return t}("css."+this.prefix+"Properties")||[]},supports:function(e){return~this.properties().indexOf(e)}},C={};v.define("css.valueSeparator",": ","Defines a symbol that should be placed between CSS property and value when expanding CSS abbreviations."),v.define("css.propertyEnd",";","Defines a symbol that should be placed at the end of CSS property when expanding CSS abbreviations."),v.define("stylus.valueSeparator"," ","Defines a symbol that should be placed between CSS property and value when expanding CSS abbreviations in Stylus dialect."),v.define("stylus.propertyEnd","","Defines a symbol that should be placed at the end of CSS property when expanding CSS abbreviations in Stylus dialect."),v.define("sass.propertyEnd","","Defines a symbol that should be placed at the end of CSS property when expanding CSS abbreviations in SASS dialect."),v.define("css.syntaxes","css, less, sass, scss, stylus, styl","List of syntaxes that should be treated as CSS dialects."),v.define("css.autoInsertVendorPrefixes",!0,"Automatically generate vendor-prefixed copies of expanded CSS property. By default, Emmet will generate vendor-prefixed properties only when you put dash before abbreviation (e.g. <code>-bxsh</code>). With this option enabled, you dont need dashes before abbreviations: Emmet will produce vendor-prefixed properties for you."),v.define("less.autoInsertVendorPrefixes",!1,"Same as <code>css.autoInsertVendorPrefixes</code> but for LESS syntax"),v.define("scss.autoInsertVendorPrefixes",!1,"Same as <code>css.autoInsertVendorPrefixes</code> but for SCSS syntax"),v.define("sass.autoInsertVendorPrefixes",!1,"Same as <code>css.autoInsertVendorPrefixes</code> but for SASS syntax"),v.define("stylus.autoInsertVendorPrefixes",!1,"Same as <code>css.autoInsertVendorPrefixes</code> but for Stylus syntax");var s=a("A comma-separated list of CSS properties that may have <code><%= vendor %></code> vendor prefix. This list is used to generate a list of prefixed properties when expanding <code>-property</code> abbreviations. Empty list means that all possible CSS values may have <code><%= vendor %></code> prefix."),y=a("A comma-separated list of <em>additional</em> CSS properties for <code>css.<%= vendor %>Preperties</code> preference. You should use this list if you want to add or remove a few CSS properties to original set. To add a new property, simply write its name, to remove it, precede property with hyphen.<br>For example, to add <em>foo</em> property and remove <em>border-radius</em> one, the preference value will look like this: <code>foo, -border-radius</code>."),l={webkit:"animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, appearance, backface-visibility, background-clip, background-composite, background-origin, background-size, border-fit, border-horizontal-spacing, border-image, border-vertical-spacing, box-align, box-direction, box-flex, box-flex-group, box-lines, box-ordinal-group, box-orient, box-pack, box-reflect, box-shadow, color-correction, column-break-after, column-break-before, column-break-inside, column-count, column-gap, column-rule-color, column-rule-style, column-rule-width, column-span, column-width, dashboard-region, font-smoothing, highlight, hyphenate-character, hyphenate-limit-after, hyphenate-limit-before, hyphens, line-box-contain, line-break, line-clamp, locale, margin-before-collapse, margin-after-collapse, marquee-direction, marquee-increment, marquee-repetition, marquee-style, mask-attachment, mask-box-image, mask-box-image-outset, mask-box-image-repeat, mask-box-image-slice, mask-box-image-source, mask-box-image-width, mask-clip, mask-composite, mask-image, mask-origin, mask-position, mask-repeat, mask-size, nbsp-mode, perspective, perspective-origin, rtl-ordering, text-combine, text-decorations-in-effect, text-emphasis-color, text-emphasis-position, text-emphasis-style, text-fill-color, text-orientation, text-security, text-stroke-color, text-stroke-width, transform, transition, transform-origin, transform-style, transition-delay, transition-duration, transition-property, transition-timing-function, user-drag, user-modify, user-select, writing-mode, svg-shadow, box-sizing, border-radius",moz:"animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, appearance, backface-visibility, background-inline-policy, binding, border-bottom-colors, border-image, border-left-colors, border-right-colors, border-top-colors, box-align, box-direction, box-flex, box-ordinal-group, box-orient, box-pack, box-shadow, box-sizing, column-count, column-gap, column-rule-color, column-rule-style, column-rule-width, column-width, float-edge, font-feature-settings, font-language-override, force-broken-image-icon, hyphens, image-region, orient, outline-radius-bottomleft, outline-radius-bottomright, outline-radius-topleft, outline-radius-topright, perspective, perspective-origin, stack-sizing, tab-size, text-blink, text-decoration-color, text-decoration-line, text-decoration-style, text-size-adjust, transform, transform-origin, transform-style, transition, transition-delay, transition-duration, transition-property, transition-timing-function, user-focus, user-input, user-modify, user-select, window-shadow, background-clip, border-radius",ms:"accelerator, backface-visibility, background-position-x, background-position-y, behavior, block-progression, box-align, box-direction, box-flex, box-line-progression, box-lines, box-ordinal-group, box-orient, box-pack, content-zoom-boundary, content-zoom-boundary-max, content-zoom-boundary-min, content-zoom-chaining, content-zoom-snap, content-zoom-snap-points, content-zoom-snap-type, content-zooming, filter, flow-from, flow-into, font-feature-settings, grid-column, grid-column-align, grid-column-span, grid-columns, grid-layer, grid-row, grid-row-align, grid-row-span, grid-rows, high-contrast-adjust, hyphenate-limit-chars, hyphenate-limit-lines, hyphenate-limit-zone, hyphens, ime-mode, interpolation-mode, layout-flow, layout-grid, layout-grid-char, layout-grid-line, layout-grid-mode, layout-grid-type, line-break, overflow-style, perspective, perspective-origin, perspective-origin-x, perspective-origin-y, scroll-boundary, scroll-boundary-bottom, scroll-boundary-left, scroll-boundary-right, scroll-boundary-top, scroll-chaining, scroll-rails, scroll-snap-points-x, scroll-snap-points-y, scroll-snap-type, scroll-snap-x, scroll-snap-y, scrollbar-arrow-color, scrollbar-base-color, scrollbar-darkshadow-color, scrollbar-face-color, scrollbar-highlight-color, scrollbar-shadow-color, scrollbar-track-color, text-align-last, text-autospace, text-justify, text-kashida-space, text-overflow, text-size-adjust, text-underline-position, touch-action, transform, transform-origin, transform-origin-x, transform-origin-y, transform-origin-z, transform-style, transition, transition-delay, transition-duration, transition-property, transition-timing-function, user-select, word-break, wrap-flow, wrap-margin, wrap-through, writing-mode",o:"dashboard-region, animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, border-image, link, link-source, object-fit, object-position, tab-size, table-baseline, transform, transform-origin, transition, transition-delay, transition-duration, transition-property, transition-timing-function, accesskey, input-format, input-required, marquee-dir, marquee-loop, marquee-speed, marquee-style"};function c(e){var t=e&&e.charCodeAt(0);return e&&"."==e||47<t&&t<58}function M(e){return e=k.trim(e),!/\/\*|\n|\r/.test(e)&&(!!/^[a-z0-9\-]+\s*\:/i.test(e)&&2==e.replace(/\$\{.+?\}/g,"").split(":").length)}function p(e){"-"!=e.charAt(0)||/^\-[\.\d]/.test(e)||(e=e.replace(/^\-+/,""));var t=e.charAt(0);return"#"==t?function(e){var t=e.replace(/^#+/,"")||"0";if("t"==t.toLowerCase())return"transparent";var n="";t=t.replace(/\.(\d+)$/,function(e){return n="0"+e,""});var r=k.repeatString,i=null;switch(t.length){case 1:i=r(t,6);break;case 2:i=r(t,3);break;case 3:i=t.charAt(0)+t.charAt(0)+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2);break;case 4:i=t+t.substr(0,2);break;case 5:i=t+t.charAt(0);break;default:i=t.substr(0,6)}if(n)return a=i,o=n,s=parseInt(a.substr(0,2),16),y=parseInt(a.substr(2,2),16),l=parseInt(a.substr(4,2),16),"rgba("+[s,y,l,o].join(", ")+")";var a,o,s,y,l;if(v.get("css.color.short")){var c=i.split("");c[0]==c[1]&&c[2]==c[3]&&c[4]==c[5]&&(i=c[0]+c[2]+c[4])}switch(v.get("css.color.case")){case"upper":i=i.toUpperCase();break;case"lower":i=i.toLowerCase()}return"#"+i}(e):"$"==t?k.escapeText(e):u(e)}function u(e){var t=v.getDict("css.keywordAliases");return e in t?t[e]:e}function f(e){return~v.getArray("css.keywords").indexOf(u(e))}function d(e,t){var n=C[t];return n||(n=k.find(C,function(e){return e.prefix==t})),n&&n.supports(e)}function T(t){var n=r.resolvePrefixes(t);return n||(n=[],Object.keys(C).forEach(function(e){d(t,e)&&n.push(C[e].prefix)}),n.length||(n=null)),n}function h(e,t){"string"==typeof t&&(t={prefix:t}),C[e]=k.extend({},o,t)}function m(e,t){if(t){"styl"==t&&(t="stylus");var n=v.get(t+"."+e);if(void 0!==n)return n}return v.get("css."+e)}function P(e,t,n){return"string"!=typeof e&&(e=e.data),M(e)?(t&&(~e.indexOf(";")?e=e.split(";").join(" !important;"):e+=" !important"),i=n,a=(r=e).indexOf(":"),(r=r.substring(0,a).replace(/\s+$/,"")+m("valueSeparator",i)+k.trim(r.substring(a+1))).replace(/\s*;\s*$/,m("propertyEnd",i))):e;var r,i,a}return Object.keys(l).forEach(function(e){v.define("css."+e+"Properties",l[e],s({vendor:e})),v.define("css."+e+"PropertiesAddon","",y({vendor:e}))}),v.define("css.unitlessProperties","z-index, line-height, opacity, font-weight, zoom","The list of properties whose values must not contain units."),v.define("css.intUnit","px","Default unit for integer values"),v.define("css.floatUnit","em","Default unit for float values"),v.define("css.keywords","auto, inherit, all","A comma-separated list of valid keywords that can be used in CSS abbreviations."),v.define("css.keywordAliases","a:auto, i:inherit, s:solid, da:dashed, do:dotted, t:transparent","A comma-separated list of keyword aliases, used in CSS abbreviation. Each alias should be defined as <code>alias:keyword_name</code>."),v.define("css.unitAliases","e:em, p:%, x:ex, r:rem","A comma-separated list of unit aliases, used in CSS abbreviation. Each alias should be defined as <code>alias:unit_value</code>."),v.define("css.color.short",!0,"Should color values like <code>#ffffff</code> be shortened to <code>#fff</code> after abbreviation with color was expanded."),v.define("css.color.case","keep","Letter case of color values generated by abbreviations with color (like <code>c#0</code>). Possible values are <code>upper</code>, <code>lower</code> and <code>keep</code>."),v.define("css.fuzzySearch",!0,"Enable fuzzy search among CSS snippet names. When enabled, every <em>unknown</em> snippet will be scored against available snippet names (not values or CSS properties!). The match with best score will be used to resolve snippet value. For example, with this preference enabled, the following abbreviations are equal: <code>ov:h</code> == <code>ov-h</code> == <code>o-h</code> == <code>oh</code>"),v.define("css.fuzzySearchMinScore",.3,"The minium score (from 0 to 1) that fuzzy-matched abbreviation should achive. Lower values may produce many false-positive matches, higher values may reduce possible matches."),v.define("css.alignVendor",!1,"If set to <code>true</code>, all generated vendor-prefixed properties will be aligned by real property name."),h("w",{prefix:"webkit"}),h("m",{prefix:"moz"}),h("s",{prefix:"ms"}),h("o",{prefix:"o"}),(n=n||{}).exports={addPrefix:h,supportsPrefix:d,resolve:function(e,t){var n=v.getArray("css.syntaxes");return n&&~n.indexOf(t)&&e.isElement()?this.expandToSnippet(e.abbreviation,t):null},prefixed:function(e,t){return d(e,t)?"-"+t+"-"+e:e},listPrefixes:function(){return C.map(function(e){return e.prefix})},getPrefix:function(e){return C[e]},removePrefix:function(e){e in C&&delete C[e]},extractPrefixes:function(e){if("-"!=e.charAt(0))return{property:e,prefixes:null};for(var t,n=1,r=e.length,i=[];n<r;){if("-"==(t=e.charAt(n))){n++;break}if(!(t in C)){i.length=0,n=1;break}i.push(t),n++}return n==r-1&&(n=1,i.length=1),{property:e.substring(n),prefixes:i.length?i:"all"}},findValuesInAbbreviation:function(e,t){t=t||"css";for(var n,r=0,i=e.length,a="";r<i;){if(c(n=e.charAt(r))||"#"==n||"$"==n||"-"==n&&c(e.charAt(r+1))){a=e.substring(r);break}r++}for(var o=e.substring(0,e.length-a.length),s=[];~o.indexOf("-")&&!_.findSnippet(t,o);){var y=o.split("-"),l=y.pop();if(!f(l))break;s.unshift(l),o=y.join("-")}return s.join("-")+a},parseValues:function(e){for(var t=i.create(e),n=[],r=null;r=t.next();)"$"==r?t.match(/^[^\$]+/,!0):"#"==r?t.match(/^t|[0-9a-f]+(\.\d+)?/i,!0):"-"==r?((f(k.last(n))||t.start&&c(e.charAt(t.start-1)))&&(t.start=t.pos),t.match(/^\-?[0-9]*(\.[0-9]+)?[a-z%\.]*/,!0)):t.match(/^[0-9]*(\.[0-9]*)?[a-z%]*/,!0),n.push(t.current()),t.start=t.pos;return n.filter(function(e){return!!e}).map(p)},extractValues:function(e){var t=this.findValuesInAbbreviation(e);return t?{property:e.substring(0,e.length-t.length).replace(/-$/,""),values:this.parseValues(t)}:{property:e,values:null}},normalizeValue:function(e,a){a=(a||"").toLowerCase();var o=v.getArray("css.unitlessProperties");return e.replace(/^(\-?[0-9\.]+)([a-z]*)$/,function(e,t,n){return n||"0"!=t&&!~o.indexOf(a)?n?t+(r=n,i=v.getDict("css.unitAliases"),r in i?i[r]:r):t.replace(/\.$/,"")+v.get(~t.indexOf(".")?"css.floatUnit":"css.intUnit"):t;var r,i})},expand:function(e,t,n){n=n||"css";var r=v.get(n+".autoInsertVendorPrefixes"),i=/^(.+)\!$/.test(e);i&&(e=RegExp.$1);var a=_.findSnippet(n,e);if(a&&!r)return P(a,i,n);var o=this.extractPrefixes(e),s=this.extractValues(o.property),y=k.extend(o,s);if(a?y.values=null:a=_.findSnippet(n,y.property),!a&&v.get("css.fuzzySearch")&&(a=_.fuzzyFindSnippet(n,y.property,parseFloat(v.get("css.fuzzySearchMinScore")))),a)"string"!=typeof a&&(a=a.data);else{if(!y.property)return null;a=y.property+":${1};"}if(!M(a))return a;var l=this.splitSnippet(a),c=[];!t&&y.values&&(t=y.values.map(function(e){return this.normalizeValue(e,l.name)},this).join(" ")+";"),l.value=t||l.value;var p,u,f,d,h,m,g,b="all"==y.prefixes||!y.prefixes&&r?function(e,t){var n=[],r=T(e);if(r){var i={};Object.keys(C).forEach(function(e){i[C[e].prefix]=e}),n=r.map(function(e){return i[e]})}return n.length||t||Object.keys(C).forEach(function(e){C[e].obsolete||n.push(e)}),n}(l.name,r&&"all"!=y.prefixes):y.prefixes,x=[];if((b||[]).forEach(function(e){e in C&&(p=C[e].transformName(l.name),x.push(p),c.push(P(p+":"+l.value,i,n)))}),c.push(P(l.name+":"+l.value,i,n)),x.push(l.name),c=(u=l,f=i,d=n,h=[],m={},g=S.findParts(u.value),g.reverse(),g.forEach(function(t){var n=t.substring(u.value);(T(n)||[]).forEach(function(e){m[e]||(m[e]=u.value,h.push(e)),m[e]=k.replaceSubstring(m[e],"-"+e+"-"+n,t)})}),h.map(function(e){return P(u.name+":"+m[e],f,d)})).concat(c),v.get("css.alignVendor")){var w=k.getStringsPads(x);c=c.map(function(e,t){return w[t]+e})}return c},expandToSnippet:function(e,t){var n=this.expand(e,null,t);return null===n?null:Array.isArray(n)?n.join("\n"):"string"!=typeof n?n.data:n+""},splitSnippet:function(e){if(-1==(e=k.trim(e)).indexOf(":"))return{name:e,value:"${1};"};var t=e.split(":");return{name:k.trim(t.shift()),value:k.trim(t.join(":")).replace(/^(\$\{0\}|\$0)(\s*;?)$/,"${1}$2")}},getSyntaxPreference:m,transformSnippet:P,vendorPrefixes:T},n.exports})},{"../assets/caniuse":23,"../assets/preferences":28,"../assets/resources":31,"../assets/stringStream":32,"../editTree/css":37,"../utils/common":73,"../utils/template":77}],65:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var d=e("../assets/preferences"),h=e("../assets/resources"),m=e("../utils/common"),g=(e("../assets/stringStream"),e("./css")),u=e("../assets/range"),i=e("../editTree/css"),b=e("../utils/editor"),a=e("./gradient/linear"),x=["css","less","sass","scss","stylus","styl"];function s(e){var t=g.vendorPrefixes(e);return t||(t=d.getArray("css.gradient.prefixes")),t||[]}function w(n,e){var r=[],i=e.name(),a=d.get("css.gradient.omitDefaultDirection");d.get("css.gradient.fallback")&&~i.toLowerCase().indexOf("background")&&r.push({name:"background-color",value:"${1:"+n[0].gradient.colorStops[0].color+"}"});var o=e.value();return s("linear-gradient").forEach(function(e){var t=g.prefixed(i,e);if("webkit"==e&&d.get("css.gradient.oldWebkit"))try{r.push({name:t,value:v(n,o,{prefix:e,oldWebkit:!0,omitDefaultDirection:a})})}catch(e){}r.push({name:t,value:v(n,o,{prefix:e,omitDefaultDirection:a})})}),r.sort(function(e,t){return t.name.length-e.name.length})}function v(e,i,a){return a=a||{},(e=m.clone(e)).reverse().forEach(function(e,t){var n=!t&&a.placeholder?a.placeholder:"",r=a.oldWebkit?e.gradient.stringifyOldWebkit(a):e.gradient.stringify(a);i=m.replaceSubstring(i,r+n,e.matchedPart)}),i}function _(t){"string"!=typeof t&&(t=t.name());var e=(g.vendorPrefixes(t)||[]).map(function(e){return"-"+e+"-"+t});return e.push(t),e}return d.define("css.gradient.prefixes","webkit, moz, o","A comma-separated list of vendor-prefixes for which values should be generated."),d.define("css.gradient.oldWebkit",!1,"Generate gradient definition for old Webkit implementations"),d.define("css.gradient.omitDefaultDirection",!0,"Do not output default direction definition in generated gradients."),d.define("css.gradient.defaultProperty","background-image","When gradient expanded outside CSS value context, it will produce properties with this name."),d.define("css.gradient.fallback",!1,"With this option enabled, CSS gradient generator will produce <code>background-color</code> property with gradient first color as fallback for old browsers."),(n=n||{}).exports={findGradients:function(e){var r=e.value(),i=[];return e.valueParts().forEach(function(e){var t=e.substring(r);if(a.isLinearGradient(t)){var n=a.parse(t);n&&i.push({gradient:n,matchedPart:e})}}),i.length?i:null},gradientsFromCSSProperty:function(e,t){var n=i.propertyFromPosition(e,t);if(n){var r=this.findGradients(n);if(r)return{property:n,gradients:r}}return null},expandAbbreviationHandler:function(e,t,n){var r=b.outputInfo(e,t,n);if(!~x.indexOf(r.syntax))return!1;var i=e.getCaretPos(),a=r.content,o=this.gradientsFromCSSProperty(a,i);if(o){if(!function(e,t,n){if("css"==(n=n||"css")||"less"==n||"scss"==n)return!0;for(var r=e.property.valueRange(!0).start,i=e.gradients,a=i.length-1;0<=a;a--)if(i[a].matchedPart.start+r>=t)return!1;return!0}(o,i,r.syntax))return!1;var s=o.property,y=s.parent,l=y.options.offset||0,c=l+y.toString().length;if(/[\n\r]/.test(s.value())){var p=s.valueRange(!0).start+m.last(o.gradients).matchedPart.end;a=m.replaceSubstring(a,";",p);var u=this.gradientsFromCSSProperty(a,i);u&&(y=(s=(o=u).property).parent)}s.end(";");var f=function(e,t){var n=h.findSnippet(t,e);if(!n&&d.get("css.fuzzySearch")){var r=parseFloat(d.get("css.fuzzySearchMinScore"));n=h.fuzzyFindSnippet(t,e,r)}if(n)return"string"!=typeof n&&(n=n.data),g.splitSnippet(n).name}(s.name(),t);return f&&s.name(f),function(t,e){var n=t.parent,r=d.get("css.alignVendor"),i=d.get("css.gradient.omitDefaultDirection"),a=t.styleSeparator,o=t.styleBefore;if(n.getAll(_(t)).forEach(function(e){e!=t&&/gradient/i.test(e.value())&&(e.styleSeparator.length<a.length&&(a=e.styleSeparator),e.styleBefore.length<o.length&&(o=e.styleBefore),n.remove(e))}),r){if(o!=t.styleBefore){var s=t.fullRange();n._updateSource(o,s.start,s.start+t.styleBefore.length),t.styleBefore=o}a!=t.styleSeparator&&(n._updateSource(a,t.nameRange().end,t.valueRange().start),t.styleSeparator=a)}var y=t.value(),l=w(e,t);if(r){var c=[],p=[];l.forEach(function(e){c.push(e.name),p.push(e.value)}),p.push(t.value()),c.push(t.name());var u=m.getStringsPads(p.map(function(e){return e.substring(0,e.indexOf("("))})),f=m.getStringsPads(c);t.name(f[f.length-1]+t.name()),l.forEach(function(e,t){e.name=f[t]+e.name,e.value=u[t]+e.value}),t.value(u[u.length-1]+t.value())}l.forEach(function(e){n.add(e.name,e.value,n.indexOf(t))}),t.value(v(e,y,{placeholder:"${2}",omitDefaultDirection:i}))}(s,o.gradients),e.replaceContent(y.toString(),l,c,!0),!0}return this.expandGradientOutsideValue(e,t)},expandGradientOutsideValue:function(e,t){var n=d.get("css.gradient.defaultProperty"),r=d.get("css.gradient.omitDefaultDirection");if(!n)return!1;var i=String(e.getContent()),a=u.create(e.getCurrentLineRange()),o="a{"+n+": "+a.substring(i).replace(/^\s+/,function(e){return a.start+=e.length,""}).replace(/\s+$/,function(e){return a.end-=e.length,""})+";}",s=this.gradientsFromCSSProperty(o,o.length-2);if(s){var y=w(s.gradients,s.property);y.push({name:s.property.name(),value:v(s.gradients,s.property.value(),{placeholder:"${2}",omitDefaultDirection:r})});var l=g.getSyntaxPreference("valueSeparator",t),c=g.getSyntaxPreference("propertyEnd",t);if(d.get("css.alignVendor")){var p=m.getStringsPads(y.map(function(e){return e.value.substring(0,e.value.indexOf("("))}));y.forEach(function(e,t){e.value=p[t]+e.value})}return y=y.map(function(e){return e.name+l+e.value+c}),e.replaceContent(y.join("\n"),a.start,a.end),!0}return!1},reflectValueHandler:function(a){var o=d.get("css.gradient.omitDefaultDirection"),s=this.findGradients(a);if(!s)return!1;var y=this,l=a.value();return a.parent.getAll(_(a)).forEach(function(e){if(e!==a){var t=y.findGradients(e);if(t){var n=e.value(),r=t[0].matchedPart.substring(n),i="";/^\s*\-([a-z]+)\-/.test(r)&&(i=RegExp.$1),e.value(v(s,l,{prefix:i,omitDefaultDirection:o}))}}}),!0}}})},{"../assets/preferences":28,"../assets/range":30,"../assets/resources":31,"../assets/stringStream":32,"../editTree/css":37,"../utils/common":73,"../utils/editor":75,"./css":64,"./gradient/linear":66}],66:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var i=e("../../assets/stringStream"),a=e("../../utils/common"),s={bottom:0,"bottom left":45,left:90,"top left":135,top:180,"top right":225,right:270,"bottom right":315,"to top":0,"to top right":45,"to right":90,"to bottom right":135,"to bottom":180,"to bottom left":225,"to left":270,"to top left":315},o=["top","to bottom","0deg"],r=/^\s*(\-[a-z]+\-)?(lg|linear\-gradient)\s*\(/i,y=/(\d+)deg/i,l=/top|bottom|left|right/i;function c(e){this.colorStops=[],this.direction=180;for(var t,n,r=i.create(a.trim(e));t=r.next();)","==r.peek()?(n=r.current(),this.colorStops.length||!y.test(n)&&!l.test(n)?this.addColorStop(n):this.direction=u(n),r.next(),r.eatSpace(),r.start=r.pos):"("==t&&r.skipTo(")");this.addColorStop(r.current())}function p(e){return a.trim(e).replace(/\s+/g," ")}function u(e){if("number"==typeof e)return e;if(e=p(e).toLowerCase(),y.test(e))return+RegExp.$1;var t=/^to\s/.test(e)?"to ":"",n=~e.indexOf("left")&&"left",r=~e.indexOf("right")&&"right",i=~e.indexOf("top")&&"top",a=~e.indexOf("bottom")&&"bottom",o=p(t+(i||a||"")+" "+(n||r||""));return s[o]||0}function f(e,n){for(var r=/^to\s/,t=Object.keys(s).filter(function(e){var t=r.test(e);return n?!t:t}),i=0;i<t.length;i++)if(s[t[i]]==e)return t[i];return n&&(e=(e+270)%360),e+"deg"}return c.prototype={type:"linear-gradient",addColorStop:function(e,t){(e=p(e||""))&&(e=this.parseColorStop(e),void 0===t?this.colorStops.push(e):this.colorStops.splice(t,0,e))},parseColorStop:function(e){e=p(e);var n=null;if(e=e.replace(/^(\w+\(.+?\))\s*/,function(e,t){return n=t,""}),!n){var t=e.split(" ");n=t[0],e=t[1]||""}var r={color:n};return e&&e.replace(/^(\-?[\d\.]+)([a-z%]+)?$/,function(e,t,n){~(r.position=t).indexOf(".")?n="":n||(n="%"),n&&(r.unit=n)}),r},stringify:function(e){var t="linear-gradient";(e=e||{}).prefix&&(t="-"+e.prefix+"-"+t);var n=this.colorStops.map(function(e){var t=e.position?" "+e.position+(e.unit||""):"";return e.color+t}),r=f(this.direction,!!e.prefix);return e.omitDefaultDirection&&~o.indexOf(r)||n.unshift(r),t+"("+n.join(", ")+")"},stringifyOldWebkit:function(){var n=this.colorStops.map(function(e){return a.clone(e)});return n.forEach(function(e){if("position"in e){if(!~e.position.indexOf(".")&&"%"!=e.unit)throw"Can't convert color stop '"+(e.position+(e.unit||""))+"'";e.position=parseFloat(e.position)/("%"==e.unit?100:1)}}),this._fillImpliedPositions(n),n=n.map(function(e,t){return e.position||t?1==e.position&&t==n.length-1?"to("+e.color+")":"color-stop("+e.position.toFixed(2).replace(/\.?0+$/,"")+", "+e.color+")":"from("+e.color+")"}),"-webkit-gradient(linear, "+function(t){if(t=f(t,!0),y.test(t))throw"The direction is an angle that cant be converted.";var e=function(e){return~t.indexOf(e)?"100%":"0"};return e("left")+" "+e("top")+", "+e("right")+" "+e("bottom")}((this.direction+180)%360)+", "+n.join(", ")+")"},_fillImpliedPositions:function(i){var a=0;i.forEach(function(e,t){if(!t)return e.position=e.position||0;if(t!=i.length-1||"position"in e||(e.position=1),"position"in e){var n=i[a].position||0,r=(e.position-n)/(t-a);i.slice(a,t).forEach(function(e,t){e.position=n+r*t}),a=t}})},valueOf:function(){return this.stringify()}},{parse:function(e){if(!this.isLinearGradient(e))throw"Invalid linear gradient definition:\n"+e;return new c(e=e.replace(/^\s*[\-a-z]+\s*\(|\)\s*$/gi,""))},isLinearGradient:function(e){return r.test(e)},resolveDirection:u,stringifyDirection:f}})},{"../../assets/stringStream":32,"../../utils/common":73}],67:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../utils/common"),i={empty:[],blockLevel:"address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,link,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul,h1,h2,h3,h4,h5,h6".split(","),inlineLevel:"a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var".split(",")},a={p:"span",ul:"li",ol:"li",table:"tr",tr:"td",tbody:"tr",thead:"tr",tfoot:"tr",colgroup:"col",select:"option",optgroup:"option",audio:"source",video:"source",object:"param",map:"area"};return{resolve:function(e){return(e=(e||"").toLowerCase())in a?this.getMapping(e):this.isInlineLevel(e)?"span":"div"},getMapping:function(e){return a[e.toLowerCase()]},isInlineLevel:function(e){return this.isTypeOf(e,"inlineLevel")},isBlockLevel:function(e){return this.isTypeOf(e,"blockLevel")},isEmptyElement:function(e){return this.isTypeOf(e,"empty")},isTypeOf:function(e,t){return~i[t].indexOf(e)},addMapping:function(e,t){a[e]=t},removeMapping:function(e){e in a&&delete a[e]},addElementToCollection:function(e,t){i[t]||(i[t]=[]);var n=this.getCollection(t);~n.indexOf(e)||n.push(e)},removeElementFromCollection:function(e,t){t in i&&(i[t]=r.without(this.getCollection(t),e))},getCollection:function(e){return i[e]}}})},{"../utils/common":73}],68:[function(e,t,n){t.exports={variables:{lang:"en",locale:"en-US",charset:"UTF-8",indentation:"\t",newline:"\n"},css:{filters:"css",profile:"css",snippets:{"@i":"@import url(|);","@import":"@import url(|);","@m":"@media ${1:screen} {\n\t|\n}","@media":"@media ${1:screen} {\n\t|\n}","@f":"@font-face {\n\tfont-family:|;\n\tsrc:url(|);\n}","@f+":"@font-face {\n\tfont-family: '${1:FontName}';\n\tsrc: url('${2:FileName}.eot');\n\tsrc: url('${2:FileName}.eot?#iefix') format('embedded-opentype'),\n\t\t url('${2:FileName}.woff') format('woff'),\n\t\t url('${2:FileName}.ttf') format('truetype'),\n\t\t url('${2:FileName}.svg#${1:FontName}') format('svg');\n\tfont-style: ${3:normal};\n\tfont-weight: ${4:normal};\n}","@kf":"@-webkit-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@-o-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@-moz-keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}\n@keyframes ${1:identifier} {\n\t${2:from} { ${3} }${6}\n\t${4:to} { ${5} }\n}",anim:"animation:|;","anim-":"animation:${1:name} ${2:duration} ${3:timing-function} ${4:delay} ${5:iteration-count} ${6:direction} ${7:fill-mode};",animdel:"animation-delay:${1:time};",animdir:"animation-direction:${1:normal};","animdir:n":"animation-direction:normal;","animdir:r":"animation-direction:reverse;","animdir:a":"animation-direction:alternate;","animdir:ar":"animation-direction:alternate-reverse;",animdur:"animation-duration:${1:0}s;",animfm:"animation-fill-mode:${1:both};","animfm:f":"animation-fill-mode:forwards;","animfm:b":"animation-fill-mode:backwards;","animfm:bt":"animation-fill-mode:both;","animfm:bh":"animation-fill-mode:both;",animic:"animation-iteration-count:${1:1};","animic:i":"animation-iteration-count:infinite;",animn:"animation-name:${1:none};",animps:"animation-play-state:${1:running};","animps:p":"animation-play-state:paused;","animps:r":"animation-play-state:running;",animtf:"animation-timing-function:${1:linear};","animtf:e":"animation-timing-function:ease;","animtf:ei":"animation-timing-function:ease-in;","animtf:eo":"animation-timing-function:ease-out;","animtf:eio":"animation-timing-function:ease-in-out;","animtf:l":"animation-timing-function:linear;","animtf:cb":"animation-timing-function:cubic-bezier(${1:0.1}, ${2:0.7}, ${3:1.0}, ${3:0.1});",ap:"appearance:${none};","!":"!important",pos:"position:${1:relative};","pos:s":"position:static;","pos:a":"position:absolute;","pos:r":"position:relative;","pos:f":"position:fixed;",t:"top:|;","t:a":"top:auto;",r:"right:|;","r:a":"right:auto;",b:"bottom:|;","b:a":"bottom:auto;",l:"left:|;","l:a":"left:auto;",z:"z-index:|;","z:a":"z-index:auto;",fl:"float:${1:left};","fl:n":"float:none;","fl:l":"float:left;","fl:r":"float:right;",cl:"clear:${1:both};","cl:n":"clear:none;","cl:l":"clear:left;","cl:r":"clear:right;","cl:b":"clear:both;",colm:"columns:|;",colmc:"column-count:|;",colmf:"column-fill:|;",colmg:"column-gap:|;",colmr:"column-rule:|;",colmrc:"column-rule-color:|;",colmrs:"column-rule-style:|;",colmrw:"column-rule-width:|;",colms:"column-span:|;",colmw:"column-width:|;",d:"display:${1:block};","d:n":"display:none;","d:b":"display:block;","d:f":"display:flex;","d:if":"display:inline-flex;","d:i":"display:inline;","d:ib":"display:inline-block;","d:ib+":"display: inline-block;\n*display: inline;\n*zoom: 1;","d:li":"display:list-item;","d:ri":"display:run-in;","d:cp":"display:compact;","d:tb":"display:table;","d:itb":"display:inline-table;","d:tbcp":"display:table-caption;","d:tbcl":"display:table-column;","d:tbclg":"display:table-column-group;","d:tbhg":"display:table-header-group;","d:tbfg":"display:table-footer-group;","d:tbr":"display:table-row;","d:tbrg":"display:table-row-group;","d:tbc":"display:table-cell;","d:rb":"display:ruby;","d:rbb":"display:ruby-base;","d:rbbg":"display:ruby-base-group;","d:rbt":"display:ruby-text;","d:rbtg":"display:ruby-text-group;",v:"visibility:${1:hidden};","v:v":"visibility:visible;","v:h":"visibility:hidden;","v:c":"visibility:collapse;",ov:"overflow:${1:hidden};","ov:v":"overflow:visible;","ov:h":"overflow:hidden;","ov:s":"overflow:scroll;","ov:a":"overflow:auto;",ovx:"overflow-x:${1:hidden};","ovx:v":"overflow-x:visible;","ovx:h":"overflow-x:hidden;","ovx:s":"overflow-x:scroll;","ovx:a":"overflow-x:auto;",ovy:"overflow-y:${1:hidden};","ovy:v":"overflow-y:visible;","ovy:h":"overflow-y:hidden;","ovy:s":"overflow-y:scroll;","ovy:a":"overflow-y:auto;",ovs:"overflow-style:${1:scrollbar};","ovs:a":"overflow-style:auto;","ovs:s":"overflow-style:scrollbar;","ovs:p":"overflow-style:panner;","ovs:m":"overflow-style:move;","ovs:mq":"overflow-style:marquee;",zoo:"zoom:1;",zm:"zoom:1;",cp:"clip:|;","cp:a":"clip:auto;","cp:r":"clip:rect(${1:top} ${2:right} ${3:bottom} ${4:left});",bxz:"box-sizing:${1:border-box};","bxz:cb":"box-sizing:content-box;","bxz:bb":"box-sizing:border-box;",bxsh:"box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:color};","bxsh:r":"box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:spread }rgb(${6:0}, ${7:0}, ${8:0});","bxsh:ra":"box-shadow:${1:inset }${2:h} ${3:v} ${4:blur} ${5:spread }rgba(${6:0}, ${7:0}, ${8:0}, .${9:5});","bxsh:n":"box-shadow:none;",m:"margin:|;","m:a":"margin:auto;",mt:"margin-top:|;","mt:a":"margin-top:auto;",mr:"margin-right:|;","mr:a":"margin-right:auto;",mb:"margin-bottom:|;","mb:a":"margin-bottom:auto;",ml:"margin-left:|;","ml:a":"margin-left:auto;",p:"padding:|;",pt:"padding-top:|;",pr:"padding-right:|;",pb:"padding-bottom:|;",pl:"padding-left:|;",w:"width:|;","w:a":"width:auto;",h:"height:|;","h:a":"height:auto;",maw:"max-width:|;","maw:n":"max-width:none;",mah:"max-height:|;","mah:n":"max-height:none;",miw:"min-width:|;",mih:"min-height:|;",mar:"max-resolution:${1:res};",mir:"min-resolution:${1:res};",ori:"orientation:|;","ori:l":"orientation:landscape;","ori:p":"orientation:portrait;",ol:"outline:|;","ol:n":"outline:none;",olo:"outline-offset:|;",olw:"outline-width:|;","olw:tn":"outline-width:thin;","olw:m":"outline-width:medium;","olw:tc":"outline-width:thick;",ols:"outline-style:|;","ols:n":"outline-style:none;","ols:dt":"outline-style:dotted;","ols:ds":"outline-style:dashed;","ols:s":"outline-style:solid;","ols:db":"outline-style:double;","ols:g":"outline-style:groove;","ols:r":"outline-style:ridge;","ols:i":"outline-style:inset;","ols:o":"outline-style:outset;",olc:"outline-color:#${1:000};","olc:i":"outline-color:invert;",bfv:"backface-visibility:|;","bfv:h":"backface-visibility:hidden;","bfv:v":"backface-visibility:visible;",bd:"border:|;","bd+":"border:${1:1px} ${2:solid} ${3:#000};","bd:n":"border:none;",bdbk:"border-break:${1:close};","bdbk:c":"border-break:close;",bdcl:"border-collapse:|;","bdcl:c":"border-collapse:collapse;","bdcl:s":"border-collapse:separate;",bdc:"border-color:#${1:000};","bdc:t":"border-color:transparent;",bdi:"border-image:url(|);","bdi:n":"border-image:none;",bdti:"border-top-image:url(|);","bdti:n":"border-top-image:none;",bdri:"border-right-image:url(|);","bdri:n":"border-right-image:none;",bdbi:"border-bottom-image:url(|);","bdbi:n":"border-bottom-image:none;",bdli:"border-left-image:url(|);","bdli:n":"border-left-image:none;",bdci:"border-corner-image:url(|);","bdci:n":"border-corner-image:none;","bdci:c":"border-corner-image:continue;",bdtli:"border-top-left-image:url(|);","bdtli:n":"border-top-left-image:none;","bdtli:c":"border-top-left-image:continue;",bdtri:"border-top-right-image:url(|);","bdtri:n":"border-top-right-image:none;","bdtri:c":"border-top-right-image:continue;",bdbri:"border-bottom-right-image:url(|);","bdbri:n":"border-bottom-right-image:none;","bdbri:c":"border-bottom-right-image:continue;",bdbli:"border-bottom-left-image:url(|);","bdbli:n":"border-bottom-left-image:none;","bdbli:c":"border-bottom-left-image:continue;",bdf:"border-fit:${1:repeat};","bdf:c":"border-fit:clip;","bdf:r":"border-fit:repeat;","bdf:sc":"border-fit:scale;","bdf:st":"border-fit:stretch;","bdf:ow":"border-fit:overwrite;","bdf:of":"border-fit:overflow;","bdf:sp":"border-fit:space;",bdlen:"border-length:|;","bdlen:a":"border-length:auto;",bdsp:"border-spacing:|;",bds:"border-style:|;","bds:n":"border-style:none;","bds:h":"border-style:hidden;","bds:dt":"border-style:dotted;","bds:ds":"border-style:dashed;","bds:s":"border-style:solid;","bds:db":"border-style:double;","bds:dtds":"border-style:dot-dash;","bds:dtdtds":"border-style:dot-dot-dash;","bds:w":"border-style:wave;","bds:g":"border-style:groove;","bds:r":"border-style:ridge;","bds:i":"border-style:inset;","bds:o":"border-style:outset;",bdw:"border-width:|;",bdtw:"border-top-width:|;",bdrw:"border-right-width:|;",bdbw:"border-bottom-width:|;",bdlw:"border-left-width:|;",bdt:"border-top:|;",bt:"border-top:|;","bdt+":"border-top:${1:1px} ${2:solid} ${3:#000};","bdt:n":"border-top:none;",bdts:"border-top-style:|;","bdts:n":"border-top-style:none;",bdtc:"border-top-color:#${1:000};","bdtc:t":"border-top-color:transparent;",bdr:"border-right:|;",br:"border-right:|;","bdr+":"border-right:${1:1px} ${2:solid} ${3:#000};","bdr:n":"border-right:none;",bdrst:"border-right-style:|;","bdrst:n":"border-right-style:none;",bdrc:"border-right-color:#${1:000};","bdrc:t":"border-right-color:transparent;",bdb:"border-bottom:|;",bb:"border-bottom:|;","bdb+":"border-bottom:${1:1px} ${2:solid} ${3:#000};","bdb:n":"border-bottom:none;",bdbs:"border-bottom-style:|;","bdbs:n":"border-bottom-style:none;",bdbc:"border-bottom-color:#${1:000};","bdbc:t":"border-bottom-color:transparent;",bdl:"border-left:|;",bl:"border-left:|;","bdl+":"border-left:${1:1px} ${2:solid} ${3:#000};","bdl:n":"border-left:none;",bdls:"border-left-style:|;","bdls:n":"border-left-style:none;",bdlc:"border-left-color:#${1:000};","bdlc:t":"border-left-color:transparent;",bdrs:"border-radius:|;",bdtrrs:"border-top-right-radius:|;",bdtlrs:"border-top-left-radius:|;",bdbrrs:"border-bottom-right-radius:|;",bdblrs:"border-bottom-left-radius:|;",bg:"background:#${1:000};","bg+":"background:${1:#fff} url(${2}) ${3:0} ${4:0} ${5:no-repeat};","bg:n":"background:none;","bg:ie":"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1:x}.png',sizingMethod='${2:crop}');",bgc:"background-color:#${1:fff};","bgc:t":"background-color:transparent;",bgi:"background-image:url(|);","bgi:n":"background-image:none;",bgr:"background-repeat:|;","bgr:n":"background-repeat:no-repeat;","bgr:x":"background-repeat:repeat-x;","bgr:y":"background-repeat:repeat-y;","bgr:sp":"background-repeat:space;","bgr:rd":"background-repeat:round;",bga:"background-attachment:|;","bga:f":"background-attachment:fixed;","bga:s":"background-attachment:scroll;",bgp:"background-position:${1:0} ${2:0};",bgpx:"background-position-x:|;",bgpy:"background-position-y:|;",bgbk:"background-break:|;","bgbk:bb":"background-break:bounding-box;","bgbk:eb":"background-break:each-box;","bgbk:c":"background-break:continuous;",bgcp:"background-clip:${1:padding-box};","bgcp:bb":"background-clip:border-box;","bgcp:pb":"background-clip:padding-box;","bgcp:cb":"background-clip:content-box;","bgcp:nc":"background-clip:no-clip;",bgo:"background-origin:|;","bgo:pb":"background-origin:padding-box;","bgo:bb":"background-origin:border-box;","bgo:cb":"background-origin:content-box;",bgsz:"background-size:|;","bgsz:a":"background-size:auto;","bgsz:ct":"background-size:contain;","bgsz:cv":"background-size:cover;",c:"color:#${1:000};","c:r":"color:rgb(${1:0}, ${2:0}, ${3:0});","c:ra":"color:rgba(${1:0}, ${2:0}, ${3:0}, .${4:5});",cm:"/* |${child} */",cnt:"content:'|';","cnt:n":"content:normal;","cnt:oq":"content:open-quote;","cnt:noq":"content:no-open-quote;","cnt:cq":"content:close-quote;","cnt:ncq":"content:no-close-quote;","cnt:a":"content:attr(|);","cnt:c":"content:counter(|);","cnt:cs":"content:counters(|);",tbl:"table-layout:|;","tbl:a":"table-layout:auto;","tbl:f":"table-layout:fixed;",cps:"caption-side:|;","cps:t":"caption-side:top;","cps:b":"caption-side:bottom;",ec:"empty-cells:|;","ec:s":"empty-cells:show;","ec:h":"empty-cells:hide;",lis:"list-style:|;","lis:n":"list-style:none;",lisp:"list-style-position:|;","lisp:i":"list-style-position:inside;","lisp:o":"list-style-position:outside;",list:"list-style-type:|;","list:n":"list-style-type:none;","list:d":"list-style-type:disc;","list:c":"list-style-type:circle;","list:s":"list-style-type:square;","list:dc":"list-style-type:decimal;","list:dclz":"list-style-type:decimal-leading-zero;","list:lr":"list-style-type:lower-roman;","list:ur":"list-style-type:upper-roman;",lisi:"list-style-image:|;","lisi:n":"list-style-image:none;",q:"quotes:|;","q:n":"quotes:none;","q:ru":"quotes:'\\00AB' '\\00BB' '\\201E' '\\201C';","q:en":"quotes:'\\201C' '\\201D' '\\2018' '\\2019';",ct:"content:|;","ct:n":"content:normal;","ct:oq":"content:open-quote;","ct:noq":"content:no-open-quote;","ct:cq":"content:close-quote;","ct:ncq":"content:no-close-quote;","ct:a":"content:attr(|);","ct:c":"content:counter(|);","ct:cs":"content:counters(|);",coi:"counter-increment:|;",cor:"counter-reset:|;",va:"vertical-align:${1:top};","va:sup":"vertical-align:super;","va:t":"vertical-align:top;","va:tt":"vertical-align:text-top;","va:m":"vertical-align:middle;","va:bl":"vertical-align:baseline;","va:b":"vertical-align:bottom;","va:tb":"vertical-align:text-bottom;","va:sub":"vertical-align:sub;",ta:"text-align:${1:left};","ta:l":"text-align:left;","ta:c":"text-align:center;","ta:r":"text-align:right;","ta:j":"text-align:justify;","ta-lst":"text-align-last:|;","tal:a":"text-align-last:auto;","tal:l":"text-align-last:left;","tal:c":"text-align-last:center;","tal:r":"text-align-last:right;",td:"text-decoration:${1:none};","td:n":"text-decoration:none;","td:u":"text-decoration:underline;","td:o":"text-decoration:overline;","td:l":"text-decoration:line-through;",te:"text-emphasis:|;","te:n":"text-emphasis:none;","te:ac":"text-emphasis:accent;","te:dt":"text-emphasis:dot;","te:c":"text-emphasis:circle;","te:ds":"text-emphasis:disc;","te:b":"text-emphasis:before;","te:a":"text-emphasis:after;",th:"text-height:|;","th:a":"text-height:auto;","th:f":"text-height:font-size;","th:t":"text-height:text-size;","th:m":"text-height:max-size;",ti:"text-indent:|;","ti:-":"text-indent:-9999px;",tj:"text-justify:|;","tj:a":"text-justify:auto;","tj:iw":"text-justify:inter-word;","tj:ii":"text-justify:inter-ideograph;","tj:ic":"text-justify:inter-cluster;","tj:d":"text-justify:distribute;","tj:k":"text-justify:kashida;","tj:t":"text-justify:tibetan;",tov:"text-overflow:${ellipsis};","tov:e":"text-overflow:ellipsis;","tov:c":"text-overflow:clip;",to:"text-outline:|;","to+":"text-outline:${1:0} ${2:0} ${3:#000};","to:n":"text-outline:none;",tr:"text-replace:|;","tr:n":"text-replace:none;",tt:"text-transform:${1:uppercase};","tt:n":"text-transform:none;","tt:c":"text-transform:capitalize;","tt:u":"text-transform:uppercase;","tt:l":"text-transform:lowercase;",tw:"text-wrap:|;","tw:n":"text-wrap:normal;","tw:no":"text-wrap:none;","tw:u":"text-wrap:unrestricted;","tw:s":"text-wrap:suppress;",tsh:"text-shadow:${1:hoff} ${2:voff} ${3:blur} ${4:#000};","tsh:r":"text-shadow:${1:h} ${2:v} ${3:blur} rgb(${4:0}, ${5:0}, ${6:0});","tsh:ra":"text-shadow:${1:h} ${2:v} ${3:blur} rgba(${4:0}, ${5:0}, ${6:0}, .${7:5});","tsh+":"text-shadow:${1:0} ${2:0} ${3:0} ${4:#000};","tsh:n":"text-shadow:none;",trf:"transform:|;","trf:skx":"transform: skewX(${1:angle});","trf:sky":"transform: skewY(${1:angle});","trf:sc":"transform: scale(${1:x}, ${2:y});","trf:scx":"transform: scaleX(${1:x});","trf:scy":"transform: scaleY(${1:y});","trf:scz":"transform: scaleZ(${1:z});","trf:sc3":"transform: scale3d(${1:x}, ${2:y}, ${3:z});","trf:r":"transform: rotate(${1:angle});","trf:rx":"transform: rotateX(${1:angle});","trf:ry":"transform: rotateY(${1:angle});","trf:rz":"transform: rotateZ(${1:angle});","trf:t":"transform: translate(${1:x}, ${2:y});","trf:tx":"transform: translateX(${1:x});","trf:ty":"transform: translateY(${1:y});","trf:tz":"transform: translateZ(${1:z});","trf:t3":"transform: translate3d(${1:tx}, ${2:ty}, ${3:tz});",trfo:"transform-origin:|;",trfs:"transform-style:${1:preserve-3d};",trs:"transition:${1:prop} ${2:time};",trsde:"transition-delay:${1:time};",trsdu:"transition-duration:${1:time};",trsp:"transition-property:${1:prop};",trstf:"transition-timing-function:${1:tfunc};",lh:"line-height:|;",whs:"white-space:|;","whs:n":"white-space:normal;","whs:p":"white-space:pre;","whs:nw":"white-space:nowrap;","whs:pw":"white-space:pre-wrap;","whs:pl":"white-space:pre-line;",whsc:"white-space-collapse:|;","whsc:n":"white-space-collapse:normal;","whsc:k":"white-space-collapse:keep-all;","whsc:l":"white-space-collapse:loose;","whsc:bs":"white-space-collapse:break-strict;","whsc:ba":"white-space-collapse:break-all;",wob:"word-break:|;","wob:n":"word-break:normal;","wob:k":"word-break:keep-all;","wob:ba":"word-break:break-all;",wos:"word-spacing:|;",wow:"word-wrap:|;","wow:nm":"word-wrap:normal;","wow:n":"word-wrap:none;","wow:u":"word-wrap:unrestricted;","wow:s":"word-wrap:suppress;","wow:b":"word-wrap:break-word;",wm:"writing-mode:${1:lr-tb};","wm:lrt":"writing-mode:lr-tb;","wm:lrb":"writing-mode:lr-bt;","wm:rlt":"writing-mode:rl-tb;","wm:rlb":"writing-mode:rl-bt;","wm:tbr":"writing-mode:tb-rl;","wm:tbl":"writing-mode:tb-lr;","wm:btl":"writing-mode:bt-lr;","wm:btr":"writing-mode:bt-rl;",lts:"letter-spacing:|;","lts-n":"letter-spacing:normal;",f:"font:|;","f+":"font:${1:1em} ${2:Arial,sans-serif};",fw:"font-weight:|;","fw:n":"font-weight:normal;","fw:b":"font-weight:bold;","fw:br":"font-weight:bolder;","fw:lr":"font-weight:lighter;",fs:"font-style:${italic};","fs:n":"font-style:normal;","fs:i":"font-style:italic;","fs:o":"font-style:oblique;",fv:"font-variant:|;","fv:n":"font-variant:normal;","fv:sc":"font-variant:small-caps;",fz:"font-size:|;",fza:"font-size-adjust:|;","fza:n":"font-size-adjust:none;",ff:"font-family:|;","ff:s":"font-family:serif;","ff:ss":"font-family:sans-serif;","ff:c":"font-family:cursive;","ff:f":"font-family:fantasy;","ff:m":"font-family:monospace;","ff:a":'font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;',"ff:t":'font-family: "Times New Roman", Times, Baskerville, Georgia, serif;',"ff:v":"font-family: Verdana, Geneva, sans-serif;",fef:"font-effect:|;","fef:n":"font-effect:none;","fef:eg":"font-effect:engrave;","fef:eb":"font-effect:emboss;","fef:o":"font-effect:outline;",fem:"font-emphasize:|;",femp:"font-emphasize-position:|;","femp:b":"font-emphasize-position:before;","femp:a":"font-emphasize-position:after;",fems:"font-emphasize-style:|;","fems:n":"font-emphasize-style:none;","fems:ac":"font-emphasize-style:accent;","fems:dt":"font-emphasize-style:dot;","fems:c":"font-emphasize-style:circle;","fems:ds":"font-emphasize-style:disc;",fsm:"font-smooth:|;","fsm:a":"font-smooth:auto;","fsm:n":"font-smooth:never;","fsm:aw":"font-smooth:always;",fst:"font-stretch:|;","fst:n":"font-stretch:normal;","fst:uc":"font-stretch:ultra-condensed;","fst:ec":"font-stretch:extra-condensed;","fst:c":"font-stretch:condensed;","fst:sc":"font-stretch:semi-condensed;","fst:se":"font-stretch:semi-expanded;","fst:e":"font-stretch:expanded;","fst:ee":"font-stretch:extra-expanded;","fst:ue":"font-stretch:ultra-expanded;",op:"opacity:|;","op+":"opacity: $1;\nfilter: alpha(opacity=$2);","op:ie":"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);","op:ms":"-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';",rsz:"resize:|;","rsz:n":"resize:none;","rsz:b":"resize:both;","rsz:h":"resize:horizontal;","rsz:v":"resize:vertical;",cur:"cursor:${pointer};","cur:a":"cursor:auto;","cur:d":"cursor:default;","cur:c":"cursor:crosshair;","cur:ha":"cursor:hand;","cur:he":"cursor:help;","cur:m":"cursor:move;","cur:p":"cursor:pointer;","cur:t":"cursor:text;",fxd:"flex-direction:|;","fxd:r":"flex-direction:row;","fxd:rr":"flex-direction:row-reverse;","fxd:c":"flex-direction:column;","fxd:cr":"flex-direction:column-reverse;",fxw:"flex-wrap: |;","fxw:n":"flex-wrap:nowrap;","fxw:w":"flex-wrap:wrap;","fxw:wr":"flex-wrap:wrap-reverse;",fxf:"flex-flow:|;",jc:"justify-content:|;","jc:fs":"justify-content:flex-start;","jc:fe":"justify-content:flex-end;","jc:c":"justify-content:center;","jc:sb":"justify-content:space-between;","jc:sa":"justify-content:space-around;",ai:"align-items:|;","ai:fs":"align-items:flex-start;","ai:fe":"align-items:flex-end;","ai:c":"align-items:center;","ai:b":"align-items:baseline;","ai:s":"align-items:stretch;",ac:"align-content:|;","ac:fs":"align-content:flex-start;","ac:fe":"align-content:flex-end;","ac:c":"align-content:center;","ac:sb":"align-content:space-between;","ac:sa":"align-content:space-around;","ac:s":"align-content:stretch;",ord:"order:|;",fxg:"flex-grow:|;",fxsh:"flex-shrink:|;",fxb:"flex-basis:|;",fx:"flex:|;",as:"align-self:|;","as:a":"align-self:auto;","as:fs":"align-self:flex-start;","as:fe":"align-self:flex-end;","as:c":"align-self:center;","as:b":"align-self:baseline;","as:s":"align-self:stretch;",pgbb:"page-break-before:|;","pgbb:au":"page-break-before:auto;","pgbb:al":"page-break-before:always;","pgbb:l":"page-break-before:left;","pgbb:r":"page-break-before:right;",pgbi:"page-break-inside:|;","pgbi:au":"page-break-inside:auto;","pgbi:av":"page-break-inside:avoid;",pgba:"page-break-after:|;","pgba:au":"page-break-after:auto;","pgba:al":"page-break-after:always;","pgba:l":"page-break-after:left;","pgba:r":"page-break-after:right;",orp:"orphans:|;",us:"user-select:${none};",wid:"widows:|;",wfsm:"-webkit-font-smoothing:${antialiased};","wfsm:a":"-webkit-font-smoothing:antialiased;","wfsm:s":"-webkit-font-smoothing:subpixel-antialiased;","wfsm:sa":"-webkit-font-smoothing:subpixel-antialiased;","wfsm:n":"-webkit-font-smoothing:none;"}},html:{filters:"html",profile:"html",snippets:{"!!!":"<!DOCTYPE html>","!!!4t":'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',"!!!4s":'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',"!!!xt":'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',"!!!xs":'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',"!!!xxs":'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',c:"\x3c!-- |${child} --\x3e","cc:ie6":"\x3c!--[if lte IE 6]>\n\t${child}|\n<![endif]--\x3e","cc:ie":"\x3c!--[if IE]>\n\t${child}|\n<![endif]--\x3e","cc:noie":"\x3c!--[if !IE]>\x3c!--\x3e\n\t${child}|\n\x3c!--<![endif]--\x3e"},abbreviations:{"!":"html:5",a:'<a href="">',"a:link":'<a href="http://|">',"a:mail":'<a href="mailto:|">',abbr:'<abbr title="">',"acr|acronym":'<acronym title="">',base:'<base href="" />',basefont:"<basefont/>",br:"<br/>",frame:"<frame/>",hr:"<hr/>",bdo:'<bdo dir="">',"bdo:r":'<bdo dir="rtl">',"bdo:l":'<bdo dir="ltr">',col:"<col/>",link:'<link rel="stylesheet" href="" />',"link:css":'<link rel="stylesheet" href="${1:style}.css" />',"link:print":'<link rel="stylesheet" href="${1:print}.css" media="print" />',"link:favicon":'<link rel="shortcut icon" type="image/x-icon" href="${1:favicon.ico}" />',"link:touch":'<link rel="apple-touch-icon" href="${1:favicon.png}" />',"link:rss":'<link rel="alternate" type="application/rss+xml" title="RSS" href="${1:rss.xml}" />',"link:atom":'<link rel="alternate" type="application/atom+xml" title="Atom" href="${1:atom.xml}" />',"link:im|link:import":'<link rel="import" href="${1:component}.html" />',meta:"<meta/>","meta:utf":'<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />',"meta:win":'<meta http-equiv="Content-Type" content="text/html;charset=windows-1251" />',"meta:vp":'<meta name="viewport" content="width=${1:device-width}, user-scalable=${2:no}, initial-scale=${3:1.0}, maximum-scale=${4:1.0}, minimum-scale=${5:1.0}" />',"meta:compat":'<meta http-equiv="X-UA-Compatible" content="${1:IE=7}" />',style:"<style>",script:'<script !src="">',"script:src":'<script src="">',img:'<img src="" alt="" />',"img:s|img:srcset":'<img srcset="" src="" alt="" />',"img:z|img:sizes":'<img sizes="" srcset="" src="" alt="" />',picture:"<picture>","src|source":"<source/>","src:sc|source:src":'<source src="" type=""/>',"src:s|source:srcset":'<source srcset=""/>',"src:m|source:media":'<source media="(${1:min-width: })" srcset=""/>',"src:t|source:type":'<source srcset="|" type="${1:image/}"/>',"src:z|source:sizes":'<source sizes="" srcset=""/>',"src:mt|source:media:type":'<source media="(${1:min-width: })" srcset="" type="${2:image/}"/>',"src:mz|source:media:sizes":'<source media="(${1:min-width: })" sizes="" srcset=""/>',"src:zt|source:sizes:type":'<source sizes="" srcset="" type="${1:image/}"/>',iframe:'<iframe src="" frameborder="0">',embed:'<embed src="" type="" />',object:'<object data="" type="">',param:'<param name="" value="" />',map:'<map name="">',area:'<area shape="" coords="" href="" alt="" />',"area:d":'<area shape="default" href="" alt="" />',"area:c":'<area shape="circle" coords="" href="" alt="" />',"area:r":'<area shape="rect" coords="" href="" alt="" />',"area:p":'<area shape="poly" coords="" href="" alt="" />',form:'<form action="">',"form:get":'<form action="" method="get">',"form:post":'<form action="" method="post">',label:'<label for="">',input:'<input type="${1:text}" />',inp:'<input type="${1:text}" name="" id="" />',"input:h|input:hidden":"input[type=hidden name]","input:t|input:text":"inp","input:search":"inp[type=search]","input:email":"inp[type=email]","input:url":"inp[type=url]","input:p|input:password":"inp[type=password]","input:datetime":"inp[type=datetime]","input:date":"inp[type=date]","input:datetime-local":"inp[type=datetime-local]","input:month":"inp[type=month]","input:week":"inp[type=week]","input:time":"inp[type=time]","input:tel":"inp[type=tel]","input:number":"inp[type=number]","input:color":"inp[type=color]","input:c|input:checkbox":"inp[type=checkbox]","input:r|input:radio":"inp[type=radio]","input:range":"inp[type=range]","input:f|input:file":"inp[type=file]","input:s|input:submit":'<input type="submit" value="" />',"input:i|input:image":'<input type="image" src="" alt="" />',"input:b|input:button":'<input type="button" value="" />',isindex:"<isindex/>","input:reset":"input:button[type=reset]",select:'<select name="" id="">',"select:d|select:disabled":"select[disabled.]","opt|option":'<option value="">',textarea:'<textarea name="" id="" cols="${1:30}" rows="${2:10}">',marquee:'<marquee behavior="" direction="">',"menu:c|menu:context":"menu[type=context]>","menu:t|menu:toolbar":"menu[type=toolbar]>",video:'<video src="">',audio:'<audio src="">',"html:xml":'<html xmlns="http://www.w3.org/1999/xhtml">',keygen:"<keygen/>",command:"<command/>","btn:s|button:s|button:submit":"button[type=submit]","btn:r|button:r|button:reset":"button[type=reset]","btn:d|button:d|button:disabled":"button[disabled.]","fst:d|fset:d|fieldset:d|fieldset:disabled":"fieldset[disabled.]",bq:"blockquote",fig:"figure",figc:"figcaption",pic:"picture",ifr:"iframe",emb:"embed",obj:"object",cap:"caption",colg:"colgroup",fst:"fieldset",btn:"button",optg:"optgroup",tarea:"textarea",leg:"legend",sect:"section",art:"article",hdr:"header",ftr:"footer",adr:"address",dlg:"dialog",str:"strong",prog:"progress",mn:"main",tem:"template",fset:"fieldset",datag:"datagrid",datal:"datalist",kg:"keygen",out:"output",det:"details",cmd:"command",doc:"html>(head>meta[charset=${charset}]+title{${1:Document}})+body",doc4:'html>(head>meta[http-equiv="Content-Type" content="text/html;charset=${charset}"]+title{${1:Document}})+body',"ri:d|ri:dpr":"img:s","ri:v|ri:viewport":"img:z","ri:a|ri:art":"pic>src:m+img","ri:t|ri:type":"pic>src:t+img","html:4t":"!!!4t+doc4[lang=${lang}]","html:4s":"!!!4s+doc4[lang=${lang}]","html:xt":"!!!xt+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]","html:xs":"!!!xs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]","html:xxs":"!!!xxs+doc4[xmlns=http://www.w3.org/1999/xhtml xml:lang=${lang}]","html:5":"!!!+doc[lang=${lang}]","ol+":"ol>li","ul+":"ul>li","dl+":"dl>dt+dd","map+":"map>area","table+":"table>tr>td","colgroup+":"colgroup>col","colg+":"colgroup>col","tr+":"tr>td","select+":"select>option","optgroup+":"optgroup>option","optg+":"optgroup>option","pic+":"picture>source:srcset+img"}},xml:{extends:"html",profile:"xml",filters:"html"},xsl:{extends:"html",profile:"xml",filters:"html, xsl",abbreviations:{"tm|tmatch":'<xsl:template match="" mode="">',"tn|tname":'<xsl:template name="">',call:'<xsl:call-template name=""/>',ap:'<xsl:apply-templates select="" mode=""/>',api:"<xsl:apply-imports/>",imp:'<xsl:import href=""/>',inc:'<xsl:include href=""/>',ch:"<xsl:choose>","wh|xsl:when":'<xsl:when test="">',ot:"<xsl:otherwise>",if:'<xsl:if test="">',par:'<xsl:param name="">',pare:'<xsl:param name="" select=""/>',var:'<xsl:variable name="">',vare:'<xsl:variable name="" select=""/>',wp:'<xsl:with-param name="" select=""/>',key:'<xsl:key name="" match="" use=""/>',elem:'<xsl:element name="">',attr:'<xsl:attribute name="">',attrs:'<xsl:attribute-set name="">',cp:'<xsl:copy select=""/>',co:'<xsl:copy-of select=""/>',val:'<xsl:value-of select=""/>',"for|each":'<xsl:for-each select="">',tex:"<xsl:text></xsl:text>",com:"<xsl:comment>",msg:'<xsl:message terminate="no">',fall:"<xsl:fallback>",num:'<xsl:number value=""/>',nam:'<namespace-alias stylesheet-prefix="" result-prefix=""/>',pres:'<xsl:preserve-space elements=""/>',strip:'<xsl:strip-space elements=""/>',proc:'<xsl:processing-instruction name="">',sort:'<xsl:sort select="" order=""/>',"choose+":"xsl:choose>xsl:when+xsl:otherwise",xsl:"!!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{\n|}"},snippets:{"!!!":'<?xml version="1.0" encoding="UTF-8"?>'}},haml:{filters:"haml",extends:"html",profile:"xml"},jade:{filters:"jade",extends:"html",profile:"xml"},jsx:{filters:"jsx, html",extends:"html",profile:"xml"},slim:{filters:"slim",extends:"html",profile:"xml"},scss:{extends:"css"},sass:{extends:"css"},less:{extends:"css"},stylus:{extends:"css"},styl:{extends:"stylus"}}},{}],69:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var r=e("../assets/elements"),y=e("../assets/tabStops"),l=e("../utils/common"),i=e("../resolver/tagName");return{isUnary:function(e){if(e.children.length||e._text||this.isSnippet(e))return!1;var t=e.data("resource");return t&&t.is_empty},isInline:function(e){return e.isTextNode()||!e.name()||i.isInlineLevel(e.name())},isBlock:function(e){return this.isSnippet(e)||!this.isInline(e)},isSnippet:function(e){return r.is(e.data("resource"),"snippet")},hasTagsInContent:function(e){return l.matchesTag(e.content)},hasBlockChildren:function(e){return this.hasTagsInContent(e)&&this.isBlock(e)||e.children.some(function(e){return this.isBlock(e)},this)},insertChildContent:function(i,a,o){o=l.extend({keepVariable:!0,appendIfNoChild:!0},o||{});var s=!1;return i=y.replaceVariables(i,function(e,t,n){var r=e;return"child"==t&&(r=l.padString(a,l.getLinePaddingFromPosition(i,n.start)),s=!0,o.keepVariable&&(r+=e)),r}),!s&&o.appendIfNoChild&&(i+=a),i}}})},{"../assets/elements":24,"../assets/tabStops":33,"../resolver/tagName":67,"../utils/common":73}],70:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("./common"),r=e("./cssSections"),y=e("../parser/abbreviation"),l=e("../assets/htmlMatcher"),c=e("../editTree/xml"),o=e("../assets/range"),i=e("../assets/resources");return{mimeTypes:{gif:"image/gif",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",svg:"image/svg+xml",html:"text/html",htm:"text/html"},extractAbbreviation:function(e){for(var t=e.length,n=-1,r=0,i=0,a=0;;){if(--t<0){n=0;break}var o=e.charAt(t);if("]"==o)i++;else if("["==o){if(!i){n=t+1;break}i--}else if("}"==o)a++;else if("{"==o){if(!a){n=t+1;break}a--}else if(")"==o)r++;else if("("==o){if(!r){n=t+1;break}r--}else{if(i||a)continue;if(!y.isAllowedChar(o)||">"==o&&s.endsWithTag(e.substring(0,t+1))){n=t+1;break}}}return-1==n||a||i||r?"":e.substring(n).replace(/^[\*\+\>\^]+/,"")},getImageSize:function(e){var t=0,n=function(){return e.charCodeAt(t++)};if("‰PNG\r\n\n"===e.substr(0,8))return t=e.indexOf("IHDR")+4,{width:n()<<24|n()<<16|n()<<8|n(),height:n()<<24|n()<<16|n()<<8|n()};if("GIF8"===e.substr(0,4))return t=6,{width:n()|n()<<8,height:n()|n()<<8};if("ÿØ"===e.substr(0,2)){t=2;for(var r=e.length;t<r;){if(255!=n())return;var i=n();if(218==i)break;var a=n()<<8|n();if(!(!(192<=i&&i<=207)||4&i||8&i))return t+=1,{height:n()<<8|n(),width:n()<<8|n()};t+=a-2}}},captureContext:function(e,t){if(e.getSyntax()in{html:1,xml:1,xsl:1}){var n=e.getContent();void 0===t&&(t=e.getCaretPos());var r=l.find(n,t);if(r&&"tag"==r.type){var i=r.open,a={name:i.name,attributes:[],match:r},o=c.parse(i.range.substring(n));return o&&(a.attributes=o.getAll().map(function(e){return{name:e.name(),value:e.value()}})),a}}return null},findExpressionBounds:function(e,t){for(var n=String(e.getContent()),r=n.length,i=e.getCaretPos()-1,a=i+1;0<=i&&t(n.charAt(i),i,n);)i--;for(;a<r&&t(n.charAt(a),a,n);)a++;if(i<a)return o([++i,a])},compoundUpdate:function(e,t){if(t){var n=e.getSelectionRange();return e.replaceContent(t.data,t.start,t.end,!0),e.createSelection(t.caret,t.caret+n.end-n.start),!0}return!1},detectSyntax:function(e,t){var n=t||"html";return i.hasSyntax(n)||(n="html"),"html"==n&&(this.isStyle(e)||this.isInlineCSS(e))&&(n="css"),"styl"==n&&(n="stylus"),n},detectProfile:function(e){var t=e.getSyntax(),n=i.findItem(t,"profile");if(n)return n;switch(t){case"xml":case"xsl":return"xml";case"css":if(this.isInlineCSS(e))return"line";break;case"html":return(n=i.getVariable("profile"))||(n=this.isXHTML(e)?"xhtml":"html"),n}return"xhtml"},isXHTML:function(e){return-1!=e.getContent().search(/<!DOCTYPE[^>]+XHTML/i)},isStyle:function(e){return!!r.styleTagRange(e.getContent(),e.getCaretPos())},isSupportedCSS:function(e){return"css"==e||"less"==e||"scss"==e},isInlineCSS:function(e){return!!r.styleAttrRange(e.getContent(),e.getCaretPos())}}})},{"../assets/htmlMatcher":26,"../assets/range":30,"../assets/resources":31,"../editTree/xml":38,"../parser/abbreviation":55,"./common":73,"./cssSections":74}],71:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(e){for(var t,n,r,i,a,o,s,y,l,c=[],p=0,u=e.length,f=d;p<u;)i=(t=255&e.charCodeAt(p++))>>2,a=(3&t)<<4|(n=255&(y=e.charCodeAt(p++)))>>4,o=(15&n)<<2|(r=255&(l=e.charCodeAt(p++)))>>6,s=63&r,isNaN(y)?o=s=64:isNaN(l)&&(s=64),c.push(f.charAt(i)+f.charAt(a)+f.charAt(o)+f.charAt(s));return c.join("")},decode:function(e){var t,n,r,i,a,o,s=0,y=0,l=[],c=d,p=e.length;if(!e)return e;for(e+="";t=(o=c.indexOf(e.charAt(s++))<<18|c.indexOf(e.charAt(s++))<<12|(i=c.indexOf(e.charAt(s++)))<<6|(a=c.indexOf(e.charAt(s++))))>>16&255,n=o>>8&255,r=255&o,l[y++]=64==i?String.fromCharCode(t):64==a?String.fromCharCode(t,n):String.fromCharCode(t,n,r),s<p;);return l.join("")}}})},{}],72:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var a=e("./common"),o=(e("../assets/range"),e("../assets/stringStream")),s=/\/\*|\/\//;return{strip:function(e){if(!s.test(e))return e;for(var t,n,r=o(e),i=[];t=r.next();)if("/"===t){if("*"===(n=r.peek()))r.start=r.pos-1,r.skipTo("*/")?r.pos+=2:r.skipToEnd(),i.push([r.start,r.pos]);else if("/"===n){for(r.start=r.pos-1;(n=r.next())&&"\n"!==n&&"\r"!=n;);i.push([r.start,r.pos])}}else r.skipQuoted();return a.replaceWith(e,i," ")}}})},{"../assets/range":30,"../assets/stringStream":32,"./common":73}],73:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var y=e("../assets/range"),r="${0}";return{reTag:/<\/?[\w:\-]+(?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*\s*(\/?)>$/,defaultSyntax:function(){return"html"},defaultProfile:function(){return"plain"},endsWithTag:function(e){return this.reTag.test(e)},isNumeric:function(e){return"string"==typeof e&&(e=e.charCodeAt(0)),e&&47<e&&e<58},trim:String.prototype.trim?function(e){return e?e.trim():""}:function(e){return(e||"").replace(/^\s+|\s+$/g,"")},splitByLines:function(e,t){var n=(e||"").replace(/\r\n/g,"\n").replace(/\n\r/g,"\n").replace(/\r/g,"\n").replace(/\n/g,"\n").split("\n");return t&&(n=n.filter(function(e){return e.length&&!!this.trim(e)},this)),n},repeatString:function(e,t){for(var n="";t--;)n+=e;return n},getStringsPads:function(e){var t=e.map(function(e){return"string"==typeof e?e.length:+e}),n=t.reduce(function(e,t){return void 0===e?t:Math.max(e,t)});return t.map(function(e){var t=n-e;return t?this.repeatString(" ",t):""},this)},padString:function(e,t){var n=[],r=this.splitByLines(e);n.push(r[0]);for(var i=1;i<r.length;i++)n.push("\n"+t+r[i]);return n.join("")},zeroPadString:function(e,t){for(var n="",r=e.length;t>r++;)n+="0";return n+e},unindentString:function(e,t){for(var n,r=this.splitByLines(e),i=t.length,a=0,o=r.length;a<o;a++)(n=r[a]).substr(0,i)===t&&(r[a]=n.substr(i));return r.join("\n")},replaceUnescapedSymbol:function(e,t,n){for(var r=0,i=e.length,a=t.length,o=0;r<i;)if("\\"==e.charAt(r))r+=a+1;else if(e.substr(r,a)==t){var s=a;o++;var y=n;if("function"==typeof n){var l=n(e,t,r,o);y=!!l&&(s=l[0].length,l[1])}if(!1===y){r++;continue}i=(e=e.substring(0,r)+y+e.substring(r+s)).length,r+=y.length}else r++;return e},replaceCounter:function(e,l,c){e=String(e),l=String(l),/^\-?\d+$/.test(l)&&(l=+l);var p=this;return this.replaceUnescapedSymbol(e,"$",function(e,t,n,r){if("{"==e.charAt(n+1)||p.isNumeric(e.charAt(n+1)))return!1;for(var i=n+1;"$"==e.charAt(i)&&"{"!=e.charAt(i+1);)i++;var a,o=i-n,s=0,y=!1;return(a=e.substr(i).match(/^@(\-?)(\d*)/))&&(i+=a[0].length,a[1]&&(y=!0),s=parseInt(a[2]||1,10)-1),y&&c&&"number"==typeof l&&(l=c-l+1),l+=s,[e.substring(n,i),p.zeroPadString(l+"",o)]})},matchesTag:function(e){return this.reTag.test(e||"")},escapeText:function(e){return e.replace(/([\$\\])/g,"\\$1")},unescapeText:function(e){return e.replace(/\\(.)/g,"$1")},getCaretPlaceholder:function(){return"function"==typeof r?r.apply(this,arguments):r},setCaretPlaceholder:function(e){r=e},getLinePadding:function(e){return(e.match(/^(\s+)/)||[""])[0]},getLinePaddingFromPosition:function(e,t){var n=this.findNewlineBounds(e,t);return this.getLinePadding(n.substring(e))},escapeForRegexp:function(e){var t=new RegExp("[.*+?|()\\[\\]{}\\\\]","g");return e.replace(t,"\\$&")},prettifyNumber:function(e,t){return e.toFixed(void 0===t?2:t).replace(/\.?0+$/,"")},replaceSubstring:function(e,t,n,r){return"object"==typeof n&&"end"in n&&(r=n.end,n=n.start),"string"==typeof r&&(r=n+r.length),void 0===r&&(r=n),n<0||n>e.length?e:e.substring(0,n)+t+e.substring(r)},replaceWith:function(n,e,r,i){if(e.length){var a=0,o=[];e.forEach(function(e){var t=i?r:this.repeatString(r,e[1]-e[0]);o.push(n.substring(a,e[0]),t),a=e[1]},this),n=o.join("")+n.substring(a)}return n},narrowToNonSpace:function(e,t,n){for(var r=y.create(t,n),i=/[\s\n\r\u00a0]/;r.start<r.end&&i.test(e.charAt(r.start));)r.start++;for(;r.end>r.start;)if(r.end--,!i.test(e.charAt(r.end))){r.end++;break}return r},findNewlineBounds:function(e,t){for(var n,r=e.length,i=0,a=r-1,o=t-1;0<o;o--)if("\n"==(n=e.charAt(o))||"\r"==n){i=o+1;break}for(var s=t;s<r;s++)if("\n"==(n=e.charAt(s))||"\r"==n){a=s;break}return y.create(i,a-i)},deepMerge:function(){var e,t,n,r,i,a,o=arguments[0]||{},s=1,y=arguments.length;for("object"!=typeof o&&"function"!=typeof o&&(o={});s<y;s++)if(null!==(e=arguments[s]))for(t in e)n=o[t],o!==(r=e[t])&&(r&&("object"==typeof r||(i=Array.isArray(r)))?(a=i?(i=!1,n&&Array.isArray(n)?n:[]):n&&"object"==typeof n?n:{},o[t]=this.deepMerge(a,r)):void 0!==r&&(o[t]=r));return o},parseJSON:function(e){if("object"==typeof e)return e;try{return JSON.parse(e)}catch(e){return{}}},unique:function(e,n){var r=[];return e.filter(function(e){var t=n?n(e):e;if(r.indexOf(t)<0)return r.push(t),!0})},pick:function(t){var n={},r=this.toArray(arguments,1);return Object.keys(t).forEach(function(e){~r.indexOf(e)&&(n[e]=t[e])}),n},find:function(n,r,e){var i;return e&&(r=r.bind(e)),Array.isArray(n)?n.some(function(e,t){if(r(e,t))return i=e}):Object.keys(n).some(function(e,t){if(r(n[e],t))return i=n[e]}),i},toArray:function(e,t){return Array.isArray(e)&&!t?e:Array.prototype.slice.call(e,t||0)},extend:function(t){for(var n,e=1,r=arguments.length;e<r;e++)(n=arguments[e])&&Object.keys(n).forEach(function(e){t[e]=n[e]});return t},defaults:function(t){for(var n,e=1,r=arguments.length;e<r;e++)(n=arguments[e])&&Object.keys(n).forEach(function(e){e in t||(t[e]=n[e])});return t},flatten:function(e,t){t=t||[];var n=this;return n.toArray(e).forEach(function(e){Array.isArray(e)?n.flatten(e,t):t.push(e)}),t},clone:function(e){return Array.isArray(e)?e.slice(0):this.extend({},e)},without:function(n){return this.toArray(arguments,1).forEach(function(e){for(var t;~(t=n.indexOf(e));)n.splice(t,1)}),n},last:function(e){return e[e.length-1]}}})},{"../assets/range":30}],74:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("./common"),i=e("./comments"),y=e("../assets/range"),l=e("../assets/stringStream"),r=(e("../parser/css"),e("../assets/htmlMatcher")),a=e("../editTree/xml"),o=1,c=1e6,p=/^(\s*).+?(\s*)$/,u=/\s/g;function f(e){return'"'==e||"'"==e}function d(e,t){this.id="s"+(o=(o+1)%c),this.parent=null,this.nextSibling=null,this.previousSibling=null,this._source=t,this._name=null,this._content=null,this._data={},!e&&t&&(e=y(0,t)),this.range=e,this.children=[]}return d.prototype={addChild:function(e){e instanceof d||(e=new d(e));var t=s.last(this.children);return t&&((t.nextSibling=e).previousSibling=t),(e.parent=this).children.push(e),e},root:function(){var e=this;do{if(!e.parent)return e}while(e=e.parent);return e},source:function(){return this._source||this.root()._source},name:function(){if(null===this._name){var e=this.nameRange();e&&(this._name=e.substring(this.source()))}return this._name},nameRange:function(){if(this.range&&"_selectorEnd"in this.range)return y.create2(this.range.start,this.range._selectorEnd)},matchDeep:function(e){if(!this.range.inside(e))return null;for(var t,n=0,r=this.children.length;n<r;n++)if(t=this.children[n].matchDeep(e))return t;return this.parent?this:null},allRanges:function(){var t=[];return this.parent&&t.push(this.range),this.children.forEach(function(e){t=t.concat(e.allRanges())}),t},data:function(e,t){return void 0!==t&&(this._data[e]=t),this._data[e]},stringify:function(t){t=t||"";var n="";return this.children.forEach(function(e){n+=t+e.name().replace(/\n/g,"\\n")+"\n",n+=e.stringify(t+"--")}),n},content:function(){if(null!==this._content)return this._content;if(!(this.range&&"_contentStart"in this.range))return"";var e=y.create2(this.range._contentStart+1,this.range.end-1),t=this.source(),n=e.start,r="";return this.children.forEach(function(e){r+=t.substring(n,e.range.start),n=e.range.end}),r+=t.substring(n,e.end),this._content=s.trim(r)}},{findAllRules:function(r){r=this.sanitize(r);for(var e,t,n=l(r),i=[],a=this,o=function(e){var t=a.extractSelector(r,e.start),n=y.create2(t.start,e.end);n._selectorEnd=t.end,n._contentStart=e.start,i.push(n)};t=n.next();)if(f(t)){if(!n.skipString(t))break}else"{"==t&&((e=this.matchBracesRanges(r,n.pos-1)).forEach(o),e.length)&&(n.pos=s.last(e).end);return i.sort(function(e,t){return e.start-t.start})},matchBracesRanges:function(e,t,n){n&&(e=this.sanitize(e));var r=l(e);r.start=r.pos=t;for(var i,a=[],o=[];i=r.next();)if("{"==i)a.push(r.pos-1);else if("}"==i){if(!a.length)throw"Invalid source structure (check for curly braces)";if(o.push(y.create2(a.pop(),r.pos)),!a.length)return o}else r.skipQuoted();return o},extractSelector:function(t,n,e){e&&(t=this.sanitize(t));for(var r,i=function(){var e=t.charAt(n);if('"'!=e&&"'"!=e)return!1;for(;0<=--n&&(t.charAt(n)!=e||"\\"==t.charAt(n-1)););return!0},a=n;0<=--n;)if(!i())if(")"!=(r=t.charAt(n))){if("{"==r||"}"==r||";"==r){n++;break}}else for(;0<=--n&&(i()||"("!=t.charAt(n)););n<0&&(n=0);var o=t.substring(n,a).replace(u," ").match(p);return o&&(n+=o[1].length,a-=o[2].length),y.create2(n,a)},matchEnclosingRule:function(e,t){"string"==typeof e&&(e=this.findAllRules(e));var n=e.filter(function(e){return e.inside(t)});return s.last(n)},locateRule:function(e,t,n){var r=0,i=this.styleTagRange(e,t);i&&(r=i.start,t-=i.start,e=i.substring(e));var a=this.findAllRules(e),o=this.matchEnclosingRule(a,t);if(o)return o.shift(r);for(var s=0,y=a.length;s<y;s++)if(a[s].start>t)return a[n?s-1:s].shift(r)},sanitize:function(e){e=i.strip(e);for(var t,n=l(e),r=[];t=n.next();)if(f(t))n.skipString(t);else if(("#"===t||"@"===t)&&"{"===n.peek()){if(n.start=n.pos-1,!n.skipTo("}"))throw"Invalid string interpolation at "+n.start;n.pos+=1,r.push([n.start,n.pos])}return s.replaceWith(e,r,"a")},sectionTree:function(e){var n=new d(null,e),t=this.findAllRules(e),r=n;return t.forEach(function(e){r=function(e,t){for(;t&&t.range;){if(t.range.contains(e))return t.addChild(e);t=t.parent}return n.addChild(e)}(e,r)}),n},nestedSectionsInRule:function(e){var t=e.valueRange(!0).start,n=this.findAllRules(e.valueRange().substring(e.source));return n.forEach(function(e){e.start+=t,e.end+=t,e._selectorEnd+=t,e._contentStart+=t}),n},styleTagRange:function(e,t){var n=r.tag(e,t);return n&&"style"==n.open.name.toLowerCase()&&n.innerRange.cmp(t,"lte","gte")&&n.innerRange},styleAttrRange:function(e,t){var n=a.parseFromPosition(e,t,!0);if(n){var r=n.itemFromPosition(t,!0);return r&&"style"==r.name().toLowerCase()&&r.valueRange(!0).cmp(t,"lte","gte")&&r.valueRange(!0)}},CSSSection:d}})},{"../assets/htmlMatcher":26,"../assets/range":30,"../assets/stringStream":32,"../editTree/xml":38,"../parser/css":56,"./comments":72,"./common":73}],75:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var i=e("./common"),a=e("../assets/resources");return{isInsideTag:function(e,t){for(var n=t;-1<n&&"<"!=e.charAt(n);)n--;if(-1!=n){var r=/^<\/?\w[\w\:\-]*.*?>/.exec(e.substring(n));if(r&&n<t&&t<n+r[0].length)return!0}return!1},outputInfo:function(e,t,n){return n=n||e.getProfileName(),{syntax:String(t||e.getSyntax()),profile:n||null,content:String(e.getContent())}},unindent:function(e,t){return i.unindentString(t,this.getCurrentLinePadding(e))},getCurrentLinePadding:function(e){return i.getLinePadding(e.getCurrentLine())},normalize:function(e,t){t=i.extend({newline:a.getNewline(),indentation:a.getVariable("indentation")},t);var n=function(e){return i.repeatString(t.indentation,e.length)},r=i.splitByLines(e);return"\t"!==t.indentation&&(r=r.map(function(e){return e.replace(/^\s+/,function(e){return e.replace(/\t/g,n)})})),r.join(t.newline)}}})},{"../assets/resources":31,"./common":73}],76:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){function c(e){function t(){}return t.prototype=e,new t}var p=0,u=1,f=2,d=3,h=4;function m(e,t,n,r){this.type_=e,this.index_=t||0,this.prio_=n||0,this.number_=null!=r?r:0,this.toString=function(){switch(this.type_){case p:return this.number_;case u:case f:case d:return this.index_;case h:return"CALL";default:return"Invalid Token"}}}function g(e,t,n,r){this.tokens=e,this.ops1=t,this.ops2=n,this.functions=r}var b=/[\\\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,x={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","'":"\\'","\\":"\\\\"};function r(e,t){return Number(e)+Number(t)}function i(e,t){return e-t}function a(e,t){return e*t}function o(e,t){return e/t}function s(e,t){return e%t}function y(e,t){return""+e+t}function l(e){return-e}function w(e){return Math.random()*(e||1)}function v(e){for(var t=e=Math.floor(e);1<e;)t*=--e;return t}function _(e,t){return Math.sqrt(e*e+t*t)}function k(e,t){return"[object Array]"!=Object.prototype.toString.call(e)?[e,t]:((e=e.slice()).push(t),e)}function S(){this.success=!1,this.errormsg="",this.expression="",this.pos=0,this.tokennumber=0,this.tokenprio=0,this.tokenindex=0,this.tmpprio=0,this.ops1={sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,sqrt:Math.sqrt,log:Math.log,abs:Math.abs,ceil:Math.ceil,floor:Math.floor,round:Math.round,"-":l,exp:Math.exp},this.ops2={"+":r,"-":i,"*":a,"/":o,"%":s,"^":Math.pow,",":k,"||":y},this.functions={random:w,fac:v,min:Math.min,max:Math.max,pyt:_,pow:Math.pow,atan2:Math.atan2},this.consts={E:Math.E,PI:Math.PI}}g.prototype={simplify:function(e){e=e||{};var t,n,r,i,a=[],o=[],s=this.tokens.length,y=0;for(y=0;y<s;y++){var l=(i=this.tokens[y]).type_;if(l===p)a.push(i);else if(l===d&&i.index_ in e)i=new m(p,0,0,e[i.index_]),a.push(i);else if(l===f&&1<a.length)n=a.pop(),t=a.pop(),r=this.ops2[i.index_],i=new m(p,0,0,r(t.number_,n.number_)),a.push(i);else if(l===u&&0<a.length)t=a.pop(),r=this.ops1[i.index_],i=new m(p,0,0,r(t.number_)),a.push(i);else{for(;0<a.length;)o.push(a.shift());o.push(i)}}for(;0<a.length;)o.push(a.shift());return new g(o,c(this.ops1),c(this.ops2),c(this.functions))},substitute:function(e,t){t instanceof g||(t=(new S).parse(String(t)));var n,r=[],i=this.tokens.length,a=0;for(a=0;a<i;a++){if((n=this.tokens[a]).type_===d&&n.index_===e)for(var o=0;o<t.tokens.length;o++){var s=t.tokens[o],y=new m(s.type_,s.index_,s.prio_,s.number_);r.push(y)}else r.push(n)}return new g(r,c(this.ops1),c(this.ops2),c(this.functions))},evaluate:function(e){e=e||{};var t,n,r,i,a=[],o=this.tokens.length,s=0;for(s=0;s<o;s++){var y=(i=this.tokens[s]).type_;if(y===p)a.push(i.number_);else if(y===f)n=a.pop(),t=a.pop(),r=this.ops2[i.index_],a.push(r(t,n));else if(y===d)if(i.index_ in e)a.push(e[i.index_]);else{if(!(i.index_ in this.functions))throw new Error("undefined variable: "+i.index_);a.push(this.functions[i.index_])}else if(y===u)t=a.pop(),r=this.ops1[i.index_],a.push(r(t));else{if(y!==h)throw new Error("invalid Expression");if(t=a.pop(),!(r=a.pop()).apply||!r.call)throw new Error(r+" is not a function");"[object Array]"==Object.prototype.toString.call(t)?a.push(r.apply(void 0,t)):a.push(r.call(void 0,t))}}if(1<a.length)throw new Error("invalid Expression (parity)");return a[0]},toString:function(e){var t,n,r,i,a,o=[],s=this.tokens.length,y=0;for(y=0;y<s;y++){var l=(i=this.tokens[y]).type_;if(l===p)o.push("string"==typeof(a=i.number_)?(b.lastIndex=0,b.test(a)?"'"+a.replace(b,function(e){var t=x[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+"'":"'"+a+"'"):a);else if(l===f)n=o.pop(),t=o.pop(),r=i.index_,e&&"^"==r?o.push("Math.pow("+t+","+n+")"):o.push("("+t+r+n+")");else if(l===d)o.push(i.index_);else if(l===u)t=o.pop(),"-"===(r=i.index_)?o.push("("+r+t+")"):o.push(r+"("+t+")");else{if(l!==h)throw new Error("invalid Expression");t=o.pop(),r=o.pop(),o.push(r+"("+t+")")}}if(1<o.length)throw new Error("invalid Expression (parity)");return o[0]},variables:function(){for(var e=this.tokens.length,t=[],n=0;n<e;n++){var r=this.tokens[n];r.type_===d&&-1==t.indexOf(r.index_)&&t.push(r.index_)}return t},toJSFunction:function(e,t){return new Function(e,"with(Parser.values) { return "+this.simplify(t).toString(!0)+"; }")}},S.parse=function(e){return(new S).parse(e)},S.evaluate=function(e,t){return S.parse(e).evaluate(t)},S.Expression=g,S.values={sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,sqrt:Math.sqrt,log:Math.log,abs:Math.abs,ceil:Math.ceil,floor:Math.floor,round:Math.round,random:w,fac:v,exp:Math.exp,min:Math.min,max:Math.max,pyt:_,pow:Math.pow,atan2:Math.atan2,E:Math.E,PI:Math.PI};return S.prototype={parse:function(e){this.errormsg="",this.success=!0;var t=[],n=[],r=77,i=this.tmpprio=0;for(this.expression=e,this.pos=0;this.pos<this.expression.length;)if(this.isOperator())this.isSign()&&64&r?(this.isNegativeSign()&&(this.tokenprio=2,this.tokenindex="-",i++,this.addfunc(n,t,u)),r=77):this.isComment()||(0==(2&r)&&this.error_parsing(this.pos,"unexpected operator"),i+=2,this.addfunc(n,t,f),r=77);else if(this.isNumber()){0==(1&r)&&this.error_parsing(this.pos,"unexpected number");var a=new m(p,0,0,this.tokennumber);n.push(a),r=50}else if(this.isString()){0==(1&r)&&this.error_parsing(this.pos,"unexpected string");a=new m(p,0,0,this.tokennumber);n.push(a),r=50}else if(this.isLeftParenth())0==(8&r)&&this.error_parsing(this.pos,'unexpected "("'),128&r&&(i+=2,this.tokenprio=-2,this.tokenindex=-1,this.addfunc(n,t,h)),r=333;else if(this.isRightParenth()){if(256&r){a=new m(p,0,0,[]);n.push(a)}else 0==(16&r)&&this.error_parsing(this.pos,'unexpected ")"');r=186}else if(this.isComma())0==(32&r)&&this.error_parsing(this.pos,'unexpected ","'),this.addfunc(n,t,f),i+=2,r=77;else if(this.isConst()){0==(1&r)&&this.error_parsing(this.pos,"unexpected constant");var o=new m(p,0,0,this.tokennumber);n.push(o),r=50}else if(this.isOp2())0==(4&r)&&this.error_parsing(this.pos,"unexpected function"),this.addfunc(n,t,f),i+=2,r=8;else if(this.isOp1())0==(4&r)&&this.error_parsing(this.pos,"unexpected function"),this.addfunc(n,t,u),i++,r=8;else if(this.isVar()){0==(1&r)&&this.error_parsing(this.pos,"unexpected variable");var s=new m(d,this.tokenindex,0,0);n.push(s),r=186}else this.isWhite()||(""===this.errormsg?this.error_parsing(this.pos,"unknown character"):this.error_parsing(this.pos,this.errormsg));for((this.tmpprio<0||10<=this.tmpprio)&&this.error_parsing(this.pos,'unmatched "()"');0<t.length;){var y=t.pop();n.push(y)}return i+1!==n.length&&this.error_parsing(this.pos,"parity"),new g(n,c(this.ops1),c(this.ops2),c(this.functions))},evaluate:function(e,t){return this.parse(e).evaluate(t)},error_parsing:function(e,t){throw this.success=!1,this.errormsg="parse error [column "+e+"]: "+t,new Error(this.errormsg)},addfunc:function(e,t,n){for(var r=new m(n,this.tokenindex,this.tokenprio+this.tmpprio,0);0<t.length&&r.prio_<=t[t.length-1].prio_;)e.push(t.pop());t.push(r)},isNumber:function(){for(var e=!1,t="";this.pos<this.expression.length;){var n=this.expression.charCodeAt(this.pos);if(!(48<=n&&n<=57||46===n))break;t+=this.expression.charAt(this.pos),this.pos++,this.tokennumber=parseFloat(t),e=!0}return e},unescape:function(e,t){for(var n=[],r=!1,i=0;i<e.length;i++){var a=e.charAt(i);if(r){switch(a){case"'":n.push("'");break;case"\\":n.push("\\");break;case"/":n.push("/");break;case"b":n.push("\b");break;case"f":n.push("\f");break;case"n":n.push("\n");break;case"r":n.push("\r");break;case"t":n.push("\t");break;case"u":var o=parseInt(e.substring(i+1,i+5),16);n.push(String.fromCharCode(o)),i+=4;break;default:throw this.error_parsing(t+i,"Illegal escape sequence: '\\"+a+"'")}r=!1}else"\\"==a?r=!0:n.push(a)}return n.join("")},isString:function(){var e=!1,t="",n=this.pos;if(this.pos<this.expression.length&&"'"==this.expression.charAt(this.pos))for(this.pos++;this.pos<this.expression.length;){if("'"==this.expression.charAt(this.pos)&&"\\"!=t.slice(-1)){this.pos++,this.tokennumber=this.unescape(t,n),e=!0;break}t+=this.expression.charAt(this.pos),this.pos++}return e},isConst:function(){for(var e in this.consts){var t=e.length;if(e===this.expression.substr(this.pos,t))return this.tokennumber=this.consts[e],this.pos+=t,!0}return!1},isOperator:function(){var e=this.expression.charCodeAt(this.pos);if(43===e)this.tokenprio=0,this.tokenindex="+";else if(45===e)this.tokenprio=0,this.tokenindex="-";else if(124===e){if(124!==this.expression.charCodeAt(this.pos+1))return!1;this.pos++,this.tokenprio=0,this.tokenindex="||"}else if(42===e)this.tokenprio=1,this.tokenindex="*";else if(47===e)this.tokenprio=2,this.tokenindex="/";else if(37===e)this.tokenprio=2,this.tokenindex="%";else{if(94!==e)return!1;this.tokenprio=3,this.tokenindex="^"}return this.pos++,!0},isSign:function(){var e=this.expression.charCodeAt(this.pos-1);return 45===e||43===e},isPositiveSign:function(){return 43===this.expression.charCodeAt(this.pos-1)},isNegativeSign:function(){return 45===this.expression.charCodeAt(this.pos-1)},isLeftParenth:function(){return 40===this.expression.charCodeAt(this.pos)&&(this.pos++,this.tmpprio+=10,!0)},isRightParenth:function(){return 41===this.expression.charCodeAt(this.pos)&&(this.pos++,this.tmpprio-=10,!0)},isComma:function(){return 44===this.expression.charCodeAt(this.pos)&&(this.pos++,this.tokenprio=-1,this.tokenindex=",",!0)},isWhite:function(){var e=this.expression.charCodeAt(this.pos);return(32===e||9===e||10===e||13===e)&&(this.pos++,!0)},isOp1:function(){for(var e="",t=this.pos;t<this.expression.length;t++){var n=this.expression.charAt(t);if(n.toUpperCase()===n.toLowerCase()&&(t===this.pos||"_"!=n&&(n<"0"||"9"<n)))break;e+=n}return 0<e.length&&e in this.ops1&&(this.tokenindex=e,this.tokenprio=5,this.pos+=e.length,!0)},isOp2:function(){for(var e="",t=this.pos;t<this.expression.length;t++){var n=this.expression.charAt(t);if(n.toUpperCase()===n.toLowerCase()&&(t===this.pos||"_"!=n&&(n<"0"||"9"<n)))break;e+=n}return 0<e.length&&e in this.ops2&&(this.tokenindex=e,this.tokenprio=5,this.pos+=e.length,!0)},isVar:function(){for(var e="",t=this.pos;t<this.expression.length;t++){var n=this.expression.charAt(t);if(n.toUpperCase()===n.toLowerCase()&&(t===this.pos||"_"!=n&&(n<"0"||"9"<n)))break;e+=n}return 0<e.length&&(this.tokenindex=e,this.tokenprio=4,this.pos+=e.length,!0)},isComment:function(){return 47===this.expression.charCodeAt(this.pos-1)&&42===this.expression.charCodeAt(this.pos)&&(this.pos=this.expression.indexOf("*/",this.pos)+2,1===this.pos&&(this.pos=this.expression.length),!0)}},S})},{}],77:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var a=e("../assets/stringStream"),o=e("./common");function s(e){for(var t=[],n=a(e);!n.eol();)","==n.peek()&&(t.push(o.trim(n.current())),n.next(),n.start=n.pos),n.next();return t.push(o.trim(n.current())),t.filter(function(e){return!!e})}function y(e,t){if(/^['"]/.test(e))return e.replace(/^(['"])(.+?)\1$/,"$2");if(!isNaN(+e))return+e;if(e){for(var n=e.split("."),r=t;n.length;)r=r[n.shift()];return r}}function r(e,i){return e.replace(/<%[=\-](.+?)%>/g,function(e,t){var n=function(e){for(var t,n=null,r=a(e);!r.eol();){if("("==r.peek()){n=r.current(),r.start=r.pos,r.skipToPair("(",")",!0),t=s((t=r.current()).substring(1,t.length-1));break}r.next()}return n&&{name:n,args:t}}(t=o.trim(t));if(n){var r=n.args.map(function(e){return y(e,i)});return i[n.name].apply(i,r)}return y(t,i)})}return function(t,e){return e?r(t,e):function(e){return r(t,e)}}})},{"../assets/stringStream":32,"./common":73}],78:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){var s=e("../utils/common"),y=function(){};return{extend:function(e,t){var n,r,i,a,o=(n=this,i=t,a=(r=e)&&r.hasOwnProperty("constructor")?r.constructor:function(){n.apply(this,arguments)},s.extend(a,n),y.prototype=n.prototype,a.prototype=new y,r&&s.extend(a.prototype,r),i&&s.extend(a,i),(a.prototype.constructor=a).__super__=n.prototype,a);return o.extend=this.extend,e.hasOwnProperty("toString")&&(o.prototype.toString=e.toString),o}}})},{"../utils/common":73}],79:[function(t,n,r){if("object"==typeof n&&"function"!=typeof e)var e=function(e){n.exports=e(t,r,n)};e(function(e,t,n){return{score:function(e,t,n){if(e==t)return 1;if(""==t)return 0;for(var r,i,a,o,s,y,l,c,p,u=0,f=t.length,d=e.length,h=1,m=0;m<f;++m){if(y=t.charAt(m),l=e.indexOf(y.toLowerCase()),c=e.indexOf(y.toUpperCase()),-1===(s=-1<(p=Math.min(l,c))?p:Math.max(l,c))){if(n){h+=1-n;continue}return 0}o=.1,e[s]===y&&(o+=.1),0===s?(o+=.6,0===m&&(r=1)):" "===e.charAt(s-1)&&(o+=.8),e=e.substring(s+1,d),u+=o}return a=((i=u/f)*(f/d)+i)/2,a/=h,r&&a+.15<1&&(a+=.15),a}}})},{}],80:[function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e.default:e};t.exports=y;var o=r(e("./editor")),a=r(e("./emmet")),i={"Cmd-E":"emmet.expand_abbreviation",Tab:"emmet.expand_abbreviation_with_tab","Cmd-D":"emmet.balance_outward","Shift-Cmd-D":"emmet.balance_inward","Cmd-M":"emmet.matching_pair","Shift-Cmd-A":"emmet.wrap_with_abbreviation","Ctrl-Alt-Right":"emmet.next_edit_point","Ctrl-Alt-Left":"emmet.prev_edit_point","Cmd-L":"emmet.select_line","Cmd-Shift-M":"emmet.merge_lines","Cmd-/":"emmet.toggle_comment","Cmd-J":"emmet.split_join_tag","Cmd-K":"emmet.remove_tag","Shift-Cmd-Y":"emmet.evaluate_math_expression","Ctrl-Up":"emmet.increment_number_by_1","Ctrl-Down":"emmet.decrement_number_by_1","Ctrl-Alt-Up":"emmet.increment_number_by_01","Ctrl-Alt-Down":"emmet.decrement_number_by_01","Shift-Ctrl-Up":"emmet.increment_number_by_10","Shift-Ctrl-Down":"emmet.decrement_number_by_10","Shift-Cmd-.":"emmet.select_next_item","Shift-Cmd-,":"emmet.select_previous_item","Cmd-B":"emmet.reflect_css_value",Enter:"emmet.insert_formatted_line_break_only"},s=["prev_edit_point","next_edit_point","merge_lines","reflect_css_value","select_next_item","select_previous_item","wrap_with_abbreviation","update_tag","insert_formatted_line_break_only"];function y(e){var t=void 0===arguments[1]?i:arguments[1];return t=p(t),e.__emmetKeymap=t,e.addKeyMap(t),e}function l(){if("3.1"<=CodeMirror.version)return CodeMirror.Pass;throw CodeMirror.Pass}function c(e,t){if("expand_abbreviation_with_tab"==e&&(t.context.somethingSelected()||!t.isValidSyntax()))return l();var n=!1;try{if(!(n=a.run(e,t))&&"insert_formatted_line_break_only"==e)return l()}catch(e){console.error(e)}return n}function p(t){var n=/Mac/.test(navigator.platform),r={};return Object.keys(t).forEach(function(e){return r[n?e:e.replace("Cmd","Ctrl")]=t[e]}),r}y.dispose=function(e){e.__emmetKeymap&&(e.removeKeyMap(e.__emmetKeymap),delete e.__emmetKeymap)},y.defaultKeymap=i,y.systemKeymap=p,y.emmet=a,y.EmmetEditor=o,y.setup=function(i){a.actions.getList().forEach(function(e){var a,n,t=e.name,r="emmet."+t;i.commands[r]||(i.commands[r]=~s.indexOf(t)?(n=t,function(e){var t;return e.operation(function(){return t=c(n,new o(e))}),t}):(a=t,function(e){var n=new o(e),r=n.selectionList(),i=null;return e.operation(function(){for(var e=0,t=r.length;e<t&&(n.selectionIndex=e,(i=c(a,n))!==CodeMirror.Pass);e++);}),i}))}),i.defineOption?i.defineOption("profile","html"):i.defaults.profile="html"},"undefined"!=typeof CodeMirror&&y.setup(CodeMirror)},{"./editor":1,"./emmet":2}]},{},[80])(80)});
!function(){var e,t,n,_,V={};function P(e,t){for(var n=0;n<t.length;n+=1)if(t[n]===e)return!0;return!1}function I(e){return e.replace(/^\s+|\s+$/g,"")}function r(e,t){"use strict";return new i(e,t).beautify()}e=V,t="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ--ℝℤΩℨK--ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA--zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",n=new RegExp("["+t+"]"),_=new RegExp("["+t+"̀-ͯ҃-֑҇-ׇֽֿׁׂׅׄؐ-ؚؠ-ىٲ-ۓۧ-ۨۻ-ۼܰ-݊ࠀ-ࠔࠛ-ࠣࠥ-ࠧࠩ-࠭ࡀ-ࡗࣤ-ࣾऀ-ःऺ-़ा-ॏ॑-ॗॢ-ॣ०-९ঁ-ঃ়া-ৄেৈৗয়-ৠਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢ-ૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୟ-ୠ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఁ-ఃె-ైొ-్ౕౖౢ-ౣ౦-౯ಂಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢ-ೣ೦-೯ംഃെ-ൈൗൢ-ൣ൦-൯ංඃ්ා-ුූෘ-ෟෲෳิ-ฺเ-ๅ๐-๙ິ-ູ່-ໍ໐-໙༘༙༠-༩༹༵༷ཁ-ཇཱ-྄྆-྇ྍ-ྗྙ-ྼ࿆က-ဩ၀-၉ၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟ᜎ-ᜐᜠ-ᜰᝀ-ᝐᝲᝳក-ឲ៝០-៩᠋-᠍᠐-᠙ᤠ-ᤫᤰ-᤻ᥑ-ᥭᦰ-ᧀᧈ-ᧉ᧐-᧙ᨀ-ᨕᨠ-ᩓ᩠-᩿᩼-᪉᪐-᪙ᭆ-ᭋ᭐-᭙᭫-᭳᮰-᮹᯦-᯳ᰀ-ᰢ᱀-᱉ᱛ-ᱽ᳐-᳒ᴀ-ᶾḁ-ἕ‌‍‿⁀⁔⃐-⃥⃜⃡-⃰ⶁ-ⶖⷠ-ⷿ〡-〨゙゚Ꙁ-ꙭꙴ-꙽ꚟ꛰-꛱ꟸ-ꠀ꠆ꠋꠣ-ꠧꢀ-ꢁꢴ-꣄꣐-꣙ꣳ-ꣷ꤀-꤉ꤦ-꤭ꤰ-ꥅꦀ-ꦃ꦳-꧀ꨀ-ꨧꩀ-ꩁꩌ-ꩍ꩐-꩙ꩻꫠ-ꫩꫲ-ꫳꯀ-ꯡ꯬꯭꯰-꯹ﬠ-ﬨ︀-️︠-︦︳︴﹍--_]"),e.newline=/[\n\r\u2028\u2029]/,e.isIdentifierStart=function(e){return e<65?36===e:e<91||(e<97?95===e:e<123||170<=e&&n.test(String.fromCharCode(e)))},e.isIdentifierChar=function(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||170<=e&&_.test(String.fromCharCode(e))))};var C={BlockStatement:"BlockStatement",Statement:"Statement",ObjectLiteral:"ObjectLiteral",ArrayLiteral:"ArrayLiteral",ForInitializer:"ForInitializer",Conditional:"Conditional",Expression:"Expression"};function i(_,e){"use strict";var a,r,i,o,s,l,c,f,d,t,n,E,u,p=[],T="";function h(e,t){var n=0;return e&&(n=e.indentation_level,!a.just_added_newline()&&e.line_indent_level>n&&(n=e.line_indent_level)),{mode:t,parent:e,last_text:e?e.last_text:"",last_word:e?e.last_word:"",declaration_statement:!1,declaration_assignment:!1,multiline_frame:!1,if_block:!1,else_block:!1,do_block:!1,do_while:!1,in_case_statement:!1,in_case:!1,case_body:!1,indentation_level:n,line_indent_level:e?e.line_indent_level:n,start_line_index:a.get_line_number(),ternary_depth:0}}for(E={TK_START_EXPR:function(){g();var e=C.Expression;if("["===o.text){if("TK_WORD"===s||")"===f.last_text)return"TK_RESERVED"===s&&P(f.last_text,i.line_starters)&&(a.space_before_token=!0),S(e),b(),A(),void(u.space_in_paren&&(a.space_before_token=!0));e=C.ArrayLiteral,O(f.mode)&&("["!==f.last_text&&(","!==f.last_text||"]"!==l&&"}"!==l)||u.keep_array_indentation||m())}else"TK_RESERVED"===s&&"for"===f.last_text?e=C.ForInitializer:"TK_RESERVED"===s&&P(f.last_text,["if","while"])&&(e=C.Conditional);";"===f.last_text||"TK_START_BLOCK"===s?m():"TK_END_EXPR"===s||"TK_START_EXPR"===s||"TK_END_BLOCK"===s||"."===f.last_text?x(o.wanted_newline):"TK_RESERVED"===s&&"("===o.text||"TK_WORD"===s||"TK_OPERATOR"===s?"TK_RESERVED"===s&&("function"===f.last_word||"typeof"===f.last_word)||"*"===f.last_text&&"function"===l?u.space_after_anon_function&&(a.space_before_token=!0):"TK_RESERVED"!==s||!P(f.last_text,i.line_starters)&&"catch"!==f.last_text||u.space_before_conditional&&(a.space_before_token=!0):a.space_before_token=!0;"("===o.text&&("TK_EQUALS"!==s&&"TK_OPERATOR"!==s||w()||x());S(e),b(),u.space_in_paren&&(a.space_before_token=!0);A()},TK_END_EXPR:function(){for(;f.mode===C.Statement;)v();f.multiline_frame&&x("]"===o.text&&O(f.mode)&&!u.keep_array_indentation);u.space_in_paren&&("TK_START_EXPR"!==s||u.space_in_empty_paren?a.space_before_token=!0:(a.trim(),a.space_before_token=!1));"]"===o.text&&u.keep_array_indentation?(b(),v()):(v(),b());a.remove_redundant_indentation(d),f.do_while&&d.mode===C.Conditional&&(d.mode=C.Expression,f.do_block=!1,f.do_while=!1)},TK_START_BLOCK:function(){var e=D(1),t=D(2);t&&(":"===t.text&&P(e.type,["TK_STRING","TK_WORD","TK_RESERVED"])||P(e.text,["get","set"])&&P(t.type,["TK_WORD","TK_RESERVED"]))?P(l,["class","interface"])?S(C.BlockStatement):S(C.ObjectLiteral):S(C.BlockStatement);var n=!e.comments_before.length&&"}"===e.text&&"function"===f.last_word&&"TK_END_EXPR"===s;"expand"===u.brace_style?"TK_OPERATOR"!==s&&(n||"TK_EQUALS"===s||"TK_RESERVED"===s&&k(f.last_text)&&"else"!==f.last_text)?a.space_before_token=!0:m(!1,!0):"TK_OPERATOR"!==s&&"TK_START_EXPR"!==s?"TK_START_BLOCK"===s?m():a.space_before_token=!0:O(d.mode)&&","===f.last_text&&("}"===l?a.space_before_token=!0:m());b(),A()},TK_END_BLOCK:function(){for(;f.mode===C.Statement;)v();var e="TK_START_BLOCK"===s;"expand"===u.brace_style?e||m():e||(O(f.mode)&&u.keep_array_indentation?(u.keep_array_indentation=!1,m(),u.keep_array_indentation=!0):m());v(),b()},TK_WORD:N,TK_RESERVED:N,TK_SEMICOLON:function(){g()&&(a.space_before_token=!1);for(;f.mode===C.Statement&&!f.if_block&&!f.do_block;)v();b()},TK_STRING:function(){g()?a.space_before_token=!0:"TK_RESERVED"===s||"TK_WORD"===s?a.space_before_token=!0:"TK_COMMA"===s||"TK_START_EXPR"===s||"TK_EQUALS"===s||"TK_OPERATOR"===s?w()||x():m();b()},TK_EQUALS:function(){g();f.declaration_statement&&(f.declaration_assignment=!0);a.space_before_token=!0,b(),a.space_before_token=!0},TK_OPERATOR:function(){g();if("TK_RESERVED"===s&&k(f.last_text))return a.space_before_token=!0,void b();if("*"===o.text&&"TK_DOT"===s)return void b();if(":"===o.text&&f.in_case)return f.case_body=!0,A(),b(),m(),void(f.in_case=!1);if("::"===o.text)return void b();!o.wanted_newline||"--"!==o.text&&"++"!==o.text||m(!1,!0);"TK_OPERATOR"===s&&x();var e=!0,t=!0;P(o.text,["--","++","!","~"])||P(o.text,["-","+"])&&(P(s,["TK_START_BLOCK","TK_START_EXPR","TK_EQUALS","TK_OPERATOR"])||P(f.last_text,i.line_starters)||","===f.last_text)?(t=e=!1,";"===f.last_text&&y(f.mode)&&(e=!0),"TK_RESERVED"===s||"TK_END_EXPR"===s?e=!0:"TK_OPERATOR"===s&&(e=P(o.text,["--","-"])&&P(f.last_text,["--","-"])||P(o.text,["++","+"])&&P(f.last_text,["++","+"])),f.mode!==C.BlockStatement&&f.mode!==C.Statement||"{"!==f.last_text&&";"!==f.last_text||m()):":"===o.text?0===f.ternary_depth?e=!1:f.ternary_depth-=1:"?"===o.text?f.ternary_depth+=1:"*"===o.text&&"TK_RESERVED"===s&&"function"===f.last_text&&(t=e=!1);a.space_before_token=a.space_before_token||e,b(),a.space_before_token=t},TK_COMMA:function(){if(f.declaration_statement)return y(f.parent.mode)&&(f.declaration_assignment=!1),b(),void(f.declaration_assignment?m(f.declaration_assignment=!1,!0):a.space_before_token=!0);b(),f.mode===C.ObjectLiteral||f.mode===C.Statement&&f.parent.mode===C.ObjectLiteral?(f.mode===C.Statement&&v(),m()):a.space_before_token=!0},TK_BLOCK_COMMENT:function(){var e,t=function(e){e=e.replace(/\x0d/g,"");var t=[],n=e.indexOf("\n");for(;-1!==n;)t.push(e.substring(0,n)),e=e.substring(n+1),n=e.indexOf("\n");e.length&&t.push(e);return t}(o.text),n=!1,_=!1,r=o.whitespace_before.join(""),i=r.length;m(!1,!0),1<t.length&&(!function(e,t){for(var n=0;n<e.length;n++){var _=I(e[n]);if(_.charAt(0)!==t)return!1}return!0}(t.slice(1),"*")?function(e,t){for(var n,_=0,r=e.length;_<r;_++)if((n=e[_])&&0!==n.indexOf(t))return!1;return!0}(t.slice(1),r)&&(_=!0):n=!0);for(b(t[0]),e=1;e<t.length;e++)m(!1,!0),n?b(" "+I(t[e])):_&&t[e].length>i?b(t[e].substring(i)):a.add_token(t[e]);m(!1,!0)},TK_INLINE_COMMENT:function(){a.space_before_token=!0,b(),a.space_before_token=!0},TK_COMMENT:function(){o.wanted_newline?m(!1,!0):a.trim(!0);a.space_before_token=!0,b(),m(!1,!0)},TK_DOT:function(){g();"TK_RESERVED"===s&&k(f.last_text)?a.space_before_token=!0:x(")"===f.last_text&&u.break_chained_methods);b()},TK_UNKNOWN:function(){b(),"\n"===o.text[o.text.length-1]&&m()},TK_EOF:function(){for(;f.mode===C.Statement;)v()}},u={},void 0!==(e=e||{}).braces_on_own_line&&(u.brace_style=e.braces_on_own_line?"expand":"collapse"),u.brace_style=e.brace_style?e.brace_style:u.brace_style?u.brace_style:"collapse","expand-strict"===u.brace_style&&(u.brace_style="expand"),u.indent_size=e.indent_size?parseInt(e.indent_size,10):4,u.indent_char=e.indent_char?e.indent_char:" ",u.preserve_newlines=void 0===e.preserve_newlines||e.preserve_newlines,u.break_chained_methods=void 0!==e.break_chained_methods&&e.break_chained_methods,u.max_preserve_newlines=void 0===e.max_preserve_newlines?0:parseInt(e.max_preserve_newlines,10),u.space_in_paren=void 0!==e.space_in_paren&&e.space_in_paren,u.space_in_empty_paren=void 0!==e.space_in_empty_paren&&e.space_in_empty_paren,u.jslint_happy=void 0!==e.jslint_happy&&e.jslint_happy,u.space_after_anon_function=void 0!==e.space_after_anon_function&&e.space_after_anon_function,u.keep_array_indentation=void 0!==e.keep_array_indentation&&e.keep_array_indentation,u.space_before_conditional=void 0===e.space_before_conditional||e.space_before_conditional,u.unescape_strings=void 0!==e.unescape_strings&&e.unescape_strings,u.wrap_line_length=void 0===e.wrap_line_length?0:parseInt(e.wrap_line_length,10),u.e4x=void 0!==e.e4x&&e.e4x,u.end_with_newline=void 0!==e.end_with_newline&&e.end_with_newline,u.jslint_happy&&(u.space_after_anon_function=!0),e.indent_with_tabs&&(u.indent_char="\t",u.indent_size=1),c="";0<u.indent_size;)c+=u.indent_char,u.indent_size-=1;var R=0;if(_&&_.length){for(;" "===_.charAt(R)||"\t"===_.charAt(R);)T+=_.charAt(R),R+=1;_=_.substring(R)}function K(e){var t=e.newlines;if(u.keep_array_indentation&&O(f.mode))for(n=0;n<t;n+=1)m(0<n);else if(u.max_preserve_newlines&&t>u.max_preserve_newlines&&(t=u.max_preserve_newlines),u.preserve_newlines&&1<e.newlines){m();for(var n=1;n<t;n+=1)m(!0)}E[(o=e).type]()}function x(e){if(e=void 0!==e&&e,!a.just_added_newline())if(u.preserve_newlines&&o.wanted_newline||e)m(!1,!0);else if(u.wrap_line_length){a.current_line.get_character_count()+o.text.length+(a.space_before_token?1:0)>=u.wrap_line_length&&m(!1,!0)}}function m(e,t){if(!t&&";"!==f.last_text&&","!==f.last_text&&"="!==f.last_text&&"TK_OPERATOR"!==s)for(;f.mode===C.Statement&&!f.if_block&&!f.do_block;)v();a.add_new_line(e)&&(f.multiline_frame=!0)}function b(e){e=e||o.text,function(){if(a.just_added_newline())if(u.keep_array_indentation&&O(f.mode)&&o.wanted_newline){a.current_line.push("");for(var e=0;e<o.whitespace_before.length;e+=1)a.current_line.push(o.whitespace_before[e]);a.space_before_token=!1}else a.add_indent_string(f.indentation_level)&&(f.line_indent_level=f.indentation_level)}(),a.add_token(e)}function A(){f.indentation_level+=1}function S(e){d=f?(t.push(f),f):h(null,e),f=h(d,e)}function O(e){return e===C.ArrayLiteral}function y(e){return P(e,[C.Expression,C.ForInitializer,C.Conditional])}function v(){0<t.length&&(d=f,f=t.pop(),d.mode===C.Statement&&a.remove_redundant_indentation(d))}function w(){return f.parent.mode===C.ObjectLiteral&&f.mode===C.Statement&&(":"===f.last_text&&0===f.ternary_depth||"TK_RESERVED"===s&&P(f.last_text,["get","set"]))}function g(){return!!("TK_RESERVED"===s&&P(f.last_text,["var","let","const"])&&"TK_WORD"===o.type||"TK_RESERVED"===s&&"do"===f.last_text||"TK_RESERVED"===s&&"return"===f.last_text&&!o.wanted_newline||"TK_RESERVED"===s&&"else"===f.last_text&&("TK_RESERVED"!==o.type||"if"!==o.text)||"TK_END_EXPR"===s&&(d.mode===C.ForInitializer||d.mode===C.Conditional)||"TK_WORD"===s&&f.mode===C.BlockStatement&&!f.in_case&&"--"!==o.text&&"++"!==o.text&&"TK_WORD"!==o.type&&"TK_RESERVED"!==o.type||f.mode===C.ObjectLiteral&&(":"===f.last_text&&0===f.ternary_depth||"TK_RESERVED"===s&&P(f.last_text,["get","set"])))&&(S(C.Statement),A(),"TK_RESERVED"===s&&P(f.last_text,["var","let","const"])&&"TK_WORD"===o.type&&(f.declaration_statement=!0),w()||x("TK_RESERVED"===o.type&&P(o.text,["do","for","if","while"])),!0)}function k(e){return P(e,["case","return","do","if","throw","else"])}function D(e){var t=r+(e||0);return t<0||t>=p.length?null:p[t]}function N(){("TK_RESERVED"===o.type&&f.mode!==C.ObjectLiteral&&P(o.text,["set","get"])&&(o.type="TK_WORD"),"TK_RESERVED"===o.type&&f.mode===C.ObjectLiteral)&&(":"==D(1).text&&(o.type="TK_WORD"));if(g()||!o.wanted_newline||y(f.mode)||"TK_OPERATOR"===s&&"--"!==f.last_text&&"++"!==f.last_text||"TK_EQUALS"===s||!u.preserve_newlines&&"TK_RESERVED"===s&&P(f.last_text,["var","let","const","set","get"])||m(),f.do_block&&!f.do_while){if("TK_RESERVED"===o.type&&"while"===o.text)return a.space_before_token=!0,b(),a.space_before_token=!0,void(f.do_while=!0);m(),f.do_block=!1}if(f.if_block)if(f.else_block||"TK_RESERVED"!==o.type||"else"!==o.text){for(;f.mode===C.Statement;)v();f.if_block=!1,f.else_block=!1}else f.else_block=!0;if("TK_RESERVED"===o.type&&("case"===o.text||"default"===o.text&&f.in_case_statement))return m(),(f.case_body||u.jslint_happy)&&(0<f.indentation_level&&(!f.parent||f.indentation_level>f.parent.indentation_level)&&(f.indentation_level-=1),f.case_body=!1),b(),f.in_case=!0,void(f.in_case_statement=!0);if("TK_RESERVED"===o.type&&"function"===o.text&&((P(f.last_text,["}",";"])||a.just_added_newline()&&!P(f.last_text,["[","{",":","=",","]))&&(a.just_added_blankline()||o.comments_before.length||(m(),m(!0))),"TK_RESERVED"===s||"TK_WORD"===s?"TK_RESERVED"===s&&P(f.last_text,["get","set","new","return","export"])?a.space_before_token=!0:"TK_RESERVED"===s&&"default"===f.last_text&&"export"===l?a.space_before_token=!0:m():"TK_OPERATOR"===s||"="===f.last_text?a.space_before_token=!0:(f.multiline_frame||!y(f.mode)&&!O(f.mode))&&m()),"TK_COMMA"!==s&&"TK_START_EXPR"!==s&&"TK_EQUALS"!==s&&"TK_OPERATOR"!==s||w()||x(),"TK_RESERVED"===o.type&&P(o.text,["function","get","set"]))return b(),void(f.last_word=o.text);(n="NONE","TK_END_BLOCK"===s?"TK_RESERVED"===o.type&&P(o.text,["else","catch","finally"])?"expand"===u.brace_style||"end-expand"===u.brace_style?n="NEWLINE":(n="SPACE",a.space_before_token=!0):n="NEWLINE":"TK_SEMICOLON"===s&&f.mode===C.BlockStatement?n="NEWLINE":"TK_SEMICOLON"===s&&y(f.mode)?n="SPACE":"TK_STRING"===s?n="NEWLINE":"TK_RESERVED"===s||"TK_WORD"===s||"*"===f.last_text&&"function"===l?n="SPACE":"TK_START_BLOCK"===s?n="NEWLINE":"TK_END_EXPR"===s&&(a.space_before_token=!0,n="NEWLINE"),"TK_RESERVED"===o.type&&P(o.text,i.line_starters)&&")"!==f.last_text&&(n="else"===f.last_text||"export"===f.last_text?"SPACE":"NEWLINE"),"TK_RESERVED"===o.type&&P(o.text,["else","catch","finally"]))?"TK_END_BLOCK"!==s||"expand"===u.brace_style||"end-expand"===u.brace_style?m():(a.trim(!0),"}"!==a.current_line.last()&&m(),a.space_before_token=!0):"NEWLINE"===n?"TK_RESERVED"===s&&k(f.last_text)?a.space_before_token=!0:"TK_END_EXPR"!==s?"TK_START_EXPR"===s&&"TK_RESERVED"===o.type&&P(o.text,["var","let","const"])||":"===f.last_text||("TK_RESERVED"===o.type&&"if"===o.text&&"else"===f.last_text?a.space_before_token=!0:m()):"TK_RESERVED"===o.type&&P(o.text,i.line_starters)&&")"!==f.last_text&&m():f.multiline_frame&&O(f.mode)&&","===f.last_text&&"}"===l?m():"SPACE"===n&&(a.space_before_token=!0);b(),f.last_word=o.text,"TK_RESERVED"===o.type&&"do"===o.text&&(f.do_block=!0),"TK_RESERVED"===o.type&&"if"===o.text&&(f.if_block=!0)}s="TK_START_BLOCK",l="",a=new L(c,T),t=[],S(C.BlockStatement),this.beautify=function(){var e,t;for(i=new B(_,u,c),p=i.tokenize(),r=0;e=D();){for(var n=0;n<e.comments_before.length;n++)K(e.comments_before[n]);K(e),l=f.last_text,s=e.type,f.last_text=e.text,r+=1}return t=a.get_code(),u.end_with_newline&&(t+="\n"),t}}function a(){var _=0,r=[];this.get_character_count=function(){return _},this.get_item_count=function(){return r.length},this.get_output=function(){return r.join("")},this.last=function(){return r.length?r[r.length-1]:null},this.push=function(e){r.push(e),_+=e.length},this.remove_indent=function(e,t){var n=0;0!==r.length&&(t&&r[0]===t&&(n=1),r[n]===e&&(_-=r[n].length,r.splice(n,1)))},this.trim=function(e,t){for(;this.get_item_count()&&(" "===this.last()||this.last()===e||this.last()===t);){var n=r.pop();_-=n.length}}}function L(_,r){var i=[];this.baseIndentString=r,this.current_line=null,this.space_before_token=!1,this.get_line_number=function(){return i.length},this.add_new_line=function(e){return(1!==this.get_line_number()||!this.just_added_newline())&&(!(!e&&this.just_added_newline())&&(this.current_line=new a,i.push(this.current_line),!0))},this.add_new_line(!0),this.get_code=function(){for(var e=i[0].get_output(),t=1;t<i.length;t++)e+="\n"+i[t].get_output();return e=e.replace(/[\r\n\t ]+$/,"")},this.add_indent_string=function(e){if(r&&this.current_line.push(r),1<i.length){for(var t=0;t<e;t+=1)this.current_line.push(_);return!0}return!1},this.add_token=function(e){this.add_space_before_token(),this.current_line.push(e)},this.add_space_before_token=function(){if(this.space_before_token&&this.current_line.get_item_count()){var e=this.current_line.last();" "!==e&&e!==_&&e!==r&&this.current_line.push(" ")}this.space_before_token=!1},this.remove_redundant_indentation=function(e){if(!e.multiline_frame&&e.mode!==C.ForInitializer&&e.mode!==C.Conditional)for(var t=e.start_line_index,n=i.length;t<n;)i[t].remove_indent(_,r),t++},this.trim=function(e){for(e=void 0!==e&&e,this.current_line.trim(_,r);e&&1<i.length&&0===this.current_line.get_item_count();)i.pop(),this.current_line=i[i.length-1],this.current_line.trim(_,r)},this.just_added_newline=function(){return 0===this.current_line.get_item_count()},this.just_added_blankline=function(){return!!this.just_added_newline()&&(1===i.length||0===i[i.length-2].get_item_count())}}var M=function(e,t,n,_,r,i){this.type=e,this.text=t,this.comments_before=[],this.newlines=n||0,this.wanted_newline=0<n,this.whitespace_before=_||[],this.parent=null};function B(b,A,S){var O="\n\r\t ".split(""),y=/[0-9]/,v="+ - * / % & ++ -- = += -= *= /= %= == === != !== > < >= <= >> << >>> >>>= >>= <<= && &= | || ! ~ , : ? ^ ^= |= :: => <%= <% %> <?= <? ?>".split(" ");this.line_starters="continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,yield,import,export".split(",");var w,g,k,D,N,C,L=this.line_starters.concat(["do","in","else","get","set","new","catch","finally","typeof"]);function a(){var e,t;if(w=0,g=[],C<=N)return["","TK_EOF"];t=D.length?D[D.length-1]:new M("TK_START_BLOCK","{");var n=b.charAt(N);for(N+=1;P(n,O);){if("\n"===n?(w+=1,g=[]):w&&(n===S?g.push(S):"\r"!==n&&g.push(" ")),C<=N)return["","TK_EOF"];n=b.charAt(N),N+=1}if(y.test(n)){var _=!0,r=!0,i=y;for("0"===n&&N<C&&/[Xx]/.test(b.charAt(N))?(r=_=!1,n+=b.charAt(N),N+=1,i=/[0123456789abcdefABCDEF]/):(n="",N-=1);N<C&&i.test(b.charAt(N));)n+=b.charAt(N),N+=1,_&&N<C&&"."===b.charAt(N)&&(n+=b.charAt(N),N+=1,_=!1),r&&N<C&&/[Ee]/.test(b.charAt(N))&&(n+=b.charAt(N),(N+=1)<C&&/[+-]/.test(b.charAt(N))&&(n+=b.charAt(N),N+=1),_=r=!1);return[n,"TK_WORD"]}if(V.isIdentifierStart(b.charCodeAt(N-1))){if(N<C)for(;V.isIdentifierChar(b.charCodeAt(N))&&(n+=b.charAt(N),(N+=1)!==C););return"TK_DOT"===t.type||"TK_RESERVED"===t.type&&P(t.text,["set","get"])||!P(n,L)?[n,"TK_WORD"]:"in"===n?[n,"TK_OPERATOR"]:[n,"TK_RESERVED"]}if("("===n||"["===n)return[n,"TK_START_EXPR"];if(")"===n||"]"===n)return[n,"TK_END_EXPR"];if("{"===n)return[n,"TK_START_BLOCK"];if("}"===n)return[n,"TK_END_BLOCK"];if(";"===n)return[n,"TK_SEMICOLON"];if("/"===n){var a="",o=!0;if("*"===b.charAt(N)){if((N+=1)<C)for(;N<C&&("*"!==b.charAt(N)||!b.charAt(N+1)||"/"!==b.charAt(N+1))&&(a+=n=b.charAt(N),"\n"!==n&&"\r"!==n||(o=!1),!(C<=(N+=1))););return N+=2,o&&0===w?["/*"+a+"*/","TK_INLINE_COMMENT"]:["/*"+a+"*/","TK_BLOCK_COMMENT"]}if("/"===b.charAt(N)){for(a=n;"\r"!==b.charAt(N)&&"\n"!==b.charAt(N)&&(a+=b.charAt(N),!(C<=(N+=1))););return[a,"TK_COMMENT"]}}if("`"===n||"'"===n||'"'===n||("/"===n||A.e4x&&"<"===n&&b.slice(N-1).match(/^<([-a-zA-Z:0-9_.]+|{[^{}]*}|!\[CDATA\[[\s\S]*?\]\])\s*([-a-zA-Z:0-9_.]+=('[^']*'|"[^"]*"|{[^{}]*})\s*)*\/?\s*>/))&&("TK_RESERVED"===t.type&&P(t.text,["return","case","throw","else","do","typeof","yield"])||"TK_END_EXPR"===t.type&&")"===t.text&&t.parent&&"TK_RESERVED"===t.parent.type&&P(t.parent.text,["if","while","for"])||P(t.type,["TK_COMMENT","TK_START_EXPR","TK_START_BLOCK","TK_END_BLOCK","TK_OPERATOR","TK_EQUALS","TK_EOF","TK_SEMICOLON","TK_COMMA"]))){var s=n,l=!1,c=!1;if(e=n,"/"===s)for(var f=!1;N<C&&(l||f||b.charAt(N)!==s)&&!V.newline.test(b.charAt(N));)e+=b.charAt(N),l?l=!1:(l="\\"===b.charAt(N),"["===b.charAt(N)?f=!0:"]"===b.charAt(N)&&(f=!1)),N+=1;else if(A.e4x&&"<"===s){var d=/<(\/?)([-a-zA-Z:0-9_.]+|{[^{}]*}|!\[CDATA\[[\s\S]*?\]\])\s*([-a-zA-Z:0-9_.]+=('[^']*'|"[^"]*"|{[^{}]*})\s*)*(\/?)\s*>/g,E=b.slice(N-1),u=d.exec(E);if(u&&0===u.index){for(var p=u[2],T=0;u;){var h=!!u[1],R=u[2],K=!!u[u.length-1]||"![CDATA["===R.slice(0,8);if(R!==p||K||(h?--T:++T),T<=0)break;u=d.exec(E)}var x=u?u.index+u[0].length:E.length;return N+=x-1,[E.slice(0,x),"TK_STRING"]}}else for(;N<C&&(l||b.charAt(N)!==s&&("`"===s||!V.newline.test(b.charAt(N))));)e+=b.charAt(N),l=l?("x"!==b.charAt(N)&&"u"!==b.charAt(N)||(c=!0),!1):"\\"===b.charAt(N),N+=1;if(c&&A.unescape_strings&&(e=function(e){var t,n=!1,_="",r=0,i="",a=0;for(;n||r<e.length;)if(t=e.charAt(r),r++,n){if(n=!1,"x"===t)i=e.substr(r,2),r+=2;else{if("u"!==t){_+="\\"+t;continue}i=e.substr(r,4),r+=4}if(!i.match(/^[0123456789abcdefABCDEF]+$/))return e;if(0<=(a=parseInt(i,16))&&a<32){_+="x"===t?"\\x"+i:"\\u"+i;continue}if(34===a||39===a||92===a)_+="\\"+String.fromCharCode(a);else{if("x"===t&&126<a&&a<=255)return e;_+=String.fromCharCode(a)}}else"\\"===t?n=!0:_+=t;return _}(e)),N<C&&b.charAt(N)===s&&(e+=s,N+=1,"/"===s))for(;N<C&&V.isIdentifierStart(b.charCodeAt(N));)e+=b.charAt(N),N+=1;return[e,"TK_STRING"]}if("#"===n){if(0===D.length&&"!"===b.charAt(N)){for(e=n;N<C&&"\n"!==n;)e+=n=b.charAt(N),N+=1;return[I(e)+"\n","TK_UNKNOWN"]}var m="#";if(N<C&&y.test(b.charAt(N))){for(;m+=n=b.charAt(N),(N+=1)<C&&"#"!==n&&"="!==n;);return"#"===n||("["===b.charAt(N)&&"]"===b.charAt(N+1)?(m+="[]",N+=2):"{"===b.charAt(N)&&"}"===b.charAt(N+1)&&(m+="{}",N+=2)),[m,"TK_WORD"]}}if("<"===n&&"\x3c!--"===b.substring(N-1,N+3)){for(N+=3,n="\x3c!--";"\n"!==b.charAt(N)&&N<C;)n+=b.charAt(N),N++;return k=!0,[n,"TK_COMMENT"]}if("-"===n&&k&&"--\x3e"===b.substring(N-1,N+2))return k=!1,N+=2,["--\x3e","TK_COMMENT"];if("."===n)return[n,"TK_DOT"];if(P(n,v)){for(;N<C&&P(n+b.charAt(N),v)&&(n+=b.charAt(N),!(C<=(N+=1))););return","===n?[n,"TK_COMMA"]:"="===n?[n,"TK_EQUALS"]:[n,"TK_OPERATOR"]}return[n,"TK_UNKNOWN"]}this.tokenize=function(){var e,t,n;C=b.length,N=0,k=!1,D=[];for(var _=null,r=[],i=[];!t||"TK_EOF"!==t.type;){for(n=a(),e=new M(n[1],n[0],w,g);"TK_INLINE_COMMENT"===e.type||"TK_COMMENT"===e.type||"TK_BLOCK_COMMENT"===e.type||"TK_UNKNOWN"===e.type;)i.push(e),n=a(),e=new M(n[1],n[0],w,g);i.length&&(e.comments_before=i,i=[]),"TK_START_BLOCK"===e.type||"TK_START_EXPR"===e.type?(e.parent=t,_=e,r.push(e)):("TK_END_BLOCK"===e.type||"TK_END_EXPR"===e.type)&&_&&("]"===e.text&&"["===_.text||")"===e.text&&"("===_.text||"}"===e.text&&"}"===_.text)&&(e.parent=_.parent,_=r.pop()),D.push(e),t=e}return D}}"function"==typeof define&&define.amd?define([],function(){return{js_beautify:r}}):"undefined"!=typeof exports?exports.js_beautify=r:"undefined"!=typeof window?window.js_beautify=r:"undefined"!=typeof global&&(global.js_beautify=r)}();
!function(){function E(t){return t.replace(/\s+$/g,"")}function s(t,e,i,n){var s,h,r,a,_,o,c,p,u,g,l;for(void 0!==(e=e||{}).wrap_line_length&&0!==parseInt(e.wrap_line_length,10)||void 0===e.max_char||0===parseInt(e.max_char,10)||(e.wrap_line_length=e.max_char),h=void 0!==e.indent_inner_html&&e.indent_inner_html,r=void 0===e.indent_size?4:parseInt(e.indent_size,10),a=void 0===e.indent_char?" ":e.indent_char,o=void 0===e.brace_style?"collapse":e.brace_style,_=0===parseInt(e.wrap_line_length,10)?32786:parseInt(e.wrap_line_length||250,10),c=e.unformatted||["a","span","img","bdo","em","strong","dfn","code","samp","kbd","var","cite","abbr","acronym","q","sub","sup","tt","i","b","big","small","u","s","strike","font","ins","del","pre","address","dt","h1","h2","h3","h4","h5","h6"],p=void 0===e.preserve_newlines||e.preserve_newlines,u=p?isNaN(parseInt(e.max_preserve_newlines,10))?32786:parseInt(e.max_preserve_newlines,10):0,g=void 0!==e.indent_handlebars&&e.indent_handlebars,l=void 0!==e.end_with_newline&&e.end_with_newline,(s=new function(){return this.pos=0,this.token="",this.current_mode="CONTENT",this.tags={parent:"parent1",parentcount:1,parent1:""},this.tag_type="",this.token_text=this.last_token=this.last_text=this.token_type="",this.newlines=0,this.indent_content=h,this.Utils={whitespace:"\n\r\t ".split(""),single_token:"br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?=".split(","),extra_liners:"head,body,/html".split(","),in_array:function(t,e){for(var i=0;i<e.length;i++)if(t===e[i])return!0;return!1}},this.is_whitespace=function(t){for(;0<t.length;t++)if(!this.Utils.in_array(t.charAt(0),this.Utils.whitespace))return!1;return!0},this.traverse_whitespace=function(){var t="";if(t=this.input.charAt(this.pos),this.Utils.in_array(t,this.Utils.whitespace)){for(this.newlines=0;this.Utils.in_array(t,this.Utils.whitespace);)p&&"\n"===t&&this.newlines<=u&&(this.newlines+=1),this.pos++,t=this.input.charAt(this.pos);return!0}return!1},this.space_or_wrap=function(t){this.line_char_count>=this.wrap_line_length?(this.print_newline(!1,t),this.print_indentation(t)):(this.line_char_count++,t.push(" "))},this.get_content=function(){for(var t="",e=[];"<"!==this.input.charAt(this.pos);){if(this.pos>=this.input.length)return e.length?e.join(""):["","TK_EOF"];if(this.traverse_whitespace())this.space_or_wrap(e);else{if(g){var i=this.input.substr(this.pos,3);if("{{#"===i||"{{/"===i)break;if("{{"===this.input.substr(this.pos,2)&&"{{else}}"===this.get_tag(!0))break}t=this.input.charAt(this.pos),this.pos++,this.line_char_count++,e.push(t)}}return e.length?e.join(""):""},this.get_contents_to=function(t){if(this.pos===this.input.length)return["","TK_EOF"];var e="",i=new RegExp("</"+t+"\\s*>","igm");i.lastIndex=this.pos;var n=i.exec(this.input),s=n?n.index:this.input.length;return this.pos<s&&(e=this.input.substring(this.pos,s),this.pos=s),e},this.record_tag=function(t){this.tags[t+"count"]?this.tags[t+"count"]++:this.tags[t+"count"]=1,this.tags[t+this.tags[t+"count"]]=this.indent_level,this.tags[t+this.tags[t+"count"]+"parent"]=this.tags.parent,this.tags.parent=t+this.tags[t+"count"]},this.retrieve_tag=function(t){if(this.tags[t+"count"]){for(var e=this.tags.parent;e&&t+this.tags[t+"count"]!==e;)e=this.tags[e+"parent"];e&&(this.indent_level=this.tags[t+this.tags[t+"count"]],this.tags.parent=this.tags[e+"parent"]),delete this.tags[t+this.tags[t+"count"]+"parent"],delete this.tags[t+this.tags[t+"count"]],1===this.tags[t+"count"]?delete this.tags[t+"count"]:this.tags[t+"count"]--}},this.indent_to_tag=function(t){if(this.tags[t+"count"]){for(var e=this.tags.parent;e&&t+this.tags[t+"count"]!==e;)e=this.tags[e+"parent"];e&&(this.indent_level=this.tags[t+this.tags[t+"count"]])}},this.get_tag=function(t){var e,i,n="",s=[],h="",r=!1,a=this.pos,_=this.line_char_count;t=void 0!==t&&t;do{if(this.pos>=this.input.length)return t&&(this.pos=a,this.line_char_count=_),s.length?s.join(""):["","TK_EOF"];if(n=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(n,this.Utils.whitespace))r=!0;else{if("'"!==n&&'"'!==n||(n+=this.get_unformatted(n),r=!0),"="===n&&(r=!1),s.length&&"="!==s[s.length-1]&&">"!==n&&r&&(this.space_or_wrap(s),r=!1),g&&"<"===i&&n+this.input.charAt(this.pos)==="{{"&&(n+=this.get_unformatted("}}"),s.length&&" "!==s[s.length-1]&&"<"!==s[s.length-1]&&(n=" "+n),r=!0),"<"!==n||i||(e=this.pos-1,i="<"),g&&!i&&2<=s.length&&"{"===s[s.length-1]&&"{"==s[s.length-2]&&(e="#"===n||"/"===n?this.pos-3:this.pos-2,i="{"),this.line_char_count++,s.push(n),s[1]&&"!"===s[1]){s=[this.get_comment(e)];break}if(g&&"{"===i&&2<s.length&&"}"===s[s.length-2]&&"}"===s[s.length-1])break}}while(">"!==n);var o,p,u=s.join("");o=-1!==u.indexOf(" ")?u.indexOf(" "):"{"===u[0]?u.indexOf("}"):u.indexOf(">"),p="<"!==u[0]&&g?"#"===u[2]?3:2:1;var l=u.substring(p,o).toLowerCase();return"/"===u.charAt(u.length-2)||this.Utils.in_array(l,this.Utils.single_token)?t||(this.tag_type="SINGLE"):g&&"{"===u[0]&&"else"===l?t||(this.indent_to_tag("if"),this.tag_type="HANDLEBARS_ELSE",this.indent_content=!0,this.traverse_whitespace()):this.is_unformatted(l,c)?(h=this.get_unformatted("</"+l+">",u),s.push(h),this.pos,this.tag_type="SINGLE"):"script"===l&&(-1===u.search("type")||-1<u.search("type")&&-1<u.search(/\b(text|application)\/(x-)?(javascript|ecmascript|jscript|livescript)/))?t||(this.record_tag(l),this.tag_type="SCRIPT"):"style"===l&&(-1===u.search("type")||-1<u.search("type")&&-1<u.search("text/css"))?t||(this.record_tag(l),this.tag_type="STYLE"):"!"===l.charAt(0)?t||(this.tag_type="SINGLE",this.traverse_whitespace()):t||("/"===l.charAt(0)?(this.retrieve_tag(l.substring(1)),this.tag_type="END"):(this.record_tag(l),"html"!==l.toLowerCase()&&(this.indent_content=!0),this.tag_type="START"),this.traverse_whitespace()&&this.space_or_wrap(s),this.Utils.in_array(l,this.Utils.extra_liners)&&(this.print_newline(!1,this.output),this.output.length&&"\n"!==this.output[this.output.length-2]&&this.print_newline(!0,this.output))),t&&(this.pos=a,this.line_char_count=_),s.join("")},this.get_comment=function(t){var e="",i=">",n=!1;for(this.pos=t,input_char=this.input.charAt(this.pos),this.pos++;this.pos<=this.input.length&&((e+=input_char)[e.length-1]!==i[i.length-1]||-1===e.indexOf(i));)!n&&e.length<10&&(0===e.indexOf("<![if")?(i="<![endif]>",n=!0):0===e.indexOf("<![cdata[")?(i="]]>",n=!0):0===e.indexOf("<![")?(i="]>",n=!0):0===e.indexOf("\x3c!--")&&(i="--\x3e",n=!0)),input_char=this.input.charAt(this.pos),this.pos++;return e},this.get_unformatted=function(t,e){if(e&&-1!==e.toLowerCase().indexOf(t))return"";var i="",n="",s=0,h=!0;do{if(this.pos>=this.input.length)return n;if(i=this.input.charAt(this.pos),this.pos++,this.Utils.in_array(i,this.Utils.whitespace)){if(!h){this.line_char_count--;continue}if("\n"===i||"\r"===i){n+="\n",this.line_char_count=0;continue}}n+=i,this.line_char_count++,h=!0,g&&"{"===i&&n.length&&"{"===n[n.length-2]&&(s=(n+=this.get_unformatted("}}")).length)}while(-1===n.toLowerCase().indexOf(t,s));return n},this.get_token=function(){var t;if("TK_TAG_SCRIPT"!==this.last_token&&"TK_TAG_STYLE"!==this.last_token)return"CONTENT"===this.current_mode?"string"!=typeof(t=this.get_content())?t:[t,"TK_CONTENT"]:"TAG"===this.current_mode?"string"!=typeof(t=this.get_tag())?t:[t,"TK_TAG_"+this.tag_type]:void 0;var e=this.last_token.substr(7);return"string"!=typeof(t=this.get_contents_to(e))?t:[t,"TK_"+e]},this.get_full_indent=function(t){return(t=this.indent_level+t||0)<1?"":Array(t+1).join(this.indent_string)},this.is_unformatted=function(t,e){if(!this.Utils.in_array(t,e))return!1;if("a"!==t.toLowerCase()||!this.Utils.in_array("a",e))return!0;var i=(this.get_tag(!0)||"").match(/^\s*<\s*\/?([a-z]*)\s*[^>]*>\s*$/);return!(i&&!this.Utils.in_array(i,e))},this.printer=function(t,e,i,n,s){this.input=t||"",this.output=[],this.indent_character=e,this.indent_string="",this.indent_size=i,this.brace_style=s,this.indent_level=0,this.wrap_line_length=n;for(var h=this.line_char_count=0;h<this.indent_size;h++)this.indent_string+=this.indent_character;this.print_newline=function(t,e){this.line_char_count=0,e&&e.length&&(t||"\n"!==e[e.length-1])&&("\n"!==e[e.length-1]&&(e[e.length-1]=E(e[e.length-1])),e.push("\n"))},this.print_indentation=function(t){for(var e=0;e<this.indent_level;e++)t.push(this.indent_string),this.line_char_count+=this.indent_string.length},this.print_token=function(t){this.is_whitespace(t)&&!this.output.length||((t||""!==t)&&this.output.length&&"\n"===this.output[this.output.length-1]&&(this.print_indentation(this.output),t=t.replace(/^\s+/g,"")),this.print_token_raw(t))},this.print_token_raw=function(t){0<this.newlines&&(t=E(t)),t&&""!==t&&(1<t.length&&"\n"===t[t.length-1]?(this.output.push(t.slice(0,-1)),this.print_newline(!1,this.output)):this.output.push(t));for(var e=0;e<this.newlines;e++)this.print_newline(0<e,this.output);this.newlines=0},this.indent=function(){this.indent_level++},this.unindent=function(){0<this.indent_level&&this.indent_level--}},this}).printer(t,a,r,_,o);;){var f=s.get_token();if(s.token_text=f[0],s.token_type=f[1],"TK_EOF"===s.token_type)break;switch(s.token_type){case"TK_TAG_START":s.print_newline(!1,s.output),s.print_token(s.token_text),s.indent_content&&(s.indent(),s.indent_content=!1),s.current_mode="CONTENT";break;case"TK_TAG_STYLE":case"TK_TAG_SCRIPT":s.print_newline(!1,s.output),s.print_token(s.token_text),s.current_mode="CONTENT";break;case"TK_TAG_END":if("TK_CONTENT"===s.last_token&&""===s.last_text){var d=s.token_text.match(/\w+/)[0],w=null;s.output.length&&(w=s.output[s.output.length-1].match(/(?:<|{{#)\s*(\w+)/)),null!==w&&w[1]===d||s.print_newline(!1,s.output)}s.print_token(s.token_text),s.current_mode="CONTENT";break;case"TK_TAG_SINGLE":var y=s.token_text.match(/^\s*<([a-z-]+)/i);y&&s.Utils.in_array(y[1],c)||s.print_newline(!1,s.output),s.print_token(s.token_text),s.current_mode="CONTENT";break;case"TK_TAG_HANDLEBARS_ELSE":s.print_token(s.token_text),s.indent_content&&(s.indent(),s.indent_content=!1),s.current_mode="CONTENT";break;case"TK_CONTENT":s.print_token(s.token_text),s.current_mode="TAG";break;case"TK_STYLE":case"TK_SCRIPT":if(""!==s.token_text){s.print_newline(!1,s.output);var T,v=s.token_text,k=1;"TK_SCRIPT"===s.token_type?T="function"==typeof i&&i:"TK_STYLE"===s.token_type&&(T="function"==typeof n&&n),"keep"===e.indent_scripts?k=0:"separate"===e.indent_scripts&&(k=-s.indent_level);var b=s.get_full_indent(k);if(T)v=T(v.replace(/^\s*/,b),e);else{var m=v.match(/^\s*/)[0].match(/[^\n\r]*$/)[0].split(s.indent_string).length-1,x=s.get_full_indent(k-m);v=v.replace(/^\s*/,b).replace(/\r\n|\r|\n/g,"\n"+x).replace(/\s+$/,"")}v&&(s.print_token_raw(v),s.print_newline(!0,s.output))}s.current_mode="TAG";break;default:""!==s.token_text&&s.print_token(s.token_text)}s.last_token=s.token_type,s.last_text=s.token_text}var A=s.output.join("").replace(/[\r\n\t ]+$/,"");return l&&(A+="\n"),A}if("function"==typeof define&&define.amd)define(["require","./beautify","./beautify-css"],function(t){var i=t("./beautify"),n=t("./beautify-css");return{html_beautify:function(t,e){return s(t,e,i.js_beautify,n.css_beautify)}}});else if("undefined"!=typeof exports){var i=require("./beautify.js"),n=require("./beautify-css.js");exports.html_beautify=function(t,e){return s(t,e,i.js_beautify,n.css_beautify)}}else"undefined"!=typeof window?window.html_beautify=function(t,e){return s(t,e,window.js_beautify,window.css_beautify)}:"undefined"!=typeof global&&(global.html_beautify=function(t,e){return s(t,e,global.js_beautify,global.css_beautify)})}();
!function(){function $(i,e){var n=(e=e||{}).indent_size||4,t=e.indent_char||" ",r=void 0===e.selector_separator_newline||e.selector_separator_newline,s=void 0!==e.end_with_newline&&e.end_with_newline;"string"==typeof n&&(n=parseInt(n,10));var u,a=/^\s+$/,f=-1;function p(){return(u=i.charAt(++f))||""}function o(e){var n=f;return e&&l(),result=i.charAt(f+1)||"",f=n-1,p(),result}function c(e){for(var n=f;p();)if("\\"===u)p();else{if(-1!==e.indexOf(u))break;if("\n"===u)break}return i.substring(n,f+1)}function l(){for(var e="";a.test(o());)p(),e+=u;return e}function h(){var e="";for(u&&a.test(u)&&(e=u);a.test(p());)e+=u;return e}function d(e){var n=f;e="/"===o();for(p();p();){if(!e&&"*"===u&&"/"===o()){p();break}if(e&&"\n"===u)return i.substring(n,f)}return i.substring(n,f)+u}function g(e){return i.substring(f-e.length,f).toLowerCase()===e}function _(){for(var e=f+1;e<i.length;e++){var n=i.charAt(e);if("{"===n)return!0;if(";"===n||"}"===n||")"===n)return!1}return!1}var w=i.match(/^[\t ]*/)[0],v=new Array(n+1).join(t),L=0,b=0;var S={"{":function(e){S.singleSpace(),y.push(e),S.newLine()},"}":function(e){S.newLine(),y.push(e),S.newLine()},_lastCharWhitespace:function(){return a.test(y[y.length-1])},newLine:function(e){e||S.trim(),y.length&&y.push("\n"),w&&y.push(w)},singleSpace:function(){y.length&&!S._lastCharWhitespace()&&y.push(" ")},trim:function(){for(;S._lastCharWhitespace();)y.pop()}},y=[];w&&y.push(w);for(var m,O,A,E=!1,C=!1,N="",R="";;){var T=h(),U=""!==T,k=-1!==T.indexOf("\n");R=N,N=u;if(!u)break;if("/"===u&&"*"===o()){var x=g("");S.newLine(),y.push(d()),S.newLine(),x&&S.newLine(!0)}else if("/"===u&&"/"===o())k||"{"===R||S.trim(),S.singleSpace(),y.push(d()),S.newLine();else if("@"===u){U&&S.singleSpace(),y.push(u);var I=(m=": ,;{}()[]/='\"",void 0,void 0,O=f,A=c(m),f=O-1,p(),A).replace(/\s$/,"");I in $.NESTED_AT_RULE?(b+=1,I in $.CONDITIONAL_GROUP_RULE&&(C=!0)):0<=": ".indexOf(I[I.length-1])&&(p(),I=c(": ").replace(/\s$/,""),y.push(I),S.singleSpace())}else"{"===u?"}"===o(!0)?(l(),p(),S.singleSpace(),y.push("{}")):(L++,w+=v,S["{"](u),E=C?(C=!1,b<L):b<=L):"}"===u?(L--,w=w.slice(0,-n),S["}"](u),E=!1,b&&b--):":"===u?(l(),!E&&!C||g("&")||_()?":"===o()?(p(),y.push("::")):y.push(":"):(y.push(":"),S.singleSpace())):'"'===u||"'"===u?(U&&S.singleSpace(),y.push(c(u))):";"===u?(y.push(u),S.newLine()):"("===u?g("url")?(y.push(u),l(),p()&&(")"!==u&&'"'!==u&&"'"!==u?y.push(c(")")):f--)):(U&&S.singleSpace(),y.push(u),l()):")"===u?y.push(u):","===u?(y.push(u),l(),!E&&r?S.newLine():S.singleSpace()):("]"===u||("["===u?U&&S.singleSpace():"="===u?l():U&&S.singleSpace()),y.push(u))}var D=y.join("").replace(/[\r\n\t ]+$/,"");return s&&(D+="\n"),D}$.NESTED_AT_RULE={"@page":!0,"@font-face":!0,"@keyframes":!0,"@media":!0,"@supports":!0,"@document":!0},$.CONDITIONAL_GROUP_RULE={"@media":!0,"@supports":!0,"@document":!0},"function"==typeof define&&define.amd?define([],function(){return{css_beautify:$}}):"undefined"!=typeof exports?exports.css_beautify=$:"undefined"!=typeof window?window.css_beautify=$:"undefined"!=typeof global&&(global.css_beautify=$)}();
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(h){var s,i=0,a=Array.prototype.slice;h.cleanData=(s=h.cleanData,function(t){var e,i,n;for(n=0;null!=(i=t[n]);n++)try{(e=h._data(i,"events"))&&e.remove&&h(i).triggerHandler("remove")}catch(t){}s(t)}),h.widget=function(t,i,e){var n,s,o,r,a={},u=t.split(".")[0];return t=t.split(".")[1],n=u+"-"+t,e||(e=i,i=h.Widget),h.expr[":"][n.toLowerCase()]=function(t){return!!h.data(t,n)},h[u]=h[u]||{},s=h[u][t],o=h[u][t]=function(t,e){if(!this._createWidget)return new o(t,e);arguments.length&&this._createWidget(t,e)},h.extend(o,s,{version:e.version,_proto:h.extend({},e),_childConstructors:[]}),(r=new i).options=h.widget.extend({},r.options),h.each(e,function(e,n){var s,o;h.isFunction(n)?a[e]=(s=function(){return i.prototype[e].apply(this,arguments)},o=function(t){return i.prototype[e].apply(this,t)},function(){var t,e=this._super,i=this._superApply;return this._super=s,this._superApply=o,t=n.apply(this,arguments),this._super=e,this._superApply=i,t}):a[e]=n}),o.prototype=h.widget.extend(r,{widgetEventPrefix:s&&r.widgetEventPrefix||t},a,{constructor:o,namespace:u,widgetName:t,widgetFullName:n}),s?(h.each(s._childConstructors,function(t,e){var i=e.prototype;h.widget(i.namespace+"."+i.widgetName,o,e._proto)}),delete s._childConstructors):i._childConstructors.push(o),h.widget.bridge(t,o),o},h.widget.extend=function(t){for(var e,i,n=a.call(arguments,1),s=0,o=n.length;s<o;s++)for(e in n[s])i=n[s][e],n[s].hasOwnProperty(e)&&void 0!==i&&(h.isPlainObject(i)?t[e]=h.isPlainObject(t[e])?h.widget.extend({},t[e],i):h.widget.extend({},i):t[e]=i);return t},h.widget.bridge=function(o,e){var r=e.prototype.widgetFullName||o;h.fn[o]=function(i){var t="string"==typeof i,n=a.call(arguments,1),s=this;return i=!t&&n.length?h.widget.extend.apply(null,[i].concat(n)):i,t?this.each(function(){var t,e=h.data(this,r);return"instance"===i?(s=e,!1):e?h.isFunction(e[i])&&"_"!==i.charAt(0)?(t=e[i].apply(e,n))!==e&&void 0!==t?(s=t&&t.jquery?s.pushStack(t.get()):t,!1):void 0:h.error("no such method '"+i+"' for "+o+" widget instance"):h.error("cannot call methods on "+o+" prior to initialization; attempted to call method '"+i+"'")}):this.each(function(){var t=h.data(this,r);t?(t.option(i||{}),t._init&&t._init()):h.data(this,r,new e(i,this))}),s}},h.Widget=function(){},h.Widget._childConstructors=[],h.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,e){e=h(e||this.defaultElement||this)[0],this.element=h(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=h.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=h(),this.hoverable=h(),this.focusable=h(),e!==this&&(h.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=h(e.style?e.ownerDocument:e.document||e),this.window=h(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:h.noop,_getCreateEventData:h.noop,_create:h.noop,_init:h.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(h.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:h.noop,widget:function(){return this.element},option:function(t,e){var i,n,s,o=t;if(0===arguments.length)return h.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(n=o[t]=h.widget.extend({},this.options[t]),s=0;s<i.length-1;s++)n[i[s]]=n[i[s]]||{},n=n[i[s]];if(t=i.pop(),1===arguments.length)return void 0===n[t]?null:n[t];n[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!e),e&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(r,a,t){var u,d=this;"boolean"!=typeof r&&(t=a,a=r,r=!1),t?(a=u=h(a),this.bindings=this.bindings.add(a)):(t=a,a=this.element,u=this.widget()),h.each(t,function(t,e){function i(){if(r||!0!==d.options.disabled&&!h(this).hasClass("ui-state-disabled"))return("string"==typeof e?d[e]:e).apply(d,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||h.guid++);var n=t.match(/^([\w:-]*)\s*(.*)$/),s=n[1]+d.eventNamespace,o=n[2];o?u.delegate(o,s,i):a.bind(s,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(e).undelegate(e)},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){h(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){h(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){h(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){h(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,e,i){var n,s,o=this.options[t];if(i=i||{},(e=h.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],s=e.originalEvent)for(n in s)n in e||(e[n]=s[n]);return this.element.trigger(e,i),!(h.isFunction(o)&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},h.each({show:"fadeIn",hide:"fadeOut"},function(o,r){h.Widget.prototype["_"+o]=function(e,t,i){"string"==typeof t&&(t={effect:t});var n,s=t?!0===t||"number"==typeof t?r:t.effect||r:o;"number"==typeof(t=t||{})&&(t={duration:t}),n=!h.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),n&&h.effects&&h.effects.effect[s]?e[o](t):s!==o&&e[s]?e[s](t.duration,t.easing,i):e.queue(function(t){h(this)[o](),i&&i.call(e[0]),t()})}});h.widget});
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(window.jQuery)}(function(m){"use strict";var n=0;m.ajaxTransport("iframe",function(a){if(a.async){var o,i,t,p=a.initialIframeSrc||"javascript:false;";return{send:function(e,r){(o=m('<form style="display:none;"></form>')).attr("accept-charset",a.formAcceptCharset),t=/\?/.test(a.url)?"&":"?","DELETE"===a.type?(a.url=a.url+t+"_method=DELETE",a.type="POST"):"PUT"===a.type?(a.url=a.url+t+"_method=PUT",a.type="POST"):"PATCH"===a.type&&(a.url=a.url+t+"_method=PATCH",a.type="POST"),i=m('<iframe src="'+p+'" name="iframe-transport-'+(n+=1)+'"></iframe>').bind("load",function(){var n,t=m.isArray(a.paramName)?a.paramName:[a.paramName];i.unbind("load").bind("load",function(){var t;try{if(!(t=i.contents()).length||!t[0].firstChild)throw new Error}catch(e){t=void 0}r(200,"success",{iframe:t}),m('<iframe src="'+p+'"></iframe>').appendTo(o),window.setTimeout(function(){o.remove()},0)}),o.prop("target",i.prop("name")).prop("action",a.url).prop("method",a.type),a.formData&&m.each(a.formData,function(e,t){m('<input type="hidden"/>').prop("name",t.name).val(t.value).appendTo(o)}),a.fileInput&&a.fileInput.length&&"POST"===a.type&&(n=a.fileInput.clone(),a.fileInput.after(function(e){return n[e]}),a.paramName&&a.fileInput.each(function(e){m(this).prop("name",t[e]||a.paramName)}),o.append(a.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data"),a.fileInput.removeAttr("form")),o.submit(),n&&n.length&&a.fileInput.each(function(e,t){var r=m(n[e]);m(t).prop("name",r.prop("name")).attr("form",r.attr("form")),r.replaceWith(t)})}),o.append(i).appendTo(document.body)},abort:function(){i&&i.unbind("load").prop("src",p),o&&o.remove()}}}}),m.ajaxSetup({converters:{"iframe text":function(e){return e&&m(e[0].body).text()},"iframe json":function(e){return e&&m.parseJSON(m(e[0].body).text())},"iframe html":function(e){return e&&m(e[0].body).html()},"iframe xml":function(e){var t=e&&e[0];return t&&m.isXMLDoc(t)?t:m.parseXML(t.XMLDocument&&t.XMLDocument.xml||m(t.body).html())},"iframe script":function(e){return e&&m.globalEval(m(e[0].body).text())}}})});
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","jquery.ui.widget"],e):e(window.jQuery)}(function(m){"use strict";function e(i){var r="dragover"===i;return function(e){e.dataTransfer=e.originalEvent&&e.originalEvent.dataTransfer;var t=e.dataTransfer;t&&-1!==m.inArray("Files",t.types)&&!1!==this._trigger(i,m.Event(i,{delegatedEvent:e}))&&(e.preventDefault(),r&&(t.dropEffect="copy"))}}m.support.fileInput=!(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent)||m('<input type="file">').prop("disabled")),m.support.xhrFileUpload=!(!window.ProgressEvent||!window.FileReader),m.support.xhrFormDataFileUpload=!!window.FormData,m.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),m.widget("blueimp.fileupload",{options:{dropZone:m(document),pasteZone:void 0,fileInput:void 0,replaceFileInput:!0,paramName:void 0,singleFileUploads:!0,limitMultiFileUploads:void 0,limitMultiFileUploadSize:void 0,limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:void 0,forceIframeTransport:!1,redirect:void 0,redirectParamName:void 0,postMessage:void 0,multipart:!0,maxChunkSize:void 0,uploadedBytes:void 0,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:"Uploaded bytes exceed file size"},i18n:function(i,e){return i=this.messages[i]||i.toString(),e&&m.each(e,function(e,t){i=i.replace("{"+e+"}",t)}),i},formData:function(e){return e.serializeArray()},add:function(e,t){if(e.isDefaultPrevented())return!1;(t.autoUpload||!1!==t.autoUpload&&m(this).fileupload("option","autoUpload"))&&t.process().done(function(){t.submit()})},processData:!1,contentType:!1,cache:!1},_specialOptions:["fileInput","dropZone","pasteZone","multipart","forceIframeTransport"],_blobSlice:m.support.blobSlice&&function(){return(this.slice||this.webkitSlice||this.mozSlice).apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime(),this.loaded=0,this.bitrate=0,this.getBitrate=function(e,t,i){var r=e-this.timestamp;return(!this.bitrate||!i||i<r)&&(this.bitrate=(t-this.loaded)*(1e3/r)*8,this.loaded=t,this.timestamp=e),this.bitrate}},_isXHRUpload:function(e){return!e.forceIframeTransport&&(!e.multipart&&m.support.xhrFileUpload||m.support.xhrFormDataFileUpload)},_getFormData:function(e){var i;return"function"===m.type(e.formData)?e.formData(e.form):m.isArray(e.formData)?e.formData:"object"===m.type(e.formData)?(i=[],m.each(e.formData,function(e,t){i.push({name:e,value:t})}),i):[]},_getTotal:function(e){var i=0;return m.each(e,function(e,t){i+=t.size||1}),i},_initProgressObject:function(e){var t={loaded:0,total:0,bitrate:0};e._progress?m.extend(e._progress,t):e._progress=t},_initResponseObject:function(e){var t;if(e._response)for(t in e._response)e._response.hasOwnProperty(t)&&delete e._response[t];else e._response={}},_onProgress:function(e,t){if(e.lengthComputable){var i,r=Date.now?Date.now():(new Date).getTime();if(t._time&&t.progressInterval&&r-t._time<t.progressInterval&&e.loaded!==e.total)return;t._time=r,i=Math.floor(e.loaded/e.total*(t.chunkSize||t._progress.total))+(t.uploadedBytes||0),this._progress.loaded+=i-t._progress.loaded,this._progress.bitrate=this._bitrateTimer.getBitrate(r,this._progress.loaded,t.bitrateInterval),t._progress.loaded=t.loaded=i,t._progress.bitrate=t.bitrate=t._bitrateTimer.getBitrate(r,i,t.bitrateInterval),this._trigger("progress",m.Event("progress",{delegatedEvent:e}),t),this._trigger("progressall",m.Event("progressall",{delegatedEvent:e}),this._progress)}},_initProgressListener:function(i){var r=this,e=i.xhr?i.xhr():m.ajaxSettings.xhr();e.upload&&(m(e.upload).bind("progress",function(e){var t=e.originalEvent;e.lengthComputable=t.lengthComputable,e.loaded=t.loaded,e.total=t.total,r._onProgress(e,i)}),i.xhr=function(){return e})},_isInstanceOf:function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},_initXHRData:function(i){var r,n=this,e=i.files[0],t=i.multipart||!m.support.xhrFileUpload,o="array"===m.type(i.paramName)?i.paramName[0]:i.paramName;i.headers=m.extend({},i.headers),i.contentRange&&(i.headers["Content-Range"]=i.contentRange),t&&!i.blob&&this._isInstanceOf("File",e)||(i.headers["Content-Disposition"]='attachment; filename="'+encodeURI(e.name)+'"'),t?m.support.xhrFormDataFileUpload&&(i.postMessage?(r=this._getFormData(i),i.blob?r.push({name:o,value:i.blob}):m.each(i.files,function(e,t){r.push({name:"array"===m.type(i.paramName)&&i.paramName[e]||o,value:t})})):(n._isInstanceOf("FormData",i.formData)?r=i.formData:(r=new FormData,m.each(this._getFormData(i),function(e,t){r.append(t.name,t.value)})),i.blob?r.append(o,i.blob,e.name):m.each(i.files,function(e,t){(n._isInstanceOf("File",t)||n._isInstanceOf("Blob",t))&&r.append("array"===m.type(i.paramName)&&i.paramName[e]||o,t,t.uploadName||t.name)})),i.data=r):(i.contentType=e.type||"application/octet-stream",i.data=i.blob||e),i.blob=null},_initIframeSettings:function(e){var t=m("<a></a>").prop("href",e.url).prop("host");e.dataType="iframe "+(e.dataType||""),e.formData=this._getFormData(e),e.redirect&&t&&t!==location.host&&e.formData.push({name:e.redirectParamName||"redirect",value:e.redirect})},_initDataSettings:function(e){this._isXHRUpload(e)?(this._chunkedUpload(e,!0)||(e.data||this._initXHRData(e),this._initProgressListener(e)),e.postMessage&&(e.dataType="postmessage "+(e.dataType||""))):this._initIframeSettings(e)},_getParamName:function(e){var t=m(e.fileInput),r=e.paramName;return r?m.isArray(r)||(r=[r]):(r=[],t.each(function(){for(var e=m(this),t=e.prop("name")||"files[]",i=(e.prop("files")||[1]).length;i;)r.push(t),i-=1}),r.length||(r=[t.prop("name")||"files[]"])),r},_initFormSettings:function(e){e.form&&e.form.length||(e.form=m(e.fileInput.prop("form")),e.form.length||(e.form=m(this.options.fileInput.prop("form")))),e.paramName=this._getParamName(e),e.url||(e.url=e.form.prop("action")||location.href),e.type=(e.type||"string"===m.type(e.form.prop("method"))&&e.form.prop("method")||"").toUpperCase(),"POST"!==e.type&&"PUT"!==e.type&&"PATCH"!==e.type&&(e.type="POST"),e.formAcceptCharset||(e.formAcceptCharset=e.form.attr("accept-charset"))},_getAJAXSettings:function(e){var t=m.extend({},this.options,e);return this._initFormSettings(t),this._initDataSettings(t),t},_getDeferredState:function(e){return e.state?e.state():e.isResolved()?"resolved":e.isRejected()?"rejected":"pending"},_enhancePromise:function(e){return e.success=e.done,e.error=e.fail,e.complete=e.always,e},_getXHRPromise:function(e,t,i){var r=m.Deferred(),n=r.promise();return t=t||this.options.context||n,!0===e?r.resolveWith(t,i):!1===e&&r.rejectWith(t,i),n.abort=r.promise,this._enhancePromise(n)},_addConvenienceMethods:function(e,i){var r=this,n=function(e){return m.Deferred().resolveWith(r,e).promise()};i.process=function(e,t){return(e||t)&&(i._processQueue=this._processQueue=(this._processQueue||n([this])).pipe(function(){return i.errorThrown?m.Deferred().rejectWith(r,[i]).promise():n(arguments)}).pipe(e,t)),this._processQueue||n([this])},i.submit=function(){return"pending"!==this.state()&&(i.jqXHR=this.jqXHR=!1!==r._trigger("submit",m.Event("submit",{delegatedEvent:e}),this)&&r._onSend(e,this)),this.jqXHR||r._getXHRPromise()},i.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown="abort",r._trigger("fail",null,this),r._getXHRPromise(!1))},i.state=function(){return this.jqXHR?r._getDeferredState(this.jqXHR):this._processQueue?r._getDeferredState(this._processQueue):void 0},i.processing=function(){return!this.jqXHR&&this._processQueue&&"pending"===r._getDeferredState(this._processQueue)},i.progress=function(){return this._progress},i.response=function(){return this._response}},_getUploadedBytes:function(e){var t=e.getResponseHeader("Range"),i=t&&t.split("-"),r=i&&1<i.length&&parseInt(i[1],10);return r&&r+1},_chunkedUpload:function(o,e){o.uploadedBytes=o.uploadedBytes||0;var t,s,a=this,i=o.files[0],l=i.size,p=o.uploadedBytes,u=o.maxChunkSize||l,d=this._blobSlice,h=m.Deferred(),r=h.promise();return!(!(this._isXHRUpload(o)&&d&&(p||u<l))||o.data)&&(!!e||(l<=p?(i.error=o.i18n("uploadedBytes"),this._getXHRPromise(!1,o.context,[null,"error",i.error])):(s=function(){var r=m.extend({},o),n=r._progress.loaded;r.blob=d.call(i,p,p+u,i.type),r.chunkSize=r.blob.size,r.contentRange="bytes "+p+"-"+(p+r.chunkSize-1)+"/"+l,a._initXHRData(r),a._initProgressListener(r),t=(!1!==a._trigger("chunksend",null,r)&&m.ajax(r)||a._getXHRPromise(!1,r.context)).done(function(e,t,i){p=a._getUploadedBytes(i)||p+r.chunkSize,n+r.chunkSize-r._progress.loaded&&a._onProgress(m.Event("progress",{lengthComputable:!0,loaded:p-r.uploadedBytes,total:p-r.uploadedBytes}),r),o.uploadedBytes=r.uploadedBytes=p,r.result=e,r.textStatus=t,r.jqXHR=i,a._trigger("chunkdone",null,r),a._trigger("chunkalways",null,r),p<l?s():h.resolveWith(r.context,[e,t,i])}).fail(function(e,t,i){r.jqXHR=e,r.textStatus=t,r.errorThrown=i,a._trigger("chunkfail",null,r),a._trigger("chunkalways",null,r),h.rejectWith(r.context,[e,t,i])})},this._enhancePromise(r),r.abort=function(){return t.abort()},s(),r)))},_beforeSend:function(e,t){0===this._active&&(this._trigger("start"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0),this._initResponseObject(t),this._initProgressObject(t),t._progress.loaded=t.loaded=t.uploadedBytes||0,t._progress.total=t.total=this._getTotal(t.files)||1,t._progress.bitrate=t.bitrate=0,this._active+=1,this._progress.loaded+=t.loaded,this._progress.total+=t.total},_onDone:function(e,t,i,r){var n=r._progress.total,o=r._response;r._progress.loaded<n&&this._onProgress(m.Event("progress",{lengthComputable:!0,loaded:n,total:n}),r),o.result=r.result=e,o.textStatus=r.textStatus=t,o.jqXHR=r.jqXHR=i,this._trigger("done",null,r)},_onFail:function(e,t,i,r){var n=r._response;r.recalculateProgress&&(this._progress.loaded-=r._progress.loaded,this._progress.total-=r._progress.total),n.jqXHR=r.jqXHR=e,n.textStatus=r.textStatus=t,n.errorThrown=r.errorThrown=i,this._trigger("fail",null,r)},_onAlways:function(e,t,i,r){this._trigger("always",null,r)},_onSend:function(e,t){t.submit||this._addConvenienceMethods(e,t);var i,r,n,o,s=this,a=s._getAJAXSettings(t),l=function(){return s._sending+=1,a._bitrateTimer=new s._BitrateTimer,i=i||((r||!1===s._trigger("send",m.Event("send",{delegatedEvent:e}),a))&&s._getXHRPromise(!1,a.context,r)||s._chunkedUpload(a)||m.ajax(a)).done(function(e,t,i){s._onDone(e,t,i,a)}).fail(function(e,t,i){s._onFail(e,t,i,a)}).always(function(e,t,i){if(s._onAlways(e,t,i,a),s._sending-=1,s._active-=1,a.limitConcurrentUploads&&a.limitConcurrentUploads>s._sending)for(var r=s._slots.shift();r;){if("pending"===s._getDeferredState(r)){r.resolve();break}r=s._slots.shift()}0===s._active&&s._trigger("stop")})};return this._beforeSend(e,a),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending?((o=1<this.options.limitConcurrentUploads?(n=m.Deferred(),this._slots.push(n),n.pipe(l)):(this._sequence=this._sequence.pipe(l,l),this._sequence)).abort=function(){return r=[void 0,"abort","abort"],i?i.abort():(n&&n.rejectWith(a.context,r),l())},this._enhancePromise(o)):l()},_onAdd:function(r,n){var o,e,s,t,a=this,l=!0,i=m.extend({},this.options,n),p=n.files,u=p.length,d=i.limitMultiFileUploads,h=i.limitMultiFileUploadSize,c=i.limitMultiFileUploadSizeOverhead,f=0,g=this._getParamName(i),_=0;if(!h||u&&void 0!==p[0].size||(h=void 0),(i.singleFileUploads||d||h)&&this._isXHRUpload(i))if(i.singleFileUploads||h||!d)if(!i.singleFileUploads&&h)for(s=[],o=[],t=0;t<u;t+=1)f+=p[t].size+c,(t+1===u||f+p[t+1].size+c>h||d&&d<=t+1-_)&&(s.push(p.slice(_,t+1)),(e=g.slice(_,t+1)).length||(e=g),o.push(e),_=t+1,f=0);else o=g;else for(s=[],o=[],t=0;t<u;t+=d)s.push(p.slice(t,t+d)),(e=g.slice(t,t+d)).length||(e=g),o.push(e);else s=[p],o=[g];return n.originalFiles=p,m.each(s||p,function(e,t){var i=m.extend({},n);return i.files=s?t:[t],i.paramName=o[e],a._initResponseObject(i),a._initProgressObject(i),a._addConvenienceMethods(r,i),l=a._trigger("add",m.Event("add",{delegatedEvent:r}),i)}),l},_replaceFileInput:function(e){var i=e.fileInput,r=i.clone(!0);e.fileInputClone=r,m("<form></form>").append(r)[0].reset(),i.after(r).detach(),m.cleanData(i.unbind("remove")),this.options.fileInput=this.options.fileInput.map(function(e,t){return t===i[0]?r[0]:t}),i[0]===this.element[0]&&(this.element=r)},_handleFileTreeEntry:function(i,r){var e,n=this,o=m.Deferred(),s=function(e){e&&!e.entry&&(e.entry=i),o.resolve([e])},a=function(){e.readEntries(function(e){var t;e.length?(l=l.concat(e),a()):(t=l,n._handleFileTreeEntries(t,r+i.name+"/").done(function(e){o.resolve(e)}).fail(s))},s)},l=[];return r=r||"",i.isFile?i._file?(i._file.relativePath=r,o.resolve(i._file)):i.file(function(e){e.relativePath=r,o.resolve(e)},s):i.isDirectory?(e=i.createReader(),a()):o.resolve([]),o.promise()},_handleFileTreeEntries:function(e,t){var i=this;return m.when.apply(m,m.map(e,function(e){return i._handleFileTreeEntry(e,t)})).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(e){var t=(e=e||{}).items;return t&&t.length&&(t[0].webkitGetAsEntry||t[0].getAsEntry)?this._handleFileTreeEntries(m.map(t,function(e){var t;return e.webkitGetAsEntry?((t=e.webkitGetAsEntry())&&(t._file=e.getAsFile()),t):e.getAsEntry()})):m.Deferred().resolve(m.makeArray(e.files)).promise()},_getSingleFileInputFiles:function(e){var t,i,r=(e=m(e)).prop("webkitEntries")||e.prop("entries");if(r&&r.length)return this._handleFileTreeEntries(r);if((t=m.makeArray(e.prop("files"))).length)void 0===t[0].name&&t[0].fileName&&m.each(t,function(e,t){t.name=t.fileName,t.size=t.fileSize});else{if(!(i=e.prop("value")))return m.Deferred().resolve([]).promise();t=[{name:i.replace(/^.*\\/,"")}]}return m.Deferred().resolve(t).promise()},_getFileInputFiles:function(e){return e instanceof m&&1!==e.length?m.when.apply(m,m.map(e,this._getSingleFileInputFiles)).pipe(function(){return Array.prototype.concat.apply([],arguments)}):this._getSingleFileInputFiles(e)},_onChange:function(t){var i=this,r={fileInput:m(t.target),form:m(t.target.form)};this._getFileInputFiles(r.fileInput).always(function(e){r.files=e,i.options.replaceFileInput&&i._replaceFileInput(r),!1!==i._trigger("change",m.Event("change",{delegatedEvent:t}),r)&&i._onAdd(t,r)})},_onPaste:function(e){var t=e.originalEvent&&e.originalEvent.clipboardData&&e.originalEvent.clipboardData.items,r={files:[]};t&&t.length&&(m.each(t,function(e,t){var i=t.getAsFile&&t.getAsFile();i&&r.files.push(i)}),!1!==this._trigger("paste",m.Event("paste",{delegatedEvent:e}),r)&&this._onAdd(e,r))},_onDrop:function(t){t.dataTransfer=t.originalEvent&&t.originalEvent.dataTransfer;var i=this,e=t.dataTransfer,r={};e&&e.files&&e.files.length&&(t.preventDefault(),this._getDroppedFiles(e).always(function(e){r.files=e,!1!==i._trigger("drop",m.Event("drop",{delegatedEvent:t}),r)&&i._onAdd(t,r)}))},_onDragOver:e("dragover"),_onDragEnter:e("dragenter"),_onDragLeave:e("dragleave"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste})),m.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,"dragenter dragleave dragover drop"),this._off(this.options.pasteZone,"paste"),this._off(this.options.fileInput,"change")},_setOption:function(e,t){var i=-1!==m.inArray(e,this._specialOptions);i&&this._destroyEventHandlers(),this._super(e,t),i&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var e=this.options;void 0===e.fileInput?e.fileInput=this.element.is('input[type="file"]')?this.element:this.element.find('input[type="file"]'):e.fileInput instanceof m||(e.fileInput=m(e.fileInput)),e.dropZone instanceof m||(e.dropZone=m(e.dropZone)),e.pasteZone instanceof m||(e.pasteZone=m(e.pasteZone))},_getRegExp:function(e){var t=e.split("/"),i=t.pop();return t.shift(),new RegExp(t.join("/"),i)},_isRegExpOption:function(e,t){return"url"!==e&&"string"===m.type(t)&&/^\/.*\/[igm]{0,3}$/.test(t)},_initDataAttributes:function(){var r=this,n=this.options,o=m(this.element[0].cloneNode(!1));m.each(o.data(),function(e,t){var i="data-"+e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();o.attr(i)&&(r._isRegExpOption(e,t)&&(t=r._getRegExp(t)),n[e]=t)})},_create:function(){this._initDataAttributes(),this._initSpecialOptions(),this._slots=[],this._sequence=this._getXHRPromise(!0),this._sending=this._active=0,this._initProgressObject(this),this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(t){var i=this;t&&!this.options.disabled&&(t.fileInput&&!t.files?this._getFileInputFiles(t.fileInput).always(function(e){t.files=e,i._onAdd(null,t)}):(t.files=m.makeArray(t.files),this._onAdd(null,t)))},send:function(t){if(t&&!this.options.disabled){if(t.fileInput&&!t.files){var i,r,n=this,o=m.Deferred(),e=o.promise();return e.abort=function(){return r=!0,i?i.abort():(o.reject(null,"abort","abort"),e)},this._getFileInputFiles(t.fileInput).always(function(e){r||(e.length?(t.files=e,(i=n._onSend(null,t)).then(function(e,t,i){o.resolve(e,t,i)},function(e,t,i){o.reject(e,t,i)})):o.reject())}),this._enhancePromise(e)}if(t.files=m.makeArray(t.files),t.files.length)return this._onSend(null,t)}return this._getXHRPromise(!1,t&&t.context)}})});
!function(e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else{if("function"==typeof define&&define.amd)return define([],e);this.CodeMirror=e()}}(function(){var d=/gecko\/\d/i.test(navigator.userAgent),e=/MSIE \d/.test(navigator.userAgent),t=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),w=e||t,x=w&&(e?document.documentMode||6:t[1]),p=/WebKit\//.test(navigator.userAgent),r=p&&/Qt\/\d+\.\d+/.test(navigator.userAgent),n=/Chrome\//.test(navigator.userAgent),g=/Opera\//.test(navigator.userAgent),a=/Apple Computer/.test(navigator.vendor),i=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),u=/PhantomJS/.test(navigator.userAgent),l=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),c=l||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),v=l||/Mac/.test(navigator.platform),o=/win/i.test(navigator.platform),s=g&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);s&&(s=Number(s[1])),s&&15<=s&&(p=!(g=!1));var f=v&&(r||g&&(null==s||s<12.11)),h=d||w&&9<=x,m=!1,y=!1;function b(e,t){if(!(this instanceof b))return new b(e,t);this.options=t=t?uo(t):{},uo(Vr,t,!1),H(t);var r=t.value;"string"==typeof r&&(r=new si(r,t.mode)),this.doc=r;var n=new b.inputStyles[t.inputStyle](this),i=this.display=new C(e,r,n);A(i.wrapper.CodeMirror=this),M(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),t.autofocus&&!c&&i.input.focus(),z(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,draggingText:!1,highlight:new Qi,keySeq:null,specialChars:null};var o=this;for(var l in w&&x<11&&setTimeout(function(){o.display.input.reset(!0)},20),function(i){var o=i.display;zi(o.scroller,"mousedown",Gt(i,tr)),zi(o.scroller,"dblclick",w&&x<11?Gt(i,function(e){if(!Vi(i,e)){var t=er(i,e);if(t&&!nr(i,e)&&!Jt(i.display,e)){Oi(e);var r=i.findWordAt(t);Ee(i.doc,r.anchor,r.head)}}}):function(e){Vi(i,e)||Oi(e)});h||zi(o.scroller,"contextmenu",function(e){Cr(i,e)});var r,n={end:0};function l(){o.activeTouch&&(r=setTimeout(function(){o.activeTouch=null},1e3),(n=o.activeTouch).end=+new Date)}function s(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return 400<r*r+n*n}function e(e){Vi(i,e)||Pi(e)}zi(o.scroller,"touchstart",function(e){if(!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(e)){clearTimeout(r);var t=+new Date;o.activeTouch={start:t,moved:!1,prev:t-n.end<=300?n:null},1==e.touches.length&&(o.activeTouch.left=e.touches[0].pageX,o.activeTouch.top=e.touches[0].pageY)}}),zi(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),zi(o.scroller,"touchend",function(e){var t=o.activeTouch;if(t&&!Jt(o,e)&&null!=t.left&&!t.moved&&new Date-t.start<300){var r,n=i.coordsChar(o.activeTouch,"page");r=!t.prev||s(t,t.prev)?new Ae(n,n):!t.prev.prev||s(t,t.prev.prev)?i.findWordAt(n):new Ae(ce(n.line,0),He(i.doc,ce(n.line+1,0))),i.setSelection(r.anchor,r.head),i.focus(),Oi(e)}l()}),zi(o.scroller,"touchcancel",l),zi(o.scroller,"scroll",function(){o.scroller.clientHeight&&(lr(i,o.scroller.scrollTop),sr(i,o.scroller.scrollLeft,!0),Ri(i,"scroll",i))}),zi(o.scroller,"mousewheel",function(e){fr(i,e)}),zi(o.scroller,"DOMMouseScroll",function(e){fr(i,e)}),zi(o.wrapper,"scroll",function(){o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),i.options.dragDrop&&(zi(o.scroller,"dragstart",function(e){!function(e,t){if(w&&(!e.state.draggingText||+new Date-ir<100))return Pi(t);if(Vi(e,t)||Jt(e.display,t))return;if(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.setDragImage&&!a){var r=bo("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",g&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),g&&r.parentNode.removeChild(r)}}(i,e)}),zi(o.scroller,"dragenter",e),zi(o.scroller,"dragover",e),zi(o.scroller,"drop",Gt(i,or)));var t=o.input.getField();zi(t,"keyup",function(e){yr.call(i,e)}),zi(t,"keydown",Gt(i,mr)),zi(t,"keypress",Gt(i,br)),zi(t,"focus",co(wr,i)),zi(t,"blur",co(xr,i))}(this),function(){if(Ao)return;zi(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,No(Qt)},100))}),zi(window,"blur",function(){No(xr)}),Ao=!0;var e}(),Pt(this),this.curOp.forceUpdate=!0,fi(this,r),t.autofocus&&!c||o.hasFocus()?setTimeout(co(wr,this),20):xr(this),Kr)Kr.hasOwnProperty(l)&&Kr[l](this,t[l],Xr);U(this),t.finishInit&&t.finishInit(this);for(var s=0;s<qr.length;++s)qr[s](this);It(this),p&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(i.lineDiv).textRendering&&(i.lineDiv.style.textRendering="auto")}function C(e,t,r){var n=this;this.input=r,n.scrollbarFiller=bo("div",null,"CodeMirror-scrollbar-filler"),n.scrollbarFiller.setAttribute("cm-not-content","true"),n.gutterFiller=bo("div",null,"CodeMirror-gutter-filler"),n.gutterFiller.setAttribute("cm-not-content","true"),n.lineDiv=bo("div",null,"CodeMirror-code"),n.selectionDiv=bo("div",null,null,"position: relative; z-index: 1"),n.cursorDiv=bo("div",null,"CodeMirror-cursors"),n.measure=bo("div",null,"CodeMirror-measure"),n.lineMeasure=bo("div",null,"CodeMirror-measure"),n.lineSpace=bo("div",[n.measure,n.lineMeasure,n.selectionDiv,n.cursorDiv,n.lineDiv],null,"position: relative; outline: none"),n.mover=bo("div",[bo("div",[n.lineSpace],"CodeMirror-lines")],null,"position: relative"),n.sizer=bo("div",[n.mover],"CodeMirror-sizer"),n.sizerWidth=null,n.heightForcer=bo("div",null,null,"position: absolute; height: "+_i+"px; width: 1px;"),n.gutters=bo("div",null,"CodeMirror-gutters"),n.lineGutter=null,n.scroller=bo("div",[n.sizer,n.heightForcer,n.gutters],"CodeMirror-scroll"),n.scroller.setAttribute("tabIndex","-1"),n.wrapper=bo("div",[n.scrollbarFiller,n.gutterFiller,n.scroller],"CodeMirror"),w&&x<8&&(n.gutters.style.zIndex=-1,n.scroller.style.paddingRight=0),p||d&&c||(n.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(n.wrapper):e(n.wrapper)),n.viewFrom=n.viewTo=t.first,n.reportedViewFrom=n.reportedViewTo=t.first,n.view=[],n.renderedView=null,n.externalMeasured=null,n.viewOffset=0,n.lastWrapHeight=n.lastWrapWidth=0,n.updateLineNumbers=null,n.nativeBarWidth=n.barHeight=n.barWidth=0,n.scrollbarsClipped=!1,n.lineNumWidth=n.lineNumInnerWidth=n.lineNumChars=null,n.alignWidgets=!1,n.cachedCharWidth=n.cachedTextHeight=n.cachedPaddingH=null,n.maxLine=null,n.maxLineLength=0,n.maxLineChanged=!1,n.wheelDX=n.wheelDY=n.wheelStartX=n.wheelStartY=null,n.shift=!1,n.selForContextMenu=null,n.activeTouch=null,r.init(n)}function S(e){e.doc.mode=b.getMode(e.options,e.doc.modeOption),L(e)}function L(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.frontier=e.doc.first,Qe(e,100),e.state.modeGen++,e.curOp&&Xt(e)}function k(n){var i=Nt(n.display),o=n.options.lineWrapping,l=o&&Math.max(5,n.display.scroller.clientWidth/At(n.display)-3);return function(e){if(Hn(n.doc,e))return 0;var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;r++)e.widgets[r].height&&(t+=e.widgets[r].height);return o?t+(Math.ceil(e.text.length/l)||1)*i:t+i}}function T(e){var t=e.doc,r=k(e);t.iter(function(e){var t=r(e);t!=e.height&&gi(e,t)})}function M(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),mt(e)}function N(e){A(e),Xt(e),setTimeout(function(){G(e)},20)}function A(e){var t=e.display.gutters,r=e.options.gutters;wo(t);for(var n=0;n<r.length;++n){var i=r[n],o=t.appendChild(bo("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&((e.display.lineGutter=o).style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=n?"":"none",W(e)}function W(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function O(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=Mn(n);){n=(i=t.find(0,!0)).from.line,r+=i.from.ch-i.to.ch}for(n=e;t=Nn(n);){var i=t.find(0,!0);r-=n.text.length-i.from.ch,r+=(n=i.to.line).text.length-i.to.ch}return r}function D(e){var r=e.display,t=e.doc;r.maxLine=hi(t,t.first),r.maxLineLength=O(r.maxLine),r.maxLineChanged=!0,t.iter(function(e){var t=O(e);t>r.maxLineLength&&(r.maxLineLength=t,r.maxLine=e)})}function H(e){var t=oo(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):-1<t&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function P(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+rt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+it(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function I(e,t,r){this.cm=r;var n=this.vert=bo("div",[bo("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=bo("div",[bo("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(n),e(i),zi(n,"scroll",function(){n.clientHeight&&t(n.scrollTop,"vertical")}),zi(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedOverlay=!1,w&&x<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function E(){}function z(r){r.display.scrollbars&&(r.display.scrollbars.clear(),r.display.scrollbars.addClass&&ko(r.display.wrapper,r.display.scrollbars.addClass)),r.display.scrollbars=new b.scrollbarModel[r.options.scrollbarStyle](function(e){r.display.wrapper.insertBefore(e,r.display.scrollbarFiller),zi(e,"mousedown",function(){r.state.focused&&setTimeout(function(){r.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,t){"horizontal"==t?sr(r,e):lr(r,e)},r),r.display.scrollbars.addClass&&To(r.display.wrapper,r.display.scrollbars.addClass)}function F(e,t){t||(t=P(e));var r=e.display.barWidth,n=e.display.barHeight;R(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&q(e),R(e,P(e)),r=e.display.barWidth,n=e.display.barHeight}function R(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function B(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-tt(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=mi(t,n),l=mi(t,i);if(r&&r.ensure){var s=r.ensure.from.line,a=r.ensure.to.line;s<o?l=mi(t,yi(hi(t,o=s))+e.wrapper.clientHeight):Math.min(a,t.lastLine())>=l&&(o=mi(t,yi(hi(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function G(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=K(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;l<r.length;l++)if(!r[l].hidden){e.options.fixedGutter&&r[l].gutter&&(r[l].gutter.style.left=o);var s=r[l].alignable;if(s)for(var a=0;a<s.length;a++)s[a].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function U(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=V(e.options,t.first+t.size-1),n=e.display;if(r.length==n.lineNumChars)return!1;var i=n.measure.appendChild(bo("div",[bo("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,l=i.offsetWidth-o;return n.lineGutter.style.width="",n.lineNumInnerWidth=Math.max(o,n.lineGutter.offsetWidth-l)+1,n.lineNumWidth=n.lineNumInnerWidth+l,n.lineNumChars=n.lineNumInnerWidth?r.length:-1,n.lineGutter.style.width=n.lineNumWidth+"px",W(e),!0}function V(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function K(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function j(e,t,r){var n=e.display;this.viewport=t,this.visible=B(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=ot(e),this.force=r,this.dims=Q(e),this.events=[]}function X(e,t){var r=e.display,n=e.doc;if(t.editorIsHidden)return Yt(e),!1;if(!t.force&&t.visible.from>=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==Zt(e))return!1;U(e)&&(Yt(e),t.dims=Q(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFrom<o&&o-r.viewFrom<20&&(o=Math.max(n.first,r.viewFrom)),r.viewTo>l&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),y&&(o=On(e.doc,o),l=Dn(e.doc,l));var s=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;!function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=jt(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=jt(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice($t(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(jt(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,$t(e,r))));n.viewTo=r}(e,o,l),r.viewOffset=yi(hi(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var a=Zt(e);if(!s&&0==a&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var u=So();return 4<a&&(r.lineDiv.style.display="none"),function(r,e,t){var n=r.display,i=r.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function s(e){var t=e.nextSibling;return p&&v&&r.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),t}for(var a=n.view,u=n.viewFrom,c=0;c<a.length;c++){var f=a[c];if(f.hidden);else if(f.node&&f.node.parentNode==o){for(;l!=f.node;)l=s(l);var h=i&&null!=e&&e<=u&&f.lineNumber;f.changes&&(-1<oo(f.changes,"gutter")&&(h=!1),J(r,f,u,t)),h&&(wo(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(V(r.options,u)))),l=f.node.nextSibling}else{var d=le(r,f,u,t);o.insertBefore(d,l)}u+=f.size}for(;l;)l=s(l)}(e,r.updateLineNumbers,t.dims),4<a&&(r.lineDiv.style.display=""),r.renderedView=r.view,u&&So()!=u&&u.offsetHeight&&u.focus(),wo(r.cursorDiv),wo(r.selectionDiv),r.gutters.style.height=0,s&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,Qe(e,400)),!(r.updateLineNumbers=null)}function _(e,t){t.force;for(var r=t.viewport,n=!0;;n=!1){if(n&&e.options.lineWrapping&&t.oldDisplayWidth!=ot(e))!0;else if(!1,r&&null!=r.top&&(r={top:Math.min(e.doc.height+rt(e.display)-lt(e),r.top)}),t.visible=B(e.display,e.doc,r),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!X(e,t))break;q(e);var i=P(e);_e(e),$(e,i),F(e,i)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Y(e,t){var r=new j(e,t);if(X(e,r)){q(e),_(e,r);var n=P(e);_e(e),$(e,n),F(e,n),r.finish()}}function $(e,t){e.display.sizer.style.minHeight=t.docHeight+"px";var r=t.docHeight+e.display.barHeight;e.display.heightForcer.style.top=r+"px",e.display.gutters.style.height=Math.max(r+it(e),t.clientHeight)+"px"}function q(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i,o=t.view[n];if(!o.hidden){if(w&&x<8){var l=o.node.offsetTop+o.node.offsetHeight;i=l-r,r=l}else{var s=o.node.getBoundingClientRect();i=s.bottom-s.top}var a=o.line.height-i;if(i<2&&(i=Nt(t)),(.001<a||a<-.001)&&(gi(o.line,i),Z(o.line),o.rest))for(var u=0;u<o.rest.length;u++)Z(o.rest[u])}}}function Z(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.offsetHeight}function Q(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)r[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[l]]=o.clientWidth;return{fixedPos:K(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function J(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?re(e,t):"gutter"==o?ie(e,t,r,n):"class"==o?ne(t):"widget"==o&&oe(e,t,n)}t.changes=null}function ee(e){return e.node==e.text&&(e.node=bo("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),w&&x<8&&(e.node.style.zIndex=2)),e.node}function te(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):qn(e,t)}function re(e,t){var r=t.text.className,n=te(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,ne(t)):r&&(t.text.className=r)}function ne(e){!function(e){var t=e.bgClass?e.bgClass+" "+(e.line.bgClass||""):e.line.bgClass;if(t&&(t+=" CodeMirror-linebackground"),e.background)t?e.background.className=t:(e.background.parentNode.removeChild(e.background),e.background=null);else if(t){var r=ee(e);e.background=r.insertBefore(bo("div",null,t),r.firstChild)}}(e),e.line.wrapClass?ee(e).className=e.line.wrapClass:e.node!=e.text&&(e.node.className="");var t=e.textClass?e.textClass+" "+(e.line.textClass||""):e.line.textClass;e.text.className=t||""}function ie(e,t,r,n){t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null);var i=t.line.gutterMarkers;if(e.options.lineNumbers||i){var o=ee(t),l=t.gutter=bo("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+"px; width: "+n.gutterTotalWidth+"px");if(e.display.input.setUneditable(l),o.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=" "+t.line.gutterClass),!e.options.lineNumbers||i&&i["CodeMirror-linenumbers"]||(t.lineNumber=l.appendChild(bo("div",V(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+n.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),i)for(var s=0;s<e.options.gutters.length;++s){var a=e.options.gutters[s],u=i.hasOwnProperty(a)&&i[a];u&&l.appendChild(bo("div",[u],"CodeMirror-gutter-elt","left: "+n.gutterLeft[a]+"px; width: "+n.gutterWidth[a]+"px"))}}}function oe(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild;n;n=i){var i=n.nextSibling;"CodeMirror-linewidget"==n.className&&t.node.removeChild(n)}se(e,t,r)}function le(e,t,r,n){var i=te(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),ne(t),ie(e,t,r,n),se(e,t,n),t.node}function se(e,t,r){if(ae(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)ae(e,t.rest[n],t,r,!1)}function ae(e,t,r,n,i){if(t.widgets)for(var o=ee(r),l=0,s=t.widgets;l<s.length;++l){var a=s[l],u=bo("div",[a.node],"CodeMirror-linewidget");a.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),ue(a,u,r,n),e.display.input.setUneditable(u),i&&a.above?o.insertBefore(u,r.gutter||r.text):o.appendChild(u),Gi(a,"redraw")}}function ue(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}I.prototype=uo({update:function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+o+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedOverlay&&0<e.clientHeight&&(0==n&&this.overlayHack(),this.checkedOverlay=!0),{right:r?n:0,bottom:t?n:0}},setScrollLeft:function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e)},setScrollTop:function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e)},overlayHack:function(){var e=v&&!i?"12px":"18px";this.horiz.style.minHeight=this.vert.style.minWidth=e;var t=this,r=function(e){Ii(e)!=t.vert&&Ii(e)!=t.horiz&&Gt(t.cm,tr)(e)};zi(this.vert,"mousedown",r),zi(this.horiz,"mousedown",r)},clear:function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)}},I.prototype),E.prototype=uo({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},E.prototype),b.scrollbarModel={native:I,null:E},j.prototype.signal=function(e,t){ji(e,t)&&this.events.push(arguments)},j.prototype.finish=function(){for(var e=0;e<this.events.length;e++)Ri.apply(null,this.events[e])};var ce=b.Pos=function(e,t){if(!(this instanceof ce))return new ce(e,t);this.line=e,this.ch=t},fe=b.cmpPos=function(e,t){return e.line-t.line||e.ch-t.ch};function he(e){return ce(e.line,e.ch)}function de(e,t){return fe(e,t)<0?t:e}function pe(e,t){return fe(e,t)<0?e:t}function ge(e){e.state.focused||(e.display.input.focus(),wr(e))}function ve(e){return e.options.readOnly||e.doc.cantEdit}var me=null;function ye(e,t,r,n){var i=e.doc;e.display.shift=!1,n||(n=i.sel);var o=Eo(t),l=null;e.state.pasteIncoming&&1<n.ranges.length&&(me&&me.join("\n")==t?l=n.ranges.length%me.length==0&&lo(me,Eo):o.length==n.ranges.length&&(l=lo(o,function(e){return[e]})));for(var s=n.ranges.length-1;0<=s;s--){var a=n.ranges[s],u=a.from(),c=a.to();a.empty()&&(r&&0<r?u=ce(u.line,u.ch-r):e.state.overwrite&&!e.state.pasteIncoming&&(c=ce(c.line,Math.min(hi(i,c.line).text.length,c.ch+no(o).length))));var f=e.curOp.updateInput,h={from:u,to:c,text:l?l[s%l.length]:o,origin:e.state.pasteIncoming?"paste":e.state.cutIncoming?"cut":"+input"};if(Nr(e.doc,h),Gi(e,"inputRead",e,h),t&&!e.state.pasteIncoming&&e.options.electricChars&&e.options.smartIndent&&a.head.ch<100&&(!s||n.ranges[s-1].head.line!=a.head.line)){var d=e.getModeAt(a.head),p=Sr(h);if(d.electricChars){for(var g=0;g<d.electricChars.length;g++)if(-1<t.indexOf(d.electricChars.charAt(g))){Fr(e,p.line,"smart");break}}else d.electricInput&&d.electricInput.test(hi(i,p.line).text.slice(0,p.ch))&&Fr(e,p.line,"smart")}}Er(e),e.curOp.updateInput=f,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function be(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:ce(i,0),head:ce(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function we(e){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck","false")}function xe(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Qi,this.inaccurateSelection=!1,this.hasSelection=!1}function Ce(){var e=bo("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none"),t=bo("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return p?e.style.width="1000px":e.setAttribute("wrap","off"),l&&(e.style.border="1px solid black"),we(e),t}function Se(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Qi,this.gracePeriod=!1}function Le(e,t){var r=ut(e,t.line);if(!r||r.hidden)return null;var n=hi(e.doc,t.line),i=st(r,n,t.line),o=bi(n);o&&Yo(o,t.ch);var l=pt(i.map,t.ch,"left");return l.offset="right"==l.collapse?l.end:l.start,l}function ke(e,t){return t&&(e.bad=!0),e}function Te(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return ke(e.clipPos(ce(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return Me(o,t,r)}}function Me(u,e,t){var r=u.text.firstChild,n=!1;if(!e||!Co(r,e))return ke(ce(vi(u.line),0),!0);if(e==r&&(n=!0,e=r.childNodes[t],t=0,!e)){var i=u.rest?no(u.rest):u.line;return ke(ce(vi(i),i.text.length),n)}var o=3==e.nodeType?e:null,l=e;for(o||1!=e.childNodes.length||3!=e.firstChild.nodeType||(o=e.firstChild,t&&(t=o.nodeValue.length));l.parentNode!=r;)l=l.parentNode;var c=u.measure,f=c.maps;function s(e,t,r){for(var n=-1;n<(f?f.length:0);n++)for(var i=n<0?c.map:f[n],o=0;o<i.length;o+=3){var l=i[o+2];if(l==e||l==t){var s=vi(n<0?u.line:u.rest[n]),a=i[o]+r;return(r<0||l!=e)&&(a=i[o+(r?1:0)]),ce(s,a)}}}var a=s(o,l,t);if(a)return ke(a,n);for(var h=l.nextSibling,d=o?o.nodeValue.length-t:0;h;h=h.nextSibling){if(a=s(h,h.firstChild,0))return ke(ce(a.line,a.ch-d),n);d+=h.textContent.length}var p=l.previousSibling;for(d=t;p;p=p.previousSibling){if(a=s(p,p.firstChild,-1))return ke(ce(a.line,a.ch+d),n);d+=h.textContent.length}}function Ne(e,t){this.ranges=e,this.primIndex=t}function Ae(e,t){this.anchor=e,this.head=t}function We(e,t){var r=e[t];e.sort(function(e,t){return fe(e.from(),t.from())}),t=oo(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(0<=fe(o.to(),i.from())){var l=pe(o.from(),i.from()),s=de(o.to(),i.to()),a=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new Ae(a?s:l,a?l:s))}}return new Ne(e,t)}function Oe(e,t){return new Ne([new Ae(e,t||e)],0)}function De(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function He(e,t){if(t.line<e.first)return ce(e.first,0);var r,n,i,o=e.first+e.size-1;return t.line>o?ce(o,hi(e,o).text.length):(n=hi(e,(r=t).line).text.length,null==(i=r.ch)||n<i?ce(r.line,n):i<0?ce(r.line,0):r)}function Pe(e,t){return t>=e.first&&t<e.first+e.size}function Ie(e,t,r,n){if(e.cm&&e.cm.display.shift||e.extend){var i=t.anchor;if(n){var o=fe(r,i)<0;o!=fe(n,i)<0?(i=r,r=n):o!=fe(r,n)<0&&(r=n)}return new Ae(i,r)}return new Ae(n||r,r)}function Ee(e,t,r,n){Ge(e,new Ne([Ie(e,e.sel.primary(),t,r)],0),n)}function ze(e,t,r){for(var n=[],i=0;i<e.sel.ranges.length;i++)n[i]=Ie(e,e.sel.ranges[i],t[i],null);Ge(e,We(n,e.sel.primIndex),r)}function Fe(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,Ge(e,We(i,e.sel.primIndex),n)}function Re(e,t,r,n){Ge(e,Oe(t,r),n)}function Be(e,t,r){var n=e.history.done,i=no(n);i&&i.ranges?Ue(e,n[n.length-1]=t,r):Ge(e,t,r)}function Ge(e,t,r){Ue(e,t,r),function(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||(l=e,s=o,a=no(i.done),u=t,c=s.charAt(0),"*"==c||"+"==c&&a.ranges.length==u.ranges.length&&a.somethingSelected()==u.somethingSelected()&&new Date-l.history.lastSelTime<=(l.cm?l.cm.options.historyEventDelay:500)))?i.done[i.done.length-1]=t:Li(t,i.done);var l,s,a,u,c;i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&Ci(i.undone)}(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function Ue(e,t,r){var n,i,o;(ji(e,"beforeSelectionChange")||e.cm&&ji(e.cm,"beforeSelectionChange"))&&(n=e,o={ranges:(i=t).ranges,update:function(e){this.ranges=[];for(var t=0;t<e.length;t++)this.ranges[t]=new Ae(He(n,e[t].anchor),He(n,e[t].head))}},Ri(n,"beforeSelectionChange",n,o),n.cm&&Ri(n.cm,"beforeSelectionChange",n.cm,o),t=o.ranges!=i.ranges?We(o.ranges,o.ranges.length-1):i),Ve(e,je(e,t,r&&r.bias||(fe(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||Er(e.cm)}function Ve(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ki(e.cm)),Gi(e,"cursorActivity",e))}function Ke(e){Ve(e,je(e,e.sel,null,!1))}function je(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],s=Xe(e,l.anchor,r,n),a=Xe(e,l.head,r,n);(i||s!=l.anchor||a!=l.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new Ae(s,a))}return i?We(i,t.primIndex):t}function Xe(e,t,r,n){var i=!1,o=t,l=r||1;e.cantEdit=!1;e:for(;;){var s=hi(e,o.line);if(s.markedSpans)for(var a=0;a<s.markedSpans.length;++a){var u=s.markedSpans[a],c=u.marker;if((null==u.from||(c.inclusiveLeft?u.from<=o.ch:u.from<o.ch))&&(null==u.to||(c.inclusiveRight?u.to>=o.ch:u.to>o.ch))){if(n&&(Ri(c,"beforeCursorEnter"),c.explicitlyCleared)){if(s.markedSpans){--a;continue}break}if(!c.atomic)continue;var f=c.find(l<0?-1:1);if(0==fe(f,o)&&(f.ch+=l,f.ch<0?f=f.line>e.first?He(e,ce(f.line-1)):null:f.ch>s.text.length&&(f=f.line<e.first+e.size-1?ce(f.line+1,0):null),!f)){if(i)return n?(e.cantEdit=!0,ce(e.first,0)):Xe(e,t,r,!0);i=!0,f=t,l=-l}o=f;continue e}}return o}}function _e(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Ye(e,t){for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(!1!==t||l!=r.sel.primIndex){var s=r.sel.ranges[l],a=s.empty();(a||e.options.showCursorWhenSelecting)&&$e(e,s,i),a||qe(e,s,o)}return n}function $e(e,t,r){var n=St(e,t.head,"div",null,null,!e.options.singleCursorHeightPerLine),i=r.appendChild(bo("div"," ","CodeMirror-cursor"));if(i.style.left=n.left+"px",i.style.top=n.top+"px",i.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+"px",n.other){var o=r.appendChild(bo("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));o.style.display="",o.style.left=n.other.left+"px",o.style.top=n.other.top+"px",o.style.height=.85*(n.other.bottom-n.other.top)+"px"}}function qe(i,e,t){var r=i.display,o=i.doc,l=document.createDocumentFragment(),n=nt(i.display),p=n.left,g=Math.max(r.sizerWidth,ot(i)-r.sizer.offsetLeft)-n.right;function v(e,t,r,n){t<0&&(t=0),t=Math.round(t),n=Math.round(n),l.appendChild(bo("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px; top: "+t+"px; width: "+(null==r?g-e:r)+"px; height: "+(n-t)+"px"))}function s(r,a,u){var c,f,n=hi(o,r),h=n.text.length;function d(e,t){return Ct(i,ce(r,e),"div",n,t)}return function(e,t,r,n){if(!e)return n(t,r,"ltr");for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<r&&l.to>t||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr"),i=!0)}i||n(t,r,"ltr")}(bi(n),a||0,null==u?h:u,function(e,t,r){var n,i,o,l=d(e,"left");if(e==t)i=o=(n=l).left;else{if(n=d(t-1,"right"),"rtl"==r){var s=l;l=n,n=s}i=l.left,o=n.right}null==a&&0==e&&(i=p),3<n.top-l.top&&(v(i,l.top,null,l.bottom),i=p,l.bottom<n.top&&v(i,l.bottom,null,n.top)),null==u&&t==h&&(o=g),(!c||l.top<c.top||l.top==c.top&&l.left<c.left)&&(c=l),(!f||n.bottom>f.bottom||n.bottom==f.bottom&&n.right>f.right)&&(f=n),i<p+1&&(i=p),v(i,n.top,o-i,n.bottom)}),{start:c,end:f}}var a=e.from(),u=e.to();if(a.line==u.line)s(a.line,a.ch,u.ch);else{var c=hi(o,a.line),f=hi(o,u.line),h=Wn(c)==Wn(f),d=s(a.line,a.ch,h?c.text.length+1:null).end,m=s(u.line,h?0:null,u.ch).start;h&&(d.top<m.top-2?(v(d.right,d.top,null,d.bottom),v(p,m.top,m.left,m.bottom)):v(d.right,d.top,m.left-d.right,d.bottom)),d.bottom<m.top&&v(p,d.bottom,null,m.top)}t.appendChild(l)}function Ze(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",0<e.options.cursorBlinkRate?t.blinker=setInterval(function(){t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Qe(e,t){e.doc.mode.startState&&e.doc.frontier<e.display.viewTo&&e.state.highlight.set(t,co(Je,e))}function Je(s){var a=s.doc;if(a.frontier<a.first&&(a.frontier=a.first),!(a.frontier>=s.display.viewTo)){var u=+new Date+s.options.workTime,c=Qr(a.mode,et(s,a.frontier)),f=[];a.iter(a.frontier,Math.min(a.first+a.size,s.display.viewTo+500),function(e){if(a.frontier>=s.display.viewFrom){var t=e.styles,r=Kn(s,e,c,!0);e.styles=r.styles;var n=e.styleClasses,i=r.classes;i?e.styleClasses=i:n&&(e.styleClasses=null);for(var o=!t||t.length!=e.styles.length||n!=i&&(!n||!i||n.bgClass!=i.bgClass||n.textClass!=i.textClass),l=0;!o&&l<t.length;++l)o=t[l]!=e.styles[l];o&&f.push(a.frontier),e.stateAfter=Qr(a.mode,c)}else Xn(s,e.text,c),e.stateAfter=a.frontier%5==0?Qr(a.mode,c):null;if(++a.frontier,+new Date>u)return Qe(s,s.options.workDelay),!0}),f.length&&Bt(s,function(){for(var e=0;e<f.length;e++)_t(s,f[e],"text")})}}function et(r,n,e){var i=r.doc,o=r.display;if(!i.mode.startState)return!0;var l=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;l<s;--s){if(s<=o.first)return o.first;var a=hi(o,s-1);if(a.stateAfter&&(!r||s<=o.frontier))return s;var u=Ji(a.text,null,e.options.tabSize);(null==i||u<n)&&(i=s-1,n=u)}return i}(r,n,e),s=l>i.first&&hi(i,l-1).stateAfter;return s=s?Qr(i.mode,s):Jr(i.mode),i.iter(l,n,function(e){Xn(r,e.text,s);var t=l==n-1||l%5==0||l>=o.viewFrom&&l<o.viewTo;e.stateAfter=t?Qr(i.mode,s):null,++l}),e&&(i.frontier=l),s}function tt(e){return e.lineSpace.offsetTop}function rt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function nt(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=xo(e.measure,bo("pre","x")),r=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,n={left:parseInt(r.paddingLeft),right:parseInt(r.paddingRight)};return isNaN(n.left)||isNaN(n.right)||(e.cachedPaddingH=n),n}function it(e){return _i-e.display.nativeBarWidth}function ot(e){return e.display.scroller.clientWidth-it(e)-e.display.barWidth}function lt(e){return e.display.scroller.clientHeight-it(e)-e.display.barHeight}function st(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(n=0;n<e.rest.length;n++)if(vi(e.rest[n])>r)return{map:e.measure.maps[n],cache:e.measure.caches[n],before:!0}}function at(e,t,r,n){return ft(e,ct(e,t),r,n)}function ut(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[$t(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function ct(e,t){var r=vi(t),n=ut(e,r);n&&!n.text?n=null:n&&n.changes&&J(e,n,r,Q(e)),n||(n=function(e,t){var r=vi(t=Wn(t)),n=e.display.externalMeasured=new Kt(e.doc,t,r);n.lineN=r;var i=n.built=qn(e,n);return n.text=i.pre,xo(e.display.lineMeasure,i.pre),n}(e,t));var i=st(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function ft(e,t,r,n,i){t.before&&(r=-1);var o,l=r+(n||"");return t.cache.hasOwnProperty(l)?o=t.cache[l]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&ot(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var l=t.text.firstChild.getClientRects(),s=0;s<l.length-1;s++){var a=l[s],u=l[s+1];2<Math.abs(a.bottom-u.bottom)&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=pt(t.map,r,n),l=o.node,s=o.start,a=o.end,u=o.collapse;if(3==l.nodeType){for(var c=0;c<4;c++){for(;s&&yo(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+a<o.coverEnd&&yo(t.line.text.charAt(o.coverStart+a));)++a;if(w&&x<9&&0==s&&a==o.coverEnd-o.coverStart)i=l.parentNode.getBoundingClientRect();else if(w&&e.options.lineWrapping){var f=vo(l,s,a).getClientRects();i=f.length?f["right"==n?f.length-1:0]:dt}else i=vo(l,s,a).getBoundingClientRect()||dt;if(i.left||i.right||0==s)break;a=s,s-=1,u="right"}w&&x<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Ro)return Ro;var t=xo(e,bo("span","x")),r=t.getBoundingClientRect(),n=vo(t,0,1).getBoundingClientRect();return Ro=1<Math.abs(r.left-n.left)}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{0<s&&(u=n="right"),i=e.options.lineWrapping&&1<(f=l.getClientRects()).length?f["right"==n?f.length-1:0]:l.getBoundingClientRect()}if(w&&x<9&&!s&&(!i||!i.left&&!i.right)){var h=l.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+At(e.display),top:h.top,bottom:h.bottom}:dt}for(var d=i.top-t.rect.top,p=i.bottom-t.rect.top,g=(d+p)/2,v=t.view.measure.heights,c=0;c<v.length-1&&!(g<v[c]);c++);var m=c?v[c-1]:0,y=v[c],b={left:("right"==u?i.right:i.left)-t.rect.left,right:("left"==u?i.left:i.right)-t.rect.left,top:m,bottom:y};i.left||i.right||(b.bogus=!0);e.options.singleCursorHeightPerLine||(b.rtop=d,b.rbottom=p);return b}(e,t,r,n)).bogus||(t.cache[l]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}xe.prototype=uo({init:function(t){var r=this,n=this.cm,e=this.wrapper=Ce(),i=this.textarea=e.firstChild;function o(e){if(n.somethingSelected())me=n.getSelections(),r.inaccurateSelection&&(r.prevInput="",r.inaccurateSelection=!1,i.value=me.join("\n"),io(i));else{var t=be(n);me=t.text,"cut"==e.type?n.setSelections(t.ranges,null,$i):(r.prevInput="",i.value=t.text.join("\n"),io(i))}"cut"==e.type&&(n.state.cutIncoming=!0)}t.wrapper.insertBefore(e,t.wrapper.firstChild),l&&(i.style.width="0px"),zi(i,"input",function(){w&&9<=x&&r.hasSelection&&(r.hasSelection=null),r.poll()}),zi(i,"paste",function(){if(p&&!n.state.fakedLastChar&&!(new Date-n.state.lastMiddleDown<200)){var e=i.selectionStart,t=i.selectionEnd;i.value+="$",i.selectionEnd=t,i.selectionStart=e,n.state.fakedLastChar=!0}n.state.pasteIncoming=!0,r.fastPoll()}),zi(i,"cut",o),zi(i,"copy",o),zi(t.scroller,"paste",function(e){Jt(t,e)||(n.state.pasteIncoming=!0,r.focus())}),zi(t.lineSpace,"selectstart",function(e){Jt(t,e)||Oi(e)})},prepareSelection:function(){var e=this.cm,t=e.display,r=e.doc,n=Ye(e);if(e.options.moveInputWithCursor){var i=St(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},showSelection:function(e){var t=this.cm.display;xo(t.cursorDiv,e.cursors),xo(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},reset:function(e){if(!this.contextMenuPending){var t,r,n=this.cm,i=n.doc;if(n.somethingSelected()){this.prevInput="";var o=i.sel.primary(),l=(t=Fo&&(100<o.to().line-o.from().line||1e3<(r=n.getSelection()).length))?"-":r||n.getSelection();this.textarea.value=l,n.state.focused&&io(this.textarea),w&&9<=x&&(this.hasSelection=l)}else e||(this.prevInput=this.textarea.value="",w&&9<=x&&(this.hasSelection=null));this.inaccurateSelection=t}},getField:function(){return this.textarea},supportsTouch:function(){return!1},focus:function(){if("nocursor"!=this.cm.options.readOnly&&(!c||So()!=this.textarea))try{this.textarea.focus()}catch(e){}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var e=this;e.pollingFast||e.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},fastPoll:function(){var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))})},poll:function(){var e=this.cm,t=this.textarea,r=this.prevInput;if(!e.state.focused||zo(t)&&!r||ve(e)||e.options.disableInput||e.state.keySeq)return!1;e.state.pasteIncoming&&e.state.fakedLastChar&&(t.value=t.value.substring(0,t.value.length-1),e.state.fakedLastChar=!1);var n=t.value;if(n==r&&!e.somethingSelected())return!1;if(w&&9<=x&&this.hasSelection===n||v&&/[\uf700-\uf7ff]/.test(n))return e.display.input.reset(),!1;e.doc.sel==e.display.selForContextMenu&&(8203==n.charCodeAt(0)?r||(r=""):""==r&&(n=n.slice(1),r=""));for(var i=0,o=Math.min(r.length,n.length);i<o&&r.charCodeAt(i)==n.charCodeAt(i);)++i;var l=this;return Bt(e,function(){ye(e,n.slice(i),r.length-i),1e3<n.length||-1<n.indexOf("\n")?t.value=l.prevInput="":l.prevInput=n}),!0},ensurePolled:function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},onKeyPress:function(){w&&9<=x&&(this.hasSelection=null),this.fastPoll()},onContextMenu:function(e){var r=this,n=r.cm,i=n.display,o=r.textarea,t=er(n,e),l=i.scroller.scrollTop;if(t&&!g){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(t)&&Gt(n,Ge)(n.doc,Oe(t),$i);var s=o.style.cssText;if(r.wrapper.style.position="absolute",o.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(e.clientY-5)+"px; left: "+(e.clientX-5)+"px; z-index: 1000; background: "+(w?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",p)var a=window.scrollY;if(i.input.focus(),p&&window.scrollTo(null,a),i.input.reset(),n.somethingSelected()||(o.value=r.prevInput=" "),r.contextMenuPending=!0,i.selForContextMenu=n.doc.sel,clearTimeout(i.detectingSelectAll),w&&9<=x&&c(),h){Pi(e);var u=function(){Fi(window,"mouseup",u),setTimeout(f,20)};zi(window,"mouseup",u)}else setTimeout(f,50)}function c(){if(null!=o.selectionStart){var e=n.somethingSelected(),t=o.value=""+(e?o.value:"");r.prevInput=e?"":"",o.selectionStart=1,o.selectionEnd=t.length,i.selForContextMenu=n.doc.sel}}function f(){if(r.contextMenuPending=!1,r.wrapper.style.position="relative",o.style.cssText=s,w&&x<9&&i.scrollbars.setScrollTop(i.scroller.scrollTop=l),null!=o.selectionStart){(!w||w&&x<9)&&c();var e=0,t=function(){i.selForContextMenu==n.doc.sel&&0==o.selectionStart&&""==r.prevInput?Gt(n,en.selectAll)(n):e++<10?i.detectingSelectAll=setTimeout(t,500):i.input.reset()};i.detectingSelectAll=setTimeout(t,200)}}},setUneditable:so,needsContentAttribute:!1},xe.prototype),Se.prototype=uo({init:function(e){var i=this,o=i.cm,t=i.div=e.lineDiv;function r(e){if(o.somethingSelected())me=o.getSelections(),"cut"==e.type&&o.replaceSelection("",null,"cut");else{var t=be(o);me=t.text,"cut"==e.type&&o.operation(function(){o.setSelections(t.ranges,0,$i),o.replaceSelection("",null,"cut")})}if(e.clipboardData&&!l)e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/plain",me.join("\n"));else{var r=Ce(),n=r.firstChild;o.display.lineSpace.insertBefore(r,o.display.lineSpace.firstChild),n.value=me.join("\n");var i=document.activeElement;io(n),setTimeout(function(){o.display.lineSpace.removeChild(r),i.focus()},50)}}t.contentEditable="true",we(t),zi(t,"paste",function(e){var t=e.clipboardData&&e.clipboardData.getData("text/plain");t&&(e.preventDefault(),o.replaceSelection(t,null,"paste"))}),zi(t,"compositionstart",function(e){var t=e.data;if(i.composing={sel:o.doc.sel,data:t,startData:t},t){var r=o.doc.sel.primary(),n=o.getLine(r.head.line).indexOf(t,Math.max(0,r.head.ch-t.length));-1<n&&n<=r.head.ch&&(i.composing.sel=Oe(ce(r.head.line,n),ce(r.head.line,n+t.length)))}}),zi(t,"compositionupdate",function(e){i.composing.data=e.data}),zi(t,"compositionend",function(e){var t=i.composing;t&&(e.data==t.startData||/\u200b/.test(e.data)||(t.data=e.data),setTimeout(function(){t.handled||i.applyComposition(t),i.composing==t&&(i.composing=null)},50))}),zi(t,"touchstart",function(){i.forceCompositionEnd()}),zi(t,"input",function(){i.composing||i.pollContent()||Bt(i.cm,function(){Xt(o)})}),zi(t,"copy",r),zi(t,"cut",r)},prepareSelection:function(){var e=Ye(this.cm,!1);return e.focus=this.cm.state.focused,e},showSelection:function(e){e&&this.cm.display.view.length&&(e.focus&&this.showPrimarySelection(),this.showMultipleSelections(e))},showPrimarySelection:function(){var e=window.getSelection(),t=this.cm.doc.sel.primary(),r=Te(this.cm,e.anchorNode,e.anchorOffset),n=Te(this.cm,e.focusNode,e.focusOffset);if(!r||r.bad||!n||n.bad||0!=fe(pe(r,n),t.from())||0!=fe(de(r,n),t.to())){var i=Le(this.cm,t.from()),o=Le(this.cm,t.to());if(i||o){var l=this.cm.display.view,s=e.rangeCount&&e.getRangeAt(0);if(i){if(!o){var a=l[l.length-1].measure,u=a.maps?a.maps[a.maps.length-1]:a.map;o={node:u[u.length-1],offset:u[u.length-2]-u[u.length-3]}}}else i={node:l[0].measure.map[2],offset:0};try{var c=vo(i.node,i.offset,o.offset,o.node)}catch(e){}c&&(e.removeAllRanges(),e.addRange(c),s&&null==e.anchorNode?e.addRange(s):d&&this.startGracePeriod()),this.rememberSelection()}}},startGracePeriod:function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){e.cm.curOp.selectionChanged=!0})},20)},showMultipleSelections:function(e){xo(this.cm.display.cursorDiv,e.cursors),xo(this.cm.display.selectionDiv,e.selection)},rememberSelection:function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},selectionInEditor:function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return Co(this.div,t)},focus:function(){"nocursor"!=this.cm.options.readOnly&&this.div.focus()},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return!0},receivedFocus:function(){var t=this;this.selectionInEditor()?this.pollSelection():Bt(this.cm,function(){t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))})},selectionChanged:function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},pollSelection:function(){if(!this.composing&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;this.rememberSelection();var r=Te(t,e.anchorNode,e.anchorOffset),n=Te(t,e.focusNode,e.focusOffset);r&&n&&Bt(t,function(){Ge(t.doc,Oe(r,n),$i),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}},pollContent:function(){var e,t=this.cm,r=t.display,n=t.doc.sel.primary(),i=n.from(),o=n.to();if(i.line<r.viewFrom||o.line>r.viewTo-1)return!1;if(i.line==r.viewFrom||0==(e=$t(t,i.line)))var l=vi(r.view[0].line),s=r.view[0].node;else l=vi(r.view[e].line),s=r.view[e-1].node.nextSibling;var a=$t(t,o.line);if(a==r.view.length-1)var u=r.viewTo-1,c=r.view[a].node;else u=vi(r.view[a+1].line)-1,c=r.view[a+1].node.previousSibling;for(var f=Eo(function(a,e,t,u,c){var f="",h=!1;function d(e){if(1==e.nodeType){var t=e.getAttribute("cm-text");if(null!=t)return""==t&&(t=e.textContent.replace(/\u200b/g,"")),void(f+=t);var r,n=e.getAttribute("cm-marker");if(n){var i=a.findMarks(ce(u,0),ce(c+1,0),(s=+n,function(e){return e.id==s}));return void(i.length&&(r=i[0].find())&&(f+=di(a.doc,r.from,r.to).join("\n")))}if("false"==e.getAttribute("contenteditable"))return;for(var o=0;o<e.childNodes.length;o++)d(e.childNodes[o]);/^(pre|div|p)$/i.test(e.nodeName)&&(h=!0)}else if(3==e.nodeType){var l=e.nodeValue;if(!l)return;h&&(f+="\n",h=!1),f+=l}var s}for(;d(e),e!=t;)e=e.nextSibling;return f}(t,s,c,l,u)),h=di(t.doc,ce(l,0),ce(u,hi(t.doc,u).text.length));1<f.length&&1<h.length;)if(no(f)==no(h))f.pop(),h.pop(),u--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),l++}for(var d=0,p=0,g=f[0],v=h[0],m=Math.min(g.length,v.length);d<m&&g.charCodeAt(d)==v.charCodeAt(d);)++d;for(var y=no(f),b=no(h),w=Math.min(y.length-(1==f.length?d:0),b.length-(1==h.length?d:0));p<w&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)++p;f[f.length-1]=y.slice(0,y.length-p),f[0]=f[0].slice(d);var x=ce(l,d),C=ce(u,h.length?no(h).length-p:0);return 1<f.length||f[0]||fe(x,C)?(Hr(t.doc,f,x,C,"+input"),!0):void 0},ensurePolled:function(){this.forceCompositionEnd()},reset:function(){this.forceCompositionEnd()},forceCompositionEnd:function(){this.composing&&!this.composing.handled&&(this.applyComposition(this.composing),this.composing.handled=!0,this.div.blur(),this.div.focus())},applyComposition:function(e){e.data&&e.data!=e.startData&&Gt(this.cm,ye)(this.cm,e.data,0,e.sel)},setUneditable:function(e){e.setAttribute("contenteditable","false")},onKeyPress:function(e){e.preventDefault(),Gt(this.cm,ye)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0)},onContextMenu:so,resetPosition:so,needsContentAttribute:!0},Se.prototype),b.inputStyles={textarea:xe,contenteditable:Se},Ne.prototype={primary:function(){return this.ranges[this.primIndex]},equals:function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var r=this.ranges[t],n=e.ranges[t];if(0!=fe(r.anchor,n.anchor)||0!=fe(r.head,n.head))return!1}return!0},deepCopy:function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new Ae(he(this.ranges[t].anchor),he(this.ranges[t].head));return new Ne(e,this.primIndex)},somethingSelected:function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},contains:function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(0<=fe(t,n.from())&&fe(e,n.to())<=0)return r}return-1}},Ae.prototype={from:function(){return pe(this.anchor,this.head)},to:function(){return de(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var ht,dt={left:0,right:0,top:0,bottom:0};function pt(e,t,r){for(var n,i,o,l,s=0;s<e.length;s+=3){var a=e[s],u=e[s+1];if(t<a?(i=0,o=1,l="left"):t<u?o=(i=t-a)+1:(s==e.length-3||t==u&&e[s+3]>t)&&(i=(o=u-a)-1,u<=t&&(l="right")),null!=i){if(n=e[s+2],a==u&&r==(n.insertLeft?"left":"right")&&(l=r),"left"==r&&0==i)for(;s&&e[s-2]==e[s-3]&&e[s-1].insertLeft;)n=e[2+(s-=3)],l="left";if("right"==r&&i==u-a)for(;s<e.length-3&&e[s+3]==e[s+4]&&!e[s+5].insertLeft;)n=e[(s+=3)+2],l="right";break}}return{node:n,start:i,end:o,collapse:l,coverStart:a,coverEnd:u}}function gt(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function vt(e){e.display.externalMeasure=null,wo(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)gt(e.display.view[t])}function mt(e){vt(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function yt(){return window.pageXOffset||(document.documentElement||document.body).scrollLeft}function bt(){return window.pageYOffset||(document.documentElement||document.body).scrollTop}function wt(e,t,r,n){if(t.widgets)for(var i=0;i<t.widgets.length;++i)if(t.widgets[i].above){var o=zn(t.widgets[i]);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var l=yi(t);if("local"==n?l+=tt(e.display):l-=e.display.viewOffset,"page"==n||"window"==n){var s=e.display.lineSpace.getBoundingClientRect();l+=s.top+("window"==n?0:bt());var a=s.left+("window"==n?0:yt());r.left+=a,r.right+=a}return r.top+=l,r.bottom+=l,r}function xt(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=yt(),i-=bt();else if("local"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var l=e.display.lineSpace.getBoundingClientRect();return{left:n-l.left,top:i-l.top}}function Ct(e,t,r,n,i){return n||(n=hi(e.doc,t.line)),wt(e,n,at(e,n,t.ch,i),r)}function St(n,e,i,o,l,s){function a(e,t){var r=ft(n,l,e,t?"right":"left",s);return t?r.left=r.right:r.right=r.left,wt(n,o,r,i)}function t(e,t){var r=u[t],n=r.level%2;return e==Uo(r)&&t&&r.level<u[t-1].level?(e=Vo(r=u[--t])-(r.level%2?0:1),n=!0):e==Vo(r)&&t<u.length-1&&r.level<u[t+1].level&&(e=Uo(r=u[++t])-r.level%2,n=!1),n&&e==r.to&&e>r.from?a(e-1):a(e,n)}o=o||hi(n.doc,e.line),l||(l=ct(n,o));var u=bi(o),r=e.ch;if(!u)return a(r);var c=t(r,Yo(u,r));return null!=Bo&&(c.other=t(r,Bo)),c}function Lt(e,t){var r=0;t=He(e.doc,t);e.options.lineWrapping||(r=At(e.display)*t.ch);var n=hi(e.doc,t.line),i=yi(n)+tt(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function kt(e,t,r,n){var i=ce(e,t);return i.xRel=n,r&&(i.outside=!0),i}function Tt(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return kt(n.first,0,!0,-1);var i=mi(n,r),o=n.first+n.size-1;if(o<i)return kt(n.first+n.size-1,hi(n,o).text.length,!0,1);t<0&&(t=0);for(var l=hi(n,i);;){var s=Mt(e,l,i,t,r),a=Nn(l),u=a&&a.find(0,!0);if(!a||!(s.ch>u.from.ch||s.ch==u.from.ch&&0<s.xRel))return s;i=vi(l=u.to.line)}}function Mt(r,n,i,e,t){var o=t-yi(n),l=!1,s=2*r.display.wrapper.clientWidth,a=ct(r,n);function u(e){var t=St(r,ce(i,e),"line",n,a);return l=!0,o>t.bottom?t.left-s:o<t.top?t.left+s:(l=!1,t.left)}var c=bi(n),f=n.text.length,h=Ko(n),d=jo(n),p=u(h),g=l,v=u(d),m=l;if(v<e)return kt(i,d,m,1);for(;;){if(c?d==h||d==qo(n,h,1):d-h<=1){for(var y=e<p||e-p<=v-e?h:d,b=e-(y==h?p:v);yo(n.text.charAt(y));)++y;return kt(i,y,y==h?g:m,b<-1?-1:1<b?1:0)}var w=Math.ceil(f/2),x=h+w;if(c){x=h;for(var C=0;C<w;++C)x=qo(n,x,1)}var S=u(x);e<S?(d=x,v=S,(m=l)&&(v+=1e3),f=w):(h=x,p=S,g=l,f-=w)}}function Nt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==ht){ht=bo("pre");for(var t=0;t<49;++t)ht.appendChild(document.createTextNode("x")),ht.appendChild(bo("br"));ht.appendChild(document.createTextNode("x"))}xo(e.measure,ht);var r=ht.offsetHeight/50;return 3<r&&(e.cachedTextHeight=r),wo(e.measure),r||1}function At(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=bo("span","xxxxxxxxxx"),r=bo("pre",[t]);xo(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return 2<i&&(e.cachedCharWidth=i),i||10}var Wt,Ot,Dt=null,Ht=0;function Pt(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,id:++Ht},Dt?Dt.ops.push(e.curOp):e.curOp.ownsGroup=Dt={ops:[e.curOp],delayedCallbacks:[]}}function It(e){var t=e.curOp.ownsGroup;if(t)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r]();for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++](i.cm)}}while(r<t.length)}(t)}finally{Dt=null;for(var r=0;r<t.ops.length;r++)t.ops[r].cm.curOp=null;!function(e){for(var t=e.ops,r=0;r<t.length;r++)Et(t[r]);for(var r=0;r<t.length;r++)(n=t[r]).updatedDisplay=n.mustUpdate&&X(n.cm,n.update);var n;for(var r=0;r<t.length;r++)zt(t[r]);for(var r=0;r<t.length;r++)Ft(t[r]);for(var r=0;r<t.length;r++)Rt(t[r])}(t)}}function Et(e){var t,r,n=e.cm,i=n.display;!(r=(t=n).display).scrollbarsClipped&&r.scroller.offsetWidth&&(r.nativeBarWidth=r.scroller.offsetWidth-r.scroller.clientWidth,r.heightForcer.style.height=it(t)+"px",r.sizer.style.marginBottom=-r.nativeBarWidth+"px",r.sizer.style.borderRightWidth=it(t)+"px",r.scrollbarsClipped=!0),e.updateMaxLine&&D(n),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<i.viewFrom||e.scrollToPos.to.line>=i.viewTo)||i.maxLineChanged&&n.options.lineWrapping,e.update=e.mustUpdate&&new j(n,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function zt(e){var t=e.cm,r=t.display;e.updatedDisplay&&q(t),e.barMeasure=P(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=at(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+it(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-ot(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Ft(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&sr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1),e.preparedSelection&&t.display.input.showSelection(e.preparedSelection),e.updatedDisplay&&$(t,e.barMeasure),(e.updatedDisplay||e.startHeight!=t.doc.height)&&F(t,e.barMeasure),e.selectionChanged&&Ze(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing)}function Rt(e){var t=e.cm,r=t.display,n=t.doc;if(e.updatedDisplay&&_(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null==e.scrollTop||r.scroller.scrollTop==e.scrollTop&&!e.forceScroll||(n.scrollTop=Math.max(0,Math.min(r.scroller.scrollHeight-r.scroller.clientHeight,e.scrollTop)),r.scrollbars.setScrollTop(n.scrollTop),r.scroller.scrollTop=n.scrollTop),null==e.scrollLeft||r.scroller.scrollLeft==e.scrollLeft&&!e.forceScroll||(n.scrollLeft=Math.max(0,Math.min(r.scroller.scrollWidth-ot(t),e.scrollLeft)),r.scrollbars.setScrollLeft(n.scrollLeft),r.scroller.scrollLeft=n.scrollLeft,G(t)),e.scrollToPos){var i=function(e,t,r,n){null==n&&(n=0);for(var i=0;i<5;i++){var o=!1,l=St(e,t),s=r&&r!=t?St(e,r):l,a=Pr(e,Math.min(l.left,s.left),Math.min(l.top,s.top)-n,Math.max(l.left,s.left),Math.max(l.bottom,s.bottom)+n),u=e.doc.scrollTop,c=e.doc.scrollLeft;if(null!=a.scrollTop&&(lr(e,a.scrollTop),1<Math.abs(e.doc.scrollTop-u)&&(o=!0)),null!=a.scrollLeft&&(sr(e,a.scrollLeft),1<Math.abs(e.doc.scrollLeft-c)&&(o=!0)),!o)break}return l}(t,He(n,e.scrollToPos.from),He(n,e.scrollToPos.to),e.scrollToPos.margin);e.scrollToPos.isCursor&&t.state.focused&&function(e,t){if(Vi(e,"scrollCursorIntoView"))return;var r=e.display,n=r.sizer.getBoundingClientRect(),i=null;t.top+n.top<0?i=!0:t.bottom+n.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1);if(null!=i&&!u){var o=bo("div","",null,"position: absolute; top: "+(t.top-r.viewOffset-tt(e.display))+"px; height: "+(t.bottom-t.top+it(e)+r.barHeight)+"px; left: "+t.left+"px; width: 2px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}(t,i)}var o=e.maybeHiddenMarkers,l=e.maybeUnhiddenMarkers;if(o)for(var s=0;s<o.length;++s)o[s].lines.length||Ri(o[s],"hide");if(l)for(s=0;s<l.length;++s)l[s].lines.length&&Ri(l[s],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Ri(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function Bt(e,t){if(e.curOp)return t();Pt(e);try{return t()}finally{It(e)}}function Gt(e,t){return function(){if(e.curOp)return t.apply(e,arguments);Pt(e);try{return t.apply(e,arguments)}finally{It(e)}}}function Ut(e){return function(){if(this.curOp)return e.apply(this,arguments);Pt(this);try{return e.apply(this,arguments)}finally{It(this)}}}function Vt(t){return function(){var e=this.cm;if(!e||e.curOp)return t.apply(this,arguments);Pt(e);try{return t.apply(this,arguments)}finally{It(e)}}}function Kt(e,t,r){this.line=t,this.rest=function(e){var t,r;for(;t=Nn(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?vi(no(this.rest))-r+1:1,this.node=this.text=null,this.hidden=Hn(e,t)}function jt(e,t,r){for(var n,i=[],o=t;o<r;o=n){var l=new Kt(e.doc,hi(e.doc,o),o);n=o+l.size,i.push(l)}return i}function Xt(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)y&&On(e.doc,t)<i.viewTo&&Yt(e);else if(r<=i.viewFrom)y&&Dn(e.doc,r+n)>i.viewFrom?Yt(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Yt(e);else if(t<=i.viewFrom)(o=qt(e,r,r+n,1))?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Yt(e);else if(r>=i.viewTo){var o;(o=qt(e,t,t,-1))?(i.view=i.view.slice(0,o.index),i.viewTo=o.lineN):Yt(e)}else{var l=qt(e,t,t,-1),s=qt(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(jt(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):Yt(e)}var a=i.externalMeasured;a&&(r<a.lineN?a.lineN+=n:t<a.lineN+a.size&&(i.externalMeasured=null))}function _t(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[$t(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==oo(l,r)&&l.push(r)}}}function Yt(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function $t(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function qt(e,t,r,n){var i,o=$t(e,t),l=e.display.view;if(!y||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=0,a=e.display.viewFrom;s<o;s++)a+=l[s].size;if(a!=t){if(0<n){if(o==l.length-1)return null;i=a+l[o].size-t,o++}else i=a-t;t+=i,r+=i}for(;On(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function Zt(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function Qt(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Jt(e,t){for(var r=Ii(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function er(e,t,r,n){var i=e.display;if(!r&&"true"==Ii(t).getAttribute("cm-not-content"))return null;var o,l,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,l=t.clientY-s.top}catch(t){return null}var a,u=Tt(e,o,l);if(n&&1==u.xRel&&(a=hi(e.doc,u.line).text).length==u.ch){var c=Ji(a,a.length,e.options.tabSize)-a.length;u=ce(u.line,Math.max(0,Math.round((o-nt(e.display).left)/At(e.display))-c))}return u}function tr(e){var t=this,r=t.display;if(!(r.activeTouch&&r.input.supportsTouch()||Vi(t,e)))if(r.shift=e.shiftKey,Jt(r,e))p||(r.scroller.draggable=!1,setTimeout(function(){r.scroller.draggable=!0},100));else if(!nr(t,e)){var n,i=er(t,e);switch(window.focus(),Ei(e)){case 1:i?function(e,t,r){w?setTimeout(co(ge,e),0):ge(e);var n,i=+new Date;Ot&&Ot.time>i-400&&0==fe(Ot.pos,r)?n="triple":Wt&&Wt.time>i-400&&0==fe(Wt.pos,r)?(n="double",Ot={time:i,pos:r}):(n="single",Wt={time:i,pos:r});var o,l=e.doc.sel,s=v?t.metaKey:t.ctrlKey;e.options.dragDrop&&Do&&!ve(e)&&"single"==n&&-1<(o=l.contains(r))&&!l.ranges[o].empty()?function(t,r,n,i){var o=t.display,l=Gt(t,function(e){p&&(o.scroller.draggable=!1),t.state.draggingText=!1,Fi(document,"mouseup",l),Fi(o.scroller,"drop",l),Math.abs(r.clientX-e.clientX)+Math.abs(r.clientY-e.clientY)<10&&(Oi(e),i||Ee(t.doc,n),p||w&&9==x?setTimeout(function(){document.body.focus(),o.input.focus()},20):o.input.focus())});p&&(o.scroller.draggable=!0);t.state.draggingText=l,o.scroller.dragDrop&&o.scroller.dragDrop();zi(document,"mouseup",l),zi(o.scroller,"drop",l)}(e,t,r,s):function(g,e,v,m,t){var o=g.display,y=g.doc;Oi(e);var b,w,x=y.sel,r=x.ranges;t&&!e.shiftKey?(w=y.sel.contains(v),b=-1<w?r[w]:new Ae(v,v)):(b=y.sel.primary(),w=y.sel.primIndex);if(e.altKey)m="rect",t||(b=new Ae(v,v)),v=er(g,e,!0,!0),w=-1;else if("double"==m){var n=g.findWordAt(v);b=g.display.shift||y.extend?Ie(y,b,n.anchor,n.head):n}else if("triple"==m){var i=new Ae(ce(v.line,0),He(y,ce(v.line+1,0)));b=g.display.shift||y.extend?Ie(y,b,i.anchor,i.head):i}else b=Ie(y,b,v);t?-1==w?(w=r.length,Ge(y,We(r.concat([b]),w),{scroll:!1,origin:"*mouse"})):1<r.length&&r[w].empty()&&"single"==m&&!e.shiftKey?(Ge(y,We(r.slice(0,w).concat(r.slice(w+1)),0)),x=y.sel):Fe(y,w,b,qi):(Ge(y,new Ne([b],w=0),qi),x=y.sel);var C=v;var l=o.wrapper.getBoundingClientRect(),s=0;function a(e){var t=++s,r=er(g,e,!0,"rect"==m);if(r)if(0!=fe(r,C)){ge(g),function(e){if(0==fe(C,e))return;if(C=e,"rect"==m){for(var t=[],r=g.options.tabSize,n=Ji(hi(y,v.line).text,v.ch,r),i=Ji(hi(y,e.line).text,e.ch,r),o=Math.min(n,i),l=Math.max(n,i),s=Math.min(v.line,e.line),a=Math.min(g.lastLine(),Math.max(v.line,e.line));s<=a;s++){var u=hi(y,s).text,c=eo(u,o,r);o==l?t.push(new Ae(ce(s,c),ce(s,c))):u.length>c&&t.push(new Ae(ce(s,c),ce(s,eo(u,l,r))))}t.length||t.push(new Ae(v,v)),Ge(y,We(x.ranges.slice(0,w).concat(t),w),{origin:"*mouse",scroll:!1}),g.scrollIntoView(e)}else{var f=b,h=f.anchor,d=e;if("single"!=m){if("double"==m)var p=g.findWordAt(e);else var p=new Ae(ce(e.line,0),He(y,ce(e.line+1,0)));h=0<fe(p.anchor,h)?(d=p.head,pe(f.from(),p.anchor)):(d=p.anchor,de(f.to(),p.head))}var t=x.ranges.slice(0);t[w]=new Ae(He(y,h),d),Ge(y,We(t,w),qi)}}(r);var n=B(o,y);(r.line>=n.to||r.line<n.from)&&setTimeout(Gt(g,function(){s==t&&a(e)}),150)}else{var i=e.clientY<l.top?-20:e.clientY>l.bottom?20:0;i&&setTimeout(Gt(g,function(){s==t&&(o.scroller.scrollTop+=i,a(e))}),50)}}function u(e){s=1/0,Oi(e),o.input.focus(),Fi(document,"mousemove",c),Fi(document,"mouseup",f),y.history.lastSelOrigin=null}var c=Gt(g,function(e){Ei(e)?a(e):u(e)}),f=Gt(g,u);zi(document,"mousemove",c),zi(document,"mouseup",f)}(e,t,r,n,s)}(t,e,i):Ii(e)==r.scroller&&Oi(e);break;case 2:p&&(t.state.lastMiddleDown=+new Date),i&&Ee(t.doc,i),setTimeout(function(){r.input.focus()},20),Oi(e);break;case 3:h?Cr(t,e):((n=t).state.delayingBlurEvent=!0,setTimeout(function(){n.state.delayingBlurEvent&&(n.state.delayingBlurEvent=!1,xr(n))},100))}}}function rr(e,t,r,n,i){try{var o=t.clientX,l=t.clientY}catch(t){return!1}if(o>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&Oi(t);var s=e.display,a=s.lineDiv.getBoundingClientRect();if(l>a.bottom||!ji(e,r))return Hi(t);l-=a.top-s.viewOffset;for(var u=0;u<e.options.gutters.length;++u){var c=s.gutters.childNodes[u];if(c&&c.getBoundingClientRect().right>=o)return i(e,r,e,mi(e.doc,l),e.options.gutters[u],t),Hi(t)}}function nr(e,t){return rr(e,t,"gutterClick",!0,Gi)}var ir=0;function or(e){var n=this;if(!Vi(n,e)&&!Jt(n.display,e)){Oi(e),w&&(ir=+new Date);var i=er(n,e,!0),t=e.dataTransfer.files;if(i&&!ve(n))if(t&&t.length&&window.FileReader&&window.File)for(var o=t.length,l=Array(o),s=0,r=function(e,t){var r=new FileReader;r.onload=Gt(n,function(){if(l[t]=r.result,++s==o){var e={from:i=He(n.doc,i),to:i,text:Eo(l.join("\n")),origin:"paste"};Nr(n.doc,e),Be(n.doc,Oe(i,Sr(e)))}}),r.readAsText(e)},a=0;a<o;++a)r(t[a],a);else{if(n.state.draggingText&&-1<n.doc.sel.contains(i))return n.state.draggingText(e),void setTimeout(function(){n.display.input.focus()},20);try{if(l=e.dataTransfer.getData("Text")){if(n.state.draggingText&&!(v?e.metaKey:e.ctrlKey))var u=n.listSelections();if(Ue(n.doc,Oe(i,i)),u)for(a=0;a<u.length;++a)Hr(n.doc,"",u[a].anchor,u[a].head,"drag");n.replaceSelection(l,"around","paste"),n.display.input.focus()}}catch(e){}}}}function lr(e,t){Math.abs(e.doc.scrollTop-t)<2||(e.doc.scrollTop=t,d||Y(e,{top:t}),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t),e.display.scrollbars.setScrollTop(t),d&&Y(e),Qe(e,100))}function sr(e,t,r){(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)||(t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),e.doc.scrollLeft=t,G(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}var ar=0,ur=null;w?ur=-.53:d?ur=15:n?ur=-.7:a&&(ur=-1/3);var cr=function(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}};function fr(e,t){var r=cr(t),n=r.x,i=r.y,o=e.display,l=o.scroller;if(n&&l.scrollWidth>l.clientWidth||i&&l.scrollHeight>l.clientHeight){if(i&&v&&p)e:for(var s=t.target,a=o.view;s!=l;s=s.parentNode)for(var u=0;u<a.length;u++)if(a[u].node==s){e.display.currentWheelTarget=s;break e}if(n&&!d&&!g&&null!=ur)return i&&lr(e,Math.max(0,Math.min(l.scrollTop+i*ur,l.scrollHeight-l.clientHeight))),sr(e,Math.max(0,Math.min(l.scrollLeft+n*ur,l.scrollWidth-l.clientWidth))),Oi(t),void(o.wheelStartX=null);if(i&&null!=ur){var c=i*ur,f=e.doc.scrollTop,h=f+o.wrapper.clientHeight;c<0?f=Math.max(0,f+c-50):h=Math.min(e.doc.height,h+c+50),Y(e,{top:f,bottom:h})}ar<20&&(null==o.wheelStartX?(o.wheelStartX=l.scrollLeft,o.wheelStartY=l.scrollTop,o.wheelDX=n,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=l.scrollLeft-o.wheelStartX,t=l.scrollTop-o.wheelStartY,r=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,r&&(ur=(ur*ar+r)/(ar+1),++ar)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function hr(e,t,r){if("string"==typeof t&&!(t=en[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{ve(e)&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=Yi}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}b.wheelEventPixels=function(e){var t=cr(e);return t.x*=ur,t.y*=ur,t};var dr=new Qi;function pr(e,t,r,n){var i=e.state.keySeq;if(i){if(on(t))return"handled";dr.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=nn(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&nn(t,e.options.extraKeys,r,e)||nn(t,e.options.keyMap,r,e)}(e,t,n);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&Gi(e,"keyHandled",e,t,r),"handled"!=o&&"multi"!=o||(Oi(r),Ze(e)),i&&!o&&/\'$/.test(t)?(Oi(r),!0):!!o}function gr(t,e){var r=ln(e,!0);return!!r&&(e.shiftKey&&!t.state.keySeq?pr(t,"Shift-"+r,e,function(e){return hr(t,e,!0)})||pr(t,r,e,function(e){if("string"==typeof e?/^go[A-Z]/.test(e):e.motion)return hr(t,e)}):pr(t,r,e,function(e){return hr(t,e)}))}var vr=null;function mr(e){var t=this;if(ge(t),!Vi(t,e)){w&&x<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=gr(t,e);g&&(vr=n?r:null,!n&&88==r&&!Fo&&(v?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||function(e){var t=e.display.lineDiv;function r(e){18!=e.keyCode&&e.altKey||(ko(t,"CodeMirror-crosshair"),Fi(document,"keyup",r),Fi(document,"mouseover",r))}To(t,"CodeMirror-crosshair"),zi(document,"keyup",r),zi(document,"mouseover",r)}(t)}}function yr(e){16==e.keyCode&&(this.doc.sel.shift=!1),Vi(this,e)}function br(e){var t=this;if(!(Jt(t.display,e)||Vi(t,e)||e.ctrlKey&&!e.altKey||v&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(g&&r==vr)return vr=null,void Oi(e);if(!g||e.which&&!(e.which<10)||!gr(t,e)){var i,o=String.fromCharCode(null==n?r:n);if(!pr(i=t,"'"+o+"'",e,function(e){return hr(i,e,!0)}))t.display.input.onKeyPress(e)}}}function wr(e){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Ri(e,"focus",e),e.state.focused=!0,To(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),p&&setTimeout(function(){e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Ze(e))}function xr(e){e.state.delayingBlurEvent||(e.state.focused&&(Ri(e,"blur",e),e.state.focused=!1,ko(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Cr(e,t){var r,n;Jt(e.display,t)||(n=t,ji(r=e,"gutterContextMenu")&&rr(r,n,"gutterContextMenu",!1,Ri))||e.display.input.onContextMenu(t)}var Sr=b.changeEnd=function(e){return e.text?ce(e.from.line+e.text.length-1,no(e.text).length+(1==e.text.length?e.from.ch:0)):e.to};function Lr(e,t){if(fe(e,t.from)<0)return e;if(fe(e,t.to)<=0)return Sr(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Sr(t).ch-t.to.ch),ce(r,n)}function kr(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new Ae(Lr(i.anchor,t),Lr(i.head,t)))}return We(r,e.sel.primIndex)}function Tr(e,t,r){return e.line==t.line?ce(r.line,e.ch-t.ch+r.ch):ce(r.line+(e.line-t.line),e.ch)}function Mr(i,e,t){var r={canceled:!1,from:e.from,to:e.to,text:e.text,origin:e.origin,cancel:function(){this.canceled=!0}};return t&&(r.update=function(e,t,r,n){e&&(this.from=He(i,e)),t&&(this.to=He(i,t)),r&&(this.text=r),void 0!==n&&(this.origin=n)}),Ri(i,"beforeChange",i,r),i.cm&&Ri(i.cm,"beforeChange",i.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Nr(e,t,r){if(e.cm){if(!e.cm.curOp)return Gt(e.cm,Nr)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(ji(e,"beforeChange")||e.cm&&ji(e.cm,"beforeChange"))||(t=Mr(e,t,!0))){var n=m&&!r&&function(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&-1!=oo(n,r)||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var l=n[o],s=l.find(0),a=0;a<i.length;++a){var u=i[a];if(!(fe(u.to,s.from)<0||0<fe(u.from,s.to))){var c=[a,1],f=fe(u.from,s.from),h=fe(u.to,s.to);(f<0||!l.inclusiveLeft&&!f)&&c.push({from:u.from,to:s.from}),(0<h||!l.inclusiveRight&&!h)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-1}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;0<=i;--i)Ar(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text});else Ar(e,t)}}function Ar(e,r){if(1!=r.text.length||""!=r.text[0]||0!=fe(r.from,r.to)){var t=kr(e,r);Si(e,r,t,e.cm?e.cm.curOp.id:NaN),Dr(e,r,t,yn(e,r));var n=[];ci(e,function(e,t){t||-1!=oo(n,e.history)||(Wi(e.history,r),n.push(e.history)),Dr(e,r,null,yn(e,r))})}}function Wr(e,t,r){if(!e.cm||!e.cm.state.suppressEdits){for(var n,i=e.history,o=e.sel,l="undo"==t?i.done:i.undone,s="undo"==t?i.undone:i.done,a=0;a<l.length&&(n=l[a],r?!n.ranges||n.equals(e.sel):n.ranges);a++);if(a!=l.length){for(i.lastOrigin=i.lastSelOrigin=null;(n=l.pop()).ranges;){if(Li(n,s),r&&!n.equals(e.sel))return void Ge(e,n,{clearRedo:!1});o=n}var u=[];Li(o,s),s.push({changes:u,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;var c=ji(e,"beforeChange")||e.cm&&ji(e.cm,"beforeChange");for(a=n.changes.length-1;0<=a;--a){var f=n.changes[a];if(f.origin=t,c&&!Mr(e,f,!1))return void(l.length=0);u.push(xi(e,f));var h=a?kr(e,f):no(l);Dr(e,f,h,wn(e,f)),!a&&e.cm&&e.cm.scrollIntoView({from:f.from,to:Sr(f)});var d=[];ci(e,function(e,t){t||-1!=oo(d,e.history)||(Wi(e.history,f),d.push(e.history)),Dr(e,f,null,wn(e,f))})}}}}function Or(e,t){if(0!=t&&(e.first+=t,e.sel=new Ne(lo(e.sel.ranges,function(e){return new Ae(ce(e.anchor.line+t,e.anchor.ch),ce(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Xt(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)_t(e.cm,n,"gutter")}}function Dr(e,t,r,n){if(e.cm&&!e.cm.curOp)return Gt(e.cm,Dr)(e,t,r,n);if(t.to.line<e.first)Or(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Or(e,i),t={from:ce(e.first,0),to:ce(t.to.line+i,t.to.ch),text:[no(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:ce(o,hi(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=di(e,t.from,t.to),r||(r=kr(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=vi(Wn(hi(n,o.line))),n.iter(a,l.line+1,function(e){if(e==i.maxLine)return s=!0}));-1<n.sel.contains(t.from,t.to)&&Ki(e);ni(n,t,r,k(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,function(e){var t=O(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));n.frontier=Math.min(n.frontier,o.line),Qe(e,400);var u=t.text.length-(l.line-o.line)-1;t.full?Xt(e):o.line!=l.line||1!=t.text.length||ri(e.doc,t)?Xt(e,o.line,l.line+1,u):_t(e,o.line,"text");var c=ji(e,"changes"),f=ji(e,"change");if(f||c){var h={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin};f&&Gi(e,"change",e,h),c&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(h)}e.display.selForContextMenu=null}(e.cm,t,n):ni(e,t,n),Ue(e,r,$i)}}function Hr(e,t,r,n,i){if(n||(n=r),fe(n,r)<0){var o=n;n=r,r=o}"string"==typeof t&&(t=Eo(t)),Nr(e,{from:r,to:n,text:t,origin:i})}function Pr(e,t,r,n,i){var o=e.display,l=Nt(e.display);r<0&&(r=0);var s=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:o.scroller.scrollTop,a=lt(e),u={};a<i-r&&(i=r+a);var c=e.doc.height+rt(o),f=r<l,h=c-l<i;if(r<s)u.scrollTop=f?0:r;else if(s+a<i){var d=Math.min(r,(h?c:i)-a);d!=s&&(u.scrollTop=d)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:o.scroller.scrollLeft,g=ot(e)-(e.options.fixedGutter?o.gutters.offsetWidth:0),v=g<n-t;return v&&(n=t+g),t<10?u.scrollLeft=0:t<p?u.scrollLeft=Math.max(0,t-(v?0:10)):g+p-3<n&&(u.scrollLeft=n+(v?0:10)-g),u}function Ir(e,t,r){null==t&&null==r||zr(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=r&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+r)}function Er(e){zr(e);var t=e.getCursor(),r=t,n=t;e.options.lineWrapping||(r=t.ch?ce(t.line,t.ch-1):t,n=ce(t.line,t.ch+1)),e.curOp.scrollToPos={from:r,to:n,margin:e.options.cursorScrollMargin,isCursor:!0}}function zr(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var r=Lt(e,t.from),n=Lt(e,t.to),i=Pr(e,Math.min(r.left,n.left),Math.min(r.top,n.top)-t.margin,Math.max(r.right,n.right),Math.max(r.bottom,n.bottom)+t.margin);e.scrollTo(i.scrollLeft,i.scrollTop)}}function Fr(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=et(e,t):r="prev");var l=e.options.tabSize,s=hi(o,t),a=Ji(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\s*/)[0];if(n||/\S/.test(s.text)){if("smart"==r&&((u=o.mode.indent(i,s.text.slice(c.length),s.text))==Yi||150<u)){if(!n)return;r="prev"}}else u=0,r="not";"prev"==r?u=t>o.first?Ji(hi(o,t-1).text,null,l):0:"add"==r?u=a+e.options.indentUnit:"subtract"==r?u=a-e.options.indentUnit:"number"==typeof r&&(u=a+r),u=Math.max(0,u);var f="",h=0;if(e.options.indentWithTabs)for(var d=Math.floor(u/l);d;--d)h+=l,f+="\t";if(h<u&&(f+=ro(u-h)),f!=c)Hr(o,f,ce(t,0),ce(t,c.length),"+input");else for(d=0;d<o.sel.ranges.length;d++){var p=o.sel.ranges[d];if(p.head.line==t&&p.head.ch<c.length){Fe(o,d,new Ae(h=ce(t,c.length),h));break}}s.stateAfter=null}function Rr(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=hi(e,De(e,t)):i=vi(t),null==i?null:(n(o,i)&&e.cm&&_t(e.cm,i,r),o)}function Br(t,e){for(var r=t.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=e(r[i]);n.length&&fe(o.from,no(n).to)<=0;){var l=n.pop();if(fe(l.from,o.from)<0){o.from=l.from;break}}n.push(o)}Bt(t,function(){for(var e=n.length-1;0<=e;e--)Hr(t.doc,"",n[e].from,n[e].to,"+delete");Er(t)})}function Gr(n,e,i,t,o){var l=e.line,s=e.ch,r=i,a=hi(n,l),u=!0;function c(e){var t,r=(o?qo:Zo)(a,s,i,!0);if(null==r){if(e||!((t=l+i)<n.first||t>=n.first+n.size?u=!1:a=hi(n,l=t)))return u=!1;s=o?(i<0?jo:Ko)(a):i<0?a.text.length:0}else s=r;return!0}if("char"==t)c();else if("column"==t)c(!0);else if("word"==t||"group"==t)for(var f=null,h="group"==t,d=n.cm&&n.cm.getHelper(e,"wordChars"),p=!0;!(i<0)||c(!p);p=!1){var g=a.text.charAt(s)||"\n",v=po(g,d)?"w":h&&"\n"==g?"n":!h||/\s/.test(g)?null:"p";if(!h||p||v||(v="s"),f&&f!=v){i<0&&(i=1,c());break}if(v&&(f=v),0<i&&!c(!p))break}var m=Xe(n,ce(l,s),r,!0);return u||(m.hitSide=!0),m}function Ur(e,t,r,n){var i,o=e.doc,l=t.left;if("page"==n){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);i=t.top+r*(s-(r<0?1.5:.5)*Nt(e.display))}else"line"==n&&(i=0<r?t.bottom+3:t.top-3);for(;;){var a=Tt(e,l,i);if(!a.outside)break;if(r<0?i<=0:i>=o.height){a.hitSide=!0;break}i+=5*r}return a}b.prototype={constructor:b,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var r=this.options,n=r[e];r[e]==t&&"mode"!=e||(r[e]=t,Kr.hasOwnProperty(e)&&Gt(this,Kr[e])(this,t,n))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](sn(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:Ut(function(e,t){var r=e.token?e:b.getMode(this.options,e);if(r.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:r,modeSpec:e,opaque:t&&t.opaque}),this.state.modeGen++,Xt(this)}),removeOverlay:Ut(function(e){for(var t=this.state.overlays,r=0;r<t.length;++r){var n=t[r].modeSpec;if(n==e||"string"==typeof e&&n.name==e)return t.splice(r,1),this.state.modeGen++,void Xt(this)}}),indentLine:Ut(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),Pe(this.doc,e)&&Fr(this,e,t,r)}),indentSelection:Ut(function(e){for(var t=this.doc.sel.ranges,r=-1,n=0;n<t.length;n++){var i=t[n];if(i.empty())i.head.line>r&&(Fr(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&Er(this));else{var o=i.from(),l=i.to(),s=Math.max(r,o.line);r=Math.min(this.lastLine(),l.line-(l.ch?0:1))+1;for(var a=s;a<r;++a)Fr(this,a,e);var u=this.doc.sel.ranges;0==o.ch&&t.length==u.length&&0<u[n].from().ch&&Fe(this.doc,n,new Ae(o,u[n].to()),$i)}}}),getTokenAt:function(e,t){return Un(this,e,t)},getLineTokens:function(e,t){return Un(this,ce(e),t,!0)},getTokenTypeAt:function(e){e=He(this.doc,e);var t,r=jn(this,hi(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]<o)){t=r[2*l+2];break}n=l+1}}var s=t?t.indexOf("cm-overlay "):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(e){var t=this.doc.mode;return t.innerMode?b.innerMode(t,this.getTokenAt(e).state).mode:t},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=[];if(!Zr.hasOwnProperty(t))return r;var n=Zr[t],i=this.getModeAt(e);if("string"==typeof i[t])n[i[t]]&&r.push(n[i[t]]);else if(i[t])for(var o=0;o<i[t].length;o++){var l=n[i[t][o]];l&&r.push(l)}else i.helperType&&n[i.helperType]?r.push(n[i.helperType]):n[i.name]&&r.push(n[i.name]);for(o=0;o<n._global.length;o++){var s=n._global[o];s.pred(i,this)&&-1==oo(r,s.val)&&r.push(s.val)}return r},getStateAfter:function(e,t){var r=this.doc;return et(this,(e=De(r,null==e?r.first+r.size-1:e))+1,t)},cursorCoords:function(e,t){var r=this.doc.sel.primary();return St(this,null==e?r.head:"object"==typeof e?He(this.doc,e):e?r.from():r.to(),t||"page")},charCoords:function(e,t){return Ct(this,He(this.doc,e),t||"page")},coordsChar:function(e,t){return Tt(this,(e=xt(this,e,t||"page")).left,e.top)},lineAtHeight:function(e,t){return e=xt(this,{top:e,left:0},t||"page").top,mi(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t){var r=!1,n=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:n<e&&(e=n,r=!0);var i=hi(this.doc,e);return wt(this,i,{top:0,left:0},t||"page").top+(r?this.doc.height-yi(i):0)},defaultTextHeight:function(){return Nt(this.display)},defaultCharWidth:function(){return At(this.display)},setGutterMarker:Ut(function(e,r,n){return Rr(this.doc,e,"gutter",function(e){var t=e.gutterMarkers||(e.gutterMarkers={});return!(t[r]=n)&&go(t)&&(e.gutterMarkers=null),!0})}),clearGutter:Ut(function(t){var r=this,e=r.doc,n=e.first;e.iter(function(e){e.gutterMarkers&&e.gutterMarkers[t]&&(e.gutterMarkers[t]=null,_t(r,n,"gutter"),go(e.gutterMarkers)&&(e.gutterMarkers=null)),++n})}),lineInfo:function(e){if("number"==typeof e){if(!Pe(this.doc,e))return null;var t=e;if(!(e=hi(this.doc,e)))return null}else{if(null==(t=vi(e)))return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o,l,s,a,u,c,f=this.display,h=(e=St(this,He(this.doc,e))).bottom,d=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),f.sizer.appendChild(t),"over"==n)h=e.top;else if("above"==n||"near"==n){var p=Math.max(f.wrapper.clientHeight,this.doc.height),g=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>p)&&e.top>t.offsetHeight?h=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=p&&(h=e.bottom),d+t.offsetWidth>g&&(d=g-t.offsetWidth)}t.style.top=h+"px",t.style.left=t.style.right="","right"==i?(d=f.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?d=0:"middle"==i&&(d=(f.sizer.clientWidth-t.offsetWidth)/2),t.style.left=d+"px"),r&&(o=this,s=h,a=(l=d)+t.offsetWidth,u=h+t.offsetHeight,null!=(c=Pr(o,l,s,a,u)).scrollTop&&lr(o,c.scrollTop),null!=c.scrollLeft&&sr(o,c.scrollLeft))},triggerOnKeyDown:Ut(mr),triggerOnKeyPress:Ut(br),triggerOnKeyUp:yr,execCommand:function(e){if(en.hasOwnProperty(e))return en[e](this)},findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=0,l=He(this.doc,e);o<t&&!(l=Gr(this.doc,l,i,r,n)).hitSide;++o);return l},moveH:Ut(function(t,r){var n=this;n.extendSelectionsBy(function(e){return n.display.shift||n.doc.extend||e.empty()?Gr(n.doc,e.head,t,r,n.options.rtlMoveVisually):t<0?e.from():e.to()},Zi)}),deleteH:Ut(function(r,n){var e=this.doc.sel,i=this.doc;e.somethingSelected()?i.replaceSelection("",null,"+delete"):Br(this,function(e){var t=Gr(i,e.head,r,n,!1);return r<0?{from:t,to:e.head}:{from:e.head,to:t}})}),findPosV:function(e,t,r,n){var i=1,o=n;t<0&&(i=-1,t=-t);for(var l=0,s=He(this.doc,e);l<t;++l){var a=St(this,s,"div");if(null==o?o=a.left:a.left=o,(s=Ur(this,a,i,r)).hitSide)break}return s},moveV:Ut(function(n,i){var o=this,l=this.doc,s=[],a=!o.display.shift&&!l.extend&&l.sel.somethingSelected();if(l.extendSelectionsBy(function(e){if(a)return n<0?e.from():e.to();var t=St(o,e.head,"div");null!=e.goalColumn&&(t.left=e.goalColumn),s.push(t.left);var r=Ur(o,t,n,i);return"page"==i&&e==l.sel.primary()&&Ir(o,null,Ct(o,r,"div").top-t.top),r},Zi),s.length)for(var e=0;e<l.sel.ranges.length;e++)l.sel.ranges[e].goalColumn=s[e]}),findWordAt:function(e){var t=hi(this.doc,e.line).text,r=e.ch,n=e.ch;if(t){var i=this.getHelper(e,"wordChars");(e.xRel<0||n==t.length)&&r?--r:++n;for(var o=t.charAt(r),l=po(o,i)?function(e){return po(e,i)}:/\s/.test(o)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!po(e)};0<r&&l(t.charAt(r-1));)--r;for(;n<t.length&&l(t.charAt(n));)++n}return new Ae(ce(e.line,r),ce(e.line,n))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?To(this.display.cursorDiv,"CodeMirror-overwrite"):ko(this.display.cursorDiv,"CodeMirror-overwrite"),Ri(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==So()},scrollTo:Ut(function(e,t){null==e&&null==t||zr(this),null!=e&&(this.curOp.scrollLeft=e),null!=t&&(this.curOp.scrollTop=t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-it(this)-this.display.barHeight,width:e.scrollWidth-it(this)-this.display.barWidth,clientHeight:lt(this),clientWidth:ot(this)}},scrollIntoView:Ut(function(e,t){if(null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:ce(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line)zr(this),this.curOp.scrollToPos=e;else{var r=Pr(this,Math.min(e.from.left,e.to.left),Math.min(e.from.top,e.to.top)-e.margin,Math.max(e.from.right,e.to.right),Math.max(e.from.bottom,e.to.bottom)+e.margin);this.scrollTo(r.scrollLeft,r.scrollTop)}}),setSize:Ut(function(e,t){var r=this;function n(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e}null!=e&&(r.display.wrapper.style.width=n(e)),null!=t&&(r.display.wrapper.style.height=n(t)),r.options.lineWrapping&&vt(this);var i=r.display.viewFrom;r.doc.iter(i,r.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){_t(r,i,"widget");break}++i}),r.curOp.forceUpdate=!0,Ri(r,"refresh",this)}),operation:function(e){return Bt(this,e)},refresh:Ut(function(){var e=this.display.cachedTextHeight;Xt(this),this.curOp.forceUpdate=!0,mt(this),this.scrollTo(this.doc.scrollLeft,this.doc.scrollTop),W(this),(null==e||.5<Math.abs(e-Nt(this.display)))&&T(this),Ri(this,"refresh",this)}),swapDoc:Ut(function(e){var t=this.doc;return t.cm=null,fi(this,e),mt(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Gi(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Xi(b);var Vr=b.defaults={},Kr=b.optionHandlers={};function jr(e,t,n,r){b.defaults[e]=t,n&&(Kr[e]=r?function(e,t,r){r!=Xr&&n(e,t,r)}:n)}var Xr=b.Init={toString:function(){return"CodeMirror.Init"}};jr("value","",function(e,t){e.setValue(t)},!0),jr("mode",null,function(e,t){e.doc.modeOption=t,S(e)},!0),jr("indentUnit",2,S,!0),jr("indentWithTabs",!1),jr("smartIndent",!0),jr("tabSize",4,function(e){L(e),mt(e),Xt(e)},!0),jr("specialChars",/[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=b.Init&&e.refresh()}),jr("specialCharPlaceholder",function(e){var t=bo("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t},function(e){e.refresh()},!0),jr("electricChars",!0),jr("inputStyle",c?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),jr("rtlMoveVisually",!o),jr("wholeLineUpdateBefore",!0),jr("theme","default",function(e){M(e),N(e)},!0),jr("keyMap","default",function(e,t,r){var n=sn(t),i=r!=b.Init&&sn(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),jr("extraKeys",null),jr("lineWrapping",!1,function(e){e.options.lineWrapping?(To(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(ko(e.display.wrapper,"CodeMirror-wrap"),D(e)),T(e),Xt(e),mt(e),setTimeout(function(){F(e)},100)},!0),jr("gutters",[],function(e){H(e.options),N(e)},!0),jr("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?K(e.display)+"px":"0",e.refresh()},!0),jr("coverGutterNextToScrollbar",!1,function(e){F(e)},!0),jr("scrollbarStyle","native",function(e){z(e),F(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),jr("lineNumbers",!1,function(e){H(e.options),N(e)},!0),jr("firstLineNumber",1,N,!0),jr("lineNumberFormatter",function(e){return e},N,!0),jr("showCursorWhenSelecting",!1,_e,!0),jr("resetSelectionOnContextMenu",!0),jr("readOnly",!1,function(e,t){"nocursor"==t?(xr(e),e.display.input.blur(),e.display.disabled=!0):(e.display.disabled=!1,t||e.display.input.reset())}),jr("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),jr("dragDrop",!0),jr("cursorBlinkRate",530),jr("cursorScrollMargin",0),jr("cursorHeight",1,_e,!0),jr("singleCursorHeightPerLine",!0,_e,!0),jr("workTime",100),jr("workDelay",100),jr("flattenSpans",!0,L,!0),jr("addModeClass",!1,L,!0),jr("pollInterval",100),jr("undoDepth",200,function(e,t){e.doc.history.undoDepth=t}),jr("historyEventDelay",1250),jr("viewportMargin",10,function(e){e.refresh()},!0),jr("maxHighlightLength",1e4,L,!0),jr("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),jr("tabindex",null,function(e,t){e.display.input.getField().tabIndex=t||""}),jr("autofocus",null);var _r=b.modes={},Yr=b.mimeModes={};b.defineMode=function(e,t){b.defaults.mode||"null"==e||(b.defaults.mode=e),2<arguments.length&&(t.dependencies=Array.prototype.slice.call(arguments,2)),_r[e]=t},b.defineMIME=function(e,t){Yr[e]=t},b.resolveMode=function(e){if("string"==typeof e&&Yr.hasOwnProperty(e))e=Yr[e];else if(e&&"string"==typeof e.name&&Yr.hasOwnProperty(e.name)){var t=Yr[e.name];"string"==typeof t&&(t={name:t}),(e=ao(t,e)).name=t.name}else if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return b.resolveMode("application/xml");return"string"==typeof e?{name:e}:e||{name:"null"}},b.getMode=function(e,t){t=b.resolveMode(t);var r=_r[t.name];if(!r)return b.getMode(e,"text/plain");var n=r(e,t);if($r.hasOwnProperty(t.name)){var i=$r[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var o in t.modeProps)n[o]=t.modeProps[o];return n},b.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),b.defineMIME("text/plain","null");var $r=b.modeExtensions={};b.extendMode=function(e,t){uo(t,$r.hasOwnProperty(e)?$r[e]:$r[e]={})},b.defineExtension=function(e,t){b.prototype[e]=t},b.defineDocExtension=function(e,t){si.prototype[e]=t},b.defineOption=jr;var qr=[];b.defineInitHook=function(e){qr.push(e)};var Zr=b.helpers={};b.registerHelper=function(e,t,r){Zr.hasOwnProperty(e)||(Zr[e]=b[e]={_global:[]}),Zr[e][t]=r},b.registerGlobalHelper=function(e,t,r,n){b.registerHelper(e,t,n),Zr[e]._global.push({pred:r,val:n})};var Qr=b.copyState=function(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r},Jr=b.startState=function(e,t,r){return!e.startState||e.startState(t,r)};b.innerMode=function(e,t){for(;e.innerMode;){var r=e.innerMode(t);if(!r||r.mode==e)break;t=r.state,e=r.mode}return r||{mode:e,state:t}};var en=b.commands={selectAll:function(e){e.setSelection(ce(e.firstLine(),0),ce(e.lastLine()),$i)},singleSelection:function(e){e.setSelection(e.getCursor("anchor"),e.getCursor("head"),$i)},killLine:function(r){Br(r,function(e){if(e.empty()){var t=hi(r.doc,e.head.line).text.length;return e.head.ch==t&&e.head.line<r.lastLine()?{from:e.head,to:ce(e.head.line+1,0)}:{from:e.head,to:ce(e.head.line,t)}}return{from:e.from(),to:e.to()}})},deleteLine:function(t){Br(t,function(e){return{from:ce(e.from().line,0),to:He(t.doc,ce(e.to().line+1,0))}})},delLineLeft:function(e){Br(e,function(e){return{from:ce(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(r){Br(r,function(e){var t=r.charCoords(e.head,"div").top+5;return{from:r.coordsChar({left:0,top:t},"div"),to:e.from()}})},delWrappedLineRight:function(n){Br(n,function(e){var t=n.charCoords(e.head,"div").top+5,r=n.coordsChar({left:n.display.lineDiv.offsetWidth+100,top:t},"div");return{from:e.from(),to:r}})},undo:function(e){e.undo()},redo:function(e){e.redo()},undoSelection:function(e){e.undoSelection()},redoSelection:function(e){e.redoSelection()},goDocStart:function(e){e.extendSelection(ce(e.firstLine(),0))},goDocEnd:function(e){e.extendSelection(ce(e.lastLine()))},goLineStart:function(t){t.extendSelectionsBy(function(e){return Xo(t,e.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(t){t.extendSelectionsBy(function(e){return _o(t,e.head)},{origin:"+move",bias:1})},goLineEnd:function(t){t.extendSelectionsBy(function(e){return function(e,t){var r,n=hi(e.doc,t);for(;r=Nn(n);)n=r.find(1,!0).line,t=null;var i=bi(n),o=i?i[0].level%2?Ko(n):jo(n):n.text.length;return ce(null==t?vi(n):t,o)}(t,e.head.line)},{origin:"+move",bias:-1})},goLineRight:function(r){r.extendSelectionsBy(function(e){var t=r.charCoords(e.head,"div").top+5;return r.coordsChar({left:r.display.lineDiv.offsetWidth+100,top:t},"div")},Zi)},goLineLeft:function(r){r.extendSelectionsBy(function(e){var t=r.charCoords(e.head,"div").top+5;return r.coordsChar({left:0,top:t},"div")},Zi)},goLineLeftSmart:function(n){n.extendSelectionsBy(function(e){var t=n.charCoords(e.head,"div").top+5,r=n.coordsChar({left:0,top:t},"div");return r.ch<n.getLine(r.line).search(/\S/)?_o(n,e.head):r},Zi)},goLineUp:function(e){e.moveV(-1,"line")},goLineDown:function(e){e.moveV(1,"line")},goPageUp:function(e){e.moveV(-1,"page")},goPageDown:function(e){e.moveV(1,"page")},goCharLeft:function(e){e.moveH(-1,"char")},goCharRight:function(e){e.moveH(1,"char")},goColumnLeft:function(e){e.moveH(-1,"column")},goColumnRight:function(e){e.moveH(1,"column")},goWordLeft:function(e){e.moveH(-1,"word")},goGroupRight:function(e){e.moveH(1,"group")},goGroupLeft:function(e){e.moveH(-1,"group")},goWordRight:function(e){e.moveH(1,"word")},delCharBefore:function(e){e.deleteH(-1,"char")},delCharAfter:function(e){e.deleteH(1,"char")},delWordBefore:function(e){e.deleteH(-1,"word")},delWordAfter:function(e){e.deleteH(1,"word")},delGroupBefore:function(e){e.deleteH(-1,"group")},delGroupAfter:function(e){e.deleteH(1,"group")},indentAuto:function(e){e.indentSelection("smart")},indentMore:function(e){e.indentSelection("add")},indentLess:function(e){e.indentSelection("subtract")},insertTab:function(e){e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),l=Ji(e.getLine(o.line),o.ch,n);t.push(new Array(n-l%n+1).join(" "))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(l){Bt(l,function(){for(var e=l.listSelections(),t=[],r=0;r<e.length;r++){var n=e[r].head,i=hi(l.doc,n.line).text;if(i)if(n.ch==i.length&&(n=new ce(n.line,n.ch-1)),0<n.ch)n=new ce(n.line,n.ch+1),l.replaceRange(i.charAt(n.ch-1)+i.charAt(n.ch-2),ce(n.line,n.ch-2),n,"+transpose");else if(n.line>l.doc.first){var o=hi(l.doc,n.line-1).text;o&&l.replaceRange(i.charAt(0)+"\n"+o.charAt(o.length-1),ce(n.line-1,o.length-1),ce(n.line,1),"+transpose")}t.push(new Ae(n,n))}l.setSelections(t)})},newlineAndIndent:function(n){Bt(n,function(){for(var e=n.listSelections().length,t=0;t<e;t++){var r=n.listSelections()[t];n.replaceRange("\n",r.anchor,r.head,"+input"),n.indentLine(r.from().line+1,null,!0),Er(n)}})},toggleOverwrite:function(e){e.toggleOverwrite()}},tn=b.keyMap={};function rn(e){for(var t,r,n,i,o=e.split(/-(?!$)/),l=(e=o[o.length-1],0);l<o.length-1;l++){var s=o[l];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))r=!0;else{if(!/^s(hift)$/i.test(s))throw new Error("Unrecognized modifier name: "+s);n=!0}}return t&&(e="Alt-"+e),r&&(e="Ctrl-"+e),i&&(e="Cmd-"+e),n&&(e="Shift-"+e),e}tn.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},tn.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},tn.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"},tn.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},tn.default=v?tn.macDefault:tn.pcDefault,b.normalizeKeyMap=function(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=lo(r.split(" "),rn),o=0;o<i.length;o++){var l,s;l=o==i.length-1?(s=r,n):(s=i.slice(0,o+1).join(" "),"...");var a=t[s];if(a){if(a!=l)throw new Error("Inconsistent bindings for "+s)}else t[s]=l}delete e[r]}for(var u in t)e[u]=t[u];return e};var nn=b.lookupKey=function(e,t,r,n){var i=(t=sn(t)).call?t.call(e,n):t[e];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return nn(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var l=nn(e,t.fallthrough[o],r,n);if(l)return l}}},on=b.isModifierKey=function(e){var t="string"==typeof e?e:Go[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t},ln=b.keyName=function(e,t){if(g&&34==e.keyCode&&e.char)return!1;var r=Go[e.keyCode],n=r;return null!=n&&!e.altGraphKey&&(e.altKey&&"Alt"!=r&&(n="Alt-"+n),(f?e.metaKey:e.ctrlKey)&&"Ctrl"!=r&&(n="Ctrl-"+n),(f?e.ctrlKey:e.metaKey)&&"Cmd"!=r&&(n="Cmd-"+n),!t&&e.shiftKey&&"Shift"!=r&&(n="Shift-"+n),n)};function sn(e){return"string"==typeof e?tn[e]:e}b.fromTextArea=function(t,e){if((e=e?uo(e):{}).value=t.value,!e.tabindex&&t.tabIndex&&(e.tabindex=t.tabIndex),!e.placeholder&&t.placeholder&&(e.placeholder=t.placeholder),null==e.autofocus){var r=So();e.autofocus=r==t||null!=t.getAttribute("autofocus")&&r==document.body}function n(){t.value=s.getValue()}if(t.form&&(zi(t.form,"submit",n),!e.leaveSubmitMethodAlone)){var i=t.form,o=i.submit;try{var l=i.submit=function(){n(),i.submit=o,i.submit(),i.submit=l}}catch(e){}}e.finishInit=function(e){e.save=n,e.getTextArea=function(){return t},e.toTextArea=function(){e.toTextArea=isNaN,n(),t.parentNode.removeChild(e.getWrapperElement()),t.style.display="",t.form&&(Fi(t.form,"submit",n),"function"==typeof t.form.submit&&(t.form.submit=o))}},t.style.display="none";var s=b(function(e){t.parentNode.insertBefore(e,t.nextSibling)},e);return s};var an=b.StringStream=function(e,t){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0};an.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var r=t==e;else r=t&&(e.test?e.test(t):e(t));if(r)return++this.pos,t},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(-1<t)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Ji(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?Ji(this.string,this.lineStart,this.tabSize):0)},indentation:function(){return Ji(this.string,null,this.tabSize)-(this.lineStart?Ji(this.string,this.lineStart,this.tabSize):0)},match:function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&0<n.index?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}};var un=0,cn=b.TextMarker=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++un};Xi(cn),cn.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Pt(e),ji(this,"clear")){var r=this.find();r&&Gi(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;o<this.lines.length;++o){var l=this.lines[o],s=vn(l.markedSpans,this);e&&!this.collapsed?_t(e,vi(l),"text"):e&&(null!=s.to&&(i=vi(l)),null!=s.from&&(n=vi(l))),l.markedSpans=mn(l.markedSpans,s),null==s.from&&this.collapsed&&!Hn(this.doc,l)&&e&&gi(l,Nt(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(o=0;o<this.lines.length;++o){var a=Wn(this.lines[o]),u=O(a);u>e.display.maxLineLength&&(e.display.maxLine=a,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&Xt(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Ke(e.doc)),e&&Gi(e,"markerCleared",e,this),t&&It(e),this.parent&&this.parent.clear()}},cn.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],l=vn(o.markedSpans,this);if(null!=l.from&&(r=ce(t?o:vi(o),l.from),-1==e))return r;if(null!=l.to&&(n=ce(t?o:vi(o),l.to),1==e))return n}return r&&{from:r,to:n}},cn.prototype.changed=function(){var o=this.find(-1,!0),l=this,s=this.doc.cm;o&&s&&Bt(s,function(){var e=o.line,t=vi(o.line),r=ut(s,t);if(r&&(gt(r),s.curOp.selectionChanged=s.curOp.forceUpdate=!0),s.curOp.updateMaxLine=!0,!Hn(l.doc,e)&&null!=l.height){var n=l.height;l.height=null;var i=zn(l)-n;i&&gi(e,e.height+i)}})},cn.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=oo(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},cn.prototype.detachLine=function(e){if(this.lines.splice(oo(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}};un=0;function fn(t,n,i,e,r){if(e&&e.shared)return function(e,r,n,i,o){(i=uo(i)).shared=!1;var l=[fn(e,r,n,i,o)],s=l[0],a=i.widgetNode;return ci(e,function(e){a&&(i.widgetNode=a.cloneNode(!0)),l.push(fn(e,He(e,r),He(e,n),i,o));for(var t=0;t<e.linked.length;++t)if(e.linked[t].isParent)return;s=no(l)}),new hn(l,s)}(t,n,i,e,r);if(t.cm&&!t.cm.curOp)return Gt(t.cm,fn)(t,n,i,e,r);var o=new cn(t,r),l=fe(n,i);if(e&&uo(e,o,!1),0<l||0==l&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=bo("span",[o.replacedWith],"CodeMirror-widget"),e.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),e.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(An(t,n.line,n,i,o)||n.line!=i.line&&An(t,i.line,n,i,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");y=!0}o.addToHistory&&Si(t,{from:n,to:i,origin:"markText"},t.sel,NaN);var s,a=n.line,u=t.cm;if(t.iter(a,i.line+1,function(e){var t,r;u&&o.collapsed&&!u.options.lineWrapping&&Wn(e)==u.display.maxLine&&(s=!0),o.collapsed&&a!=n.line&&gi(e,0),t=e,r=new gn(o,a==n.line?n.ch:null,a==i.line?i.ch:null),t.markedSpans=t.markedSpans?t.markedSpans.concat([r]):[r],r.marker.attachLine(t),++a}),o.collapsed&&t.iter(n.line,i.line+1,function(e){Hn(t,e)&&gi(e,0)}),o.clearOnEnter&&zi(o,"beforeCursorEnter",function(){o.clear()}),o.readOnly&&(m=!0,(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++un,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)Xt(u,n.line,i.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var c=n.line;c<=i.line;c++)_t(u,c,"text");o.atomic&&Ke(u.doc),Gi(u,"markerAdded",u,o)}return o}var hn=b.SharedTextMarker=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};function dn(e){return e.findMarks(ce(e.first,0),e.clipPos(ce(e.lastLine())),function(e){return e.parent})}function pn(e){for(var t=0;t<e.length;t++){var r=e[t],n=[r.primary.doc];ci(r.primary.doc,function(e){n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==oo(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}}}function gn(e,t,r){this.marker=e,this.from=t,this.to=r}function vn(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function mn(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function yn(e,t){if(t.full)return null;var r=Pe(e,t.from.line)&&hi(e,t.from.line).markedSpans,n=Pe(e,t.to.line)&&hi(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,l=0==fe(t.from,t.to),s=function(e,t,r){if(e)for(var n,i=0;i<e.length;++i){var o=e[i],l=o.marker;if(null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&"bookmark"==l.type&&(!r||!o.marker.insertLeft)){var s=null==o.to||(l.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new gn(l,o.from,s?null:o.to))}}return n}(r,i,l),a=function(e,t,r){if(e)for(var n,i=0;i<e.length;++i){var o=e[i],l=o.marker;if(null==o.to||(l.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&"bookmark"==l.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new gn(l,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,l),u=1==t.text.length,c=no(t.text).length+(u?i:0);if(s)for(var f=0;f<s.length;++f){if(null==(h=s[f]).to)(d=vn(a,h.marker))?u&&(h.to=null==d.to?null:d.to+c):h.to=i}if(a)for(f=0;f<a.length;++f){var h,d;if(null!=(h=a[f]).to&&(h.to+=c),null==h.from)(d=vn(s,h.marker))||(h.from=c,u&&(s||(s=[])).push(h));else h.from+=c,u&&(s||(s=[])).push(h)}s&&(s=bn(s)),a&&a!=s&&(a=bn(a));var p=[s];if(!u){var g,v=t.text.length-2;if(0<v&&s)for(f=0;f<s.length;++f)null==s[f].to&&(g||(g=[])).push(new gn(s[f].marker,null,null));for(f=0;f<v;++f)p.push(g);p.push(a)}return p}function bn(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function wn(e,t){var r=function(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=0,i=[];n<t.text.length;++n)i.push(Ti(r[n]));return i}(e,t),n=yn(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],l=n[i];if(o&&l)e:for(var s=0;s<l.length;++s){for(var a=l[s],u=0;u<o.length;++u)if(o[u].marker==a.marker)continue e;o.push(a)}else l&&(r[i]=l)}return r}function xn(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function Cn(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function Sn(e){return e.inclusiveLeft?-1:0}function Ln(e){return e.inclusiveRight?1:0}function kn(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=fe(n.from,i.from)||Sn(e)-Sn(t);if(o)return-o;var l=fe(n.to,i.to)||Ln(e)-Ln(t);return l||t.id-e.id}function Tn(e,t){var r,n=y&&e.markedSpans;if(n)for(var i,o=0;o<n.length;++o)(i=n[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!r||kn(r,i.marker)<0)&&(r=i.marker);return r}function Mn(e){return Tn(e,!0)}function Nn(e){return Tn(e,!1)}function An(e,t,r,n,i){var o=hi(e,t),l=y&&o.markedSpans;if(l)for(var s=0;s<l.length;++s){var a=l[s];if(a.marker.collapsed){var u=a.marker.find(0),c=fe(u.from,r)||Sn(a.marker)-Sn(i),f=fe(u.to,n)||Ln(a.marker)-Ln(i);if(!(0<=c&&f<=0||c<=0&&0<=f)&&(c<=0&&(0<fe(u.to,r)||a.marker.inclusiveRight&&i.inclusiveLeft)||0<=c&&(fe(u.from,n)<0||a.marker.inclusiveLeft&&i.inclusiveRight)))return!0}}}function Wn(e){for(var t;t=Mn(e);)e=t.find(-1,!0).line;return e}function On(e,t){var r=hi(e,t),n=Wn(r);return r==n?t:vi(n)}function Dn(e,t){if(t>e.lastLine())return t;var r,n=hi(e,t);if(!Hn(e,n))return t;for(;r=Nn(n);)n=r.find(1,!0).line;return vi(n)+1}function Hn(e,t){var r=y&&t.markedSpans;if(r)for(var n,i=0;i<r.length;++i)if((n=r[i]).marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&Pn(e,t,n))return!0}}function Pn(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return Pn(e,n.line,vn(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i,o=0;o<t.markedSpans.length;++o)if((i=t.markedSpans[o]).marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&Pn(e,t,i))return!0}Xi(hn),hn.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Gi(this,"clear")}},hn.prototype.find=function(e,t){return this.primary.find(e,t)};var In=b.LineWidget=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};function En(e,t,r){yi(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Ir(e,null,r)}function zn(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!Co(document.body,e.node)){var r="position: relative;";e.coverGutter&&(r+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(r+="width: "+t.display.wrapper.clientWidth+"px;"),xo(t.display.measure,bo("div",[e.node],null,r))}return e.height=e.node.offsetHeight}Xi(In),In.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=vi(r);if(null!=n&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(r.widgets=null);var o=zn(this);gi(r,Math.max(0,r.height-o)),e&&Bt(e,function(){En(e,r,-o),_t(e,n,"widget")})}},In.prototype.changed=function(){var e=this.height,t=this.doc.cm,r=this.line;this.height=null;var n=zn(this)-e;n&&(gi(r,r.height+n),t&&Bt(t,function(){t.curOp.forceUpdate=!0,En(t,r,n)}))};var Fn=b.Line=function(e,t,r){this.text=e,Cn(this,t),this.height=r?r(this):1};function Rn(e,t){if(e)for(;;){var r=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?"bgClass":"textClass";null==t[n]?t[n]=r[2]:new RegExp("(?:^|s)"+r[2]+"(?:$|s)").test(t[n])||(t[n]+=" "+r[2])}return e}function Bn(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=b.innerMode(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Gn(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=b.innerMode(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function Un(e,t,r,n){function i(e){return{start:f.start,end:f.pos,string:f.current(),type:o||null,state:e?Qr(l.mode,c):c}}var o,l=e.doc,s=l.mode;t=He(l,t);var a,u=hi(l,t.line),c=et(e,t.line,r),f=new an(u.text,e.options.tabSize);for(n&&(a=[]);(n||f.pos<t.ch)&&!f.eol();)f.start=f.pos,o=Gn(s,f,c),n&&a.push(i(!0));return n?a:i()}function Vn(e,t,r,n,i,o,l){var s=r.flattenSpans;null==s&&(s=e.options.flattenSpans);var a,u=0,c=null,f=new an(t,e.options.tabSize),h=e.options.addModeClass&&[null];for(""==t&&Rn(Bn(r,n),o);!f.eol();){if(a=f.pos>e.options.maxHighlightLength?(s=!1,l&&Xn(e,t,n,f.pos),f.pos=t.length,null):Rn(Gn(r,f,n,h),o),h){var d=h[0].name;d&&(a="m-"+(a?d+" "+a:d))}if(!s||c!=a){for(;u<f.start;)i(u=Math.min(f.start,u+5e4),c);c=a}f.start=f.pos}for(;u<f.pos;){var p=Math.min(f.pos,u+5e4);i(p,c),u=p}}function Kn(e,t,r,n){var o=[e.state.modeGen],i={};Vn(e,t.text,e.doc.mode,r,function(e,t){o.push(e,t)},i,n);for(var l=0;l<e.state.overlays.length;++l){var s=e.state.overlays[l],a=1,u=0;Vn(e,t.text,s.mode,!0,function(e,t){for(var r=a;u<e;){var n=o[a];e<n&&o.splice(a,1,e,o[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)o.splice(r,a-r,e,"cm-overlay "+t),a=r+2;else for(;r<a;r+=2){var i=o[r+1];o[r+1]=(i?i+" ":"")+"cm-overlay "+t}},i)}return{styles:o,classes:i.bgClass||i.textClass?i:null}}function jn(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=Kn(e,t,t.stateAfter=et(e,vi(t)));t.styles=n.styles,n.classes?t.styleClasses=n.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.frontier&&e.doc.frontier++}return t.styles}function Xn(e,t,r,n){var i=e.doc.mode,o=new an(t,e.options.tabSize);for(o.start=o.pos=n||0,""==t&&Bn(i,r);!o.eol()&&o.pos<=e.options.maxHighlightLength;)Gn(i,o,r),o.start=o.pos}Xi(Fn),Fn.prototype.lineNo=function(){return vi(this)};var _n={},Yn={};function $n(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?Yn:_n;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function qn(e,t){var r=bo("span",null,null,p?"padding-right: .1px":null),n={pre:bo("pre",[r]),content:r,col:0,pos:0,cm:e,splitSpaces:(w||p)&&e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o,l=i?t.rest[i-1]:t.line;n.pos=0,n.addToken=Zn,Po(e.display.measure)&&(o=bi(l))&&(n.addToken=Jn(n.addToken,o)),n.map=[],ti(l,n,jn(e,l,t!=e.display.externalMeasured&&vi(l))),l.styleClasses&&(l.styleClasses.bgClass&&(n.bgClass=Mo(l.styleClasses.bgClass,n.bgClass||"")),l.styleClasses.textClass&&(n.textClass=Mo(l.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Ho(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}return p&&/\bcm-tab\b/.test(n.content.lastChild.className)&&(n.content.className="cm-tab-wrap-hack"),Ri(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=Mo(n.pre.className,n.textClass||"")),n}function Zn(e,t,r,n,i,o,l){if(t){var s=e.splitSpaces?t.replace(/ {3,}/g,Qn):t,a=e.cm.state.specialChars,u=!1;if(a.test(t)){v=document.createDocumentFragment();for(var c=0;;){a.lastIndex=c;var f=a.exec(t),h=f?f.index-c:t.length-c;if(h){var d=document.createTextNode(s.slice(c,c+h));w&&x<9?v.appendChild(bo("span",[d])):v.appendChild(d),e.map.push(e.pos,e.pos+h,d),e.col+=h,e.pos+=h}if(!f)break;if(c+=h+1,"\t"==f[0]){var p=e.cm.options.tabSize,g=p-e.col%p;(d=v.appendChild(bo("span",ro(g),"cm-tab"))).setAttribute("role","presentation"),d.setAttribute("cm-text","\t"),e.col+=g}else{(d=e.cm.options.specialCharPlaceholder(f[0])).setAttribute("cm-text",f[0]),w&&x<9?v.appendChild(bo("span",[d])):v.appendChild(d),e.col+=1}e.map.push(e.pos,e.pos+1,d),e.pos++}}else{e.col+=t.length;var v=document.createTextNode(s);e.map.push(e.pos,e.pos+t.length,v),w&&x<9&&(u=!0),e.pos+=t.length}if(r||n||i||u||l){var m=r||"";n&&(m+=n),i&&(m+=i);var y=bo("span",[v],m,l);return o&&(y.title=o),e.content.appendChild(y)}e.content.appendChild(v)}}function Qn(e){for(var t=" ",r=0;r<e.length-2;++r)t+=r%2?" ":" ";return t+=" "}function Jn(f,h){return function(e,t,r,n,i,o,l){r=r?r+" cm-force-border":"cm-force-border";for(var s=e.pos,a=s+t.length;;){for(var u=0;u<h.length;u++){var c=h[u];if(c.to>s&&c.from<=s)break}if(c.to>=a)return f(e,t,r,n,i,o,l);f(e,t.slice(0,c.to-s),r,n,null,o,l),n=null,t=t.slice(c.to-s),s=c.to}}}function ei(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t}function ti(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,f,h,d=i.length,p=0,g=(L=1,""),v=0;;){if(v==p){a=u=c=f=s="",h=null,v=1/0;for(var m=[],y=0;y<n.length;++y){var b=n[y],w=b.marker;b.from<=p&&(null==b.to||b.to>p)?(null!=b.to&&v>b.to&&(v=b.to,u=""),w.className&&(a+=" "+w.className),w.css&&(s=w.css),w.startStyle&&b.from==p&&(c+=" "+w.startStyle),w.endStyle&&b.to==v&&(u+=" "+w.endStyle),w.title&&!f&&(f=w.title),w.collapsed&&(!h||kn(h.marker,w)<0)&&(h=b)):b.from>p&&v>b.from&&(v=b.from),"bookmark"==w.type&&b.from==p&&w.widgetNode&&m.push(w)}if(h&&(h.from||0)==p&&(ei(t,(null==h.to?d+1:h.to)-p,h.marker,null==h.from),null==h.to))return;if(!h&&m.length)for(y=0;y<m.length;++y)ei(t,0,m[y])}if(d<=p)break;for(var x=Math.min(d,v);;){if(g){var C=p+g.length;if(!h){var S=x<C?g.slice(0,x-p):g;t.addToken(t,S,l?l+a:a,c,p+S.length==v?u:"",f,s)}if(x<=C){g=g.slice(x-p),p=x;break}p=C,c=""}g=i.slice(o,o=r[L++]),l=$n(r[L++],t.cm.options)}}else for(var L=1;L<r.length;L+=2)t.addToken(t,i.slice(o,o=r[L]),$n(r[L+1],t.cm.options))}function ri(e,t){return 0==t.from.ch&&0==t.to.ch&&""==no(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function ni(e,n,t,i){function o(e){return t?t[e]:null}function r(e,t,r){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),xn(e),Cn(e,r);var i=n?n(e):1;i!=e.height&&gi(e,i)}(e,t,r,i),Gi(e,"change",e,n)}function l(e,t){for(var r=e,n=[];r<t;++r)n.push(new Fn(u[r],o(r),i));return n}var s=n.from,a=n.to,u=n.text,c=hi(e,s.line),f=hi(e,a.line),h=no(u),d=o(u.length-1),p=a.line-s.line;if(n.full)e.insert(0,l(0,u.length)),e.remove(u.length,e.size-u.length);else if(ri(e,n)){var g=l(0,u.length-1);r(f,f.text,d),p&&e.remove(s.line,p),g.length&&e.insert(s.line,g)}else{if(c==f)if(1==u.length)r(c,c.text.slice(0,s.ch)+h+c.text.slice(a.ch),d);else(g=l(1,u.length-1)).push(new Fn(h+c.text.slice(a.ch),d,i)),r(c,c.text.slice(0,s.ch)+u[0],o(0)),e.insert(s.line+1,g);else if(1==u.length)r(c,c.text.slice(0,s.ch)+u[0]+f.text.slice(a.ch),o(0)),e.remove(s.line+1,p);else{r(c,c.text.slice(0,s.ch)+u[0],o(0)),r(f,h+f.text.slice(a.ch),d);g=l(1,u.length-1);1<p&&e.remove(s.line+1,p-1),e.insert(s.line+1,g)}}Gi(e,"change",e,n)}function ii(e){this.lines=e,this.parent=null;for(var t=0,r=0;t<e.length;++t)e[t].parent=this,r+=e[t].height;this.height=r}function oi(e){this.children=e;for(var t=0,r=0,n=0;n<e.length;++n){var i=e[n];t+=i.chunkSize(),r+=i.height,i.parent=this}this.size=t,this.height=r,this.parent=null}ii.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r=e,n=e+t;r<n;++r){var i=this.lines[r];this.height-=i.height,(o=i).parent=null,xn(o),Gi(i,"delete")}var o;this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var n=0;n<t.length;++n)t[n].parent=this},iterN:function(e,t,r){for(var n=e+t;e<n;++e)if(r(this.lines[e]))return!0}},oi.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var r=0;r<this.children.length;++r){var n=this.children[r],i=n.chunkSize();if(e<i){var o=Math.min(t,i-e),l=n.height;if(n.removeInner(e,o),this.height-=l-n.height,i==o&&(this.children.splice(r--,1),n.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(1<this.children.length||!(this.children[0]instanceof ii))){var s=[];this.collapse(s),this.children=[new ii(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,r){this.size+=t.length,this.height+=r;for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,r),i.lines&&50<i.lines.length){for(;50<i.lines.length;){var l=new ii(i.lines.splice(i.lines.length-25,25));i.height-=l.height,this.children.splice(n+1,0,l),l.parent=this}this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new oi(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=oo(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new oi(e.children);(n.parent=e).children=[n,t],e=n}t.parent=e.parent}while(10<e.children.length);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e);if(i.iterN(e,l,r))return!0;if(0==(t-=l))break;e=0}else e-=o}}};var li=0,si=b.Doc=function(e,t,r){if(!(this instanceof si))return new si(e,t,r);null==r&&(r=0),oi.call(this,[new ii([new Fn("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.frontier=r;var n=ce(r,0);this.sel=Oe(n),this.history=new wi(null),this.id=++li,this.modeOption=t,"string"==typeof e&&(e=Eo(e)),ni(this,{from:n,to:n,text:e}),Ge(this,Oe(n),$i)};si.prototype=ao(oi.prototype,{constructor:si,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=pi(this,this.first,this.first+this.size);return!1===e?t:t.join(e||"\n")},setValue:Vt(function(e){var t=ce(this.first,0),r=this.first+this.size-1;Nr(this,{from:t,to:ce(r,hi(this,r).text.length),text:Eo(e),origin:"setValue",full:!0},!0),Ge(this,Oe(t))}),replaceRange:function(e,t,r,n){Hr(this,e,t=He(this,t),r=r?He(this,r):t,n)},getRange:function(e,t,r){var n=di(this,He(this,e),He(this,t));return!1===r?n:n.join(r||"\n")},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(Pe(this,e))return hi(this,e)},getLineNumber:function(e){return vi(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=hi(this,e)),Wn(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return He(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Vt(function(e,t,r){Re(this,He(this,"number"==typeof e?ce(e,t||0):e),null,r)}),setSelection:Vt(function(e,t,r){Re(this,He(this,e),He(this,t||e),r)}),extendSelection:Vt(function(e,t,r){Ee(this,He(this,e),t&&He(this,t),r)}),extendSelections:Vt(function(e,t){ze(this,function(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=He(e,t[n]);return r}(this,e))}),extendSelectionsBy:Vt(function(e,t){ze(this,lo(this.sel.ranges,e),t)}),setSelections:Vt(function(e,t,r){if(e.length){for(var n=0,i=[];n<e.length;n++)i[n]=new Ae(He(this,e[n].anchor),He(this,e[n].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),Ge(this,We(i,t),r)}}),addSelection:Vt(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new Ae(He(this,e),He(this,t||e))),Ge(this,We(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=di(this,r[n].from(),r[n].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||"\n")},getSelections:function(e){for(var t=[],r=this.sel.ranges,n=0;n<r.length;n++){var i=di(this,r[n].from(),r[n].to());!1!==e&&(i=i.join(e||"\n")),t[n]=i}return t},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||"+input")},replaceSelections:Vt(function(e,t,r){for(var n=[],i=this.sel,o=0;o<i.ranges.length;o++){var l=i.ranges[o];n[o]={from:l.from(),to:l.to(),text:Eo(e[o]),origin:r}}var s=t&&"end"!=t&&function(e,t,r){for(var n=[],i=ce(e.first,0),o=i,l=0;l<t.length;l++){var s=t[l],a=Tr(s.from,i,o),u=Tr(Sr(s),i,o);if(i=s.to,o=u,"around"==r){var c=e.sel.ranges[l],f=fe(c.head,c.anchor)<0;n[l]=new Ae(f?u:a,f?a:u)}else n[l]=new Ae(a,a)}return new Ne(n,e.sel.primIndex)}(this,n,t);for(o=n.length-1;0<=o;o--)Nr(this,n[o]);s?Be(this,s):this.cm&&Er(this.cm)}),undo:Vt(function(){Wr(this,"undo")}),redo:Vt(function(){Wr(this,"redo")}),undoSelection:Vt(function(){Wr(this,"undo",!0)}),redoSelection:Vt(function(){Wr(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(n=0;n<e.undone.length;n++)e.undone[n].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new wi(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Mi(this.history.done),undone:Mi(this.history.undone)}},setHistory:function(e){var t=this.history=new wi(this.history.maxGeneration);t.done=Mi(e.done.slice(0),null,!0),t.undone=Mi(e.undone.slice(0),null,!0)},addLineClass:Vt(function(e,r,n){return Rr(this,e,"gutter"==r?"gutter":"class",function(e){var t="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(e[t]){if(Lo(n).test(e[t]))return!1;e[t]+=" "+n}else e[t]=n;return!0})}),removeLineClass:Vt(function(e,o,l){return Rr(this,e,"gutter"==o?"gutter":"class",function(e){var t="text"==o?"textClass":"background"==o?"bgClass":"gutter"==o?"gutterClass":"wrapClass",r=e[t];if(!r)return!1;if(null==l)e[t]=null;else{var n=r.match(Lo(l));if(!n)return!1;var i=n.index+n[0].length;e[t]=r.slice(0,n.index)+(n.index&&i!=r.length?" ":"")+r.slice(i)||null}return!0})}),addLineWidget:Vt(function(e,t,r){return i=e,o=new In(n=this,t,r),(l=n.cm)&&o.noHScroll&&(l.display.alignWidgets=!0),Rr(n,i,"widget",function(e){var t=e.widgets||(e.widgets=[]);if(null==o.insertAt?t.push(o):t.splice(Math.min(t.length-1,Math.max(0,o.insertAt)),0,o),o.line=e,l&&!Hn(n,e)){var r=yi(e)<n.scrollTop;gi(e,e.height+zn(o)),r&&Ir(l,null,o.height),l.curOp.forceUpdate=!0}return!0}),o;var n,i,o,l}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return fn(this,He(this,e),He(this,t),r,"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return fn(this,e=He(this,e),e,r,"bookmark")},findMarksAt:function(e){var t=[],r=hi(this,(e=He(this,e)).line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(i,o,l){i=He(this,i),o=He(this,o);var s=[],a=i.line;return this.iter(i.line,o.line+1,function(e){var t=e.markedSpans;if(t)for(var r=0;r<t.length;r++){var n=t[r];a==i.line&&i.ch>n.to||null==n.from&&a!=i.line||a==o.line&&n.from>o.ch||l&&!l(n.marker)||s.push(n.marker.parent||n.marker)}++a}),s},getAllMarks:function(){var n=[];return this.iter(function(e){var t=e.markedSpans;if(t)for(var r=0;r<t.length;++r)null!=t[r].from&&n.push(t[r].marker)}),n},posFromIndex:function(r){var n,i=this.first;return this.iter(function(e){var t=e.text.length+1;if(r<t)return n=r,!0;r-=t,++i}),He(this,ce(i,n))},indexFromPos:function(e){var t=(e=He(this,e)).ch;return e.line<this.first||e.ch<0?0:(this.iter(this.first,e.line,function(e){t+=e.text.length+1}),t)},copy:function(e){var t=new si(pi(this,this.first,this.first+this.size),this.modeOption,this.first);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new si(pi(this,t,r),e.mode||this.modeOption,t);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),l=e.clipPos(i.to);if(fe(o,l)){var s=fn(e,o,l,n.primary,n.primary.type);n.markers.push(s),s.parent=n}}}(n,dn(this)),n},unlinkDoc:function(e){if(e instanceof b&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t){if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),pn(dn(this));break}}if(e.history==this.history){var r=[e.id];ci(e,function(e){r.push(e.id)},!0),e.history=new wi(null),e.history.done=Mi(this.history.done,r),e.history.undone=Mi(this.history.undone,r)}},iterLinkedDocs:function(e){ci(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm}}),si.prototype.eachLine=si.prototype.iter;var ai="iter insert remove copy getEditor".split(" ");for(var ui in si.prototype)si.prototype.hasOwnProperty(ui)&&oo(ai,ui)<0&&(b.prototype[ui]=function(e){return function(){return e.apply(this.doc,arguments)}}(si.prototype[ui]));function ci(e,s,a){!function e(t,r,n){if(t.linked)for(var i=0;i<t.linked.length;++i){var o=t.linked[i];if(o.doc!=r){var l=n&&o.sharedHist;a&&!l||(s(o.doc,l),e(o.doc,t,l))}}}(e,null,!0)}function fi(e,t){if(t.cm)throw new Error("This document is already in use.");T((e.doc=t).cm=e),S(e),e.options.lineWrapping||D(e),e.options.mode=t.modeOption,Xt(e)}function hi(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function di(e,r,n){var i=[],o=r.line;return e.iter(r.line,n.line+1,function(e){var t=e.text;o==n.line&&(t=t.slice(0,n.ch)),o==r.line&&(t=t.slice(r.ch)),i.push(t),++o}),i}function pi(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function gi(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function vi(e){if(null==e.parent)return null;for(var t=e.parent,r=oo(t.lines,e),n=t.parent;n;n=(t=n).parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function mi(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(n=0;n<e.lines.length;++n){var l=e.lines[n].height;if(t<l)break;t-=l}return r+n}function yi(e){for(var t=0,r=(e=Wn(e)).parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;o=(r=o).parent)for(n=0;n<o.children.length;++n){var l=o.children[n];if(l==r)break;t+=l.height}return t}function bi(e){var t=e.order;return null==t&&(t=e.order=Qo(e.text)),t}function wi(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function xi(e,t){var r={from:he(t.from),to:Sr(t),text:di(e,t.from,t.to)};return ki(e,r,t.from.line,t.to.line+1),ci(e,function(e){ki(e,r,t.from.line,t.to.line+1)},!0),r}function Ci(e){for(;e.length;){if(!no(e).ranges)break;e.pop()}}function Si(e,t,r,n){var i=e.history;i.undone.length=0;var o,l,s=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>s-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=(l=i).lastOp==n?(Ci(l.done),no(l.done)):l.done.length&&!no(l.done).ranges?no(l.done):1<l.done.length&&!l.done[l.done.length-2].ranges?(l.done.pop(),no(l.done)):void 0)){var a=no(o.changes);0==fe(t.from,t.to)&&0==fe(t.from,a.to)?a.to=Sr(t):o.changes.push(xi(e,t))}else{var u=no(i.done);for(u&&u.ranges||Li(e.sel,i.done),o={changes:[xi(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||Ri(e,"historyAdded")}function Li(e,t){var r=no(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ki(t,r,e,n){var i=r["spans_"+t.id],o=0;t.iter(Math.max(t.first,e),Math.min(t.first+t.size,n),function(e){e.markedSpans&&((i||(i=r["spans_"+t.id]={}))[o]=e.markedSpans),++o})}function Ti(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function Mi(e,t,r){for(var n=0,i=[];n<e.length;++n){var o=e[n];if(o.ranges)i.push(r?Ne.prototype.deepCopy.call(o):o);else{var l=o.changes,s=[];i.push({changes:s});for(var a=0;a<l.length;++a){var u,c=l[a];if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var f in c)(u=f.match(/^spans_(\d+)$/))&&-1<oo(t,Number(u[1]))&&(no(s)[f]=c[f],delete c[f])}}}return i}function Ni(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Ai(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var s=0;s<o.ranges.length;s++)Ni(o.ranges[s].anchor,t,r,n),Ni(o.ranges[s].head,t,r,n)}else{for(s=0;s<o.changes.length;++s){var a=o.changes[s];if(r<a.from.line)a.from=ce(a.from.line+n,a.from.ch),a.to=ce(a.to.line+n,a.to.ch);else if(t<=a.to.line){l=!1;break}}l||(e.splice(0,i+1),i=0)}}}function Wi(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Ai(e.done,r,n,i),Ai(e.undone,r,n,i)}Xi(si);var Oi=b.e_preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},Di=b.e_stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0};function Hi(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}var Pi=b.e_stop=function(e){Oi(e),Di(e)};function Ii(e){return e.target||e.srcElement}function Ei(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),v&&e.ctrlKey&&1==t&&(t=3),t}var zi=b.on=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent("on"+t,r);else{var n=e._handlers||(e._handlers={});(n[t]||(n[t]=[])).push(r)}},Fi=b.off=function(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent("on"+t,r);else{var n=e._handlers&&e._handlers[t];if(!n)return;for(var i=0;i<n.length;++i)if(n[i]==r){n.splice(i,1);break}}},Ri=b.signal=function(e,t){var r=e._handlers&&e._handlers[t];if(r)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)},Bi=null;function Gi(e,t){var r=e._handlers&&e._handlers[t];if(r){var n,i=Array.prototype.slice.call(arguments,2);Dt?n=Dt.delayedCallbacks:Bi?n=Bi:(n=Bi=[],setTimeout(Ui,0));for(var o=0;o<r.length;++o)n.push(l(r[o]))}function l(e){return function(){e.apply(null,i)}}}function Ui(){var e=Bi;Bi=null;for(var t=0;t<e.length;++t)e[t]()}function Vi(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Ri(e,r||t.type,e,t),Hi(t)||t.codemirrorIgnore}function Ki(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)-1==oo(r,t[n])&&r.push(t[n])}function ji(e,t){var r=e._handlers&&e._handlers[t];return r&&0<r.length}function Xi(e){e.prototype.on=function(e,t){zi(this,e,t)},e.prototype.off=function(e,t){Fi(this,e,t)}}var _i=30,Yi=b.Pass={toString:function(){return"CodeMirror.Pass"}},$i={scroll:!1},qi={origin:"*mouse"},Zi={origin:"+move"};function Qi(){this.id=null}Qi.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Ji=b.countColumn=function(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=n||0,l=i||0;;){var s=e.indexOf("\t",o);if(s<0||t<=s)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}};function eo(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var l=o-n;if(o==e.length||t<=i+l)return n+Math.min(l,t-i);if(i+=o-n,n=o+1,t<=(i+=r-i%r))return n}}var to=[""];function ro(e){for(;to.length<=e;)to.push(no(to)+" ");return to[e]}function no(e){return e[e.length-1]}var io=function(e){e.select()};function oo(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function lo(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function so(){}function ao(e,t){var r;return r=Object.create?Object.create(e):(so.prototype=e,new so),t&&uo(t,r),r}function uo(e,t,r){for(var n in t||(t={}),e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function co(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}l?io=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:w&&(io=function(e){try{e.select()}catch(e){}});var fo=/[\u00df\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ho=b.isWordChar=function(e){return/\w/.test(e)||"€"<e&&(e.toUpperCase()!=e.toLowerCase()||fo.test(e))};function po(e,t){return t?!!(-1<t.source.indexOf("\\w")&&ho(e))||t.test(e):ho(e)}function go(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var vo,mo=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\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\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\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\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function yo(e){return 768<=e.charCodeAt(0)&&mo.test(e)}function bo(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function wo(e){for(var t=e.childNodes.length;0<t;--t)e.removeChild(e.firstChild);return e}function xo(e,t){return wo(e).appendChild(t)}vo=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var Co=b.contains=function(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)};function So(){return document.activeElement}function Lo(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}w&&x<11&&(So=function(){try{return document.activeElement}catch(e){return document.body}});var ko=b.rmClass=function(e,t){var r=e.className,n=Lo(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}},To=b.addClass=function(e,t){var r=e.className;Lo(t).test(r)||(e.className+=(r?" ":"")+t)};function Mo(e,t){for(var r=e.split(" "),n=0;n<r.length;n++)r[n]&&!Lo(r[n]).test(t)&&(t+=" "+r[n]);return t}function No(e){if(document.body.getElementsByClassName)for(var t=document.body.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}var Ao=!1;var Wo,Oo,Do=function(){if(w&&x<9)return!1;var e=bo("div");return"draggable"in e||"dragDrop"in e}();function Ho(e){if(null==Wo){var t=bo("span","");xo(e,bo("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Wo=t.offsetWidth<=1&&2<t.offsetHeight&&!(w&&x<8))}var r=Wo?bo("span",""):bo("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function Po(e){if(null!=Oo)return Oo;var t=xo(e,document.createTextNode("AخA")),r=vo(t,0,1).getBoundingClientRect();if(!r||r.left==r.right)return!1;var n=vo(t,1,2).getBoundingClientRect();return Oo=n.right-r.right<3}var Io,Eo=b.splitLines=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},zo=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Fo="oncopy"in(Io=bo("div"))||(Io.setAttribute("oncopy","return;"),"function"==typeof Io.oncopy),Ro=null;var Bo,Go={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",107:"=",109:"-",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};function Uo(e){return e.level%2?e.to:e.from}function Vo(e){return e.level%2?e.from:e.to}function Ko(e){var t=bi(e);return t?Uo(t[0]):0}function jo(e){var t=bi(e);return t?Vo(no(t)):e.text.length}function Xo(e,t){var r=hi(e.doc,t),n=Wn(r);n!=r&&(t=vi(n));var i=bi(n),o=i?i[0].level%2?jo(n):Ko(n):0;return ce(t,o)}function _o(e,t){var r=Xo(e,t.line),n=hi(e.doc,r.line),i=bi(n);if(i&&0!=i[0].level)return r;var o=Math.max(0,n.text.search(/\S/)),l=t.line==r.line&&t.ch<=o&&t.ch;return ce(r.line,l?0:o)}function Yo(e,t){Bo=null;for(var r,n=0;n<e.length;++n){var i=e[n];if(i.from<t&&i.to>t)return n;if(i.from==t||i.to==t){if(null!=r)return o=e,l=i.level,s=e[r].level,void 0,a=o[0].level,l==a||s!=a&&l<s?(i.from!=i.to&&(Bo=r),n):(i.from!=i.to&&(Bo=n),r);r=n}}var o,l,s,a;return r}function $o(e,t,r,n){if(!n)return t+r;for(;0<(t+=r)&&yo(e.text.charAt(t)););return t}function qo(e,t,r,n){var i=bi(e);if(!i)return Zo(e,t,r,n);for(var o=Yo(i,t),l=i[o],s=$o(e,t,l.level%2?-r:r,n);;){if(s>l.from&&s<l.to)return s;if(s==l.from||s==l.to)return Yo(i,s)==o?s:0<r==(l=i[o+=r]).level%2?l.to:l.from;if(!(l=i[o+=r]))return null;s=0<r==l.level%2?$o(e,l.to,-1,n):$o(e,l.from,1,n)}}function Zo(e,t,r,n){var i=t+r;if(n)for(;0<i&&yo(e.text.charAt(i));)i+=r;return i<0||i>e.text.length?null:i}b.keyNames=Go,function(){for(var e=0;e<10;e++)Go[e+48]=Go[e+96]=String(e);for(e=65;e<=90;e++)Go[e]=String.fromCharCode(e);for(e=1;e<=12;e++)Go[e+111]=Go[e+63235]="F"+e}();var Qo=function(){var b="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",w="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm";var x=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,C=/[stwN]/,S=/[LRr]/,L=/[Lb1n]/,k=/[1n]/;function T(e,t,r){this.level=e,this.from=t,this.to=r}return function(e){if(!x.test(e))return!1;for(var t,r=e.length,n=[],i=0;i<r;++i)n.push(c=(t=e.charCodeAt(i))<=247?b.charAt(t):1424<=t&&t<=1524?"R":1536<=t&&t<=1773?w.charAt(t-1536):1774<=t&&t<=2220?"r":8192<=t&&t<=8203?"w":8204==t?"b":"L");i=0;for(var o="L";i<r;++i){"m"==(c=n[i])?n[i]=o:o=c}i=0;for(var l="L";i<r;++i){"1"==(c=n[i])&&"r"==l?n[i]="n":S.test(c)&&"r"==(l=c)&&(n[i]="R")}for(i=1,o=n[0];i<r-1;++i){"+"==(c=n[i])&&"1"==o&&"1"==n[i+1]?n[i]="1":","!=c||o!=n[i+1]||"1"!=o&&"n"!=o||(n[i]=o),o=c}for(i=0;i<r;++i){if(","==(c=n[i]))n[i]="N";else if("%"==c){for(var s=i+1;s<r&&"%"==n[s];++s);for(var a=i&&"!"==n[i-1]||s<r&&"1"==n[s]?"1":"N",u=i;u<s;++u)n[u]=a;i=s-1}}for(i=0,l="L";i<r;++i){var c=n[i];"L"==l&&"1"==c?n[i]="L":S.test(c)&&(l=c)}for(i=0;i<r;++i)if(C.test(n[i])){for(s=i+1;s<r&&C.test(n[s]);++s);var f="L"==(i?n[i-1]:"L"),h="L"==(s<r?n[s]:"L");for(a=f||h?"L":"R",u=i;u<s;++u)n[u]=a;i=s-1}var d,p=[];for(i=0;i<r;)if(L.test(n[i])){var g=i;for(++i;i<r&&L.test(n[i]);++i);p.push(new T(0,g,i))}else{var v=i,m=p.length;for(++i;i<r&&"L"!=n[i];++i);for(u=v;u<i;)if(k.test(n[u])){v<u&&p.splice(m,0,new T(1,v,u));var y=u;for(++u;u<i&&k.test(n[u]);++u);p.splice(m,0,new T(2,y,u)),v=u}else++u;v<i&&p.splice(m,0,new T(1,v,i))}return 1==p[0].level&&(d=e.match(/^\s+/))&&(p[0].from=d[0].length,p.unshift(new T(0,0,d[0].length))),1==no(p).level&&(d=e.match(/\s+$/))&&(no(p).to-=d[0].length,p.push(new T(0,r-d[0].length,r))),p[0].level!=no(p).level&&p.push(new T(p[0].level,r,r)),p}}();return b.version="5.1.0",b});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(s){"use strict";var p="CodeMirror-lint-markers";function a(t){t.parentNode&&t.parentNode.removeChild(t)}function f(t,e,n){var o=function(t,e){var n=document.createElement("div");function o(t){if(!n.parentNode)return s.off(document,"mousemove",o);n.style.top=Math.max(0,t.clientY-n.offsetHeight-5)+"px",n.style.left=t.clientX+5+"px"}return n.className="CodeMirror-lint-tooltip",n.appendChild(e.cloneNode(!0)),document.body.appendChild(n),s.on(document,"mousemove",o),o(t),null!=n.style.opacity&&(n.style.opacity=1),n}(t,e);function r(){var t;s.off(n,"mouseout",r),o&&((t=o).parentNode&&(null==t.style.opacity&&a(t),t.style.opacity=0,setTimeout(function(){a(t)},600)),o=null)}var i=setInterval(function(){if(o)for(var t=n;;t=t.parentNode){if(t&&11==t.nodeType&&(t=t.host),t==document.body)return;if(!t){r();break}}if(!o)return clearInterval(i)},400);s.on(n,"mouseout",r)}function l(e,t,n){this.marked=[],this.options=t,this.timeout=null,this.hasGutter=n,this.onMouseOver=function(t){!function(t,e){var n=e.target||e.srcElement;if(!/\bCodeMirror-lint-mark-/.test(n.className))return;for(var o=n.getBoundingClientRect(),r=(o.left+o.right)/2,i=(o.top+o.bottom)/2,a=t.findMarksAt(t.coordsChar({left:r,top:i},"client")),s=0;s<a.length;++s){var l=a[s].__annotation;if(l)return u=l,void 0,m=(c=e).target||c.srcElement,f(c,h(u),m)}var u,c,m}(e,t)}}function v(t){var e=t.state.lint;e.hasGutter&&t.clearGutter(p);for(var n=0;n<e.marked.length;++n)e.marked[n].clear();e.marked.length=0}function g(e,t,n,o){var r=document.createElement("div"),i=r;return r.className="CodeMirror-lint-marker-"+t,n&&((i=r.appendChild(document.createElement("div"))).className="CodeMirror-lint-marker-multiple"),0!=o&&s.on(i,"mouseover",function(t){f(t,e,i)}),r}function h(t){var e=t.severity;e||(e="error");var n=document.createElement("div");return n.className="CodeMirror-lint-message-"+e,n.appendChild(document.createTextNode(t.message)),n}function u(t){var e=t.state.lint.options,n=e.options||e;e.async||e.getAnnotations.async?e.getAnnotations(t.getValue(),o,n,t):o(t,e.getAnnotations(t.getValue(),n,t))}function o(t,e){v(t);for(var n,o,r=t.state.lint,i=r.options,a=function(t){for(var e=[],n=0;n<t.length;++n){var o=t[n],r=o.from.line;(e[r]||(e[r]=[])).push(o)}return e}(e),s=0;s<a.length;++s){var l=a[s];if(l){for(var u=null,c=r.hasGutter&&document.createDocumentFragment(),m=0;m<l.length;++m){var f=l[m],d=f.severity;d||(d="error"),o=d,u="error"==(n=u)?n:o,i.formatAnnotation&&(f=i.formatAnnotation(f)),r.hasGutter&&c.appendChild(h(f)),f.to&&r.marked.push(t.markText(f.from,f.to,{className:"CodeMirror-lint-mark-"+d,__annotation:f}))}r.hasGutter&&t.setGutterMarker(s,p,g(c,u,1<l.length,r.options.tooltips))}}i.onUpdateLinting&&i.onUpdateLinting(e,a,t)}function c(t){var e=t.state.lint;e&&(clearTimeout(e.timeout),e.timeout=setTimeout(function(){u(t)},e.options.delay||500))}s.defineOption("lint",!1,function(t,e,n){if(n&&n!=s.Init&&(v(t),t.off("change",c),s.off(t.getWrapperElement(),"mouseover",t.state.lint.onMouseOver),clearTimeout(t.state.lint.timeout),delete t.state.lint),e){for(var o=t.getOption("gutters"),r=!1,i=0;i<o.length;++i)o[i]==p&&(r=!0);var a=t.state.lint=new l(t,function(t,e){if(e instanceof Function)return{getAnnotations:e};if(e&&!0!==e||(e={}),e.getAnnotations||(e.getAnnotations=t.getHelper(s.Pos(0,0),"lint")),!e.getAnnotations)throw new Error("Required option 'getAnnotations' missing (lint addon)");return e}(t,e),r);t.on("change",c),0!=a.options.tooltips&&s.on(t.getWrapperElement(),"mouseover",a.onMouseOver),u(t)}})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(n){"use strict";n.registerHelper("lint","json",function(e){var t=[];jsonlint.parseError=function(e,o){var r=o.loc;t.push({from:n.Pos(r.first_line-1,r.first_column),to:n.Pos(r.last_line-1,r.last_column),message:e})};try{jsonlint.parse(e)}catch(e){}return t})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(r){"use strict";var a="CodeMirror-activeline",s="CodeMirror-activeline-background";function c(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineClass(e.state.activeLines[t],"wrap",a),e.removeLineClass(e.state.activeLines[t],"background",s)}function o(t,e){for(var n=[],i=0;i<e.length;i++){var r=e[i];if(r.empty()){var o=t.getLineHandleVisualStart(r.head.line);n[n.length-1]!=o&&n.push(o)}}(function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0})(t.state.activeLines,n)||t.operation(function(){c(t);for(var e=0;e<n.length;e++)t.addLineClass(n[e],"wrap",a),t.addLineClass(n[e],"background",s);t.state.activeLines=n})}function f(e,t){o(e,t.ranges)}r.defineOption("styleActiveLine",!1,function(e,t,n){var i=n&&n!=r.Init;t&&!i?(e.state.activeLines=[],o(e,e.listSelections()),e.on("beforeSelectionChange",f)):!t&&i&&(e.off("beforeSelectionChange",f),c(e),delete e.state.activeLines)})});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(b){"use strict";var k="CodeMirror-hint",A="CodeMirror-hint-active";function n(t,e){this.cm=t,this.options=this.buildOptions(e),this.widget=this.onClose=null}function x(t){return"string"==typeof t?t:t.text}function T(t,e){for(;e&&e!=t;){if("LI"===e.nodeName.toUpperCase()&&e.parentNode==t)return e;e=e.parentNode}}function p(o,t){this.completion=o,this.data=t;var i=this,s=o.cm,c=this.hints=document.createElement("ul");c.className="CodeMirror-hints",this.selectedHint=t.selectedHint||0;for(var e=t.list,n=0;n<e.length;++n){var l=c.appendChild(document.createElement("li")),r=e[n],h=k+(n!=this.selectedHint?"":" "+A);null!=r.className&&(h=r.className+" "+h),l.className=h,r.render?r.render(l,t,r):l.appendChild($(r.displayText||x(r))[0]),l.hintId=n}var f=s.cursorCoords(o.options.alignWithWord?t.from:null),a=f.left,u=f.bottom,p=!0;c.style.left=a+"px",c.style.top=u+"px";var d=window.innerWidth||Math.max(document.body.offsetWidth,document.documentElement.offsetWidth),m=window.innerHeight||Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);(o.options.container||document.body).appendChild(c);var g=c.getBoundingClientRect();if(0<g.bottom-m){var v=g.bottom-g.top;if(0<f.top-(f.bottom-g.top)-v)c.style.top=(u=f.top-v)+"px",p=!1;else if(m<v){c.style.height=m-5+"px",c.style.top=(u=f.bottom-g.top)+"px";var w=s.getCursor();t.from.ch!=w.ch&&(f=s.cursorCoords(w),c.style.left=(a=f.left)+"px",g=c.getBoundingClientRect())}}var y,C=g.left-d;(0<C&&(g.right-g.left>d&&(c.style.width=d-5+"px",C-=g.right-g.left-d),c.style.left=(a=f.left-C)+"px"),s.addKeyMap(this.keyMap=function(t,n){var o={Up:function(){n.moveFocus(-1)},Down:function(){n.moveFocus(1)},PageUp:function(){n.moveFocus(1-n.menuSize(),!0)},PageDown:function(){n.moveFocus(n.menuSize()-1,!0)},Home:function(){n.setFocus(0)},End:function(){n.setFocus(n.length-1)},Enter:n.pick,Tab:n.pick,Esc:n.close},e=t.options.customKeys,s=e?{}:o;function i(t,e){var i;i="string"!=typeof e?function(t){return e(t,n)}:o.hasOwnProperty(e)?o[e]:e,s[t]=i}if(e)for(var c in e)e.hasOwnProperty(c)&&i(c,e[c]);var l=t.options.extraKeys;if(l)for(var c in l)l.hasOwnProperty(c)&&i(c,l[c]);return s}(o,{moveFocus:function(t,e){i.changeActive(i.selectedHint+t,e)},setFocus:function(t){i.changeActive(t)},menuSize:function(){return i.screenAmount()},length:e.length,close:function(){o.close()},pick:function(){i.pick()},data:t})),o.options.closeOnUnfocus)&&(s.on("blur",this.onBlur=function(){y=setTimeout(function(){o.close()},100)}),s.on("focus",this.onFocus=function(){clearTimeout(y)}));var H=s.getScrollInfo();return s.on("scroll",this.onScroll=function(){var t=s.getScrollInfo(),e=s.getWrapperElement().getBoundingClientRect(),i=u+H.top-t.top,n=i-(window.pageYOffset||(document.documentElement||document.body).scrollTop);if(p||(n+=c.offsetHeight),n<=e.top||n>=e.bottom)return o.close();c.style.top=i+"px",c.style.left=a+H.left-t.left+"px"}),b.on(c,"dblclick",function(t){var e=T(c,t.target||t.srcElement);e&&null!=e.hintId&&(i.changeActive(e.hintId),i.pick())}),b.on(c,"click",function(t){var e=T(c,t.target||t.srcElement);e&&null!=e.hintId&&(i.changeActive(e.hintId),o.options.completeOnSingleClick&&i.pick())}),b.on(c,"mousedown",function(){setTimeout(function(){s.focus()},20)}),b.signal(t,"select",e[0],c.firstChild),!0}b.showHint=function(t,e,i){if(!e)return t.showHint(i);i&&i.async&&(e.async=!0);var n={hint:e};if(i)for(var o in i)n[o]=i[o];return t.showHint(n)},b.defineExtension("showHint",function(t){if(!(1<this.listSelections().length||this.somethingSelected())){this.state.completionActive&&this.state.completionActive.close();var e=this.state.completionActive=new n(this,t),i=e.options.hint;if(i){if(b.signal(this,"startCompletion",this),!i.async)return e.showHints(i(this,e.options));i(this,function(t){e.showHints(t)},e.options)}}}),n.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.widget&&this.widget.close(),this.onClose&&this.onClose(),b.signal(this.cm,"endCompletion",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(t,e){var i=t.list[e];i.hint?i.hint(this.cm,t,i):this.cm.replaceRange(x(i),i.from||t.from,i.to||t.to,"complete"),b.signal(t,"pick",i),this.close();var n=this.cm.getCursor(),o=this.cm.getTokenAt(n);o&&")"===o.string&&this.cm.setCursor(b.Pos(n.line,n.ch-1))},showHints:function(t){if(!t||!t.list.length||!this.active())return this.close();this.options.completeSingle&&1==t.list.length?this.pick(t,0):this.showWidget(t)},showWidget:function(e){this.widget=new p(this,e),b.signal(e,"shown");var i,n=0,o=this,s=this.options.closeCharacters,c=this.cm.getCursor(),l=this.cm.getLine(c.line).length,r=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},h=window.cancelAnimationFrame||clearTimeout;function f(){i||(i=!0,o.close(),o.cm.off("cursorActivity",t),e&&b.signal(e,"close"))}function a(){if(!i){b.signal(e,"update");var t=o.options.hint;t.async?t(o.cm,u,o.options):u(t(o.cm,o.options))}}function u(t){if(e=t,!i){if(!e||!e.list.length)return f();o.widget&&o.widget.close(),o.widget=new p(o,e)}}function t(){n&&(h(n),n=0);var t=o.cm.getCursor(),e=o.cm.getLine(t.line);t.line!=c.line||e.length-t.ch!=l-c.ch||t.ch<c.ch||o.cm.somethingSelected()||t.ch&&s.test(e.charAt(t.ch-1))?o.close():(n=r(a),o.widget&&o.widget.close())}this.cm.on("cursorActivity",t),this.onClose=f},buildOptions:function(t){var e=this.cm.options.hintOptions,i={};for(var n in o)i[n]=o[n];if(e)for(var n in e)void 0!==e[n]&&(i[n]=e[n]);if(t)for(var n in t)void 0!==t[n]&&(i[n]=t[n]);return i}},p.prototype={close:function(){if(this.completion.widget==this){this.completion.widget=null,this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap);var t=this.completion.cm;this.completion.options.closeOnUnfocus&&(t.off("blur",this.onBlur),t.off("focus",this.onFocus)),t.off("scroll",this.onScroll)}},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(t,e){if(t>=this.data.list.length?t=e?this.data.list.length-1:0:t<0&&(t=e?0:this.data.list.length-1),this.selectedHint!=t){var i=this.hints.childNodes[this.selectedHint];i.className=i.className.replace(" "+A,""),(i=this.hints.childNodes[this.selectedHint=t]).className+=" "+A,i.offsetTop<this.hints.scrollTop?this.hints.scrollTop=i.offsetTop-3:i.offsetTop+i.offsetHeight>this.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=i.offsetTop+i.offsetHeight-this.hints.clientHeight+3),b.signal(this.data,"select",this.data.list[this.selectedHint],i)}},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},b.registerHelper("hint","auto",function(t,e){var i,n=t.getHelpers(t.getCursor(),"hint");if(n.length)for(var o=0;o<n.length;o++){var s=n[o](t,e);if(s&&s.list.length)return s}else if(i=t.getHelper(t.getCursor(),"hintWords")){if(i)return b.hint.fromList(t,{words:i})}else if(b.hint.anyword)return b.hint.anyword(t,e)}),b.registerHelper("hint","fromList",function(t,e){for(var i=t.getCursor(),n=t.getTokenAt(i),o=[],s=0;s<e.words.length;s++){var c=e.words[s];c.slice(0,n.string.length)==n.string&&o.push(c)}if(o.length)return{list:o,from:b.Pos(i.line,n.start),to:b.Pos(i.line,n.end)}}),b.commands.autocomplete=b.showHint;var o={hint:b.hint.auto,completeSingle:!0,alignWithWord:!0,closeCharacters:/[\s()\[\]{};:>,]/,closeOnUnfocus:!0,completeOnSingleClick:!1,container:null,customKeys:null,extraKeys:null};b.defineOption("hintOptions",null)});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(y){"use strict";var b=/[\w$]+/;y.registerHelper("hint","anyword",function(e,r){for(var o=r&&r.word||b,t=r&&r.range||500,i=e.getCursor(),n=e.getLine(i.line),f=i.ch,a=f;a&&o.test(n.charAt(a-1));)--a;for(var c=a!=f&&n.slice(a,f),s=[],l={},d=new RegExp(o.source,"g"),u=-1;u<=1;u+=2)for(var p=i.line,g=Math.min(Math.max(p+u*t,e.firstLine()),e.lastLine())+u;p!=g;p+=u)for(var h,m=e.getLine(p);h=d.exec(m);)p==i.line&&h[0]===c||c&&0!=h[0].lastIndexOf(c,0)||Object.prototype.hasOwnProperty.call(l,h[0])||(l[h[0]]=!0,s.push(h[0]));return{list:s,from:y.Pos(i.line,a),to:y.Pos(i.line,f)}})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(a){"use strict";function t(e){for(var r=e.display.lineSpace.childNodes.length-1;0<=r;r--){var o=e.display.lineSpace.childNodes[r];/(^|\s)CodeMirror-ruler($|\s)/.test(o.className)&&o.parentNode.removeChild(o)}}function i(e){for(var r=e.getOption("rulers"),o=e.defaultCharWidth(),t=e.charCoords(a.Pos(e.firstLine(),0),"div").left,i=e.display.scroller.offsetHeight+30,l=0;l<r.length;l++){var s=document.createElement("div");s.className="CodeMirror-ruler";var n,d=r[l];"number"==typeof d?n=d:(n=d.column,d.className&&(s.className+=" "+d.className),d.color&&(s.style.borderColor=d.color),d.lineStyle&&(s.style.borderLeftStyle=d.lineStyle),d.width&&(s.style.borderLeftWidth=d.width),r[l].className),s.style.left=t+n*o+"px",s.style.top="-50px",s.style.bottom="-20px",s.style.minHeight=i+"px",e.display.lineSpace.insertBefore(s,e.display.cursorDiv)}}function l(e){t(e),i(e)}a.defineOption("rulers",!1,function(e,r,o){o&&o!=a.Init&&(t(e),e.off("refresh",l)),r&&r.length&&(i(e),e.on("refresh",l))})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(x){var n={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},C=x.Pos;function k(e,t){return"pairs"==t&&"string"==typeof e?e:"object"==typeof e&&null!=e[t]?e[t]:n[t]}x.defineOption("autoCloseBrackets",!1,function(e,t,n){n&&n!=x.Init&&(e.removeKeyMap(r),e.state.closeBrackets=null),t&&(e.state.closeBrackets=t,e.addKeyMap(r))});for(var e=n.pairs+"`",r={Backspace:function(e){var t=P(e);if(!t||e.getOption("disableInput"))return x.Pass;for(var n=k(t,"pairs"),r=e.listSelections(),i=0;i<r.length;i++){if(!r[i].empty())return x.Pass;var a=s(e,r[i].head);if(!a||n.indexOf(a)%2!=0)return x.Pass}for(var i=r.length-1;0<=i;i--){var o=r[i].head;e.replaceRange("",C(o.line,o.ch-1),C(o.line,o.ch+1))}},Enter:function(n){var e=P(n),t=e&&k(e,"explode");if(!t||n.getOption("disableInput"))return x.Pass;for(var r=n.listSelections(),i=0;i<r.length;i++){if(!r[i].empty())return x.Pass;var a=s(n,r[i].head);if(!a||t.indexOf(a)%2!=0)return x.Pass}n.operation(function(){n.replaceSelection("\n\n",null),n.execCommand("goCharLeft"),r=n.listSelections();for(var e=0;e<r.length;e++){var t=r[e].head.line;n.indentLine(t,null,!0),n.indentLine(t+1,null,!0)}})}},t=0;t<e.length;t++)r["'"+e.charAt(t)+"'"]=i(e.charAt(t));function i(t){return function(e){return function(n,e){var t=P(n);if(!t||n.getOption("disableInput"))return x.Pass;var r=k(t,"pairs"),i=r.indexOf(e);if(-1==i)return x.Pass;for(var a,o=k(t,"triples"),s=r.charAt(i+1)==e,l=n.listSelections(),c=i%2==0,f=0;f<l.length;f++){var u,h=l[f],d=h.head,p=n.getRange(d,C(d.line,d.ch+1));if(c&&!h.empty())u="surround";else if(!s&&c||p!=e)if(s&&1<d.ch&&0<=o.indexOf(e)&&n.getRange(C(d.line,d.ch-2),d)==e+e&&(d.ch<=2||n.getRange(C(d.line,d.ch-3),C(d.line,d.ch-2))!=e))u="addFour";else if(s){if(x.isWordChar(p)||!y(n,d,e))return x.Pass;u="both"}else{if(!c||!(n.getLine(d.line).length==d.ch||(g=p,void 0,-1<(v=r.lastIndexOf(g))&&v%2==1)||/\s/.test(p)))return x.Pass;u="both"}else u=0<=o.indexOf(e)&&n.getRange(d,C(d.line,d.ch+3))==e+e+e?"skipThree":"skip";if(a){if(a!=u)return x.Pass}else a=u}var g,v;var m=i%2?r.charAt(i-1):e,b=i%2?e:r.charAt(i+1);n.operation(function(){if("skip"==a)n.execCommand("goCharRight");else if("skipThree"==a)for(var e=0;e<3;e++)n.execCommand("goCharRight");else if("surround"==a){for(var t=n.getSelections(),e=0;e<t.length;e++)t[e]=m+t[e]+b;n.replaceSelections(t,"around")}else"both"==a?(n.replaceSelection(m+b,null),n.execCommand("goCharLeft")):"addFour"==a&&(n.replaceSelection(m+m+m+m,"before"),n.execCommand("goCharRight"))})}(e,t)}}function P(e){var t=e.state.closeBrackets;return t?e.getModeAt(e.getCursor()).closeBrackets||t:null}function s(e,t){var n=e.getRange(C(t.line,t.ch-1),C(t.line,t.ch+1));return 2==n.length?n:null}function y(e,t,n){var r=e.getLine(t.line),i=e.getTokenAt(t);if(/\bstring2?\b/.test(i.type))return!1;var a=new x.StringStream(r.slice(0,t.ch)+n+r.slice(t.ch),4);for(a.pos=a.start=i.start;;){var o=e.getMode().token(a,i.state);if(a.pos>=t.ch+1)return/\bstring2?\b/.test(o);a.start=a.pos}}});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(i){var u=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),g=i.Pos,p={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};function h(e,t,n,i){var r=e.getLineHandle(t.line),o=t.ch-1,a=0<=o&&p[r.text.charAt(o)]||p[r.text.charAt(++o)];if(!a)return null;var c=">"==a.charAt(1)?1:-1;if(n&&0<c!=(o==t.ch))return null;var f=e.getTokenTypeAt(g(t.line,o+1)),l=s(e,g(t.line,o+(0<c?1:0)),c,f||null,i);return null==l?null:{from:g(t.line,o),to:l&&l.pos,match:l&&l.ch==a.charAt(0),forward:0<c}}function s(e,t,n,i,r){for(var o=r&&r.maxScanLineLength||1e4,a=r&&r.maxScanLines||1e3,c=[],f=r&&r.bracketRegex?r.bracketRegex:/[(){}[\]]/,l=0<n?Math.min(t.line+a,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-a),u=t.line;u!=l;u+=n){var h=e.getLine(u);if(h){var s=0<n?0:h.length-1,m=0<n?h.length:-1;if(!(h.length>o))for(u==t.line&&(s=t.ch-(n<0?1:0));s!=m;s+=n){var d=h.charAt(s);if(f.test(d)&&(void 0===i||e.getTokenTypeAt(g(u,s+1))==i))if(">"==p[d].charAt(1)==0<n)c.push(d);else{if(!c.length)return{pos:g(u,s),ch:d};c.pop()}}}}return u-n!=(0<n?e.lastLine():e.firstLine())&&null}function t(e,t,n){for(var i=e.state.matchBrackets.maxHighlightLineLength||1e3,r=[],o=e.listSelections(),a=0;a<o.length;a++){var c=o[a].empty()&&h(e,o[a].head,!1,n);if(c&&e.getLine(c.from.line).length<=i){var f=c.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";r.push(e.markText(c.from,g(c.from.line,c.from.ch+1),{className:f})),c.to&&e.getLine(c.to.line).length<=i&&r.push(e.markText(c.to,g(c.to.line,c.to.ch+1),{className:f}))}}if(r.length){u&&e.state.focused&&e.focus();var l=function(){e.operation(function(){for(var e=0;e<r.length;e++)r[e].clear()})};if(!t)return l;setTimeout(l,800)}}var n=null;function r(e){e.operation(function(){n&&(n(),n=null),n=t(e,!1,e.state.matchBrackets)})}i.defineOption("matchBrackets",!1,function(e,t,n){n&&n!=i.Init&&e.off("cursorActivity",r),t&&(e.state.matchBrackets="object"==typeof t?t:{},e.on("cursorActivity",r))}),i.defineExtension("matchBrackets",function(){t(this,!0)}),i.defineExtension("findMatchingBracket",function(e,t,n){return h(this,e,t,n)}),i.defineExtension("scanForBracket",function(e,t,n,i){return s(this,e,t,n,i)})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(v){v.defineOption("autoCloseTags",!1,function(e,t,n){if(n!=v.Init&&n&&e.removeKeyMap("autoCloseTags"),t){var o={name:"autoCloseTags"};("object"!=typeof t||t.whenClosing)&&(o["'/'"]=function(e){return(t=e).getOption("disableInput")?v.Pass:a(t,!0);var t}),("object"!=typeof t||t.whenOpening)&&(o["'>'"]=function(e){return function(e){if(e.getOption("disableInput"))return v.Pass;for(var t=e.listSelections(),n=[],o=0;o<t.length;o++){if(!t[o].empty())return v.Pass;var a=t[o].head,r=e.getTokenAt(a),i=v.innerMode(e.getMode(),r.state),s=i.state;if("xml"!=i.mode.name||!s.tagName)return v.Pass;var l=e.getOption("autoCloseTags"),c="html"==i.mode.configuration,d="object"==typeof l&&l.dontCloseTags||c&&b,f="object"==typeof l&&l.indentTags||c&&y,g=s.tagName;r.end>a.ch&&(g=g.slice(0,g.length-r.end+a.ch));var u=g.toLowerCase();if(!g||"string"==r.type&&(r.end!=a.ch||!/[\"\']/.test(r.string.charAt(r.string.length-1))||1==r.string.length)||"tag"==r.type&&"closeTag"==s.type||r.string.indexOf("/")==r.string.length-1||d&&-1<x(d,u)||P(e,g,a,s,!0))return v.Pass;var m=f&&-1<x(f,u);n[o]={indent:m,text:">"+(m?"\n\n":"")+"</"+g+">",newPos:m?v.Pos(a.line+1,0):v.Pos(a.line,a.ch+1)}}for(var o=t.length-1;0<=o;o--){var h=n[o];e.replaceRange(h.text,t[o].head,t[o].anchor,"+insert");var p=e.listSelections().slice(0);p[o]={head:h.newPos,anchor:h.newPos},e.setSelections(p),h.indent&&(e.indentLine(h.newPos.line,null,!0),e.indentLine(h.newPos.line+1,null,!0))}}(e)}),e.addKeyMap(o)}});var b=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],y=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];function a(e,t){for(var n=e.listSelections(),o=[],a=t?"/":"</",r=0;r<n.length;r++){if(!n[r].empty())return v.Pass;var i=n[r].head,s=e.getTokenAt(i),l=v.innerMode(e.getMode(),s.state),c=l.state;if(t&&("string"==s.type||"<"!=s.string.charAt(0)||s.start!=i.ch-1))return v.Pass;if("xml"!=l.mode.name)if("htmlmixed"==e.getMode().name&&"javascript"==l.mode.name)o[r]=a+"script>";else{if("htmlmixed"!=e.getMode().name||"css"!=l.mode.name)return v.Pass;o[r]=a+"style>"}else{if(!c.context||!c.context.tagName||P(e,c.context.tagName,i,c))return v.Pass;o[r]=a+c.context.tagName+">"}}e.replaceSelections(o),n=e.listSelections();for(r=0;r<n.length;r++)(r==n.length-1||n[r].head.line<n[r+1].head.line)&&e.indentLine(n[r].head.line)}function x(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,o=e.length;n<o;++n)if(e[n]==t)return n;return-1}function P(e,t,n,o,a){if(!v.scanForClosingTag)return!1;var r=Math.min(e.lastLine()+1,n.line+500),i=v.scanForClosingTag(e,n,null,r);if(!i||i.tag!=t)return!1;for(var s=o.context,l=a?1:0;s&&s.tagName==t;s=s.prev)++l;n=i.to;for(var c=1;c<l;c++){var d=v.scanForClosingTag(e,n,null,r);if(!d||d.tag!=t)return!1;n=d.to}return!0}v.commands.closeTag=function(e){return a(e)}});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(r){"use strict";var a=r.Pos;function i(h,f,e,t){if(this.atOccurrence=!1,this.doc=h,null==t&&"string"==typeof f&&(t=!1),e=e?h.clipPos(e):a(0,0),this.pos={from:e,to:e},"string"!=typeof f)f.global||(f=new RegExp(f.source,f.ignoreCase?"ig":"g")),this.matches=function(e,t){if(e){f.lastIndex=0;for(var n=h.getLine(t.line).slice(0,t.ch),i=0;;){f.lastIndex=i;var r=f.exec(n);if(!r)break;if(s=(o=r).index,(i=o.index+(o[0].length||1))==n.length)break}(l=o&&o[0].length||0)||(0==s&&0==n.length?o=void 0:s!=h.getLine(t.line).length&&l++)}else{f.lastIndex=t.ch;n=h.getLine(t.line);var o,s,l=(o=f.exec(n))&&o[0].length||0;(s=o&&o.index)+l==n.length||l||(l=1)}if(o&&l)return{from:a(t.line,s),to:a(t.line,s+l),match:o}};else{var o=f;t&&(f=f.toLowerCase());var c=t?function(e){return e.toLowerCase()}:function(e){return e},u=f.split("\n");if(1==u.length)f.length?this.matches=function(e,t){if(e){var n=h.getLine(t.line).slice(0,t.ch);if(-1<(r=(i=c(n)).lastIndexOf(f)))return r=s(n,i,r),{from:a(t.line,r),to:a(t.line,r+o.length)}}else{var i,r;n=h.getLine(t.line).slice(t.ch);if(-1<(r=(i=c(n)).indexOf(f)))return r=s(n,i,r)+t.ch,{from:a(t.line,r),to:a(t.line,r+o.length)}}}:this.matches=function(){};else{var g=o.split("\n");this.matches=function(e,t){var n=u.length-1;if(e){if(t.line-(u.length-1)<h.firstLine())return;if(c(h.getLine(t.line).slice(0,g[n].length))!=u[u.length-1])return;for(var i=a(t.line,g[n].length),r=t.line-1,o=n-1;1<=o;--o,--r)if(u[o]!=c(h.getLine(r)))return;var s=(l=h.getLine(r)).length-g[0].length;if(c(l.slice(s))!=u[0])return;return{from:a(r,s),to:i}}if(!(t.line+(u.length-1)>h.lastLine())){var l;s=(l=h.getLine(t.line)).length-g[0].length;if(c(l.slice(s))==u[0]){var f=a(t.line,s);for(r=t.line+1,o=1;o<n;++o,++r)if(u[o]!=c(h.getLine(r)))return;if(c(h.getLine(r).slice(0,g[n].length))==u[n])return{from:f,to:a(r,g[n].length)}}}}}}}function s(e,t,n){if(e.length==t.length)return n;for(var i=Math.min(n,e.length);;){var r=e.slice(0,i).toLowerCase().length;if(r<n)++i;else{if(!(n<r))return i;--i}}}i.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){var n=this,t=this.doc.clipPos(e?this.pos.from:this.pos.to);function i(e){var t=a(e,0);return n.pos={from:t,to:t},n.atOccurrence=!1}for(;;){if(this.pos=this.matches(e,t))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!t.line)return i(0);t=a(t.line-1,this.doc.getLine(t.line-1).length)}else{var r=this.doc.lineCount();if(t.line==r-1)return i(r);t=a(t.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(e){if(this.atOccurrence){var t=r.splitLines(e);this.doc.replaceRange(t,this.pos.from,this.pos.to),this.pos.to=a(this.pos.from.line+t.length-1,t[t.length-1].length+(1==t.length?this.pos.from.ch:0))}}},r.defineExtension("getSearchCursor",function(e,t,n){return new i(this.doc,e,t,n)}),r.defineDocExtension("getSearchCursor",function(e,t,n){return new i(this,e,t,n)}),r.defineExtension("selectMatches",function(e,t){for(var n=[],i=this.getSearchCursor(e,this.getCursor("from"),t);i.findNext()&&!(0<r.cmpPos(i.to(),this.getCursor("to")));)n.push({anchor:i.from(),head:i.to()});n.length&&this.setSelections(n,0)})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],e):e(CodeMirror)}(function(t){"use strict";function o(){this.posFrom=this.posTo=this.query=null,this.overlay=null}function a(e){return e.state.search||(e.state.search=new o)}function c(e){return"string"==typeof e&&e==e.toLowerCase()}function u(e,o,r){return e.getSearchCursor(o,r,c(o))}function r(e,o,r,n,t){e.openDialog?e.openDialog(o,t,{value:n}):t(prompt(r,n))}function s(e){var o=e.match(/^\/(.*)\/([a-z]*)$/);if(o)try{e=new RegExp(o[1],-1==o[2].indexOf("i")?"":"i")}catch(e){}return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function n(n,t){var i=a(n);if(i.query)return l(n,t);r(n,'Search: <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',"Search for:",n.getSelection(),function(o){n.operation(function(){var r,e;o&&!i.query&&(i.query=s(o),n.removeOverlay(i.overlay,c(i.query)),i.overlay=(r=i.query,e=c(i.query),"string"==typeof r?r=new RegExp(r.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),e?"gi":"g"):r.global||(r=new RegExp(r.source,r.ignoreCase?"gi":"g")),{token:function(e){r.lastIndex=e.pos;var o=r.exec(e.string);if(o&&o.index==e.pos)return e.pos+=o[0].length,"searching";o?e.pos=o.index:e.skipToEnd()}}),n.addOverlay(i.overlay),n.showMatchesOnScrollbar&&(i.annotate&&(i.annotate.clear(),i.annotate=null),i.annotate=n.showMatchesOnScrollbar(i.query,c(i.query))),i.posFrom=i.posTo=n.getCursor(),l(n,t))})})}function l(r,n){r.operation(function(){var e=a(r),o=u(r,e.query,n?e.posFrom:e.posTo);(o.find(n)||(o=u(r,e.query,n?t.Pos(r.lastLine()):t.Pos(r.firstLine(),0))).find(n))&&(r.setSelection(o.from(),o.to()),r.scrollIntoView({from:o.from(),to:o.to()}),e.posFrom=o.from(),e.posTo=o.to())})}function i(o){o.operation(function(){var e=a(o);e.query&&(e.query=null,o.removeOverlay(e.overlay),e.annotate&&(e.annotate.clear(),e.annotate=null))})}function f(f,e){f.getOption("readOnly")||r(f,'Replace: <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',"Replace:",f.getSelection(),function(l){l&&(l=s(l),r(f,'With: <input type="text" style="width: 10em" class="CodeMirror-search-field"/>',"Replace with:","",function(o){if(e)f.operation(function(){for(var e=u(f,l);e.findNext();)if("string"!=typeof l){var r=f.getRange(e.from(),e.to()).match(l);e.replace(o.replace(/\$(\d)/g,function(e,o){return r[o]}))}else e.replace(o)});else{i(f);var a=u(f,l,f.getCursor()),c=function(){var e,o,r,n,t,i=a.from();!(e=a.findNext())&&(a=u(f,l),!(e=a.findNext())||i&&a.from().line==i.line&&a.from().ch==i.ch)||(f.setSelection(a.from(),a.to()),f.scrollIntoView({from:a.from(),to:a.to()}),r="Replace? <button>Yes</button> <button>No</button> <button>Stop</button>",n="Replace?",t=[function(){s(e)},c],(o=f).openConfirm?o.openConfirm(r,t):confirm(n)&&t[0]())},s=function(r){a.replace("string"==typeof l?o:o.replace(/\$(\d)/g,function(e,o){return r[o]})),c()};c()}}))})}t.commands.find=function(e){i(e),n(e)},t.commands.findNext=n,t.commands.findPrev=function(e){n(e,!0)},t.commands.clearSearch=i,t.commands.replace=f,t.commands.replaceAll=function(e){f(e,!0)}});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(s){function d(e,o,n){var t;return(t=e.getWrapperElement().appendChild(document.createElement("div"))).className=n?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof o?t.innerHTML=o:t.appendChild(o),t}function p(e,o){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=o}s.defineExtension("openDialog",function(e,o,n){n||(n={}),p(this,null);var t=d(this,e,n.bottom),i=!1,r=this;function u(e){if("string"==typeof e)c.value=e;else{if(i)return;i=!0,t.parentNode.removeChild(t),r.focus(),n.onClose&&n.onClose(t)}}var l,c=t.getElementsByTagName("input")[0];return c?(n.value&&(c.value=n.value,!1!==n.selectValueOnOpen&&c.select()),n.onInput&&s.on(c,"input",function(e){n.onInput(e,c.value,u)}),n.onKeyUp&&s.on(c,"keyup",function(e){n.onKeyUp(e,c.value,u)}),s.on(c,"keydown",function(e){n&&n.onKeyDown&&n.onKeyDown(e,c.value,u)||((27==e.keyCode||!1!==n.closeOnEnter&&13==e.keyCode)&&(c.blur(),s.e_stop(e),u()),13==e.keyCode&&o(c.value,e))}),!1!==n.closeOnBlur&&s.on(c,"blur",u),c.focus()):(l=t.getElementsByTagName("button")[0])&&(s.on(l,"click",function(){u(),r.focus()}),!1!==n.closeOnBlur&&s.on(l,"blur",u),l.focus()),u}),s.defineExtension("openConfirm",function(e,o,n){p(this,null);var t=d(this,e,n&&n.bottom),i=t.getElementsByTagName("button"),r=!1,u=this,l=1;function c(){r||(r=!0,t.parentNode.removeChild(t),u.focus())}i[0].focus();for(var a=0;a<i.length;++a){var f=i[a];!function(o){s.on(f,"click",function(e){s.e_preventDefault(e),c(),o&&o(u)})}(o[a]),s.on(f,"blur",function(){--l,setTimeout(function(){l<=0&&c()},200)}),s.on(f,"focus",function(){++l})}}),s.defineExtension("openNotification",function(e,o){p(this,u);var n,t=d(this,e,o&&o.bottom),i=!1,r=o&&void 0!==o.duration?o.duration:5e3;function u(){i||(i=!0,clearTimeout(n),t.parentNode.removeChild(t))}return s.on(t,"click",function(e){s.e_preventDefault(e),u()}),r&&(n=setTimeout(u,r)),u})});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(r){"use strict";function o(t){"object"==typeof t&&(this.minChars=t.minChars,this.style=t.style,this.showToken=t.showToken,this.delay=t.delay,this.wordsOnly=t.wordsOnly),null==this.style&&(this.style="matchhighlight"),null==this.minChars&&(this.minChars=2),null==this.delay&&(this.delay=100),null==this.wordsOnly&&(this.wordsOnly=!1),this.overlay=this.timeout=null}function l(t){var e=t.state.matchHighlighter;clearTimeout(e.timeout),e.timeout=setTimeout(function(){h(t)},e.delay)}function h(a){a.operation(function(){var t=a.state.matchHighlighter;if(t.overlay&&(a.removeOverlay(t.overlay),t.overlay=null),a.somethingSelected()||!t.showToken){var e=a.getCursor("from"),i=a.getCursor("to");if(e.line==i.line&&(!t.wordsOnly||function(t,e,i){{if(null===t.getRange(e,i).match(/^\w+$/))return!1;if(0<e.ch){var n={line:e.line,ch:e.ch-1},r=t.getRange(n,e);if(null===r.match(/\W/))return!1}if(i.ch<t.getLine(e.line).length){var n={line:i.line,ch:i.ch+1},r=t.getRange(i,n);if(null===r.match(/\W/))return!1}return!0}}(a,e,i))){var n=a.getRange(e,i).replace(/^\s+|\s+$/g,"");n.length>=t.minChars&&a.addOverlay(t.overlay=c(n,!1,t.style))}}else{for(var r=!0===t.showToken?/[\w$]/:t.showToken,o=a.getCursor(),l=a.getLine(o.line),h=o.ch,s=h;h&&r.test(l.charAt(h-1));)--h;for(;s<l.length&&r.test(l.charAt(s));)++s;h<s&&a.addOverlay(t.overlay=c(l.slice(h,s),r,t.style))}})}function c(n,r,o){return{token:function(t){if(t.match(n)&&(!r||(i=r,!((e=t).start&&i.test(e.string.charAt(e.start-1))||e.pos!=e.string.length&&i.test(e.string.charAt(e.pos))))))return o;var e,i;t.next(),t.skipTo(n.charAt(0))||t.skipToEnd()}}}r.defineOption("highlightSelectionMatches",!1,function(t,e,i){if(i&&i!=r.Init){var n=t.state.matchHighlighter.overlay;n&&t.removeOverlay(n),clearTimeout(t.state.matchHighlighter.timeout),t.state.matchHighlighter=null,t.off("cursorActivity",l)}e&&(t.state.matchHighlighter=new o(e),h(t),t.on("cursorActivity",l))})});
!function(n){"object"==typeof exports&&"object"==typeof module?n(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],n):n(CodeMirror)}(function(a){"use strict";function i(i,t,n,f){if(n&&n.call){var l=n;n=null}else l=c(i,n,"rangeFinder");"number"==typeof t&&(t=a.Pos(t,0));var d=c(i,n,"minFoldSize");function o(n){var o=l(i,t);if(!o||o.to.line-o.from.line<d)return null;for(var e=i.findMarksAt(o.from),r=0;r<e.length;++r)if(e[r].__isFold&&"fold"!==f){if(!n)return null;o.cleared=!0,e[r].clear()}return o}var e=o(!0);if(c(i,n,"scanUp"))for(;!e&&t.line>i.firstLine();)t=a.Pos(t.line-1,0),e=o(!1);if(e&&!e.cleared&&"unfold"!==f){var r=function(n,o){var e=c(n,o,"widget");if("string"==typeof e){var r=document.createTextNode(e);(e=document.createElement("span")).appendChild(r),e.className="CodeMirror-foldmarker"}return e}(i,n);a.on(r,"mousedown",function(n){u.clear(),a.e_preventDefault(n)});var u=i.markText(e.from,e.to,{replacedWith:r,clearOnEnter:!0,__isFold:!0});u.on("clear",function(n,o){a.signal(i,"unfold",i,n,o)}),a.signal(i,"fold",i,e.from,e.to)}}a.newFoldFunction=function(e,r){return function(n,o){i(n,o,{rangeFinder:e,widget:r})}},a.defineExtension("foldCode",function(n,o,e){i(this,n,o,e)}),a.defineExtension("isFolded",function(n){for(var o=this.findMarksAt(n),e=0;e<o.length;++e)if(o[e].__isFold)return!0}),a.commands.toggleFold=function(n){n.foldCode(n.getCursor())},a.commands.fold=function(n){n.foldCode(n.getCursor(),null,"fold")},a.commands.unfold=function(n){n.foldCode(n.getCursor(),null,"unfold")},a.commands.foldAll=function(e){e.operation(function(){for(var n=e.firstLine(),o=e.lastLine();n<=o;n++)e.foldCode(a.Pos(n,0),null,"fold")})},a.commands.unfoldAll=function(e){e.operation(function(){for(var n=e.firstLine(),o=e.lastLine();n<=o;n++)e.foldCode(a.Pos(n,0),null,"unfold")})},a.registerHelper("fold","combine",function(){var i=Array.prototype.slice.call(arguments,0);return function(n,o){for(var e=0;e<i.length;++e){var r=i[e](n,o);if(r)return r}}}),a.registerHelper("fold","auto",function(n,o){for(var e=n.getHelpers(o,"fold"),r=0;r<e.length;r++){var i=e[r](n,o);if(i)return i}});var t={rangeFinder:a.fold.auto,widget:"↔",minFoldSize:0,scanUp:!1};function c(n,o,e){if(o&&void 0!==o[e])return o[e];var r=n.options.foldOptions;return r&&void 0!==r[e]?r[e]:t[e]}a.defineOption("foldOptions",null),a.defineExtension("foldOption",function(n,o){return c(this,n,o)})});
!function(o){"object"==typeof exports&&"object"==typeof module?o(require("../../lib/codemirror"),require("./foldcode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./foldcode"],o):o(CodeMirror)}(function(r){"use strict";r.defineOption("foldGutter",!1,function(o,t,e){e&&e!=r.Init&&(o.clearGutter(o.state.foldGutter.options.gutter),o.state.foldGutter=null,o.off("gutterClick",d),o.off("change",a),o.off("viewportChange",p),o.off("fold",s),o.off("unfold",s),o.off("swapDoc",f)),t&&(o.state.foldGutter=new n(function(o){!0===o&&(o={});null==o.gutter&&(o.gutter="CodeMirror-foldgutter");null==o.indicatorOpen&&(o.indicatorOpen="CodeMirror-foldgutter-open");null==o.indicatorFolded&&(o.indicatorFolded="CodeMirror-foldgutter-folded");return o}(t)),f(o),o.on("gutterClick",d),o.on("change",a),o.on("viewportChange",p),o.on("fold",s),o.on("unfold",s),o.on("swapDoc",f))});var u=r.Pos;function n(o){this.options=o,this.from=this.to=0}function l(o,t){for(var e=o.findMarksAt(u(t)),r=0;r<e.length;++r)if(e[r].__isFold&&e[r].find().from.line==t)return e[r]}function c(o){if("string"!=typeof o)return o.cloneNode(!0);var t=document.createElement("div");return t.className=o+" CodeMirror-guttermarker-subtle",t}function i(n,o,t){var i=n.state.foldGutter.options,f=o,d=n.foldOption(i,"minFoldSize"),a=n.foldOption(i,"rangeFinder");n.eachLine(o,t,function(o){var t=null;if(l(n,f))t=c(i.indicatorFolded);else{var e=u(f,0),r=a&&a(n,e);r&&r.to.line-r.from.line>=d&&(t=c(i.indicatorOpen))}n.setGutterMarker(o,i.gutter,t),++f})}function f(o){var t=o.getViewport(),e=o.state.foldGutter;e&&(o.operation(function(){i(o,t.from,t.to)}),e.from=t.from,e.to=t.to)}function d(o,t,e){var r=o.state.foldGutter;if(r){var n=r.options;if(e==n.gutter){var i=l(o,t);i?i.clear():o.foldCode(u(t,0),n.rangeFinder)}}}function a(o){var t=o.state.foldGutter;if(t){var e=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){f(o)},e.foldOnChangeTimeSpan||600)}}function p(t){var e=t.state.foldGutter;if(e){var o=e.options;clearTimeout(e.changeUpdate),e.changeUpdate=setTimeout(function(){var o=t.getViewport();e.from==e.to||20<o.from-e.to||20<e.from-o.to?f(t):t.operation(function(){o.from<e.from&&(i(t,o.from,e.from),e.from=o.from),o.to>e.to&&(i(t,e.to,o.to),e.to=o.to)})},o.updateViewportTimeSpan||400)}}function s(o,t){var e=o.state.foldGutter;if(e){var r=t.line;r>=e.from&&r<e.to&&i(o,r,r+1)}}});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(k){"use strict";k.registerHelper("fold","brace",function(i,o){var l,f=o.line,s=i.getLine(f);function e(e){for(var r=o.ch,n=0;;){var t=r<=0?-1:s.lastIndexOf(e,r-1);if(-1!=t){if(1==n&&t<o.ch)break;if(l=i.getTokenTypeAt(k.Pos(f,t+1)),!/^(comment|string)/.test(l))return t+1;r=t-1}else{if(1==n)break;n=1,r=s.length}}}var r,n="{",t="}";if(null==(r=e("{"))&&(t="]",r=e(n="[")),null!=r){var u,a,d=1,c=i.lastLine();e:for(var g=f;g<=c;++g)for(var v=i.getLine(g),p=g==f?r:0;;){var m=v.indexOf(n,p),P=v.indexOf(t,p);if(m<0&&(m=v.length),P<0&&(P=v.length),(p=Math.min(m,P))==v.length)break;if(i.getTokenTypeAt(k.Pos(g,p+1))==l)if(p==m)++d;else if(!--d){u=g,a=p;break e}++p}if(null!=u&&(f!=u||a!=r))return{from:k.Pos(f,r),to:k.Pos(u,a)}}}),k.registerHelper("fold","import",function(o,e){function r(e){if(e<o.firstLine()||e>o.lastLine())return null;var r=o.getTokenAt(k.Pos(e,1));if(/\S/.test(r.string)||(r=o.getTokenAt(k.Pos(e,r.end+1))),"keyword"!=r.type||"import"!=r.string)return null;for(var n=e,t=Math.min(o.lastLine(),e+10);n<=t;++n){var i=o.getLine(n).indexOf(";");if(-1!=i)return{startCh:r.end,end:k.Pos(n,i)}}}var n,t=r(e=e.line);if(!t||r(e-1)||(n=r(e-2))&&n.end.line==e-1)return null;for(var i=t.end;;){var l=r(i.line+1);if(null==l)break;i=l.end}return{from:o.clipPos(k.Pos(e,t.startCh+1)),to:i}}),k.registerHelper("fold","include",function(n,e){function r(e){if(e<n.firstLine()||e>n.lastLine())return null;var r=n.getTokenAt(k.Pos(e,1));return/\S/.test(r.string)||(r=n.getTokenAt(k.Pos(e,r.end+1))),"meta"==r.type&&"#include"==r.string.slice(0,8)?r.start+8:void 0}var t=r(e=e.line);if(null==t||null!=r(e-1))return null;for(var i=e;;){if(null==r(i+1))break;++i}return{from:k.Pos(e,t+1),to:n.clipPos(k.Pos(i))}})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var a=e.Pos;var n="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i=new RegExp("<(/?)(["+n+"][A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");function s(e,n,t,i){this.line=n,this.ch=t,this.cm=e,this.text=e.getLine(n),this.min=i?i.from:e.firstLine(),this.max=i?i.to-1:e.lastLine()}function r(e,n){var t=e.cm.getTokenTypeAt(a(e.line,n));return t&&/\btag\b/.test(t)}function u(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function f(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function h(e){for(;;){var n=e.text.indexOf(">",e.ch);if(-1==n){if(u(e))continue;return}if(r(e,n+1)){var t=e.text.lastIndexOf("/",n),i=-1<t&&!/\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?"selfClose":"regular"}e.ch=n+1}}function F(e){for(;;){var n=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==n){if(f(e))continue;return}if(r(e,n+1)){i.lastIndex=n,e.ch=n;var t=i.exec(e.text);if(t&&t.index==n)return t}else e.ch=n}}function l(e){for(;;){i.lastIndex=e.ch;var n=i.exec(e.text);if(!n){if(u(e))continue;return}if(r(e,n.index+1))return e.ch=n.index+n[0].length,n;e.ch=n.index+1}}function c(e){for(;;){var n=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==n){if(f(e))continue;return}if(r(e,n+1)){var t=e.text.lastIndexOf("/",n),i=-1<t&&!/\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?"selfClose":"regular"}e.ch=n}}function x(e,n){for(var t=[];;){var i,r=l(e),u=e.line,f=e.ch-(r?r[0].length:0);if(!r||!(i=h(e)))return;if("selfClose"!=i)if(r[1]){for(var o=t.length-1;0<=o;--o)if(t[o]==r[2]){t.length=o;break}if(o<0&&(!n||n==r[2]))return{tag:r[2],from:a(u,f),to:a(e.line,e.ch)}}else t.push(r[2])}}function g(e,n){for(var t=[];;){var i=c(e);if(!i)return;if("selfClose"!=i){var r=e.line,u=e.ch,f=F(e);if(!f)return;if(f[1])t.push(f[2]);else{for(var o=t.length-1;0<=o;--o)if(t[o]==f[2]){t.length=o;break}if(o<0&&(!n||n==f[2]))return{tag:f[2],from:a(e.line,e.ch),to:a(r,u)}}}else F(e)}}e.registerHelper("fold","xml",function(e,n){for(var t=new s(e,n.line,0);;){var i,r=l(t);if(!r||t.line!=n.line||!(i=h(t)))return;if(!r[1]&&"selfClose"!=i){n=a(t.line,t.ch);var u=x(t,r[2]);return u&&{from:n,to:u.from}}}}),e.findMatchingTag=function(e,n,t){var i=new s(e,n.line,n.ch,t);if(-1!=i.text.indexOf(">")||-1!=i.text.indexOf("<")){var r=h(i),u=r&&a(i.line,i.ch),f=r&&F(i);if(r&&f&&(l=n,!(0<((o=i).line-l.line||o.ch-l.ch)))){var o,l,c={from:a(i.line,i.ch),to:u,tag:f[2]};return"selfClose"==r?{open:c,close:null,at:"open"}:f[1]?{open:g(i,f[2]),close:c,at:"close"}:{open:c,close:x(i=new s(e,u.line,u.ch,t),f[2]),at:"open"}}}},e.findEnclosingTag=function(e,n,t){for(var i=new s(e,n.line,n.ch,t);;){var r=g(i);if(!r)break;var u=x(new s(e,n.line,n.ch,t),r.tag);if(u)return{open:r,close:u}}},e.scanForClosingTag=function(e,n,t,i){return x(new s(e,n.line,n.ch,i?{from:0,to:i}:null),t)}});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(d){"use strict";d.registerHelper("fold","markdown",function(t,e){function i(e){var n=t.getTokenTypeAt(d.Pos(e,0));return n&&/\bheader\b/.test(n)}function n(e,n,t){var r=n&&n.match(/^#+/);return r&&i(e)?r[0].length:(r=t&&t.match(/^[=\-]+\s*$/))&&i(e+1)?"="==t[0]?1:2:100}var r=t.getLine(e.line),o=t.getLine(e.line+1),f=n(e.line,r,o);if(100!==f){for(var l=t.lastLine(),c=e.line,u=t.getLine(c+2);c<l&&!(n(c+1,o,u)<=f);)++c,o=u,u=t.getLine(c+2);return{from:d.Pos(e.line,r.length),to:d.Pos(c,t.getLine(c).length)}}})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(C){"use strict";C.registerGlobalHelper("fold","comment",function(e){return e.blockCommentStart&&e.blockCommentEnd},function(e,t){var n=e.getModeAt(t),o=n.blockCommentStart,r=n.blockCommentEnd;if(o&&r){for(var i,f=t.line,l=e.getLine(f),c=t.ch,m=0;;){var a=c<=0?-1:l.lastIndexOf(o,c-1);if(-1!=a){if(1==m&&a<t.ch)return;if(/comment/.test(e.getTokenTypeAt(C.Pos(f,a+1)))){i=a+o.length;break}c=a-1}else{if(1==m)return;m=1,c=l.length}}var d,u,b=1,s=e.lastLine();e:for(var g=f;g<=s;++g)for(var h=e.getLine(g),k=g==f?i:0;;){var v=h.indexOf(o,k),p=h.indexOf(r,k);if(v<0&&(v=h.length),p<0&&(p=h.length),(k=Math.min(v,p))==h.length)break;if(k==v)++b;else if(!--b){d=g,u=k;break e}++k}if(null!=d&&(f!=d||u!=i))return{from:C.Pos(f,i),to:C.Pos(d,u)}}})});
!function(r){"object"==typeof exports&&"object"==typeof module?r(require("../../lib/codemirror"),"cjs"):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],function(e){r(e,"amd")}):r(CodeMirror,"plain")}(function(a,d){a.modeURL||(a.modeURL="../mode/%N/%N.js");var f={};function u(e,r){var o=a.modes[e].dependencies;if(!o)return r();for(var n=[],t=0;t<o.length;++t)a.modes.hasOwnProperty(o[t])||n.push(o[t]);if(!n.length)return r();var i,d,f,u=(i=r,d=n.length,f=d,function(){0==--f&&i()});for(t=0;t<n.length;++t)a.requireMode(n[t],u)}a.requireMode=function(e,r){if("string"!=typeof e&&(e=e.name),a.modes.hasOwnProperty(e))return u(e,r);if(f.hasOwnProperty(e))return f[e].push(r);var o=a.modeURL.replace(/%N/g,e);if("plain"==d){var n=document.createElement("script");n.src=o;var t=document.getElementsByTagName("script")[0],i=f[e]=[r];a.on(n,"load",function(){u(e,function(){for(var e=0;e<i.length;++e)i[e]()})}),t.parentNode.insertBefore(n,t)}else"cjs"==d?(require(o),r()):"amd"==d&&requirejs([o],r)},a.autoLoadMode=function(e,r){a.modes.hasOwnProperty(r)||a.requireMode(r,function(){e.setOption("mode",e.getOption("mode"))})}});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var O={},M=/[^\s\u00a0]/,E=e.Pos;function s(e){var n=e.search(M);return-1==n?0:n}e.commands.toggleComment=function(e){for(var n=1/0,t=e.listSelections(),i=null,l=t.length-1;0<=l;l--){var o=t[l].from(),a=t[l].to();o.line>=n||(a.line>=n&&(a=E(n,0)),n=o.line,null==i?i=e.uncomment(o,a)?"un":(e.lineComment(o,a),"line"):"un"==i?e.uncomment(o,a):e.lineComment(o,a))}},e.defineExtension("lineComment",function(l,e,o){o||(o=O);var a=this,n=a.getModeAt(l),r=o.lineComment||n.lineComment;if(r){var m=a.getLine(l.line);if(null!=m){var c=Math.min(0!=e.ch||e.line==l.line?e.line+1:e.line,a.lastLine()+1),f=null==o.padding?" ":o.padding,g=o.commentBlankLines||l.line==e.line;a.operation(function(){if(o.indent)for(var e=m.slice(0,s(m)),n=l.line;n<c;++n){var t=a.getLine(n),i=e.length;(g||M.test(t))&&(t.slice(0,i)!=e&&(i=s(t)),a.replaceRange(e+r+f,E(n,0),E(n,i)))}else for(n=l.line;n<c;++n)(g||M.test(a.getLine(n)))&&a.replaceRange(r+f,E(n,0))})}}else(o.blockCommentStart||n.blockCommentStart)&&(o.fullLines=!0,a.blockComment(l,e,o))}),e.defineExtension("blockComment",function(i,l,o){o||(o=O);var a=this,r=a.getModeAt(i),m=o.blockCommentStart||r.blockCommentStart,c=o.blockCommentEnd||r.blockCommentEnd;if(m&&c){var f=Math.min(l.line,a.lastLine());f!=i.line&&0==l.ch&&M.test(a.getLine(f))&&--f;var g=null==o.padding?" ":o.padding;i.line>f||a.operation(function(){if(0!=o.fullLines){var e=M.test(a.getLine(f));a.replaceRange(g+c,E(f)),a.replaceRange(m+g,E(i.line,0));var n=o.blockCommentLead||r.blockCommentLead;if(null!=n)for(var t=i.line+1;t<=f;++t)(t!=f||e)&&a.replaceRange(n+g,E(t,0))}else a.replaceRange(c,l),a.replaceRange(m,i)})}else(o.lineComment||r.lineComment)&&0!=o.fullLines&&a.lineComment(i,l,o)}),e.defineExtension("uncomment",function(e,n,t){t||(t=O);var l,o=this,i=o.getModeAt(e),a=Math.min(0!=n.ch||n.line==e.line?n.line:n.line-1,o.lastLine()),r=Math.min(e.line,a),m=t.lineComment||i.lineComment,c=[],f=null==t.padding?" ":t.padding;e:if(m){for(var g=r;g<=a;++g){var s=o.getLine(g),d=s.indexOf(m);if(-1<d&&!/comment/.test(o.getTokenTypeAt(E(g,d+1)))&&(d=-1),-1==d&&(g!=a||g==r)&&M.test(s))break e;if(-1<d&&M.test(s.slice(0,d)))break e;c.push(s)}if(o.operation(function(){for(var e=r;e<=a;++e){var n=c[e-r],t=n.indexOf(m),i=t+m.length;t<0||(n.slice(i,i+f.length)==f&&(i+=f.length),l=!0,o.replaceRange("",E(e,t),E(e,i)))}}),l)return!0}var u=t.blockCommentStart||i.blockCommentStart,h=t.blockCommentEnd||i.blockCommentEnd;if(!u||!h)return!1;var p=t.blockCommentLead||i.blockCommentLead,v=o.getLine(r),C=a==r?v:o.getLine(a),b=v.indexOf(u),k=C.lastIndexOf(h);if(-1==k&&r!=a&&(C=o.getLine(--a),k=C.lastIndexOf(h)),-1==b||-1==k||!/comment/.test(o.getTokenTypeAt(E(r,b+1)))||!/comment/.test(o.getTokenTypeAt(E(a,k+1))))return!1;var L=v.lastIndexOf(u,e.ch),x=-1==L?-1:v.slice(0,e.ch).indexOf(h,L+u.length);if(-1!=L&&-1!=x&&x+h.length!=e.ch)return!1;x=C.indexOf(h,n.ch);var R=C.slice(n.ch).lastIndexOf(u,x-n.ch);return L=-1==x||-1==R?-1:n.ch+R,(-1==x||-1==L||L==n.ch)&&(o.operation(function(){o.replaceRange("",E(a,k-(f&&C.slice(k-f.length,k)==f?f.length:0)),E(a,k+h.length));var e=b+u.length;if(f&&v.slice(e,e+f.length)==f&&(e+=f.length),o.replaceRange("",E(r,b),E(r,e)),p)for(var n=r+1;n<=a;++n){var t=o.getLine(n),i=t.indexOf(p);if(-1!=i&&!M.test(t.slice(0,i))){var l=i+p.length;f&&t.slice(l,l+f.length)==f&&(l+=f.length),o.replaceRange("",E(n,i),E(n,l))}}}),!0)})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],e):e(CodeMirror)}(function(x){"use strict";x.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["pgp"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists.txt$/},{name:"CoffeeScript",mime:"text/x-coffeescript",mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy"]},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Jade",mime:"text/x-jade",mode:"jade",ext:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"Jinja2",mime:"null",mode:"jinja2"},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"kotlin",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NTriples",mime:"text/n-triples",mode:"ntriples",ext:["nt"]},{name:"Objective C",mime:"text/x-objectivec",mode:"clike",ext:["m","mm"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mime:"application/x-httpd-php",mode:"php",ext:["php","php3","php4","php5","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["py","pyw"]},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mime:"text/x-sh",mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"]},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"MariaDB",mime:"text/x-mariadb",mode:"sql"},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"YAML",mime:"text/x-yaml",mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]}];for(var e=0;e<x.modeInfo.length;e++){var m=x.modeInfo[e];m.mimes&&(m.mime=m.mimes[0])}x.findModeByMIME=function(e){e=e.toLowerCase();for(var m=0;m<x.modeInfo.length;m++){var t=x.modeInfo[m];if(t.mime==e)return t;if(t.mimes)for(var a=0;a<t.mimes.length;a++)if(t.mimes[a]==e)return t}},x.findModeByExtension=function(e){for(var m=0;m<x.modeInfo.length;m++){var t=x.modeInfo[m];if(t.ext)for(var a=0;a<t.ext.length;a++)if(t.ext[a]==e)return t}},x.findModeByFileName=function(e){for(var m=0;m<x.modeInfo.length;m++){var t=x.modeInfo[m];if(t.file&&t.file.test(e))return t}var a=e.lastIndexOf("."),i=-1<a&&e.substring(a+1,e.length);if(i)return x.findModeByExtension(i)},x.findModeByName=function(e){e=e.toLowerCase();for(var m=0;m<x.modeInfo.length;m++){var t=x.modeInfo[m];if(t.name.toLowerCase()==e)return t;if(t.alias)for(var a=0;a<t.alias.length;a++)if(t.alias[a].toLowerCase()==e)return t}}});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("go",function(e){var i,o=e.indentUnit,a={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0},c={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},u=/[+\-*&^%:=<>!|\/]/;function l(e,t){var o,n=e.next();if('"'==n||"'"==n||"`"==n)return t.tokenize=(o=n,function(e,t){for(var n,r=!1,i=!1;null!=(n=e.next());){if(n==o&&!r){i=!0;break}r=!r&&"\\"==n}return(i||!r&&"`"!=o)&&(t.tokenize=l),"string"}),t.tokenize(e,t);if(/[\d\.]/.test(n))return"."==n?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==n?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(n))return i=n,null;if("/"==n){if(e.eat("*"))return(t.tokenize=f)(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(u.test(n))return e.eatWhile(u),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var r=e.current();return a.propertyIsEnumerable(r)?("case"!=r&&"default"!=r||(i="case"),"keyword"):c.propertyIsEnumerable(r)?"atom":"variable"}function f(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=l;break}r="*"==n}return"comment"}function r(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function d(e,t,n){return e.context=new r(e.indented,t,n,null,e.context)}function p(e){if(e.context.prev){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}}return{startState:function(e){return{tokenize:null,context:new r((e||0)-o,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,"case"==n.type&&(n.type="}")),e.eatSpace())return null;i=null;var r=(t.tokenize||l)(e,t);return"comment"==r||(null==n.align&&(n.align=!0),"{"==i?d(t,e.column(),"}"):"["==i?d(t,e.column(),"]"):"("==i?d(t,e.column(),")"):"case"==i?n.type="case":"}"==i&&"}"==n.type?n=p(t):i==n.type&&p(t),t.startOfLine=!1),r},indent:function(e,t){if(e.tokenize!=l&&null!=e.tokenize)return 0;var n=e.context,r=t&&t.charAt(0);if("case"==n.type&&/^(?:case|default)\b/.test(t))return e.context.type="}",n.indented;var i=r==n.type;return n.align?n.column+(i?0:1):n.indented+(i?0:o)},electricChars:"{}):",fold:"brace",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}}),e.defineMIME("text/x-go","go")});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(k){"use strict";function e(e){for(var t={},r=e.split(" "),o=0;o<r.length;++o)t[r[o]]=!0;return t}k.defineMode("clike",function(e,t){var i,a=e.indentUnit,l=t.statementIndentUnit||a,s=t.dontAlignCalls,c=t.keywords||{},u=t.builtin||{},d=t.blockKeywords||{},f=t.atoms||{},m=t.hooks||{},g=t.multiLineStrings,n=!1!==t.indentStatements,p=/[+\-*&%=<>!?|\/]/;function h(e,t){var a,r=e.next();if(m[r]){var o=m[r](e,t);if(!1!==o)return o}if('"'==r||"'"==r)return t.tokenize=(a=r,function(e,t){for(var r,o=!1,n=!1;null!=(r=e.next());){if(r==a&&!o){n=!0;break}o=!o&&"\\"==r}return(n||!o&&!g)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(r))return i=r,null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("/"==r){if(e.eat("*"))return(t.tokenize=x)(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(p.test(r))return e.eatWhile(p),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var n=e.current();return c.propertyIsEnumerable(n)?(d.propertyIsEnumerable(n)&&(i="newstatement"),"keyword"):u.propertyIsEnumerable(n)?(d.propertyIsEnumerable(n)&&(i="newstatement"),"builtin"):f.propertyIsEnumerable(n)?"atom":"variable"}function x(e,t){for(var r,o=!1;r=e.next();){if("/"==r&&o){t.tokenize=null;break}o="*"==r}return"comment"}function y(e,t,r,o,n){this.indented=e,this.column=t,this.type=r,this.align=o,this.prev=n}function b(e,t,r){var o=e.indented;return e.context&&"statement"==e.context.type&&(o=e.context.indented),e.context=new y(o,t,r,null,e.context)}function w(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}return{startState:function(e){return{tokenize:null,context:new y((e||0)-a,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var r=t.context;if(e.sol()&&(null==r.align&&(r.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;i=null;var o=(t.tokenize||h)(e,t);if("comment"==o||"meta"==o)return o;if(null==r.align&&(r.align=!0),";"!=i&&":"!=i&&","!=i||"statement"!=r.type)if("{"==i)b(t,e.column(),"}");else if("["==i)b(t,e.column(),"]");else if("("==i)b(t,e.column(),")");else if("}"==i){for(;"statement"==r.type;)r=w(t);for("}"==r.type&&(r=w(t));"statement"==r.type;)r=w(t)}else i==r.type?w(t):n&&(("}"==r.type||"top"==r.type)&&";"!=i||"statement"==r.type&&"newstatement"==i)&&b(t,e.column(),"statement");else w(t);return t.startOfLine=!1,o},indent:function(e,t){if(e.tokenize!=h&&null!=e.tokenize)return k.Pass;var r=e.context,o=t&&t.charAt(0);"statement"==r.type&&"}"==o&&(r=r.prev);var n=o==r.type;return"statement"==r.type?r.indented+("{"==o?0:l):!r.align||s&&")"==r.type?")"!=r.type||n?r.indented+(n?0:a):r.indented+l:r.column+(n?0:1)},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});var t="auto if break int case long char register continue return default short do sizeof double static else struct entry switch extern typedef float union for unsigned goto while enum void const signed volatile";function r(e,t){if(!t.startOfLine)return!1;for(;;){if(!e.skipTo("\\")){e.skipToEnd(),t.tokenize=null;break}if(e.next(),e.eol()){t.tokenize=r;break}}return"meta"}function o(e,t){if(e.backUp(1),e.match(/(R|u8R|uR|UR|LR)/)){var r=e.match(/"([^\s\\()]{0,16})\(/);return!!r&&(t.cpp11RawStringDelim=r[1],(t.tokenize=a)(e,t))}return e.match(/(u8|u|U|L)/)?!!e.match(/["']/,!1)&&"string":(e.next(),!1)}function n(e,t){for(var r;null!=(r=e.next());)if('"'==r&&!e.eat('"')){t.tokenize=null;break}return"string"}function a(e,t){var r=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+r+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function i(e,t){"string"==typeof e&&(e=[e]);var r=[];function o(e){if(e)for(var t in e)e.hasOwnProperty(t)&&r.push(t)}o(t.keywords),o(t.builtin),o(t.atoms),r.length&&(t.helperType=e[0],k.registerHelper("hintWords",e[0],r));for(var n=0;n<e.length;++n)k.defineMIME(e[n],t)}function l(e,t){for(var r=!1;!e.eol();){if(!r&&e.match('"""')){t.tokenize=null;break}r="\\"==e.next()&&!r}return"string"}i(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:e(t),blockKeywords:e("case do else for if switch while struct"),atoms:e("null"),hooks:{"#":r},modeProps:{fold:["brace","include"]}}),i(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:e(t+" asm dynamic_cast namespace reinterpret_cast try bool explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected wchar_t alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),blockKeywords:e("catch class do else finally for if struct switch try while"),atoms:e("true false null"),hooks:{"#":r,u:o,U:o,L:o,R:o},modeProps:{fold:["brace","include"]}}),i("text/x-java",{name:"clike",keywords:e("abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while"),blockKeywords:e("catch class do else finally for if switch try while"),atoms:e("true false null"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"}},modeProps:{fold:["brace","import"]}}),i("text/x-csharp",{name:"clike",keywords:e("abstract as base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),blockKeywords:e("catch class do else finally for foreach if struct switch try while"),builtin:e("Boolean Byte Char DateTime DateTimeOffset Decimal Double Guid Int16 Int32 Int64 Object SByte Single String TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),atoms:e("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=n)(e,t):(e.eatWhile(/[\w\$_]/),"meta")}}}),i("text/x-scala",{name:"clike",keywords:e("abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try trye type val var while with yield _ : = => <- <: <% >: # @ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:e("catch class do else finally for forSome if match switch try while"),atoms:e("true false null"),indentStatements:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=l,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"}},modeProps:{closeBrackets:{triples:'"'}}}),i(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:e("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4 sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),blockKeywords:e("for while do if else struct"),builtin:e("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:e("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),hooks:{"#":r},modeProps:{fold:["brace","include"]}}),i("text/x-nesc",{name:"clike",keywords:e(t+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),blockKeywords:e("case do else for if switch while struct"),atoms:e("null"),hooks:{"#":r},modeProps:{fold:["brace","include"]}}),i("text/x-objectivec",{name:"clike",keywords:e(t+"inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),atoms:e("YES NO NULL NILL ON OFF"),hooks:{"@":function(e){return e.eatWhile(/[\w\$]/),"keyword"},"#":r},modeProps:{fold:"brace"}})});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(T){"use strict";T.defineMode("xml",function(t,e){var i=t.indentUnit,l=e.multilineTagIndentFactor||1,u=e.multilineTagIndentPastTag;null==u&&(u=!0);var d,a,c=e.htmlMode?{autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1},f=e.alignCDATA;function s(e,n){function t(t){return(n.tokenize=t)(e,n)}var r=e.next();return"<"==r?e.eat("!")?e.eat("[")?e.match("CDATA[")?t(o("atom","]]>")):null:e.match("--")?t(o("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),t(function r(o){return function(t,e){for(var n;null!=(n=t.next());){if("<"==n)return e.tokenize=r(o+1),e.tokenize(t,e);if(">"==n){if(1!=o)return e.tokenize=r(o-1),e.tokenize(t,e);e.tokenize=s;break}}return"meta"}}(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),n.tokenize=o("meta","?>"),"meta"):(d=e.eat("/")?"closeTag":"openTag",n.tokenize=m,"tag bracket"):"&"!=r?(e.eatWhile(/[^&<]/),null):(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error"}function m(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=s,d=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return d="equals",null;if("<"!=n)return/[\'\"]/.test(n)?(e.tokenize=(r=n,(o=function(t,e){for(;!t.eol();)if(t.next()==r){e.tokenize=m;break}return"string"}).isInAttribute=!0,o),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word");e.tokenize=s,e.state=x,e.tagName=e.tagStart=null;var r,o,a=e.tokenize(t,e);return a?a+" tag error":"tag error"}function o(n,r){return function(t,e){for(;!t.eol();){if(t.match(r)){e.tokenize=s;break}t.next()}return n}}function g(t,e,n){this.prev=t.context,this.tagName=e,this.indent=t.indented,this.startOfLine=n,(c.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function p(t){t.context&&(t.context=t.context.prev)}function h(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!c.contextGrabbers.hasOwnProperty(n)||!c.contextGrabbers[n].hasOwnProperty(e))return;p(t)}}function x(t,e,n){return"openTag"==t?(n.tagStart=e.column(),r):"closeTag"==t?b:x}function r(t,e,n){return"word"==t?(n.tagName=e.current(),a="tag",y):(a="error",r)}function b(t,e,n){if("word"!=t)return a="error",w;var r=e.current();return n.context&&n.context.tagName!=r&&c.implicitlyClosed.hasOwnProperty(n.context.tagName)&&p(n),n.context&&n.context.tagName==r?(a="tag",k):(a="tag error",w)}function k(t,e,n){return"endTag"!=t?(a="error",k):(p(n),x)}function w(t,e,n){return a="error",k(t,0,n)}function y(t,e,n){if("word"==t)return a="attribute",v;if("endTag"!=t&&"selfcloseTag"!=t)return a="error",y;var r=n.tagName,o=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||c.autoSelfClosers.hasOwnProperty(r)?h(n,r):(h(n,r),n.context=new g(n,r,o==n.indented)),x}function v(t,e,n){return"equals"==t?z:(c.allowMissing||(a="error"),y(t,0,n))}function z(t,e,n){return"string"==t?N:"word"==t&&c.allowUnquoted?(a="string",y):(a="error",y(t,0,n))}function N(t,e,n){return"string"==t?N:y(t,0,n)}return{startState:function(){return{tokenize:s,state:x,indented:0,tagName:null,tagStart:null,context:null}},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;d=null;var n=e.tokenize(t,e);return(n||d)&&"comment"!=n&&(a=null,e.state=e.state(d||n,t,e),a&&(n="error"==a?n+" error":a)),n},indent:function(t,e,n){var r=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+i;if(r&&r.noIndent)return T.Pass;if(t.tokenize!=m&&t.tokenize!=s)return n?n.match(/^(\s*)/)[0].length:0;if(t.tagName)return u?t.tagStart+t.tagName.length+2:t.tagStart+i*l;if(f&&/<!\[CDATA\[/.test(e))return 0;var o=e&&/^<(\/)?([\w_:\.-]*)/.exec(e);if(o&&o[1])for(;r;){if(r.tagName==o[2]){r=r.prev;break}if(!c.implicitlyClosed.hasOwnProperty(r.tagName))break;r=r.prev}else if(o)for(;r;){var a=c.contextGrabbers[r.tagName];if(!a||!a.hasOwnProperty(o[2]))break;r=r.prev}for(;r&&!r.startOfLine;)r=r.prev;return r?r.indent+i:0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:e.htmlMode?"html":"xml",helperType:e.htmlMode?"html":"xml"}}),T.defineMIME("text/xml","xml"),T.defineMIME("application/xml","xml"),T.mimeModes.hasOwnProperty("text/html")||T.defineMIME("text/html",{name:"xml",htmlMode:!0})});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],t):t(CodeMirror)}(function(u){"use strict";u.defineMode("htmlmixed",function(t,e){var r=u.getMode(t,{name:"xml",htmlMode:!0,multilineTagIndentFactor:e.multilineTagIndentFactor,multilineTagIndentPastTag:e.multilineTagIndentPastTag}),s=u.getMode(t,"css"),i=[],a=e&&e.scriptTypes;if(i.push({matches:/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,mode:u.getMode(t,"javascript")}),a)for(var o=0;o<a.length;++o){var l=a[o];i.push({matches:l.matches,mode:l.mode&&u.getMode(t,l.mode)})}function n(t,e){var a=e.htmlState.tagName;a&&(a=a.toLowerCase());var o=r.token(t,e.htmlState);if("script"==a&&/\btag\b/.test(o)&&">"==t.current()){var l=t.string.slice(Math.max(0,t.pos-100),t.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i);(l=l?l[1]:"")&&/[\"\']/.test(l.charAt(0))&&(l=l.slice(1,l.length-1));for(var n=0;n<i.length;++n){var c=i[n];if("string"==typeof c.matches?l==c.matches:c.matches.test(l)){c.mode&&(e.token=m,e.localMode=c.mode,e.localState=c.mode.startState&&c.mode.startState(r.indent(e.htmlState,"")));break}}}else"style"==a&&/\btag\b/.test(o)&&">"==t.current()&&(e.token=d,e.localMode=s,e.localState=s.startState(r.indent(e.htmlState,"")));return o}function c(t,e,a){var o=t.current(),l=o.search(e);return-1<l?t.backUp(o.length-l):o.match(/<\/?$/)&&(t.backUp(o.length),t.match(e,!1)||t.match(o)),a}function m(t,e){return t.match(/^<\/\s*script\s*>/i,!1)?(e.token=n,e.localState=e.localMode=null,null):c(t,/<\/\s*script\s*>/,e.localMode.token(t,e.localState))}function d(t,e){return t.match(/^<\/\s*style\s*>/i,!1)?(e.token=n,e.localState=e.localMode=null,null):c(t,/<\/\s*style\s*>/,s.token(t,e.localState))}return i.push({matches:/./,mode:u.getMode(t,"text/plain")}),{startState:function(){return{token:n,localMode:null,localState:null,htmlState:r.startState()}},copyState:function(t){if(t.localState)var e=u.copyState(t.localMode,t.localState);return{token:t.token,localMode:t.localMode,localState:e,htmlState:u.copyState(r,t.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(t,e){return!t.localMode||/^\s*<\//.test(e)?r.indent(t.htmlState,e):t.localMode.indent?t.localMode.indent(t.localState,e):u.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||r}}}},"xml","javascript","css"),u.defineMIME("text/html","htmlmixed")});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(Ve){"use strict";Ve.defineMode("javascript",function(e,f){var n,a,s=e.indentUnit,d=f.statementIndent,o=f.jsonld,c=f.json||o,p=f.typescript,l=f.wordCharacters||/[\w$\xa1-\uffff]/,u=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),a=e("operator"),i={type:"atom",style:"atom"},o={if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:n,break:n,continue:n,new:n,delete:n,throw:n,debugger:n,var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:a,typeof:a,instanceof:a,true:i,false:i,null:i,undefined:i,NaN:i,Infinity:i,this:e("this"),module:e("module"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n};if(p){var c={type:"variable",style:"variable-3"},l={interface:e("interface"),extends:e("extends"),constructor:e("constructor"),public:e("public"),private:e("private"),protected:e("protected"),static:e("static"),string:c,number:c,bool:c,any:c};for(var u in l)o[u]=l[u]}return o}(),v=/[+\-*&%=<>!?|~^]/,m=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function y(e,t,r){return n=e,a=r,t}function k(e,t){var a,r=e.next();if('"'==r||"'"==r)return t.tokenize=(a=r,function(e,t){var r,n=!1;if(o&&"@"==e.peek()&&e.match(m))return t.tokenize=k,y("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=a||n);)n=!n&&"\\"==r;return n||(t.tokenize=k),y("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return y("number","number");if("."==r&&e.match(".."))return y("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return y(r);if("="==r&&e.eat(">"))return y("=>","operator");if("0"==r&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),y("number","number");if(/\d/.test(r))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),y("number","number");if("/"==r)return e.eat("*")?(t.tokenize=b)(e,t):e.eat("/")?(e.skipToEnd(),y("comment","comment")):"operator"==t.lastType||"keyword c"==t.lastType||"sof"==t.lastType||/^[\[{}\(,;:]$/.test(t.lastType)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),y("regexp","string-2")):(e.eatWhile(v),y("operator","operator",e.current()));if("`"==r)return(t.tokenize=x)(e,t);if("#"==r)return e.skipToEnd(),y("error","error");if(v.test(r))return e.eatWhile(v),y("operator","operator",e.current());if(l.test(r)){e.eatWhile(l);var n=e.current(),i=u.propertyIsEnumerable(n)&&u[n];return i&&"."!=t.lastType?y(i.type,i.style,n):y("variable","variable",n)}}function b(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=k;break}n="*"==r}return y("comment","comment")}function x(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=k;break}n=!n&&"\\"==r}return y("quasi","string-2",e.current())}var h="([{}])";function i(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){for(var n=0,a=!1,i=r-1;0<=i;--i){var o=e.string.charAt(i),c=h.indexOf(o);if(0<=c&&c<3){if(!n){++i;break}if(0==--n)break}else if(3<=c&&c<6)++n;else if(l.test(o))a=!0;else{if(/["'\/]/.test(o))return;if(a&&!n){++i;break}}}a&&!n&&(t.fatArrowAt=i)}}var g={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0};function w(e,t,r,n,a,i){this.indented=e,this.column=t,this.type=r,this.prev=a,this.info=i,null!=n&&(this.align=n)}function j(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}var M={state:null,column:null,marked:null,cc:null};function V(){for(var e=arguments.length-1;0<=e;e--)M.cc.push(arguments[e])}function E(){return V.apply(null,arguments),!0}function r(r){function e(e){for(var t=e;t;t=t.next)if(t.name==r)return!0;return!1}var t=M.state;if(t.context){if(M.marked="def",e(t.localVars))return;t.localVars={name:r,next:t.localVars}}else{if(e(t.globalVars))return;f.globalVars&&(t.globalVars={name:r,next:t.globalVars})}}var t={name:"this",next:{name:"arguments"}};function I(){M.state.context={prev:M.state.context,vars:M.state.localVars},M.state.localVars=t}function z(){M.state.localVars=M.state.context.vars,M.state.context=M.state.context.prev}function T(n,a){var e=function(){var e=M.state,t=e.indented;if("stat"==e.lexical.type)t=e.lexical.indented;else for(var r=e.lexical;r&&")"==r.type&&r.align;r=r.prev)t=r.indented;e.lexical=new w(t,M.stream.column(),n,null,e.lexical,a)};return e.lex=!0,e}function A(){var e=M.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function C(r){return function e(t){return t==r?E():";"==r?V():E(e)}}function $(e,t){return"var"==e?E(T("vardef",t.length),ee,C(";"),A):"keyword a"==e?E(T("form"),q,$,A):"keyword b"==e?E(T("form"),$,A):"{"==e?E(T("}"),Y,A):";"==e?E():"if"==e?("else"==M.state.lexical.info&&M.state.cc[M.state.cc.length-1]==A&&M.state.cc.pop()(),E(T("form"),q,$,A,ie)):"function"==e?E(se):"for"==e?E(T("form"),oe,$,A):"variable"==e?E(T("stat"),G):"switch"==e?E(T("form"),q,T("}","switch"),C("{"),Y,A,A):"case"==e?E(q,C(":")):"default"==e?E(C(":")):"catch"==e?E(T("form"),I,C("("),de,C(")"),$,A,z):"module"==e?E(T("form"),I,ke,z,A):"class"==e?E(T("form"),pe,A):"export"==e?E(T("form"),be,A):"import"==e?E(T("form"),xe,A):V(T("stat"),q,C(";"),A)}function q(e){return P(e,!1)}function O(e){return P(e,!0)}function P(e,t){if(M.state.fatArrowAt==M.stream.start){var r=t?F:D;if("("==e)return E(I,T(")"),R(te,")"),A,C("=>"),r,z);if("variable"==e)return V(I,te,C("=>"),r,z)}var n=t?B:N;return g.hasOwnProperty(e)?E(n):"function"==e?E(se,n):"keyword c"==e?E(t?W:S):"("==e?E(T(")"),S,Me,C(")"),A,n):"operator"==e||"spread"==e?E(t?O:q):"["==e?E(T("]"),we,A,n):"{"==e?X(K,"}",null,n):"quasi"==e?V(H,n):E()}function S(e){return e.match(/[;\}\)\],]/)?V():V(q)}function W(e){return e.match(/[;\}\)\],]/)?V():V(O)}function N(e,t){return","==e?E(q):B(e,t,!1)}function B(e,t,r){var n=0==r?N:B,a=0==r?q:O;return"=>"==e?E(I,r?F:D,z):"operator"==e?/\+\+|--/.test(t)?E(n):"?"==t?E(q,C(":"),a):E(a):"quasi"==e?V(H,n):";"!=e?"("==e?X(O,")","call",n):"."==e?E(J,n):"["==e?E(T("]"),S,C("]"),A,n):void 0:void 0}function H(e,t){return"quasi"!=e?V():"${"!=t.slice(t.length-2)?E(H):E(q,U)}function U(e){if("}"==e)return M.marked="string-2",M.state.tokenize=x,E(H)}function D(e){return i(M.stream,M.state),V("{"==e?$:q)}function F(e){return i(M.stream,M.state),V("{"==e?$:O)}function G(e){return":"==e?E(A,$):V(N,C(";"),A)}function J(e){if("variable"==e)return M.marked="property",E()}function K(e,t){return"variable"==e||"keyword"==M.style?(M.marked="property",E("get"==t||"set"==t?L:Q)):"number"==e||"string"==e?(M.marked=o?"property":M.style+" property",E(Q)):"jsonld-keyword"==e?E(Q):"["==e?E(q,C("]"),Q):void 0}function L(e){return"variable"!=e?V(Q):(M.marked="property",E(se))}function Q(e){return":"==e?E(O):"("==e?V(se):void 0}function R(r,n){function a(e){if(","!=e)return e==n?E():E(C(n));var t=M.state.lexical;return"call"==t.info&&(t.pos=(t.pos||0)+1),E(r,a)}return function(e){return e==n?E():V(r,a)}}function X(e,t,r){for(var n=3;n<arguments.length;n++)M.cc.push(arguments[n]);return E(T(t,r),R(e,t),A)}function Y(e){return"}"==e?E():V($,Y)}function Z(e){if(p&&":"==e)return E(_)}function _(e){if("variable"==e)return M.marked="variable-3",E()}function ee(){return V(te,Z,ne,ae)}function te(e,t){return"variable"==e?(r(t),E()):"["==e?X(te,"]"):"{"==e?X(re,"}"):void 0}function re(e,t){return"variable"!=e||M.stream.match(/^\s*:/,!1)?("variable"==e&&(M.marked="property"),E(C(":"),te,ne)):(r(t),E(ne))}function ne(e,t){if("="==t)return E(O)}function ae(e){if(","==e)return E(ee)}function ie(e,t){if("keyword b"==e&&"else"==t)return E(T("form","else"),$,A)}function oe(e){if("("==e)return E(T(")"),ce,C(")"),A)}function ce(e){return"var"==e?E(ee,C(";"),ue):";"==e?E(ue):"variable"==e?E(le):V(q,C(";"),ue)}function le(e,t){return"in"==t||"of"==t?(M.marked="keyword",E(q)):E(N,ue)}function ue(e,t){return";"==e?E(fe):"in"==t||"of"==t?(M.marked="keyword",E(q)):V(q,C(";"),fe)}function fe(e){")"!=e&&E(q)}function se(e,t){return"*"==t?(M.marked="keyword",E(se)):"variable"==e?(r(t),E(se)):"("==e?E(I,T(")"),R(de,")"),A,$,z):void 0}function de(e){return"spread"==e?E(de):V(te,Z)}function pe(e,t){if("variable"==e)return r(t),E(ve)}function ve(e,t){return"extends"==t?E(q,ve):"{"==e?E(T("}"),me,A):void 0}function me(e,t){return"variable"==e||"keyword"==M.style?"static"==t?(M.marked="keyword",E(me)):(M.marked="property","get"==t||"set"==t?E(ye,se,me):E(se,me)):"*"==t?(M.marked="keyword",E(me)):";"==e?E(me):"}"==e?E():void 0}function ye(e){return"variable"!=e?V():(M.marked="property",E())}function ke(e,t){return"string"==e?E($):"variable"==e?(r(t),E(ge)):void 0}function be(e,t){return"*"==t?(M.marked="keyword",E(ge,C(";"))):"default"==t?(M.marked="keyword",E(q,C(";"))):V($)}function xe(e){return"string"==e?E():V(he,ge)}function he(e,t){return"{"==e?X(he,"}"):("variable"==e&&r(t),E())}function ge(e,t){if("from"==t)return M.marked="keyword",E(q)}function we(e){return"]"==e?E():V(O,je)}function je(e){return"for"==e?V(Me,C("]")):","==e?E(R(W,"]")):V(R(O,"]"))}function Me(e){return"for"==e?E(oe,Me):"if"==e?E(q,Me):void 0}return A.lex=!0,{startState:function(e){var t={tokenize:k,lastType:"sof",cc:[],lexical:new w((e||0)-s,0,"block",!1),localVars:f.localVars,context:f.localVars&&{vars:f.localVars},indented:0};return f.globalVars&&"object"==typeof f.globalVars&&(t.globalVars=f.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),i(e,t)),t.tokenize!=b&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==n?r:(t.lastType="operator"!=n||"++"!=a&&"--"!=a?n:"incdec",function(e,t,r,n,a){var i=e.cc;for(M.state=e,M.stream=a,M.marked=null,M.cc=i,M.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((i.length?i.pop():c?q:$)(r,n)){for(;i.length&&i[i.length-1].lex;)i.pop()();return M.marked?M.marked:"variable"==r&&j(e,n)?"variable-2":t}}(t,r,n,a,e))},indent:function(e,t){if(e.tokenize==b)return Ve.Pass;if(e.tokenize!=k)return 0;var r=t&&t.charAt(0),n=e.lexical;if(!/^\s*else\b/.test(t))for(var a=e.cc.length-1;0<=a;--a){var i=e.cc[a];if(i==A)n=n.prev;else if(i!=ie)break}"stat"==n.type&&"}"==r&&(n=n.prev),d&&")"==n.type&&"stat"==n.prev.type&&(n=n.prev);var o,c,l=n.type,u=r==l;return"vardef"==l?n.indented+("operator"==e.lastType||","==e.lastType?n.info+1:0):"form"==l&&"{"==r?n.indented:"form"==l?n.indented+s:"stat"==l?n.indented+(c=t,"operator"==(o=e).lastType||","==o.lastType||v.test(c.charAt(0))||/[,.]/.test(c.charAt(0))?d||s:0):"switch"!=n.info||u||0==f.doubleIndentSwitch?n.align?n.column+(u?0:1):n.indented+(u?0:s):n.indented+(/^(?:case|default)\b/.test(t)?s:2*s)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:c?null:"/*",blockCommentEnd:c?null:"*/",lineComment:c?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:c?"json":"javascript",jsonldMode:o,jsonMode:c}}),Ve.registerHelper("wordChars","javascript",/[\w$]/),Ve.defineMIME("text/javascript","javascript"),Ve.defineMIME("text/ecmascript","javascript"),Ve.defineMIME("application/javascript","javascript"),Ve.defineMIME("application/x-javascript","javascript"),Ve.defineMIME("application/ecmascript","javascript"),Ve.defineMIME("application/json",{name:"javascript",json:!0}),Ve.defineMIME("application/x-json",{name:"javascript",json:!0}),Ve.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),Ve.defineMIME("text/typescript",{name:"javascript",typescript:!0}),Ve.defineMIME("application/typescript",{name:"javascript",typescript:!0})});
!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../xml/xml"),require("../meta")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../meta"],t):t(CodeMirror)}(function(P){"use strict";P.defineMode("markdown",function(o,x){var n=P.modes.hasOwnProperty("xml"),S=P.getMode(o,n?{name:"xml",htmlMode:!0}:"text/plain");void 0===x.highlightFormatting&&(x.highlightFormatting=!1),void 0===x.maxBlockquoteDepth&&(x.maxBlockquoteDepth=0),void 0===x.underscoresBreakWords&&(x.underscoresBreakWords=!0),void 0===x.fencedCodeBlocks&&(x.fencedCodeBlocks=!1),void 0===x.taskLists&&(x.taskLists=!1),void 0===x.strikethrough&&(x.strikethrough=!1);var L=0,r="header",l="comment",a="quote",h="variable-2",g="variable-3",s="keyword",f="hr",F="tag",u="formatting",b="link",q="link",m="link",M="string",c="em",d="strong",k="strikethrough",p=/^([*\-=_])(?:\s*\1){2,}\s*$/,v=/^[*\-+]\s+/,w=/^[0-9]+\.\s+/,C=/^\[(x| )\](?=\s)/,D=/^#+/,H=/^(?:\={1,}|-{1,})$/,i=/^[^#!\[\]*_\\<>` "'(~]+/;function T(t,e,i){return e.f=e.inline=i,i(t,e)}function B(t){return t.linkTitle=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,n||t.f!=_||(t.f=j,t.block=y),t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.thisLineHasContent=!1,null}function y(t,e){var i=t.sol(),n=!1!==e.list;!1!==e.list&&0<=e.indentationDiff?(e.indentationDiff<4&&(e.indentation-=e.indentationDiff),e.list=null):!1!==e.list&&0<e.indentation?(e.list=null,e.listDepth=Math.floor(e.indentation/4)):!1!==e.list&&(e.list=!1,e.listDepth=0);var r=null;if(4<=e.indentationDiff)return e.indentation-=4,t.skipToEnd(),l;if(t.eatSpace())return null;if(r=t.match(D))return e.header=r[0].length<=6?r[0].length:6,x.highlightFormatting&&(e.formatting="header"),e.f=e.inline,O(e);if(e.prevLineHasContent&&(r=t.match(H)))return e.header="="==r[0].charAt(0)?1:2,x.highlightFormatting&&(e.formatting="header"),e.f=e.inline,O(e);if(t.eat(">"))return e.indentation++,e.quote=i?1:e.quote+1,x.highlightFormatting&&(e.formatting="quote"),t.eatSpace(),O(e);if("["===t.peek())return T(t,e,U);if(t.match(p,!0))return f;if(e.prevLineHasContent&&!n||!t.match(v,!1)&&!t.match(w,!1))return x.fencedCodeBlocks&&t.match(/^```[ \t]*([\w+#]*)/,!0)?(e.localMode=function(t){if(P.findModeByName){var e=P.findModeByName(t);e&&(t=e.mime||e.mimes[0])}var i=P.getMode(o,t);return"null"==i.name?null:i}(RegExp.$1),e.localMode&&(e.localState=e.localMode.startState()),e.f=e.block=$,x.highlightFormatting&&(e.formatting="code-block"),e.code=!0,O(e)):T(t,e,e.inline);var a=null;return a=t.match(v,!0)?"ul":(t.match(w,!0),"ol"),e.indentation+=4,e.list=!0,e.listDepth++,x.taskLists&&t.match(C,!1)&&(e.taskList=!0),e.f=e.inline,x.highlightFormatting&&(e.formatting=["list","list-"+a]),O(e)}function _(t,e){var i=S.token(t,e.htmlState);return(n&&null===e.htmlState.tagStart&&!e.htmlState.context||e.md_inside&&-1<t.current().indexOf(">"))&&(e.f=j,e.block=y,e.htmlState=null),i}function $(t,e){return t.sol()&&t.match("```",!1)?(e.localMode=e.localState=null,e.f=e.block=N,null):e.localMode?e.localMode.token(t,e.localState):(t.skipToEnd(),l)}function N(t,e){t.match("```"),e.block=y,e.f=j,x.highlightFormatting&&(e.formatting="code-block"),e.code=!0;var i=O(e);return e.code=!1,i}function O(t){var e=[];if(t.formatting){e.push(u),"string"==typeof t.formatting&&(t.formatting=[t.formatting]);for(var i=0;i<t.formatting.length;i++)e.push(u+"-"+t.formatting[i]),"header"===t.formatting[i]&&e.push(u+"-"+t.formatting[i]+"-"+t.header),"quote"===t.formatting[i]&&(!x.maxBlockquoteDepth||x.maxBlockquoteDepth>=t.quote?e.push(u+"-"+t.formatting[i]+"-"+t.quote):e.push("error"))}if(t.taskOpen)return e.push("meta"),e.length?e.join(" "):null;if(t.taskClosed)return e.push("property"),e.length?e.join(" "):null;if(t.linkHref)return e.push(M),e.length?e.join(" "):null;if(t.strong&&e.push(d),t.em&&e.push(c),t.strikethrough&&e.push(k),t.linkText&&e.push(m),t.code&&e.push(l),t.header&&(e.push(r),e.push(r+"-"+t.header)),t.quote&&(e.push(a),!x.maxBlockquoteDepth||x.maxBlockquoteDepth>=t.quote?e.push(a+"-"+t.quote):e.push(a+"-"+x.maxBlockquoteDepth)),!1!==t.list){var n=(t.listDepth-1)%3;n?1===n?e.push(g):e.push(s):e.push(h)}return t.trailingSpaceNewLine?e.push("trailing-space-new-line"):t.trailingSpace&&e.push("trailing-space-"+(t.trailingSpace%2?"a":"b")),e.length?e.join(" "):null}function t(t,e){if(t.match(i,!0))return O(e)}function j(t,e){var i=e.text(t,e);if(void 0!==i)return i;if(e.list)return e.list=null,O(e);if(e.taskList)return"x"!==t.match(C,!0)[1]?e.taskOpen=!0:e.taskClosed=!0,x.highlightFormatting&&(e.formatting="task"),e.taskList=!1,O(e);if(e.taskOpen=!1,e.taskClosed=!1,e.header&&t.match(/^#+$/,!0))return x.highlightFormatting&&(e.formatting="header"),O(e);var n,r,a,o=t.sol(),l=t.next();if("\\"===l&&(t.next(),x.highlightFormatting))return(c=O(e))?c+" formatting-escape":"formatting-escape";if(e.linkTitle){e.linkTitle=!1;var h=l;"("===l&&(h=")");var g="^\\s*(?:[^"+(h=(h+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1"))+"\\\\]+|\\\\\\\\|\\\\.)"+h;if(t.match(new RegExp(g),!0))return M}if("`"===l){var s=e.formatting;x.highlightFormatting&&(e.formatting="code");var f=O(e),u=t.pos;t.eatWhile("`");var m=1+t.pos-u;return e.code?m===L?(e.code=!1,f):(e.formatting=s,O(e)):(L=m,e.code=!0,O(e))}if(e.code)return O(e);if("!"===l&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return t.match(/\[[^\]]*\]/),e.inline=e.f=W,F;if("["===l&&t.match(/.*\](\(.*\)| ?\[.*\])/,!1))return e.linkText=!0,x.highlightFormatting&&(e.formatting="link"),O(e);if("]"===l&&e.linkText&&t.match(/\(.*\)| ?\[.*\]/,!1)){x.highlightFormatting&&(e.formatting="link");var c=O(e);return e.linkText=!1,e.inline=e.f=W,c}if("<"===l&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1))return e.f=e.inline=E,x.highlightFormatting&&(e.formatting="link"),(c=O(e))?c+=" ":c="",c+b;if("<"===l&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1))return e.f=e.inline=E,x.highlightFormatting&&(e.formatting="link"),(c=O(e))?c+=" ":c="",c+q;if("<"===l&&t.match(/^\w/,!1)){if(-1!=t.string.indexOf(">")){var d=t.string.substring(1,t.string.indexOf(">"));/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(d)&&(e.md_inside=!0)}return t.backUp(1),e.htmlState=P.startState(S),n=t,a=_,(r=e).f=r.block=a,a(n,r)}if("<"===l&&t.match(/^\/\w*?>/))return e.md_inside=!1,"tag";var k=!1;if(!x.underscoresBreakWords&&"_"===l&&"_"!==t.peek()&&t.match(/(\w)/,!1)){var p=t.pos-2;if(0<=p){var v=t.string.charAt(p);"_"!==v&&v.match(/(\w)/,!1)&&(k=!0)}}if("*"===l||"_"===l&&!k)if(o&&" "===t.peek());else{if(e.strong===l&&t.eat(l)){x.highlightFormatting&&(e.formatting="strong");f=O(e);return e.strong=!1,f}if(!e.strong&&t.eat(l))return e.strong=l,x.highlightFormatting&&(e.formatting="strong"),O(e);if(e.em===l){x.highlightFormatting&&(e.formatting="em");f=O(e);return e.em=!1,f}if(!e.em)return e.em=l,x.highlightFormatting&&(e.formatting="em"),O(e)}else if(" "===l&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return O(e);t.backUp(1)}if(x.strikethrough)if("~"===l&&t.eatWhile(l)){if(e.strikethrough){x.highlightFormatting&&(e.formatting="strikethrough");f=O(e);return e.strikethrough=!1,f}if(t.match(/^[^\s]/,!1))return e.strikethrough=!0,x.highlightFormatting&&(e.formatting="strikethrough"),O(e)}else if(" "===l&&t.match(/^~~/,!0)){if(" "===t.peek())return O(e);t.backUp(2)}return" "===l&&(t.match(/ +$/,!1)?e.trailingSpace++:e.trailingSpace&&(e.trailingSpaceNewLine=!0)),O(e)}function E(t,e){if(">"!==t.next())return t.match(/^[^>]+/,!0),b;e.f=e.inline=j,x.highlightFormatting&&(e.formatting="link");var i=O(e);return i?i+=" ":i="",i+b}function W(t,e){if(t.eatSpace())return null;var a,i=t.next();return"("===i||"["===i?(e.f=e.inline=(a="("===i?")":"]",function(t,e){var i,n=t.next();if(n!==a)return t.match((I[i=a]||(i=(i+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1"),I[i]=new RegExp("^(?:[^\\\\]|\\\\.)*?("+i+")")),I[i]),!0)&&t.backUp(1),e.linkHref=!0,O(e);e.f=e.inline=j,x.highlightFormatting&&(e.formatting="link-string");var r=O(e);return e.linkHref=!1,r}),x.highlightFormatting&&(e.formatting="link-string"),e.linkHref=!0,O(e)):"error"}function U(t,e){return t.match(/^[^\]]*\]:/,!1)?(e.f=R,t.next(),x.highlightFormatting&&(e.formatting="link"),e.linkText=!0,O(e)):T(t,e,j)}function R(t,e){if(t.match(/^\]:/,!0)){e.f=e.inline=A,x.highlightFormatting&&(e.formatting="link");var i=O(e);return e.linkText=!1,i}return t.match(/^[^\]]+/,!0),m}function A(t,e){return t.eatSpace()?null:(t.match(/^[^\s]+/,!0),void 0===t.peek()?e.linkTitle=!0:t.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/,!0),e.f=e.inline=j,M)}var I=[];var e={startState:function(){return{f:y,prevLineHasContent:!1,thisLineHasContent:!1,block:y,htmlState:null,indentation:0,inline:j,text:t,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,em:!1,strong:!1,header:0,taskList:!1,list:!1,listDepth:0,quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1}},copyState:function(t){return{f:t.f,prevLineHasContent:t.prevLineHasContent,thisLineHasContent:t.thisLineHasContent,block:t.block,htmlState:t.htmlState&&P.copyState(S,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?P.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkTitle:t.linkTitle,em:t.em,strong:t.strong,strikethrough:t.strikethrough,header:t.header,taskList:t.taskList,list:t.list,listDepth:t.listDepth,quote:t.quote,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside}},token:function(t,e){if(e.formatting=!1,t.sol()){var i=!!e.header;if(e.header=0,t.match(/^\s*$/,!0)||i)return e.prevLineHasContent=!1,B(e),i?this.token(t,e):null;e.prevLineHasContent=e.thisLineHasContent,e.thisLineHasContent=!0,e.taskList=!1,e.code=!1,e.trailingSpace=0,e.trailingSpaceNewLine=!1,e.f=e.block;var n=t.match(/^\s*/,!0)[0].replace(/\t/g," ").length,r=4*Math.floor((n-e.indentation)/4);4<r&&(r=4);var a=e.indentation+r;if(e.indentationDiff=a-e.indentation,e.indentation=a,0<n)return null}return e.f(t,e)},innerMode:function(t){return t.block==_?{state:t.htmlState,mode:S}:t.localState?{state:t.localState,mode:t.localMode}:{state:t,mode:e}},blankLine:B,getType:O,fold:"markdown"};return e},"xml"),P.defineMIME("text/x-markdown","markdown")});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(P){"use strict";function e(e){for(var t={},r=0;r<e.length;++r)t[e[r]]=!0;return t}P.defineMode("css",function(e,t){t.propertyKeywords||(t=P.resolveMode("text/css"));var o,a,i=e.indentUnit,n=t.tokenHooks,l=t.documentTypes||{},s=t.mediaTypes||{},c=t.mediaFeatures||{},d=t.propertyKeywords||{},u=t.nonStandardPropertyKeywords||{},p=t.fontProperties||{},m=t.counterDescriptors||{},r=t.colorKeywords||{},h=t.valueKeywords||{},g=t.allowNested;function b(e,t){return o=t,e}function f(a){return function(e,t){for(var r,o=!1;null!=(r=e.next());){if(r==a&&!o){")"==a&&e.backUp(1);break}o=!o&&"\\"==r}return(r==a||!o&&")"!=a)&&(t.tokenize=null),b("string","string")}}function k(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=f(")"),b(null,"(")}function y(e,t,r){this.type=e,this.indent=t,this.prev=r}function w(e,t,r){return e.context=new y(r,t.indentation()+i,e.context),r}function v(e){return e.context=e.context.prev,e.context.type}function x(e,t,r){return j[r.context.type](e,t,r)}function z(e,t,r,o){for(var a=o||1;0<a;a--)r.context=r.context.prev;return x(e,t,r)}function q(e){var t=e.current().toLowerCase();a=h.hasOwnProperty(t)?"atom":r.hasOwnProperty(t)?"keyword":"variable"}var j={top:function(e,t,r){if("{"==e)return w(r,t,"block");if("}"==e&&r.context.prev)return v(r);if(/@(media|supports|(-moz-)?document)/.test(e))return w(r,t,"atBlock");if(/@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return w(r,t,"at");if("hash"==e)a="builtin";else if("word"==e)a="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return w(r,t,"interpolation");if(":"==e)return"pseudo";if(g&&"("==e)return w(r,t,"parens")}return r.context.type},block:function(e,t,r){if("word"!=e)return"meta"==e?"block":g||"hash"!=e&&"qualifier"!=e?j.top(e,t,r):(a="error","block");var o=t.current().toLowerCase();return d.hasOwnProperty(o)?(a="property","maybeprop"):u.hasOwnProperty(o)?(a="string-2","maybeprop"):g?(a=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(a+=" error","maybeprop")},maybeprop:function(e,t,r){return":"==e?w(r,t,"prop"):x(e,t,r)},prop:function(e,t,r){if(";"==e)return v(r);if("{"==e&&g)return w(r,t,"propBlock");if("}"==e||"{"==e)return z(e,t,r);if("("==e)return w(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t.current())){if("word"==e)q(t);else if("interpolation"==e)return w(r,t,"interpolation")}else a+=" error";return"prop"},propBlock:function(e,t,r){return"}"==e?v(r):"word"==e?(a="property","maybeprop"):r.context.type},parens:function(e,t,r){return"{"==e||"}"==e?z(e,t,r):")"==e?v(r):"("==e?w(r,t,"parens"):"interpolation"==e?w(r,t,"interpolation"):("word"==e&&q(t),"parens")},pseudo:function(e,t,r){return"word"==e?(a="variable-3",r.context.type):x(e,t,r)},atBlock:function(e,t,r){if("("==e)return w(r,t,"atBlock_parens");if("}"==e)return z(e,t,r);if("{"==e)return v(r)&&w(r,t,g?"block":"top");if("word"==e){var o=t.current().toLowerCase();a="only"==o||"not"==o||"and"==o||"or"==o?"keyword":l.hasOwnProperty(o)?"tag":s.hasOwnProperty(o)?"attribute":c.hasOwnProperty(o)?"property":d.hasOwnProperty(o)?"property":u.hasOwnProperty(o)?"string-2":h.hasOwnProperty(o)?"atom":"error"}return r.context.type},atBlock_parens:function(e,t,r){return")"==e?v(r):"{"==e||"}"==e?z(e,t,r,2):j.atBlock(e,t,r)},restricted_atBlock_before:function(e,t,r){return"{"==e?w(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(a="variable","restricted_atBlock_before"):x(e,t,r)},restricted_atBlock:function(e,t,r){return"}"==e?(r.stateArg=null,v(r)):"word"==e?(a="@font-face"==r.stateArg&&!p.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!m.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,r){return"word"==e?(a="variable","keyframes"):"{"==e?w(r,t,"top"):x(e,t,r)},at:function(e,t,r){return";"==e?v(r):"{"==e||"}"==e?z(e,t,r):("word"==e?a="tag":"hash"==e&&(a="builtin"),"at")},interpolation:function(e,t,r){return"}"==e?v(r):"{"==e||";"==e?z(e,t,r):("variable"!=e&&(a="error"),"interpolation")}};return{startState:function(e){return{tokenize:null,state:"top",stateArg:null,context:new y("top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||function(e,t){var r=e.next();if(n[r]){var o=n[r](e,t);if(!1!==o)return o}return"@"==r?(e.eatWhile(/[\w\\\-]/),b("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?b(null,"compare"):'"'==r||"'"==r?(t.tokenize=f(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),b("atom","hash")):"!"==r?(e.match(/^\s*\w*/),b("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),b("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?b(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?b("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?b(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=k,b("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),b("property","word")):b(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),b("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?b("variable-2","variable-definition"):b("variable-2","variable")):e.match(/^\w+-/)?b("meta","meta"):void 0})(e,t);return r&&"object"==typeof r&&(o=r[1],r=r[0]),a=r,t.state=j[t.state](o,e,t),a},indent:function(e,t){var r=e.context,o=t&&t.charAt(0),a=r.indent;return"prop"!=r.type||"}"!=o&&")"!=o||(r=r.prev),!r.prev||("}"!=o||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type)&&(")"!=o||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=o||"at"!=r.type&&"atBlock"!=r.type)||(a=r.indent-i,r=r.prev),a},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace"}});var t=["domain","regexp","url","url-prefix"],r=e(t),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=e(o),i=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"],n=e(i),l=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],s=e(l),c=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],d=e(c),u=e(["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),p=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),m=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],h=e(m),g=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small"],b=e(g),f=t.concat(o).concat(i).concat(l).concat(c).concat(m).concat(g);function k(e,t){for(var r,o=!1;null!=(r=e.next());){if(o&&"/"==r){t.tokenize=null;break}o="*"==r}return["comment","comment"]}function y(e,t){return e.skipTo("--\x3e")?(e.match("--\x3e"),t.tokenize=null):e.skipToEnd(),["comment","comment"]}P.registerHelper("hintWords","css",f),P.defineMIME("text/css",{documentTypes:r,mediaTypes:a,mediaFeatures:n,propertyKeywords:s,nonStandardPropertyKeywords:d,fontProperties:u,counterDescriptors:p,colorKeywords:h,valueKeywords:b,tokenHooks:{"<":function(e,t){return!!e.match("!--")&&(t.tokenize=y)(e,t)},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=k)(e,t)}},name:"css"}),P.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:n,propertyKeywords:s,nonStandardPropertyKeywords:d,colorKeywords:h,valueKeywords:b,fontProperties:u,allowNested:!0,tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=k)(e,t):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/)&&[null,"{"]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),P.defineMIME("text/x-less",{mediaTypes:a,mediaFeatures:n,propertyKeywords:s,nonStandardPropertyKeywords:d,colorKeywords:h,valueKeywords:b,fontProperties:u,allowNested:!0,tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=k)(e,t):["operator","operator"]},"@":function(e){return!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"})});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("shell",function(){var o={};function e(e,t){for(var n=t.split(" "),r=0;r<n.length;r++)o[n[r]]=e}function s(o){return function(e,t){for(var n,r=!1,i=!1;null!=(n=e.next());){if(n===o&&!i){r=!0;break}if("$"===n&&!i&&"'"!==o){i=!0,e.backUp(1),t.tokens.unshift(u);break}i=!i&&"\\"===n}return!r&&i||t.tokens.shift(),"`"===o||")"===o?"quote":"string"}}e("atom","true false"),e("keyword","if then do else elif while until for in esac fi fin fil done exit set unset export function"),e("builtin","ab awk bash beep cat cc cd chown chmod chroot clear cp curl cut diff echo find gawk gcc get git grep kill killall ln ls make mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh shopt shred source sort sleep ssh start stop su sudo tee telnet top touch vi vim wall wc wget who write yes zsh");var u=function(e,t){1<t.tokens.length&&e.eat("$");var n=e.next(),r=/\w/;return"{"===n&&(r=/[^}]/),"("===n?(t.tokens[0]=s(")"),f(e,t)):(/\d/.test(n)||(e.eatWhile(r),e.eat("}")),t.tokens.shift(),"def")};function f(e,t){return(t.tokens[0]||function(e,t){if(e.eatSpace())return null;var n=e.sol(),r=e.next();if("\\"===r)return e.next(),null;if("'"===r||'"'===r||"`"===r)return t.tokens.unshift(s(r)),f(e,t);if("#"===r)return n&&e.eat("!")?(e.skipToEnd(),"meta"):(e.skipToEnd(),"comment");if("$"===r)return t.tokens.unshift(u),f(e,t);if("+"===r||"="===r)return"operator";if("-"===r)return e.eat("-"),e.eatWhile(/\w/),"attribute";if(/\d/.test(r)&&(e.eatWhile(/\d/),e.eol()||!/\w/.test(e.peek())))return"number";e.eatWhile(/[\w-]/);var i=e.current();return"="===e.peek()&&/\w+/.test(i)?"def":o.hasOwnProperty(i)?o[i]:null})(e,t)}return{startState:function(){return{tokens:[]}},token:function(e,t){return f(e,t)},lineComment:"#",fold:"brace"}}),e.defineMIME("text/x-sh","shell")});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(f){"use strict";f.defineMode("sql",function(n,e){var o=e.client||{},s=e.atoms||{false:!0,true:!0,null:!0},l=e.builtin||{},c=e.keywords||{},u=e.operatorChars||/^[*+\-%<>!=&|~^]/,d=e.support||{},m=e.hooks||{},p=e.dateSQL||{date:!0,time:!0,timestamp:!0};function b(e,t){var n,r=e.next();if(m[r]){var a=m[r](e,t);if(!1!==a)return a}if(1==d.hexNumber&&("0"==r&&e.match(/^[xX][0-9a-fA-F]+/)||("x"==r||"X"==r)&&e.match(/^'[0-9a-fA-F]+'/)))return"number";if(1==d.binaryNumber&&(("b"==r||"B"==r)&&e.match(/^'[01]+'/)||"0"==r&&e.match(/^b[01]+/)))return"number";if(47<r.charCodeAt(0)&&r.charCodeAt(0)<58)return e.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/),1==d.decimallessFloat&&e.eat("."),"number";if("?"==r&&(e.eatSpace()||e.eol()||e.eat(";")))return"variable-3";if("'"==r||'"'==r&&d.doubleQuote)return t.tokenize=(n=r,function(e,t){for(var r,a=!1;null!=(r=e.next());){if(r==n&&!a){t.tokenize=b;break}a=!a&&"\\"==r}return"string"}),t.tokenize(e,t);if((1==d.nCharCast&&("n"==r||"N"==r)||1==d.charsetCast&&"_"==r&&e.match(/[a-z][a-z0-9]*/i))&&("'"==e.peek()||'"'==e.peek()))return"keyword";if(/^[\(\),\;\[\]]/.test(r))return null;if(d.commentSlashSlash&&"/"==r&&e.eat("/"))return e.skipToEnd(),"comment";if(d.commentHash&&"#"==r||"-"==r&&e.eat("-")&&(!d.commentSpaceRequired||e.eat(" ")))return e.skipToEnd(),"comment";if("/"==r&&e.eat("*"))return t.tokenize=h,t.tokenize(e,t);if("."==r)return 1==d.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":1==d.ODBCdotTable&&e.match(/^[a-zA-Z_]+/)?"variable-2":void 0;if(u.test(r))return e.eatWhile(u),null;if("{"==r&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";e.eatWhile(/^[_\w\d]/);var i=e.current().toLowerCase();return p.hasOwnProperty(i)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/))?"number":s.hasOwnProperty(i)?"atom":l.hasOwnProperty(i)?"builtin":c.hasOwnProperty(i)?"keyword":o.hasOwnProperty(i)?"string-2":null}function h(e,t){for(;;){if(!e.skipTo("*")){e.skipToEnd();break}if(e.next(),e.eat("/")){t.tokenize=b;break}}return"comment"}function i(e,t,r){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:r}}return{startState:function(){return{tokenize:b,context:null}},token:function(e,t){if(e.sol()&&t.context&&null==t.context.align&&(t.context.align=!1),e.eatSpace())return null;var r=t.tokenize(e,t);if("comment"==r)return r;t.context&&null==t.context.align&&(t.context.align=!0);var a,n=e.current();return"("==n?i(e,t,")"):"["==n?i(e,t,"]"):t.context&&t.context.type==n&&((a=t).indent=a.context.indent,a.context=a.context.prev),r},indent:function(e,t){var r=e.context;if(!r)return f.Pass;var a=t.charAt(0)==r.type;return r.align?r.col+(a?0:1):r.indent+(a?0:n.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:d.commentSlashSlash?"//":d.commentHash?"#":null}}),function(){function e(e){for(var t;null!=(t=e.next());)if("`"==t&&!e.eat("`"))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null}function t(e){return e.eat("@")&&(e.match(/^session\./),e.match(/^local\./),e.match(/^global\./)),e.eat("'")?(e.match(/^.*'/),"variable-2"):e.eat('"')?(e.match(/^.*"/),"variable-2"):e.eat("`")?(e.match(/^.*`/),"variable-2"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function r(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"variable-2":null}var a="alter and as asc between by count create delete desc distinct drop from having in insert into is join like not on or order select set table union update values where ";function n(e){for(var t={},r=e.split(" "),a=0;a<r.length;++a)t[r[a]]=!0;return t}f.defineMIME("text/x-sql",{name:"sql",keywords:n(a+"begin"),builtin:n("bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric"),atoms:n("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:n("date time timestamp"),support:n("ODBCdotTable doubleQuote binaryNumber hexNumber")}),f.defineMIME("text/x-mssql",{name:"sql",client:n("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:n(a+"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered"),builtin:n("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "),atoms:n("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:n("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":t}}),f.defineMIME("text/x-mysql",{name:"sql",client:n("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:n(a+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:n("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:n("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:n("date time timestamp"),support:n("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":t,"`":e,"\\":r}}),f.defineMIME("text/x-mariadb",{name:"sql",client:n("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:n(a+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:n("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:n("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:n("date time timestamp"),support:n("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":t,"`":e,"\\":r}}),f.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:n("use select from using consistency where limit first reversed first and in insert into values using consistency ttl update set delete truncate begin batch apply create keyspace with columnfamily primary key index on drop alter type add any one quorum all local_quorum each_quorum"),builtin:n("ascii bigint blob boolean counter decimal double float int text timestamp uuid varchar varint"),atoms:n("false true"),operatorChars:/^[<>=]/,dateSQL:{},support:n("commentSlashSlash decimallessFloat"),hooks:{}}),f.defineMIME("text/x-plsql",{name:"sql",client:n("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:n("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:n("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*+\-%<>!=~]/,dateSQL:n("date time timestamp"),support:n("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),f.defineMIME("text/x-hive",{name:"sql",keywords:n("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with"),builtin:n("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype"),atoms:n("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:n("date timestamp"),support:n("ODBCdotTable doubleQuote binaryNumber hexNumber")})}()});
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/dialog/dialog"),require("../addon/edit/matchbrackets.js")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/dialog/dialog","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(_e){"use strict";var Ve=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"xi",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"dcc",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"a<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],Je=_e.Pos;_e.Vim=function(){function e(e,t){var r;this==_e.keyMap.vim&&_e.rmClass(e.getWrapperElement(),"cm-fat-cursor"),t&&t.attach==o||((r=e).setOption("disableInput",!1),r.off("cursorActivity",Ne),_e.off(r.getInputField(),"paste",n(r)),r.state.vim=null)}function o(e,t){var r;this==_e.keyMap.vim&&_e.addClass(e.getWrapperElement(),"cm-fat-cursor"),t&&t.attach==o||((r=e).setOption("disableInput",!0),r.setOption("showCursorWhenSelecting",!1),_e.signal(r,"vim-mode-change",{mode:"normal"}),r.on("cursorActivity",Ne),b(r),_e.on(r.getInputField(),"paste",n(r)))}function t(e,t){if(t){var r=function(e){if("'"==e.charAt(0))return e.charAt(1);var t=e.split("-");/-$/.test(e)&&t.splice(-2,2,"-");var r=t[t.length-1];if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&"Shift"==t[0]&&1==r.length)return!1;for(var o=!1,n=0;n<t.length;n++){var i=t[n];i in a?t[n]=a[i]:o=!0,i in s&&(t[n]=s[i])}return!!o&&(d(r)&&(t[t.length-1]=r.toLowerCase()),"<"+t.join("-")+">")}(e);if(!r)return!1;var o=_e.Vim.findKey(t,r);return"function"==typeof o&&_e.signal(t,"vim-keypress",r),o}}_e.defineOption("vimMode",!1,function(e,t,r){t&&"vim"!=e.getOption("keyMap")?e.setOption("keyMap","vim"):!t&&r!=_e.Init&&/^vim/.test(e.getOption("keyMap"))&&e.setOption("keyMap","default")});var a={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A"},s={Enter:"CR",Backspace:"BS",Delete:"Del"};function n(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(V(e.getCursor(),0,1)),W.enterInsertMode(e,{},t))}),t.onPasteFn}var m=/[\d]/,g=[_e.isWordChar,function(e){return e&&!_e.isWordChar(e)&&!/\s/.test(e)}],v=[function(e){return/\S/.test(e)}];function r(e,t){for(var r=[],o=e;o<e+t;o++)r.push(String.fromCharCode(o));return r}var i=r(65,26),l=r(97,26),c=r(48,10),u=[].concat(i,l,c,["<",">"]),h=[].concat(i,l,c,["-",'"',".",":","/"]);function y(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function p(e){return/^[a-z]$/.test(e)}function d(e){return/^[A-Z]$/.test(e)}function I(e){return/^\s*$/.test(e)}function k(e,t){for(var r=0;r<t.length;r++)if(t[r]==e)return!0;return!1}var f={};function C(e,t,r){if(void 0===t)throw Error("defaultValue is required");r||(r="string"),f[e]={type:r,defaultValue:t},w(e,t)}function w(e,t){var r=f[e];if(!r)throw Error("Unknown option: "+e);if("boolean"==r.type){if(t&&!0!==t)throw Error("Invalid argument: "+e+"="+t);!1!==t&&(t=!0)}r.value="boolean"==r.type?!!t:t}function x(e){var t=f[e];if(!t)throw Error("Unknown option: "+e);return t.value}var F,M,S=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};function A(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=S()}function b(e){return e.state.vim||(e.state.vim={inputState:new R,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{}}),e.state.vim}function L(){var a,s,l,c,u;for(var e in F={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:(a=100,s=-1,l=0,c=0,u=new Array(a),{cachedCursor:void 0,add:function(o,e,t){var r=u[s%a];function n(e){var t=++s%a,r=u[t];r&&r.clear(),u[t]=o.setBookmark(e)}if(r){var i=r.find();i&&!q(i,e)&&n(e)}else n(e);n(t),(c=(l=s)-a+1)<0&&(c=0)},move:function(e,t){l<(s+=t)?s=l:s<c&&(s=c);var r=u[(a+s)%a];if(r&&!r.find()){var o,n=0<t?1:-1,i=e.getCursor();do{if((r=u[(a+(s+=n))%a])&&(o=r.find())&&!q(i,o))break}while(s<l&&c<s)}return r}}),macroModeState:new A,lastChararacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new B({}),searchHistoryController:new K({}),exCommandHistoryController:new K({})},f){var t=f[e];t.value=t.defaultValue}}var T={buildKeyMap:function(){},getRegisterController:function(){return F.registerController},resetVimGlobalState_:L,getVimGlobalState_:function(){return F},maybeInitVimState_:b,suppressErrorLogging:(A.prototype={exitMacroRecordMode:function(){var e=F.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var r=F.registerController.getRegister(t);r&&(r.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog("(recording)["+t+"]",null,{bottom:!0})),this.isRecording=!0)}},!1),InsertModeKey:He,map:function(e,t,r){Be.map(e,t,r)},setOption:w,getOption:x,defineOption:C,defineEx:function(e,t,r){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered');Ee[e]=r,Be.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,r){var o=this.findKey(e,t,r);if("function"==typeof o)return o()},findKey:function(i,a,t){var e,s=b(i);function n(){var e=F.macroModeState;if(e.isRecording){if("q"==a)return e.exitMacroRecordMode(),O(i),!0;"mapping"!=t&&function(e,t){if(!e.isPlaying){var r=e.latestRegister,o=F.registerController.getRegister(r);o&&o.pushText(t)}}(e,a)}}function l(){if("<Esc>"==a)return O(i),s.visualMode?ie(i):s.insertMode&&Ie(i),!0}return!1===(e=s.insertMode?function(){if(l())return!0;for(var e=s.inputState.keyBuffer=s.inputState.keyBuffer+a,t=1==a.length,r=P.matchCommand(e,Ve,s.inputState,"insert");1<e.length&&"full"!=r.type;){e=s.inputState.keyBuffer=e.slice(1);var o=P.matchCommand(e,Ve,s.inputState,"insert");"none"!=o.type&&(r=o)}if("none"==r.type)return O(i),!1;if("partial"==r.type)return M&&window.clearTimeout(M),M=window.setTimeout(function(){s.insertMode&&s.inputState.keyBuffer&&O(i)},x("insertModeEscKeysTimeout")),!t;if(M&&window.clearTimeout(M),t){var n=i.getCursor();i.replaceRange("",V(n,0,-(e.length-1)),n,"+input")}return O(i),r.command}():function(){if(n()||l())return!0;var e=s.inputState.keyBuffer=s.inputState.keyBuffer+a;if(/^[1-9]\d*$/.test(e))return!0;if(!(t=/^(\d*)(.*)$/.exec(e)))return O(i),!1;var t,r=s.visualMode?"visual":"normal",o=P.matchCommand(t[2]||t[1],Ve,s.inputState,r);return"none"==o.type?(O(i),!1):"partial"==o.type||(s.inputState.keyBuffer="",(t=/^(\d*)(.*)$/.exec(e))[1]&&"0"!=t[1]&&s.inputState.pushRepeatDigit(t[1]),o.command)}())?void 0:!0===e?function(){}:function(){return i.operation(function(){i.curOp.isVimOp=!0;try{"keyToKey"==e.type?function(e){for(var t;e;)t=/<\w+-.+?>|<\w+>|./.exec(e),a=t[0],e=e.substring(t.index+a.length),_e.Vim.handleKey(i,a,"mapping")}(e.toKeys):P.processCommand(i,s,e)}catch(e){throw i.state.vim=void 0,b(i),_e.Vim.suppressErrorLogging||console.log(e),e}return!0})}},handleEx:function(e,t){Be.processCommand(e,t)},defineMotion:function(e,t){N[e]=t},defineAction:function(e,t){W[e]=t},defineOperator:function(e,t){H[e]=t},mapCommand:function(e,t,r,o,n){var i={keys:e,type:t};for(var a in i[t]=r,i[t+"Args"]=o,n)i[a]=n[a];Oe(i)},_mapCommand:Oe,exitVisualMode:ie,exitInsertMode:Ie};function R(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function O(e,t){e.state.vim.inputState=new R,_e.signal(e,"vim-command-done",t)}function E(e,t,r){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!r}function B(e){this.registers=e,this.unnamedRegister=e['"']=new E,e["."]=new E,e[":"]=new E,e["/"]=new E}function K(){this.historyBuffer=[],this.iterator,this.initialPrefix=null}R.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},R.prototype.getRepeat=function(){var e=0;return(0<this.prefixRepeat.length||0<this.motionRepeat.length)&&(e=1,0<this.prefixRepeat.length&&(e*=parseInt(this.prefixRepeat.join(""),10)),0<this.motionRepeat.length&&(e*=parseInt(this.motionRepeat.join(""),10))),e},E.prototype={setText:function(e,t,r){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!r},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(S(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},B.prototype={pushText:function(e,t,r,o,n){o&&"\n"==r.charAt(0)&&(r=r.slice(1)+"\n"),o&&"\n"!==r.charAt(r.length-1)&&(r+="\n");var i=this.isValidRegister(e)?this.getRegister(e):null;if(i)d(e)?i.pushText(r,o):i.setText(r,o,n),this.unnamedRegister.setText(i.toString(),o);else{switch(t){case"yank":this.registers[0]=new E(r,o,n);break;case"delete":case"change":-1==r.indexOf("\n")?this.registers["-"]=new E(r,o):(this.shiftNumericRegisters_(),this.registers[1]=new E(r,o))}this.unnamedRegister.setText(r,o,n)}},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new E),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&k(e,h)},shiftNumericRegisters_:function(){for(var e=9;2<=e;e--)this.registers[e]=this.getRegister(""+(e-1))}},K.prototype={nextMatch:function(e,t){var r=this.historyBuffer,o=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var n=this.iterator+o;t?0<=n:n<r.length;n+=o)for(var i=r[n],a=0;a<=i.length;a++)if(this.initialPrefix==i.substring(0,a))return this.iterator=n,i;return n>=r.length?(this.iterator=r.length,this.initialPrefix):n<0?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);-1<t&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var P={matchCommand:function(e,t,r,o){var n,i=function(e,t,r,o){for(var n,i=[],a=[],s=0;s<t.length;s++){var l=t[s];"insert"==r&&"insert"!=l.context||l.context&&l.context!=r||o.operator&&"action"==l.type||!(n=J(e,l.keys))||("partial"==n&&i.push(l),"full"==n&&a.push(l))}return{partial:i.length&&i,full:a.length&&a}}(e,t,o,r);if(!i.full&&!i.partial)return{type:"none"};if(!i.full&&i.partial)return{type:"partial"};for(var a=0;a<i.full.length;a++){var s=i.full[a];n||(n=s)}return"<character>"==n.keys.slice(-11)&&(r.selectedCharacter=function(e){var t=/^.*(<[\w\-]+>)$/.exec(e),r=t?t[1]:e.slice(-1);if(1<r.length)switch(r){case"<CR>":r="\n";break;case"<Space>":r=" "}return r}(e)),{type:"full",command:n}},processCommand:function(e,t,r){switch(t.inputState.repeatOverride=r.repeatOverride,r.type){case"motion":this.processMotion(e,t,r);break;case"operator":this.processOperator(e,t,r);break;case"operatorMotion":this.processOperatorMotion(e,t,r);break;case"action":this.processAction(e,t,r);break;case"search":this.processSearch(e,t,r);break;case"ex":case"keyToEx":this.processEx(e,t,r)}},processMotion:function(e,t,r){t.inputState.motion=r.motion,t.inputState.motionArgs=_(r.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,r){var o=t.inputState;if(o.operator){if(o.operator==r.operator)return o.motion="expandToLine",o.motionArgs={linewise:!0},void this.evalInput(e,t);O(e)}o.operator=r.operator,o.operatorArgs=_(r.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,r){var o=t.visualMode,n=_(r.operatorMotionArgs);n&&o&&n.visualLine&&(t.visualLine=!0),this.processOperator(e,t,r),o||this.processMotion(e,t,r)},processAction:function(e,t,r){var o=t.inputState,n=o.getRepeat(),i=!!n,a=_(r.actionArgs)||{};o.selectedCharacter&&(a.selectedCharacter=o.selectedCharacter),r.operator&&this.processOperator(e,t,r),r.motion&&this.processMotion(e,t,r),(r.motion||r.operator)&&this.evalInput(e,t),a.repeat=n||1,a.repeatIsExplicit=i,a.registerName=o.registerName,O(e),t.lastMotion=null,r.isEdit&&this.recordLastEdit(t,o,r),W[r.action](e,a,t)},processSearch:function(a,o,n){if(a.getSearchCursor){var s=n.searchArgs.forward,e=n.searchArgs.wholeWordOnly;ve(a).setReversed(!s);var t=s?"/":"?",i=ve(a).getQuery(),l=a.getScrollInfo();switch(n.searchArgs.querySrc){case"prompt":var r=F.macroModeState;r.isPlaying?p(h=r.replaySearchQueries.shift(),!0,!1):xe(a,{onClose:function(e){a.scrollTo(l.left,l.top),p(e,!0,!0);var t=F.macroModeState;t.isRecording&&function(e,t){if(!e.isPlaying){var r=e.latestRegister,o=F.registerController.getRegister(r);o&&o.pushSearchQuery(t)}}(t,e)},prefix:t,desc:we,onKeyUp:function(e,t,r){var o,n,i=_e.keyName(e);"Up"==i||"Down"==i?(o="Up"==i,r(t=F.searchHistoryController.nextMatch(t,o)||"")):"Left"!=i&&"Right"!=i&&"Ctrl"!=i&&"Alt"!=i&&"Shift"!=i&&F.searchHistoryController.reset();try{n=Me(a,t,!0,!0)}catch(e){}n?a.scrollIntoView(Ae(a,!s,n),30):(be(a),a.scrollTo(l.left,l.top))},onKeyDown:function(e,t,r){var o=_e.keyName(e);"Esc"!=o&&"Ctrl-C"!=o&&"Ctrl-["!=o||(F.searchHistoryController.pushInput(t),F.searchHistoryController.reset(),Me(a,i),be(a),a.scrollTo(l.left,l.top),_e.e_stop(e),O(a),r(),a.focus())}});break;case"wordUnderCursor":var c=se(a,!1,0,!1,!0),u=!0;if(c||(c=se(a,!1,0,!1,!1),u=!1),!c)return;var h=a.getLine(c.start.line).substring(c.start.ch,c.end.ch);h=u&&e?"\\b"+h+"\\b":h.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1"),F.jumpList.cachedCursor=a.getCursor(),a.setCursor(c.start),p(h,!0,!1)}}function p(t,e,r){F.searchHistoryController.pushInput(t),F.searchHistoryController.reset();try{Me(a,t,e,r)}catch(e){return Ce(a,"Invalid regex: "+t),void O(a)}P.processMotion(a,o,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:n.searchArgs.toJumplist}})}},processEx:function(i,e,t){function r(e){F.exCommandHistoryController.pushInput(e),F.exCommandHistoryController.reset(),Be.processCommand(i,e)}function o(e,t,r){var o,n=_e.keyName(e);"Esc"!=n&&"Ctrl-C"!=n&&"Ctrl-["!=n||(F.exCommandHistoryController.pushInput(t),F.exCommandHistoryController.reset(),_e.e_stop(e),O(i),r(),i.focus()),"Up"==n||"Down"==n?(o="Up"==n,r(t=F.exCommandHistoryController.nextMatch(t,o)||"")):"Left"!=n&&"Right"!=n&&"Ctrl"!=n&&"Alt"!=n&&"Shift"!=n&&F.exCommandHistoryController.reset()}"keyToEx"==t.type?Be.processCommand(i,t.exArgs.input):e.visualMode?xe(i,{onClose:r,prefix:":",value:"'<,'>",onKeyDown:o}):xe(i,{onClose:r,prefix:":",onKeyDown:o})},evalInput:function(e,t){var r,o,n,i,a=t.inputState,s=a.motion,l=a.motionArgs||{},c=a.operator,u=a.operatorArgs||{},h=a.registerName,p=t.sel,d=$(t.visualMode?p.head:e.getCursor("head")),f=$(t.visualMode?p.anchor:e.getCursor("anchor")),m=$(d),g=$(f);if(c&&this.recordLastEdit(t,a),0<(n=void 0!==a.repeatOverride?a.repeatOverride:a.getRepeat())&&l.explicitRepeat?l.repeatIsExplicit=!0:(l.noRepeat||!l.explicitRepeat&&0===n)&&(n=1,l.repeatIsExplicit=!1),a.selectedCharacter&&(l.selectedCharacter=u.selectedCharacter=a.selectedCharacter),l.repeat=n,O(e),s){var v=N[s](e,d,l,t);if(t.lastMotion=N[s],!v)return;if(l.toJumplist){var y=F.jumpList,k=y.cachedCursor;k?(le(e,k,v),delete y.cachedCursor):le(e,d,v)}(r=v instanceof Array?(o=v[0],v[1]):v)||(r=$(d)),t.visualMode?(t.visualBlock&&r.ch===1/0||(r=D(e,r,t.visualBlock)),o&&(o=D(e,o,!0)),o=o||g,p.anchor=o,p.head=r,oe(e),fe(e,t,"<",Q(o,r)?o:r),fe(e,t,">",Q(o,r)?r:o)):c||(r=D(e,r),e.setCursor(r.line,r.ch))}if(c){if(u.lastSel){o=g;var C=u.lastSel,w=Math.abs(C.head.line-C.anchor.line),x=Math.abs(C.head.ch-C.anchor.ch);r=C.visualLine?Je(g.line+w,g.ch):C.visualBlock?Je(g.line+w,g.ch+x):C.head.line==C.anchor.line?Je(g.line,g.ch+x):Je(g.line+w,g.ch),t.visualMode=!0,t.visualLine=C.visualLine,t.visualBlock=C.visualBlock,p=t.sel={anchor:o,head:r},oe(e)}else t.visualMode&&(u.lastSel={anchor:$(p.anchor),head:$(p.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var M,S,A,b,L;if(t.visualMode){if(M=z(p.head,p.anchor),S=Z(p.head,p.anchor),A=t.visualLine||u.linewise,L=ne(e,{anchor:M,head:S},b=t.visualBlock?"block":A?"line":"char"),A){var T=L.ranges;if("block"==b)for(var R=0;R<T.length;R++)T[R].head.ch=Y(e,T[R].head.line);else"line"==b&&(T[0].head=Je(T[0].head.line+1,0))}}else{if(M=$(o||g),Q(S=$(r||m),M)){var E=M;M=S,S=E}(A=l.linewise||u.linewise)?(i=S,M.ch=0,i.ch=0,i.line++):l.forward&&function(e,t,r){var o=e.getRange(t,r);if(/\n\s*$/.test(o)){var n=o.split("\n");n.pop();for(var i=n.pop();0<n.length&&i&&I(i);i=n.pop())r.line--,r.ch=0;r.ch=i?(r.line--,Y(e,r.line)):0}}(e,M,S),L=ne(e,{anchor:M,head:S},b="char",!l.inclusive||A)}e.setSelections(L.ranges,L.primary),t.lastMotion=null,u.repeat=n,u.registerName=h,u.linewise=A;var B=H[c](e,u,L.ranges,g,r);t.visualMode&&ie(e,null!=B),B&&e.setCursor(B)}},recordLastEdit:function(e,t,r){var o=F.macroModeState;o.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=r,o.lastInsertModeChanges.changes=[],o.lastInsertModeChanges.expectCursorActivityForChange=!1)}},N={moveToTopLine:function(e,t,r){var o=Le(e).top+r.repeat-1;return Je(o,ae(e.getLine(o)))},moveToMiddleLine:function(e){var t=Le(e),r=Math.floor(.5*(t.top+t.bottom));return Je(r,ae(e.getLine(r)))},moveToBottomLine:function(e,t,r){var o=Le(e).bottom-r.repeat+1;return Je(o,ae(e.getLine(o)))},expandToLine:function(e,t,r){return Je(t.line+r.repeat-1,1/0)},findNext:function(e,t,r){var o=ve(e),n=o.getQuery();if(n){var i=!r.forward;return i=o.isReversed()?!i:i,Se(e,n),Ae(e,i,n,r.repeat)}},goToMark:function(e,t,r,o){var n=o.marks[r.selectedCharacter];if(n){var i=n.find();return r.linewise?{line:i.line,ch:ae(e.getLine(i.line))}:i}return null},moveToOtherHighlightedEnd:function(e,t,r,o){if(o.visualBlock&&r.sameLine){var n=o.sel;return[D(e,Je(n.anchor.line,n.head.ch)),D(e,Je(n.head.line,n.anchor.ch))]}return[o.sel.head,o.sel.anchor]},jumpToMark:function(e,t,r,o){for(var n=t,i=0;i<r.repeat;i++){var a=n;for(var s in o.marks)if(p(s)){var l=o.marks[s].find();if(!((r.forward?Q(l,a):Q(a,l))||r.linewise&&l.line==a.line)){var c=q(a,n),u=r.forward?G(a,l,n):G(n,l,a);(c||u)&&(n=l)}}}return r.linewise&&(n=Je(n.line,ae(e.getLine(n.line)))),n},moveByCharacters:function(e,t,r){var o=t,n=r.repeat,i=r.forward?o.ch+n:o.ch-n;return Je(o.line,i)},moveByLines:function(e,t,r,o){var n=t,i=n.ch;switch(o.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:i=o.lastHPos;break;default:o.lastHPos=i}var a=r.repeat+(r.repeatOffset||0),s=r.forward?n.line+a:n.line-a,l=e.firstLine(),c=e.lastLine();if(!(s<l&&n.line==l||c<s&&n.line==c))return r.toFirstChar&&(i=ae(e.getLine(s)),o.lastHPos=i),o.lastHSPos=e.charCoords(Je(s,i),"div").left,Je(s,i)},moveByDisplayLines:function(e,t,r,o){var n=t;switch(o.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:o.lastHSPos=e.charCoords(n,"div").left}var i=r.repeat;if((s=e.findPosV(n,r.forward?i:-i,"line",o.lastHSPos)).hitSide)if(r.forward)var a={top:e.charCoords(s,"div").top+8,left:o.lastHSPos},s=e.coordsChar(a,"div");else{var l=e.charCoords(Je(e.firstLine(),0),"div");l.left=o.lastHSPos,s=e.coordsChar(l,"div")}return o.lastHPos=s.ch,s},moveByPage:function(e,t,r){var o=t,n=r.repeat;return e.findPosV(o,r.forward?n:-n,"page")},moveByParagraph:function(e,t,r){var o=r.forward?1:-1;return me(e,t,r.repeat,o)},moveByScroll:function(e,t,r,o){var n=e.getScrollInfo(),i=null,a=r.repeat;a||(a=n.clientHeight/(2*e.defaultTextHeight()));var s=e.charCoords(t,"local");if(r.repeat=a,!(i=N.moveByDisplayLines(e,t,r,o)))return null;var l=e.charCoords(i,"local");return e.scrollTo(null,n.top+l.top-s.top),i},moveByWords:function(e,t,r){return function(e,t,r,o,n,i){var a=$(t),s=[];(o&&!n||!o&&n)&&r++;for(var l=!(o&&n),c=0;c<r;c++){var u=pe(e,t,o,i,l);if(!u){var h=Y(e,e.lastLine());s.push(o?{line:e.lastLine(),from:h,to:h}:{line:0,from:0,to:0});break}s.push(u),t=Je(u.line,o?u.to-1:u.from)}var p=s.length!=r,d=s[0],f=s.pop();return o&&!n?(p||d.from==a.ch&&d.line==a.line||(f=s.pop()),Je(f.line,f.from)):o&&n?Je(f.line,f.to-1):!o&&n?(p||d.to==a.ch&&d.line==a.line||(f=s.pop()),Je(f.line,f.to)):Je(f.line,f.from)}(e,t,r.repeat,!!r.forward,!!r.wordEnd,!!r.bigWord)},moveTillCharacter:function(e,t,r){var o=de(e,r.repeat,r.forward,r.selectedCharacter),n=r.forward?-1:1;return ce(n,r),o?(o.ch+=n,o):null},moveToCharacter:function(e,t,r){var o=r.repeat;return ce(0,r),de(e,o,r.forward,r.selectedCharacter)||t},moveToSymbol:function(e,t,r){return function(e,t,r,o){var n=$(e.getCursor()),i=r?1:-1,a=r?e.lineCount():-1,s=n.ch,l=n.line,c=e.getLine(l),u={lineText:c,nextCh:c.charAt(s),lastCh:null,index:s,symb:o,reverseSymb:(r?{")":"(","}":"{"}:{"(":")","{":"}"})[o],forward:r,depth:0,curMoveThrough:!1},h=ue[o];if(!h)return n;var p=he[h].init,d=he[h].isComplete;for(p&&p(u);l!==a&&t;){if(u.index+=i,u.nextCh=u.lineText.charAt(u.index),!u.nextCh){if(l+=i,u.lineText=e.getLine(l)||"",0<i)u.index=0;else{var f=u.lineText.length;u.index=0<f?f-1:0}u.nextCh=u.lineText.charAt(u.index)}d(u)&&(n.line=l,n.ch=u.index,t--)}return u.nextCh||u.curMoveThrough?Je(l,u.index):n}(e,r.repeat,r.forward,r.selectedCharacter)||t},moveToColumn:function(e,t,r,o){var n,i,a,s=r.repeat;return o.lastHPos=s-1,o.lastHSPos=e.charCoords(t,"div").left,i=s,a=(n=e).getCursor().line,D(n,Je(a,i-1))},moveToEol:function(e,t,r,o){var n=t;o.lastHPos=1/0;var i=Je(n.line+r.repeat-1,1/0),a=e.clipPos(i);return a.ch--,o.lastHSPos=e.charCoords(a,"div").left,i},moveToFirstNonWhiteSpaceCharacter:function(e,t){var r=t;return Je(r.line,ae(e.getLine(r.line)))},moveToMatchedSymbol:function(e,t){var r,o=t,n=o.line,i=o.ch,a=e.getLine(n);do{if((r=a.charAt(i++))&&-1!="()[]{}".indexOf(r)){var s=e.getTokenTypeAt(Je(n,i));if("string"!==s&&"comment"!==s)break}}while(r);return r?e.findMatchingBracket(Je(n,i)).to:o},moveToStartOfLine:function(e,t){return Je(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,r){var o=r.forward?e.lastLine():e.firstLine();return r.repeatIsExplicit&&(o=r.repeat-e.getOption("firstLineNumber")),Je(o,ae(e.getLine(o)))},textObjectManipulation:function(e,t,r,o){var n=r.selectedCharacter;"b"==n?n="(":"B"==n&&(n="{");var i,a,s,l,c,u,h,p,d=!r.textObjectInner;if({"(":")",")":"(","{":"}","}":"{","[":"]","]":"["}[n])i=function(e,t,r,o){var n,i,a=t,s={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[r],l={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[r],c=e.getLine(a.line).charAt(a.ch)===l?1:0;if(n=e.scanForBracket(Je(a.line,a.ch+c),-1,null,{bracketRegex:s}),i=e.scanForBracket(Je(a.line,a.ch+c),1,null,{bracketRegex:s}),!n||!i)return{start:a,end:a};if(n=n.pos,i=i.pos,n.line==i.line&&n.ch>i.ch||n.line>i.line){var u=n;n=i,i=u}return o?i.ch+=1:n.ch+=1,{start:n,end:i}}(e,t,n,d);else if({"'":!0,'"':!0}[n])i=function(e,t,r,o){var n,i,a,s,l=$(t),c=e.getLine(l.line).split(""),u=c.indexOf(r);if(l.ch<u?l.ch=u:u<l.ch&&c[l.ch]==r&&(i=l.ch,--l.ch),c[l.ch]!=r||i)for(a=l.ch;-1<a&&!n;a--)c[a]==r&&(n=a+1);else n=l.ch+1;if(n&&!i)for(a=n,s=c.length;a<s&&!i;a++)c[a]==r&&(i=a);return n&&i?(o&&(--n,++i),{start:Je(l.line,n),end:Je(l.line,i)}):{start:l,end:l}}(e,t,n,d);else if("W"===n)i=se(e,d,0,!0);else if("w"===n)i=se(e,d,0,!1);else{if("p"!==n)return null;if(i=me(e,t,r.repeat,0,d),r.linewise=!0,o.visualMode)o.visualLine||(o.visualLine=!0);else{var f=o.inputState.operatorArgs;f&&(f.linewise=!0),i.end.line--}}return e.state.vim.visualMode?(a=e,s=i.start,l=i.end,u=a.state.vim.sel,h=u.head,p=u.anchor,Q(l,s)&&(c=l,l=s,s=c),Q(h,p)?(h=z(s,h),p=Z(p,l)):(p=z(s,p),-1==(h=V(h=Z(h,l),0,-1)).ch&&h.line!=a.firstLine()&&(h=Je(h.line-1,Y(a,h.line-1)))),[p,h]):[i.start,i.end]},repeatLastCharacterSearch:function(e,t,r){var o=F.lastChararacterSearch,n=r.repeat,i=r.forward===o.forward,a=(o.increment?1:0)*(i?-1:1);e.moveH(-a,"char"),r.inclusive=!!i;var s=de(e,n,i,o.selectedCharacter);return s?(s.ch+=a,s):(e.moveH(a,"char"),t)}};function j(e,t){for(var r=[],o=0;o<t;o++)r.push(e);return r}var H={change:function(e,t,r){var o,n,i=e.state.vim;if(F.macroModeState.lastInsertModeChanges.inVisualBlock=i.visualBlock,i.visualMode){n=e.getSelection();var a=j("",r.length);e.replaceSelections(a),o=z(r[0].head,r[0].anchor)}else{var s=r[0].anchor,l=r[0].head;if(!I(n=e.getRange(s,l))){var c=/\s+$/.exec(n);c&&(l=V(l,0,-c[0].length),n=n.slice(0,-c[0].length))}var u=l.line-1==e.lastLine();e.replaceRange("",s,l),t.linewise&&!u&&(_e.commands.newlineAndIndent(e),s.ch=null),o=s}F.registerController.pushText(t.registerName,"change",n,t.linewise,1<r.length),W.enterInsertMode(e,{head:o},e.state.vim)},delete:function(e,t,r){var o,n,i=e.state.vim;if(i.visualBlock){n=e.getSelection();var a=j("",r.length);e.replaceSelections(a),o=r[0].anchor}else{var s=r[0].anchor,l=r[0].head;t.linewise&&l.line!=e.firstLine()&&s.line==e.lastLine()&&s.line==l.line-1&&(s.line==e.firstLine()?s.ch=0:s=Je(s.line-1,Y(e,s.line-1))),n=e.getRange(s,l),e.replaceRange("",s,l),o=s,t.linewise&&(o=N.moveToFirstNonWhiteSpaceCharacter(e,s))}return F.registerController.pushText(t.registerName,"delete",n,t.linewise,i.visualBlock),D(e,o)},indent:function(e,t,r){var o=e.state.vim,n=r[0].anchor.line,i=o.visualBlock?r[r.length-1].anchor.line:r[0].head.line,a=o.visualMode?t.repeat:1;t.linewise&&i--;for(var s=n;s<=i;s++)for(var l=0;l<a;l++)e.indentLine(s,t.indentRight);return N.moveToFirstNonWhiteSpaceCharacter(e,r[0].anchor)},changeCase:function(e,t,r,o,n){for(var i=e.getSelections(),a=[],s=t.toLower,l=0;l<i.length;l++){var c=i[l],u="";if(!0===s)u=c.toLowerCase();else if(!1===s)u=c.toUpperCase();else for(var h=0;h<c.length;h++){var p=c.charAt(h);u+=d(p)?p.toLowerCase():p.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?n:!e.state.vim.visualMode&&t.linewise&&r[0].anchor.line+1==r[0].head.line?N.moveToFirstNonWhiteSpaceCharacter(e,o):t.linewise?o:z(r[0].anchor,r[0].head)},yank:function(e,t,r,o){var n=e.state.vim,i=e.getSelection(),a=n.visualMode?z(n.sel.anchor,n.sel.head,r[0].head,r[0].anchor):o;return F.registerController.pushText(t.registerName,"yank",i,t.linewise,n.visualBlock),a}};var W={jumpListWalk:function(e,t,r){if(!r.visualMode){var o=t.repeat,n=t.forward,i=F.jumpList.move(e,n?o:-o),a=i?i.find():void 0;a=a||e.getCursor(),e.setCursor(a)}},scroll:function(e,t,r){if(!r.visualMode){var o=t.repeat||1,n=e.defaultTextHeight(),i=e.getScrollInfo().top,a=n*o,s=t.forward?i+a:i-a,l=$(e.getCursor()),c=e.charCoords(l,"local");if(t.forward)s>c.top?(l.line+=(s-c.top)/n,l.line=Math.ceil(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,s);else{var u=s+e.getScrollInfo().clientHeight;u<c.bottom?(l.line-=(c.bottom-u)/n,l.line=Math.floor(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,s)}}},scrollToCursor:function(e,t){var r=e.getCursor().line,o=e.charCoords(Je(r,0),"local"),n=e.getScrollInfo().clientHeight,i=o.top,a=o.bottom-i;switch(t.position){case"center":i=i-n/2+a;break;case"bottom":i=i-n+1.4*a;break;case"top":i+=.4*a}e.scrollTo(null,i)},replayMacro:function(e,t,r){var o=t.selectedCharacter,n=t.repeat,i=F.macroModeState;for("@"==o&&(o=i.latestRegister);n--;)Ke(e,r,i,o)},enterMacroRecordMode:function(e,t){var r=F.macroModeState,o=t.selectedCharacter;r.enterMacroRecordMode(e,o)},enterInsertMode:function(e,t,r){if(!e.getOption("readOnly")){r.insertMode=!0,r.insertModeRepeat=t&&t.repeat||1;var o=t?t.insertAt:null,n=r.sel,i=t.head||e.getCursor("head"),a=e.listSelections().length;if("eol"==o)i=Je(i.line,Y(e,i.line));else if("charAfter"==o)i=V(i,0,1);else if("firstNonBlank"==o)i=N.moveToFirstNonWhiteSpaceCharacter(e,i);else if("startOfSelectedArea"==o)r.visualBlock?(i=Je(Math.min(n.head.line,n.anchor.line),Math.min(n.head.ch,n.anchor.ch)),a=Math.abs(n.head.line-n.anchor.line)+1):i=n.head.line<n.anchor.line?n.head:Je(n.anchor.line,0);else if("endOfSelectedArea"==o)r.visualBlock?(i=Je(Math.min(n.head.line,n.anchor.line),Math.max(n.head.ch+1,n.anchor.ch)),a=Math.abs(n.head.line-n.anchor.line)+1):i=n.head.line>=n.anchor.line?V(n.head,0,1):Je(n.anchor.line,0);else if("inplace"==o&&r.visualMode)return;e.setOption("keyMap","vim-insert"),e.setOption("disableInput",!1),t&&t.replace?(e.toggleOverwrite(!0),e.setOption("keyMap","vim-replace"),_e.signal(e,"vim-mode-change",{mode:"replace"})):(e.setOption("keyMap","vim-insert"),_e.signal(e,"vim-mode-change",{mode:"insert"})),F.macroModeState.isPlaying||(e.on("change",Pe),_e.on(e.getInputField(),"keydown",Fe)),r.visualMode&&ie(e),te(e,i,a)}},toggleVisualMode:function(e,t,r){var o,n=t.repeat,i=e.getCursor();r.visualMode?r.visualLine^t.linewise||r.visualBlock^t.blockwise?(r.visualLine=!!t.linewise,r.visualBlock=!!t.blockwise,_e.signal(e,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""}),oe(e)):ie(e):(r.visualMode=!0,r.visualLine=!!t.linewise,r.visualBlock=!!t.blockwise,o=D(e,Je(i.line,i.ch+n-1),!0),r.sel={anchor:i,head:o},_e.signal(e,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""}),oe(e),fe(e,r,"<",z(i,o)),fe(e,r,">",Z(i,o)))},reselectLastSelection:function(e,t,r){var o=r.lastSelection;if(r.visualMode&&re(e,r),o){var n=o.anchorMark.find(),i=o.headMark.find();if(!n||!i)return;r.sel={anchor:n,head:i},r.visualMode=!0,r.visualLine=o.visualLine,r.visualBlock=o.visualBlock,oe(e),fe(e,r,"<",z(n,i)),fe(e,r,">",Z(n,i)),_e.signal(e,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""})}},joinLines:function(e,t,r){var o,n;if(r.visualMode){if(o=e.getCursor("anchor"),Q(n=e.getCursor("head"),o)){var i=n;n=o,o=i}n.ch=Y(e,n.line)-1}else{var a=Math.max(t.repeat,2);o=e.getCursor(),n=D(e,Je(o.line+a-1,1/0))}for(var s=0,l=o.line;l<n.line;l++){s=Y(e,o.line),i=Je(o.line+1,Y(e,o.line+1));var c=e.getRange(o,i);c=c.replace(/\n\s*/g," "),e.replaceRange(c,o,i)}var u=Je(o.line,s);r.visualMode&&ie(e,!1),e.setCursor(u)},newLineAndEnterInsertMode:function(e,t,r){r.insertMode=!0;var o=$(e.getCursor());o.line!==e.firstLine()||t.after?(o.line=t.after?o.line:o.line-1,o.ch=Y(e,o.line),e.setCursor(o),(_e.commands.newlineAndIndentContinueComment||_e.commands.newlineAndIndent)(e)):(e.replaceRange("\n",Je(e.firstLine(),0)),e.setCursor(e.firstLine(),0)),this.enterInsertMode(e,{repeat:t.repeat},r)},paste:function(o,e,t){var r,n,i,a,s,l=$(o.getCursor()),c=F.registerController.getRegister(e.registerName);if(v=c.toString()){if(e.matchIndent){var u=o.getOption("tabSize"),h=function(e){var t=e.split("\t").length-1,r=e.split(" ").length-1;return t*u+1*r},p=o.getLine(o.getCursor().line),d=h(p.match(/^\s*/)[0]),f=v.replace(/\n$/,""),m=v!==f,g=h(v.match(/^\s*/)[0]),v=f.replace(/^\s*/gm,function(e){var t=d+(h(e)-g);if(t<0)return"";if(o.getOption("indentWithTabs")){var r=Math.floor(t/u);return Array(r+1).join("\t")}return Array(t+1).join(" ")});v+=m?"\n":""}1<e.repeat&&(v=Array(e.repeat+1).join(v));var y,k,C,w,x,M,S,A,b,L,T=c.linewise,R=c.blockwise;if(T)t.visualMode?v=t.visualLine?v.slice(0,-1):"\n"+v.slice(0,v.length-1)+"\n":e.after?(v="\n"+v.slice(0,v.length-1),l.ch=Y(o,l.line)):l.ch=0;else{if(R){v=v.split("\n");for(var E=0;E<v.length;E++)v[E]=""==v[E]?" ":v[E]}l.ch+=e.after?1:0}if(t.visualMode){var B;t.lastPastedText=v;var I=(C=o,x=(w=t).lastSelection,w.visualMode?(M=C.listSelections(),S=M[0],A=M[M.length-1],b=Q(S.anchor,S.head)?S.anchor:S.head,L=Q(A.anchor,A.head)?A.head:A.anchor,[b,L]):function(){var e=C.getCursor(),t=C.getCursor(),r=x.visualBlock;if(r){var o=r.width,n=r.height;t=Je(e.line+n,e.ch+o);for(var i=[],a=e.line;a<t.line;a++){var s=Je(a,e.ch),l=Je(a,t.ch),c={anchor:s,head:l};i.push(c)}C.setSelections(i)}else{var u=x.anchorMark.find(),h=x.headMark.find(),p=h.line-u.line,d=h.ch-u.ch;t={line:t.line+p,ch:p?t.ch:d+t.ch},x.visualLine&&(e=Je(e.line,0),t=Je(t.line,Y(C,t.line))),C.setSelection(e,t)}return[e,t]}()),O=I[0],K=I[1],P=o.getSelection(),N=o.listSelections(),j=new Array(N.length).join("1").split("1");t.lastSelection&&(B=t.lastSelection.headMark.find()),F.registerController.unnamedRegister.setText(P),y=R?(o.replaceSelections(j),K=Je(O.line+v.length-1,O.ch),o.setCursor(O),ee(o,K),o.replaceSelections(v),O):t.visualBlock?(o.replaceSelections(j),o.setCursor(O),o.replaceRange(v,O,O),O):(o.replaceRange(v,O,K),o.posFromIndex(o.indexFromPos(O)+v.length-1)),B&&(t.lastSelection.headMark=o.setBookmark(B)),T&&(y.ch=0)}else if(R){for(o.setCursor(l),E=0;E<v.length;E++){var H=l.line+E;H>o.lastLine()&&o.replaceRange("\n",Je(H,0)),Y(o,H)<l.ch&&(r=o,n=H,i=l.ch,void 0,a=Y(r,n),s=new Array(i-a+1).join(" "),r.setCursor(Je(n,a)),r.replaceRange(s,r.getCursor()))}o.setCursor(l),ee(o,Je(l.line+v.length-1,l.ch)),o.replaceSelections(v),y=l}else o.replaceRange(v,l),y=T&&e.after?Je(l.line+1,ae(o.getLine(l.line+1))):T&&!e.after?Je(l.line,ae(o.getLine(l.line))):!T&&e.after?(k=o.indexFromPos(l),o.posFromIndex(k+v.length-1)):(k=o.indexFromPos(l),o.posFromIndex(k+v.length));t.visualMode&&ie(o,!1),o.setCursor(y)}},undo:function(e,t){e.operation(function(){U(e,_e.commands.undo,t.repeat)(),e.setCursor(e.getCursor("anchor"))})},redo:function(e,t){U(e,_e.commands.redo,t.repeat)()},setRegister:function(e,t,r){r.inputState.registerName=t.selectedCharacter},setMark:function(e,t,r){fe(e,r,t.selectedCharacter,e.getCursor())},replace:function(e,t,r){var o,n,i=t.selectedCharacter,a=e.getCursor(),s=e.listSelections();if(r.visualMode)a=e.getCursor("start"),n=e.getCursor("end");else{var l=e.getLine(a.line);(o=a.ch+t.repeat)>l.length&&(o=l.length),n=Je(a.line,o)}if("\n"==i)r.visualMode||e.replaceRange("",a,n),(_e.commands.newlineAndIndentContinueComment||_e.commands.newlineAndIndent)(e);else{var c=e.getRange(a,n);if(c=c.replace(/[^\n]/g,i),r.visualBlock){var u=new Array(e.getOption("tabSize")+1).join(" ");c=(c=e.getSelection()).replace(/\t/g,u).replace(/[^\n]/g,i).split("\n"),e.replaceSelections(c)}else e.replaceRange(c,a,n);r.visualMode?(a=Q(s[0].anchor,s[0].head)?s[0].anchor:s[0].head,e.setCursor(a),ie(e,!1)):e.setCursor(V(n,0,-1))}},incrementNumberToken:function(e,t){for(var r,o,n,i,a,s=e.getCursor(),l=e.getLine(s.line),c=/-?\d+/g;null!==(r=c.exec(l))&&(a=r[0],n=(o=r.index)+a.length,!(s.ch<n)););if((t.backtrack||!(n<=s.ch))&&a){var u=t.increase?1:-1,h=parseInt(a)+u*t.repeat,p=Je(s.line,o),d=Je(s.line,n);i=h.toString(),e.replaceRange(i,p,d),e.setCursor(Je(s.line,o+i.length-1))}},repeatLastEdit:function(e,t,r){if(r.lastEditInputState){var o=t.repeat;o&&t.repeatIsExplicit?r.lastEditInputState.repeatOverride=o:o=r.lastEditInputState.repeatOverride||o,We(e,r,o,!1)}},exitInsertMode:Ie};function D(e,t,r){var o=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),n=Y(e,o)-1;n=r?n+1:n;var i=Math.min(Math.max(0,t.ch),n);return Je(o,i)}function _(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}function V(e,t,r){return"object"==typeof t&&(r=t.ch,t=t.line),Je(e.line+t,e.ch+r)}function J(e,t){if("<character>"!=t.slice(-11))return e==t?"full":0==t.indexOf(e)&&"partial";var r=t.length-11,o=e.slice(0,r),n=t.slice(0,r);return o==n&&e.length>r?"full":0==n.indexOf(o)&&"partial"}function U(t,r,o){return function(){for(var e=0;e<o;e++)r(t)}}function $(e){return Je(e.line,e.ch)}function q(e,t){return e.ch==t.ch&&e.line==t.line}function Q(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function z(e,t){return 2<arguments.length&&(t=z.apply(void 0,Array.prototype.slice.call(arguments,1))),Q(e,t)?e:t}function Z(e,t){return 2<arguments.length&&(t=Z.apply(void 0,Array.prototype.slice.call(arguments,1))),Q(e,t)?t:e}function G(e,t,r){var o=Q(e,t),n=Q(t,r);return o&&n}function Y(e,t){return e.getLine(t).length}function X(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function ee(e,t){var r=[],o=e.listSelections(),n=$(e.clipPos(t)),i=!q(t,n),a=function(e,t,r){for(var o=0;o<e.length;o++){var n="head"!=r&&q(e[o].anchor,t),i="anchor"!=r&&q(e[o].head,t);if(n||i)return o}return-1}(o,e.getCursor("head")),s=q(o[a].head,o[a].anchor),l=o.length-1,c=a<l-a?l:0,u=o[c].anchor,h=Math.min(u.line,n.line),p=Math.max(u.line,n.line),d=u.ch,f=n.ch,m=o[c].head.ch-d,g=f-d;0<m&&g<=0?(d++,i||f--):m<0&&0<=g?(d--,s||f++):m<0&&-1==g&&(d--,f++);for(var v=h;v<=p;v++){var y={anchor:new Je(v,d),head:new Je(v,f)};r.push(y)}return a=n.line==p?r.length-1:0,e.setSelections(r),t.ch=f,u.ch=d,u}function te(e,t,r){for(var o=[],n=0;n<r;n++){var i=V(t,n,0);o.push({anchor:i,head:i})}e.setSelections(o,0)}function re(e,t){var r=t.sel.anchor,o=t.sel.head;t.lastPastedText&&(o=e.posFromIndex(e.indexFromPos(r)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(r),headMark:e.setBookmark(o),anchor:$(r),head:$(o),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function oe(e,t,r){var o=e.state.vim,n=ne(e,t=t||o.sel,r=r||o.visualLine?"line":o.visualBlock?"block":"char");e.setSelections(n.ranges,n.primary),je(e)}function ne(e,t,r,o){var n=$(t.head),i=$(t.anchor);if("char"==r){var a=o||Q(t.head,t.anchor)?0:1,s=Q(t.head,t.anchor)?1:0;return n=V(t.head,0,a),{ranges:[{anchor:i=V(t.anchor,0,s),head:n}],primary:0}}if("line"==r){if(Q(t.head,t.anchor))n.ch=0,i.ch=Y(e,i.line);else{i.ch=0;var l=e.lastLine();n.line>l&&(n.line=l),n.ch=Y(e,n.line)}return{ranges:[{anchor:i,head:n}],primary:0}}if("block"==r){for(var c=Math.min(i.line,n.line),u=Math.min(i.ch,n.ch),h=Math.max(i.line,n.line),p=Math.max(i.ch,n.ch)+1,d=h-c+1,f=n.line==c?0:d-1,m=[],g=0;g<d;g++)m.push({anchor:Je(c+g,u),head:Je(c+g,p)});return{ranges:m,primary:f}}}function ie(e,t){var r=e.state.vim;!1!==t&&e.setCursor(D(e,r.sel.head)),re(e,r),r.visualMode=!1,r.visualLine=!1,r.visualBlock=!1,_e.signal(e,"vim-mode-change",{mode:"normal"}),r.fakeCursor&&r.fakeCursor.clear()}function ae(e){if(!e)return 0;var t=e.search(/\S/);return-1==t?e.length:t}function se(e,t,r,o,n){for(var i,a,s=(a=(i=e).getCursor("head"),1==i.getSelection().length&&(a=z(a,i.getCursor("anchor"))),a),l=e.getLine(s.line),c=s.ch,u=n?g[0]:v[0];!u(l.charAt(c));)if(++c>=l.length)return null;o?u=v[0]:(u=g[0])(l.charAt(c))||(u=g[1]);for(var h=c,p=c;u(l.charAt(h))&&h<l.length;)h++;for(;u(l.charAt(p))&&0<=p;)p--;if(p++,t){for(var d=h;/\s/.test(l.charAt(h))&&h<l.length;)h++;if(d==h){for(var f=p;/\s/.test(l.charAt(p-1))&&0<p;)p--;p||(p=f)}}return{start:Je(s.line,p),end:Je(s.line,h)}}function le(e,t,r){q(t,r)||F.jumpList.add(e,t,r)}function ce(e,t){F.lastChararacterSearch.increment=e,F.lastChararacterSearch.forward=t.forward,F.lastChararacterSearch.selectedCharacter=t.selectedCharacter}var ue={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},he={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(e.depth++,1<=e.depth)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t="*"===e.lastCh&&"/"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb="m"===e.symb?"{":"}",e.reverseSymb="{"===e.symb?"}":"{"},isComplete:function(e){return e.nextCh===e.symb}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if("#"===e.nextCh){var t=e.lineText.match(/#(\w+)/)[1];if("endif"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if("if"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if("else"===t&&0===e.depth)return!0}return!1}}};function pe(e,t,r,o,n){var i=t.line,a=t.ch,s=e.getLine(i),l=r?1:-1,c=o?v:g;if(n&&""==s){if(i+=l,s=e.getLine(i),!y(e,i))return null;a=r?0:s.length}for(;;){if(n&&""==s)return{from:0,to:0,line:i};for(var u=0<l?s.length:-1,h=u,p=u;a!=u;){for(var d=!1,f=0;f<c.length&&!d;++f)if(c[f](s.charAt(a))){for(h=a;a!=u&&c[f](s.charAt(a));)a+=l;if(d=h!=(p=a),h==t.ch&&i==t.line&&p==h+l)continue;return{from:Math.min(h,p+1),to:Math.max(h,p),line:i}}d||(a+=l)}if(!y(e,i+=l))return null;s=e.getLine(i),a=0<l?0:s.length}throw new Error("The impossible happened.")}function de(e,t,r,o){for(var n,i=e.getCursor(),a=i.ch,s=0;s<t;s++){if(-1==(l=a,c=e.getLine(i.line),u=o,h=!0,p=void 0,r?-1==(p=c.indexOf(u,l+1))||h||(p-=1):-1==(p=c.lastIndexOf(u,l-1))||h||(p+=1),n=p))return null;a=n}var l,c,u,h,p;return Je(e.getCursor().line,n)}function fe(e,t,r,o){k(r,u)&&(t.marks[r]&&t.marks[r].clear(),t.marks[r]=e.setBookmark(o))}function me(t,e,r,o,n){var i,a=e.line,s=t.firstLine(),l=t.lastLine(),c=a;function u(e){return!t.getLine(e)}function h(e,t,r){return r?u(e)!=u(e+t):!u(e)&&u(e+t)}if(o){for(;s<=c&&c<=l&&0<r;)h(c,o)&&r--,c+=o;return new Je(c,0)}var p=t.state.vim;if(p.visualLine&&h(a,1,!0)){var d=p.sel.anchor;h(d.line,-1,!0)&&(n&&d.line==a||(a+=1))}var f=u(a);for(c=a;c<=l&&r;c++)h(c,1,!0)&&(n&&u(c)==f||r--);for(i=new Je(c,0),l<c&&!f?f=!0:n=!1,c=a;s<c&&(n&&u(c)!=f&&c!=a||!h(c,-1,!0));c--);return{start:new Je(c,0),end:i}}function ge(){}function ve(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new ge)}function ye(e){var t=ke(e)||[];if(!t.length)return[];var r=[];if(0===t[0]){for(var o=0;o<t.length;o++)"number"==typeof t[o]&&r.push(e.substring(t[o]+1,t[o+1]));return r}}function ke(e){for(var t=!1,r=[],o=0;o<e.length;o++){var n=e.charAt(o);t||"/"!=n||r.push(o),t=!t&&"\\"==n}return r}function Ce(e,t){e.openNotification?e.openNotification('<span style="color: red">'+t+"</span>",{bottom:!0,duration:5e3}):alert(t)}C("pcre",!0,"boolean"),ge.prototype={getQuery:function(){return F.query},setQuery:function(e){F.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return F.isReversed},setReversed:function(e){F.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var we="(Javascript regexp)";function xe(e,t){var r,o,n,i,a,s,l,c,u=(t.prefix||"")+" "+(t.desc||""),h=(r=t.prefix,o=t.desc,n="",r&&(n+='<span style="font-family: monospace">'+r+"</span>"),n+='<input type="text"/> <span style="color: #888">',o&&(n+='<span style="color: #888">',n+=o,n+="</span>"),n);i=e,a=h,s=u,l=t.onClose,c=t,i.openDialog?i.openDialog(a,l,{bottom:!0,value:c.value,onKeyDown:c.onKeyDown,onKeyUp:c.onKeyUp,selectValueOnOpen:!1}):l(prompt(s,""))}function Me(e,t,r,o){if(t){var n=ve(e),i=function(e,t,r){if(F.registerController.getRegister("/").setText(e),e instanceof RegExp)return e;var o,n,i=ke(e);return i.length?(o=e.substring(0,i[0]),n=-1!=e.substring(i[0]).indexOf("i")):o=e,o?(x("pcre")||(o=function(e){for(var t=!1,r=[],o=-1;o<e.length;o++){var n=e.charAt(o)||"",i=e.charAt(o+1)||"",a=i&&-1!="|(){".indexOf(i);t?("\\"===n&&a||r.push(n),t=!1):"\\"===n?(t=!0,i&&-1!="}".indexOf(i)&&(a=!0),a&&"\\"!==i||r.push(n)):(r.push(n),a&&"\\"!==i&&r.push("\\"))}return r.join("")}(o)),r&&(t=/^[^A-Z]*$/.test(o)),new RegExp(o,t||n?"i":void 0)):null}(t,!!r,!!o);if(i)return Se(e,i),function(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var r=["global","multiline","ignoreCase","source"],o=0;o<r.length;o++){var n=r[o];if(e[n]!==t[n])return!1}return!0}return!1}(i,n.getQuery())||n.setQuery(i),i}}function Se(e,t){var r=ve(e),o=r.getOverlay();o&&t==o.query||(o&&e.removeOverlay(o),o=function(r){if("^"==r.source.charAt(0))var o=!0;return{token:function(e){if(!o||e.sol()){var t=e.match(r,!1);if(t)return 0==t[0].length?(e.next(),"searching"):e.sol()||(e.backUp(1),r.exec(e.next()+t[0]))?(e.match(r),"searching"):(e.next(),null);for(;!e.eol()&&(e.next(),!e.match(r,!1)););}else e.skipToEnd()},query:r}}(t),e.addOverlay(o),e.showMatchesOnScrollbar&&(r.getScrollbarAnnotate()&&r.getScrollbarAnnotate().clear(),r.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),r.setOverlay(o))}function Ae(n,i,a,s){return void 0===s&&(s=1),n.operation(function(){for(var e=n.getCursor(),t=n.getSearchCursor(a,e),r=0;r<s;r++){var o=t.find(i);if(0==r&&o&&q(t.from(),e)&&(o=t.find(i)),!o&&!(t=n.getSearchCursor(a,i?Je(n.lastLine()):Je(n.firstLine(),0))).find(i))return}return t.from()})}function be(e){var t=ve(e);e.removeOverlay(ve(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function Le(e){var t=e.getScrollInfo(),r=e.coordsChar({left:0,top:6+t.top},"local"),o=t.clientHeight-10+t.top,n=e.coordsChar({left:0,top:o},"local");return{top:r.line,bottom:n.line}}var Te=[{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"set"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],Re=function(){this.buildCommandMap_()};Re.prototype={processCommand:function(e,t,r){var o=this;e.operation(function(){e.curOp.isVimOp=!0,o._processCommand(e,t,r)})},_processCommand:function(t,e,r){var o=t.state.vim,n=F.registerController.getRegister(":"),i=n.toString();o.visualMode&&ie(t);var a=new _e.StringStream(e);n.setText(e);var s,l,c=r||{};c.input=e;try{this.parseInput_(t,a,c)}catch(e){throw Ce(t,e),e}if(c.commandName){if(s=this.matchCommand_(c.commandName)){if(l=s.name,s.excludeFromCommandHistory&&n.setText(i),this.parseCommandArgs_(a,c,s),"exToKey"==s.type){for(var u=0;u<s.toKeys.length;u++)_e.Vim.handleKey(t,s.toKeys[u],"mapping");return}if("exToEx"==s.type)return void this.processCommand(t,s.toInput)}}else void 0!==c.line&&(l="move");if(l)try{Ee[l](t,c),s&&s.possiblyAsync||!c.callback||c.callback()}catch(e){throw Ce(t,e),e}else Ce(t,'Not an editor command ":'+e+'"')},parseInput_:function(e,t,r){t.eatWhile(":"),t.eat("%")?(r.line=e.firstLine(),r.lineEnd=e.lastLine()):(r.line=this.parseLineSpec_(e,t),void 0!==r.line&&t.eat(",")&&(r.lineEnd=this.parseLineSpec_(e,t)));var o=t.match(/^(\w+)/);return r.commandName=o?o[1]:t.match(/.*/)[0],r},parseLineSpec_:function(e,t){var r=t.match(/^(\d+)/);if(r)return parseInt(r[1],10)-1;switch(t.next()){case".":return e.getCursor().line;case"$":return e.lastLine();case"'":var o=e.state.vim.marks[t.next()];if(o&&o.find())return o.find().line;throw new Error("Mark not set");default:return void t.backUp(1)}},parseCommandArgs_:function(e,t,r){if(!e.eol()){t.argString=e.match(/.*/)[0];var o=r.argDelimiter||/\s+/,n=X(t.argString).split(o);n.length&&n[0]&&(t.args=n)}},matchCommand_:function(e){for(var t=e.length;0<t;t--){var r=e.substring(0,t);if(this.commandMap_[r]){var o=this.commandMap_[r];if(0===o.name.indexOf(e))return o}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<Te.length;e++){var t=Te[e],r=t.shortName||t.name;this.commandMap_[r]=t}},map:function(e,t,r){if(":"!=e&&":"==e.charAt(0)){if(r)throw Error("Mode not supported for ex mappings");var o=e.substring(1);":"!=t&&":"==t.charAt(0)?this.commandMap_[o]={name:o,type:"exToEx",toInput:t.substring(1),user:!0}:this.commandMap_[o]={name:o,type:"exToKey",toKeys:t,user:!0}}else if(":"!=t&&":"==t.charAt(0)){var n={keys:e,type:"keyToEx",exArgs:{input:t.substring(1)},user:!0};r&&(n.context=r),Ve.unshift(n)}else n={keys:e,type:"keyToKey",toKeys:t,user:!0},r&&(n.context=r),Ve.unshift(n)},unmap:function(e,t){if(":"!=e&&":"==e.charAt(0)){if(t)throw Error("Mode not supported for ex mappings");var r=e.substring(1);if(this.commandMap_[r]&&this.commandMap_[r].user)return void delete this.commandMap_[r]}else for(var o=e,n=0;n<Ve.length;n++)if(o==Ve[n].keys&&Ve[n].context===t&&Ve[n].user)return void Ve.splice(n,1);throw Error("No such mapping.")}};var Ee={map:function(e,t,r){var o=t.args;!o||o.length<2?e&&Ce(e,"Invalid mapping: "+t.input):Be.map(o[0],o[1],r)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},unmap:function(e,t,r){var o=t.args;!o||o.length<1?e&&Ce(e,"No such mapping: "+t.input):Be.unmap(o[0],r)},move:function(e,t){P.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var r=t.args;if(!r||r.length<1)e&&Ce(e,"Invalid mapping: "+t.input);else{var o=r[0].split("="),n=o[0],i=o[1],a=!1;if("?"==n.charAt(n.length-1)){if(i)throw Error("Trailing characters: "+t.argString);n=n.substring(0,n.length-1),a=!0}void 0===i&&"no"==n.substring(0,2)&&(n=n.substring(2),i=!1);var s=f[n]&&"boolean"==f[n].type;if(s&&null==i&&(i=!0),!s&&!i||a){var l=x(n);Ce(e,!0===l||!1===l?" "+(l?"":"no")+n:" "+n+"="+l)}else w(n,i)}},registers:function(e,t){var r=t.args,o=F.registerController.registers,n="----------Registers----------<br><br>";if(r){r=r.join("");for(var i=0;i<r.length;i++)a=r.charAt(i),F.registerController.isValidRegister(a)&&(n+='"'+a+" "+(o[a]||new E).toString()+"<br>")}else for(var a in o){var s=o[a].toString();s.length&&(n+='"'+a+" "+s+"<br>")}Ce(e,n)},sort:function(e,i){var a,s,l,c,t=function(){if(i.argString){var e=new _e.StringStream(i.argString);if(e.eat("!")&&(a=!0),e.eol())return;if(!e.eatSpace())return"Invalid arguments";var t=e.match(/[a-z]+/);if(t){t=t[0],s=-1!=t.indexOf("i"),l=-1!=t.indexOf("u");var r=-1!=t.indexOf("d")&&1,o=-1!=t.indexOf("x")&&1,n=-1!=t.indexOf("o")&&1;if(1<r+o+n)return"Invalid arguments";c=(r?"decimal":o&&"hex")||n&&"octal"}e.eatSpace()&&e.match(/\/.*\//)}}();if(t)Ce(e,t+": "+i.argString);else{var r=i.line||e.firstLine(),o=i.lineEnd||i.line||e.lastLine();if(r!=o){var n=Je(r,0),u=Je(o,Y(e,o)),h=e.getRange(n,u).split("\n"),p="decimal"==c?/(-?)([\d]+)/:"hex"==c?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==c?/([0-7]+)/:null,d="decimal"==c?10:"hex"==c?16:"octal"==c?8:null,f=[],m=[];if(c)for(var g=0;g<h.length;g++)p.exec(h[g])?f.push(h[g]):m.push(h[g]);else m=h;if(f.sort(k),m.sort(k),h=a?f.concat(m):m.concat(f),l){var v,y=h;for(h=[],g=0;g<y.length;g++)y[g]!=v&&h.push(y[g]),v=y[g]}e.replaceRange(h.join("\n"),n,u)}}function k(e,t){var r;a&&(r=e,e=t,t=r),s&&(e=e.toLowerCase(),t=t.toLowerCase());var o=c&&p.exec(e),n=c&&p.exec(t);return o?(o=parseInt((o[1]+o[2]).toLowerCase(),d))-(n=parseInt((n[1]+n[2]).toLowerCase(),d)):e<t?-1:1}},global:function(t,e){var r=e.argString;if(r){var o,n=void 0!==e.line?e.line:t.firstLine(),i=e.lineEnd||e.line||t.lastLine(),a=ye(r),s=r;if(a.length&&(s=a[0],o=a.slice(1,a.length).join("/")),s)try{Me(t,s,!0,!0)}catch(e){return void Ce(t,"Invalid regex: "+s)}for(var l=ve(t).getQuery(),c=[],u="",h=n;h<=i;h++)l.test(t.getLine(h))&&(c.push(h+1),u+=t.getLine(h)+"<br>");if(o){var p=0,d=function(){if(p<c.length){var e=c[p]+o;Be.processCommand(t,e,{callback:d})}p++};d()}else Ce(t,u)}else Ce(t,"Regular Expression missing from global")},substitute:function(t,e){if(!t.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var r,o,n,i,a=e.argString,s=a?ye(a):[],l="",c=!1,u=!1;if(s.length)r=s[0],void 0!==(l=s[1])&&(l=x("pcre")?function(e){for(var t=new _e.StringStream(e),r=[];!t.eol();){for(;t.peek()&&"\\"!=t.peek();)r.push(t.next());t.match("\\/",!0)?r.push("/"):t.match("\\\\",!0)?r.push("\\"):r.push(t.next())}return r.join("")}(l):function(e){for(var t,r=!1,o=[],n=-1;n<e.length;n++){var i=e.charAt(n)||"",a=e.charAt(n+1)||"";r?(o.push(i),r=!1):"\\"===i?(r=!0,t=a,m.test(t)||"$"===a?o.push("$"):"/"!==a&&"\\"!==a&&o.push("\\")):("$"===i&&o.push("$"),o.push(i),"/"===a&&o.push("\\"))}return o.join("")}(l),F.lastSubstituteReplacePart=l),o=s[2]?s[2].split(" "):[];else if(a&&a.length)return void Ce(t,"Substitutions should be of the form :s/pattern/replace/");if(o&&(n=o[0],i=parseInt(o[1]),n&&(-1!=n.indexOf("c")&&(c=!0,n.replace("c","")),-1!=n.indexOf("g")&&(u=!0,n.replace("g","")),r=r+"/"+n)),r)try{Me(t,r,!0,!0)}catch(e){return void Ce(t,"Invalid regex: "+r)}if(void 0!==(l=l||F.lastSubstituteReplacePart)){var h=ve(t).getQuery(),p=void 0!==e.line?e.line:t.getCursor().line,d=e.lineEnd||p;i&&(d=(p=d)+i-1);var f=D(t,Je(p,0));!function(n,e,o,i,a,s,r,l,c){var u=!(n.state.vim.exMode=!0),h=s.from();function p(){n.operation(function(){for(;!u;)d(),f();m()})}function d(){var e=n.getRange(s.from(),s.to()),t=e.replace(r,l);s.replace(t)}function f(){for(var e,t,r;s.findNext()&&(e=s.from(),t=i,r=a,"number"!=typeof e&&(e=e.line),t instanceof Array?k(e,t):r?t<=e&&e<=r:e==t);)if(o||!h||s.from().line!=h.line)return n.scrollIntoView(s.from(),30),n.setSelection(s.from(),s.to()),h=s.from(),void(u=!1);u=!0}function m(e){if(e&&e(),n.focus(),h){n.setCursor(h);var t=n.state.vim;t.exMode=!1,t.lastHPos=t.lastHSPos=h.ch}c&&c()}f(),u?Ce(n,"No matches for "+r.source):e?xe(n,{prefix:"replace with <strong>"+l+"</strong> (y/n/a/q/l)",onKeyDown:function(e,t,r){switch(_e.e_stop(e),_e.keyName(e)){case"Y":d(),f();break;case"N":f();break;case"A":var o=c;c=void 0,n.operation(p),c=o;break;case"L":d();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":m(r)}return u&&m(r),!0}}):(p(),c&&c())}(t,c,u,p,d,t.getSearchCursor(h,f),h,l,e.callback)}else Ce(t,"No previous substitute regular expression")},redo:_e.commands.redo,undo:_e.commands.undo,write:function(e){_e.commands.save?_e.commands.save(e):e.save()},nohlsearch:function(e){be(e)},delmarks:function(e,t){if(t.argString&&X(t.argString))for(var r=e.state.vim,o=new _e.StringStream(X(t.argString));!o.eol();){o.eatSpace();var n=o.pos;if(!o.match(/[a-zA-Z]/,!1))return void Ce(e,"Invalid argument: "+t.argString.substring(n));var i=o.next();if(o.match("-",!0)){if(!o.match(/[a-zA-Z]/,!1))return void Ce(e,"Invalid argument: "+t.argString.substring(n));var a=i,s=o.next();if(!(p(a)&&p(s)||d(a)&&d(s)))return void Ce(e,"Invalid argument: "+a+"-");var l=a.charCodeAt(0),c=s.charCodeAt(0);if(c<=l)return void Ce(e,"Invalid argument: "+t.argString.substring(n));for(var u=0;u<=c-l;u++){var h=String.fromCharCode(l+u);delete r.marks[h]}}else delete r.marks[i]}else Ce(e,"Argument required")}},Be=new Re;function Ie(e){var t=e.state.vim,r=F.macroModeState,o=F.registerController.getRegister("."),n=r.isPlaying,i=r.lastInsertModeChanges,a=[];if(!n){for(var s=i.inVisualBlock?t.lastSelection.visualBlock.height:1,l=i.changes,c=(a=[],0);c<l.length;)a.push(l[c]),l[c]instanceof He?c++:c+=s;i.changes=a,e.off("change",Pe),_e.off(e.getInputField(),"keydown",Fe)}!n&&1<t.insertModeRepeat&&(We(e,t,t.insertModeRepeat-1,!0),t.lastEditInputState.repeatOverride=t.insertModeRepeat),delete t.insertModeRepeat,t.insertMode=!1,e.setCursor(e.getCursor().line,e.getCursor().ch-1),e.setOption("keyMap","vim"),e.setOption("disableInput",!0),e.toggleOverwrite(!1),o.setText(i.changes.join("")),_e.signal(e,"vim-mode-change",{mode:"normal"}),r.isRecording&&function(e){if(!e.isPlaying){var t=e.latestRegister,r=F.registerController.getRegister(t);r&&r.pushInsertModeChanges(e.lastInsertModeChanges)}}(r)}function Oe(e){Ve.push(e)}function Ke(e,t,r,o){var n=F.registerController.getRegister(o),i=n.keyBuffer,a=0;r.isPlaying=!0,r.replaySearchQueries=n.searchQueries.slice(0);for(var s=0;s<i.length;s++)for(var l,c,u=i[s];u;)if(c=(l=/<\w+-.+?>|<\w+>|./.exec(u))[0],u=u.substring(l.index+c.length),_e.Vim.handleKey(e,c,"macro"),t.insertMode){var h=n.insertModeChanges[a++].changes;De(e,F.macroModeState.lastInsertModeChanges.changes=h,1),Ie(e)}r.isPlaying=!1}function Pe(e,t){var r=F.macroModeState,o=r.lastInsertModeChanges;if(!r.isPlaying)for(;t;){if(o.expectCursorActivityForChange=!0,"+input"==t.origin||"paste"==t.origin||void 0===t.origin){var n=t.text.join("\n");o.changes.push(n)}t=t.next}}function Ne(e){var t=e.state.vim;if(t.insertMode){var r=F.macroModeState;if(r.isPlaying)return;var o=r.lastInsertModeChanges;o.expectCursorActivityForChange?o.expectCursorActivityForChange=!1:o.changes=[]}else e.curOp.isVimOp||function(e,t){var r=e.getCursor("anchor"),o=e.getCursor("head");if(t.visualMode&&!e.somethingSelected()?ie(e,!1):t.visualMode||t.insertMode||!e.somethingSelected()||(t.visualMode=!0,t.visualLine=!1,_e.signal(e,"vim-mode-change",{mode:"visual"})),t.visualMode){var n=Q(o,r)?0:-1,i=Q(o,r)?-1:0;o=V(o,0,n),r=V(r,0,i),t.sel={anchor:r,head:o},fe(e,t,"<",z(o,r)),fe(e,t,">",Z(o,r))}else t.insertMode||(t.lastHPos=e.getCursor().ch)}(e,t);t.visualMode&&je(e)}function je(e){var t=e.state.vim,r=$(t.sel.head),o=V(r,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(r,o,{className:"cm-animate-fat-cursor"})}function He(e){this.keyName=e}function Fe(e){var t=F.macroModeState.lastInsertModeChanges,r=_e.keyName(e);r&&(-1==r.indexOf("Delete")&&-1==r.indexOf("Backspace")||_e.lookupKey(r,"vim-insert",function(){return t.changes.push(new He(r)),!0}))}function We(r,o,e,t){var n=F.macroModeState;n.isPlaying=!0;var i=!!o.lastEditActionCommand,a=o.inputState;function s(){i?P.processAction(r,o,o.lastEditActionCommand):P.evalInput(r,o)}function l(e){if(0<n.lastInsertModeChanges.changes.length){e=o.lastEditActionCommand?e:1;var t=n.lastInsertModeChanges;De(r,t.changes,e)}}if(o.inputState=o.lastEditInputState,i&&o.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<e;c++)s(),l(1);else t||s(),l(e);o.inputState=a,o.insertMode&&!t&&Ie(r),n.isPlaying=!1}function De(t,e,r){function o(e){return"string"==typeof e?_e.commands[e](t):e(t),!0}var n,i,a=t.getCursor("head"),s=F.macroModeState.lastInsertModeChanges.inVisualBlock;if(s){var l=t.state.vim.lastSelection,c=(n=l.anchor,{line:(i=l.head).line-n.line,ch:i.line-n.line});te(t,a,c.line+1),r=t.listSelections().length,t.setCursor(a)}for(var u=0;u<r;u++){s&&t.setCursor(V(a,u,0));for(var h=0;h<e.length;h++){var p=e[h];if(p instanceof He)_e.lookupKey(p.keyName,"vim-insert",o);else{var d=t.getCursor();t.replaceRange(p,d,d)}}}s&&t.setCursor(V(a,0,1))}return _e.keyMap.vim={attach:o,detach:e,call:t},C("insertModeEscKeysTimeout",200,"number"),_e.keyMap["vim-insert"]={"Ctrl-N":"autocomplete","Ctrl-P":"autocomplete",Enter:function(e){(_e.commands.newlineAndIndentContinueComment||_e.commands.newlineAndIndent)(e)},fallthrough:["default"],attach:o,detach:e,call:t},_e.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:o,detach:e,call:t},L(),T}()});
var jsonlint=function(){var t={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(t,e,i,n,s,r,h){var l=r.length-1;switch(s){case 1:this.$=t.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b");break;case 2:this.$=Number(t);break;case 3:this.$=null;break;case 4:this.$=!0;break;case 5:this.$=!1;break;case 6:return this.$=r[l-1];case 13:this.$={};break;case 14:this.$=r[l-1];break;case 15:this.$=[r[l-2],r[l]];break;case 16:this.$={},this.$[r[l][0]]=r[l][1];break;case 17:this.$=r[l-2],r[l-2][r[l][0]]=r[l][1];break;case 18:this.$=[];break;case 19:this.$=r[l-1];break;case 20:this.$=[r[l]];break;case 21:this.$=r[l-2],r[l-2].push(r[l])}},table:[{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],12:1,13:2,15:7,16:8,17:[1,14],23:[1,15]},{1:[3]},{14:[1,16]},{14:[2,7],18:[2,7],22:[2,7],24:[2,7]},{14:[2,8],18:[2,8],22:[2,8],24:[2,8]},{14:[2,9],18:[2,9],22:[2,9],24:[2,9]},{14:[2,10],18:[2,10],22:[2,10],24:[2,10]},{14:[2,11],18:[2,11],22:[2,11],24:[2,11]},{14:[2,12],18:[2,12],22:[2,12],24:[2,12]},{14:[2,3],18:[2,3],22:[2,3],24:[2,3]},{14:[2,4],18:[2,4],22:[2,4],24:[2,4]},{14:[2,5],18:[2,5],22:[2,5],24:[2,5]},{14:[2,1],18:[2,1],21:[2,1],22:[2,1],24:[2,1]},{14:[2,2],18:[2,2],22:[2,2],24:[2,2]},{3:20,4:[1,12],18:[1,17],19:18,20:19},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:23,15:7,16:8,17:[1,14],23:[1,15],24:[1,21],25:22},{1:[2,6]},{14:[2,13],18:[2,13],22:[2,13],24:[2,13]},{18:[1,24],22:[1,25]},{18:[2,16],22:[2,16]},{21:[1,26]},{14:[2,18],18:[2,18],22:[2,18],24:[2,18]},{22:[1,28],24:[1,27]},{22:[2,20],24:[2,20]},{14:[2,14],18:[2,14],22:[2,14],24:[2,14]},{3:20,4:[1,12],20:29},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:30,15:7,16:8,17:[1,14],23:[1,15]},{14:[2,19],18:[2,19],22:[2,19],24:[2,19]},{3:5,4:[1,12],5:6,6:[1,13],7:3,8:[1,9],9:4,10:[1,10],11:[1,11],13:31,15:7,16:8,17:[1,14],23:[1,15]},{18:[2,17],22:[2,17]},{18:[2,15],22:[2,15]},{22:[2,21],24:[2,21]}],defaultActions:{16:[2,6]},parseError:function(t,e){throw new Error(t)},parse:function(t){var e=this,i=[0],n=[null],s=[],r=this.table,h="",l=0,o=0,a=0;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var c=this.lexer.yylloc;function u(){var t;return"number"!=typeof(t=e.lexer.lex()||1)&&(t=e.symbols_[t]||t),t}s.push(c),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var y,p,f,g,m,d,x,_,b,E,S={};;){if(f=i[i.length-1],void 0===(g=this.defaultActions[f]?this.defaultActions[f]:(null==y&&(y=u()),r[f]&&r[f][y]))||!g.length||!g[0]){if(!a){for(d in b=[],r[f])this.terminals_[d]&&2<d&&b.push("'"+this.terminals_[d]+"'");var k="";k=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+this.terminals_[y]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==y?"end of input":"'"+(this.terminals_[y]||y)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[y]||y,line:this.lexer.yylineno,loc:c,expected:b})}if(3==a){if(1==y)throw new Error(k||"Parsing halted.");o=this.lexer.yyleng,h=this.lexer.yytext,l=this.lexer.yylineno,c=this.lexer.yylloc,y=u()}for(;!(2..toString()in r[f]);){if(0==f)throw new Error(k||"Parsing halted.");E=1,i.length=i.length-2*E,n.length=n.length-E,s.length=s.length-E,f=i[i.length-1]}p=y,y=2,g=r[f=i[i.length-1]]&&r[f][2],a=3}if(g[0]instanceof Array&&1<g.length)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+y);switch(g[0]){case 1:i.push(y),n.push(this.lexer.yytext),s.push(this.lexer.yylloc),i.push(g[1]),y=null,p?(y=p,p=null):(o=this.lexer.yyleng,h=this.lexer.yytext,l=this.lexer.yylineno,c=this.lexer.yylloc,0<a&&a--);break;case 2:if(x=this.productions_[g[1]][1],S.$=n[n.length-x],S._$={first_line:s[s.length-(x||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(x||1)].first_column,last_column:s[s.length-1].last_column},void 0!==(m=this.performAction.call(S,h,o,l,this.yy,g[1],n,s)))return m;x&&(i=i.slice(0,-1*x*2),n=n.slice(0,-1*x),s=s.slice(0,-1*x)),i.push(this.productions_[g[1]][0]),n.push(S.$),s.push(S._$),_=r[i[i.length-2]][i[i.length-1]],i.push(_);break;case 3:return!0}}return!0}},e={EOF:1,parseError:function(t,e){if(!this.yy.parseError)throw new Error(t);this.yy.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.match+=t,this.matched+=t,t.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),t},unput:function(t){return this._input=t+this._input,this},more:function(){return this._more=!0,this},less:function(t){this._input=this.match.slice(t)+this._input},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(20<t.length?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(20<t.length?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;var t,e,i,n,s;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),h=0;h<r.length&&(!(i=this._input.match(this.rules[r[h]]))||e&&!(i[0].length>e[0].length)||(e=i,n=h,this.options.flex));h++);return e?((s=e[0].match(/\n.*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-1:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,r[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t||void 0):""===this._input?this.EOF:void this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return void 0!==t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)},options:{},performAction:function(t,e,i,n){switch(i){case 0:break;case 1:return 6;case 2:return e.yytext=e.yytext.substr(1,e.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},rules:[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};return t.lexer=e,t}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=jsonlint,exports.parse=function(){return jsonlint.parse.apply(jsonlint,arguments)},exports.main=function(t){if(!t[1])throw new Error("Usage: "+t[0]+" FILE");if("undefined"!=typeof process)var e=require("fs").readFileSync(require("path").join(process.cwd(),t[1]),"utf8");else e=require("file").path(require("file").cwd()).join(t[1]).read({charset:"utf-8"});return exports.parser.parse(e)},"undefined"!=typeof module&&require.main===module&&exports.main("undefined"!=typeof process?process.argv.slice(1):require("system").args));
goLintFound=[],function(n){"use strict";n.registerHelper("lint","go",function(n){return goLintFound})}(CodeMirror);