(function(){"ace"in window||(window.ace={});ace.config={storage_method:0,cookie_expiry:604800,cookie_path:""};"vars"in window.ace||(window.ace.vars={});ace.vars.very_old_ie=!("querySelector"in document.documentElement);ace.settings={saveState:function(n,t,i,r){if(!n||typeof n=="string"&&!(n=document.getElementById(n))||!n.hasAttribute("id")||!ace.hasClass(n,"ace-save-state"))return!1;var t=t||"class",o=n.getAttribute("id"),u=ace.data.get("state","id-"+o)||{};if(typeof u=="string")try{u=JSON.parse(u)}catch(h){u={}}var f,e=typeof i!="undefined",s=!1;/checked|disabled|readonly|value/i.test(t)?f=e?i:n[t]:n.hasAttribute(t)?f=e?i:n.getAttribute(t):e||(s=!0);s?delete u[t]:/class/i.test(t)?(u.hasOwnProperty(t)||(u[t]={}),r===!0?u[t][f]=1:r===!1?u[t][f]=-1:u[t].className=f):u[t]=f;ace.data.set("state","id-"+o,JSON.stringify(u))},loadState:function(n,t){var f,i,u,r;if(!n||typeof n=="string"&&!(n=document.getElementById(n))||!n.hasAttribute("id"))return!1;if(f=n.getAttribute("id"),i=ace.data.get("state","id-"+f)||{},typeof i=="string")try{i=JSON.parse(i)}catch(e){i={}}if(u=function(n,t,i){var r,u;if(/class/i.test(t)){if(typeof i=="object"){"className"in i&&n.setAttribute("class",i.className);for(r in i)i.hasOwnProperty(r)&&(u=i[r],u==1?ace.addClass(n,r):u==-1&&ace.removeClass(n,r))}}else/checked|disabled|readonly|value/i.test(t)?n[t]=i:n.setAttribute(t,i)},t!==undefined)i.hasOwnProperty(t)&&i[t]!==null&&u(n,t,i[t]);else for(r in i)i.hasOwnProperty(r)&&i[r]!==null&&u(n,r,i[r])},clearState:function(n){var t=null;typeof n=="string"?t=n:"hasAttribute"in n&&n.hasAttribute("id")&&(t=n.getAttribute("id"));t&&ace.data.remove("state","id-"+t)}},function(){var u=function(){var t=!1,f="animation",e="",i="Webkit Moz O ms Khtml".split(" "),r="",u=document.createElement("div"),n;if(u.style.animationName!==undefined&&(t=!0),t===!1)for(n=0;n<i.length;n++)if(u.style[i[n]+"AnimationName"]!==undefined){r=i[n];f=r+"Animation";e="-"+r.toLowerCase()+"-";t=!0;break}return t},r,i,n,t;ace.vars.animation=u();ace.vars.animation?(r="@keyframes nodeInserted{from{outline-color:#fff}to{outline-color:#000}}@-moz-keyframes nodeInserted{from{outline-color:#fff}to{outline-color:#000}}@-webkit-keyframes nodeInserted{from{outline-color:#fff}to{outline-color:#000}}@-ms-keyframes nodeInserted{from{outline-color:#fff}to{outline-color:#000}}@-o-keyframes nodeInserted{from{outline-color:#fff}to{outline-color:#000}}.ace-save-state{animation-duration:10ms;-o-animation-duration:10ms;-ms-animation-duration:10ms;-moz-animation-duration:10ms;-webkit-animation-duration:10ms;animation-delay:0s;-o-animation-delay:0s;-ms-animation-delay:0s;-moz-animation-delay:0s;-webkit-animation-delay:0s;animation-name:nodeInserted;-o-animation-name:nodeInserted;-ms-animation-name:nodeInserted;-moz-animation-name:nodeInserted;-webkit-animation-name:nodeInserted}",i=document.createElement("style"),i.innerHTML=r,document.head.appendChild(i),n=function(n){var t=n.target;t&&ace.hasClass(t,"ace-save-state")&&ace.settings.loadState(t)},document.addEventListener("animationstart",n,!1),document.addEventListener("MSAnimationStart",n,!1),document.addEventListener("webkitAnimationStart",n,!1)):(t=function(){for(var t=document.querySelectorAll(".ace-save-state"),n=0;n<t.length;n++)ace.settings.loadState(t[n])},document.readyState=="complete"?t():document.addEventListener?document.addEventListener("DOMContentLoaded",t,!1):document.attachEvent&&document.attachEvent("onreadystatechange",function(){document.readyState=="complete"&&t()}))}();ace.data_storage=function(n,t){var r="ace_",i=null,u=0;(n==1||n===t||n==0)&&"localStorage"in window&&window.localStorage!==null?(i=ace.storage,u=1):i==null&&(n==2||n===t)&&"cookie"in document&&document.cookie!==null&&(i=ace.cookie,u=2);this.set=function(n,t,f,e,o,s){if(i)if(f===s)f=t,t=n,f==null?i.remove(r+t):u==1?i.set(r+t,f):u==2&&i.set(r+t,f,ace.config.cookie_expiry,e||ace.config.cookie_path);else if(u==1)f==null?i.remove(r+n+"_"+t):(o&&typeof f=="object"&&(f=JSON.stringify(f)),i.set(r+n+"_"+t,f));else if(u==2){var c=i.get(r+n),h=c?JSON.parse(c):{};if(f==null){if(delete h[t],ace.sizeof(h)==0){i.remove(r+n);return}}else h[t]=f;i.set(r+n,JSON.stringify(h),ace.config.cookie_expiry,e||ace.config.cookie_path)}};this.get=function(n,t,f,e){var o,s,h;if(!i)return null;if(t===e)return t=n,i.get(r+t);if(u==1){if(o=i.get(r+n+"_"+t),f&&o)try{o=JSON.parse(o)}catch(c){}return o}if(u==2)return s=i.get(r+n),h=s?JSON.parse(s):{},t in h?h[t]:null};this.remove=function(n,t,r){i&&(t===r?(t=n,this.set(t,null)):this.set(n,t,null))}};ace.cookie={get:function(n){var i=document.cookie,r,u=n+"=",t;if(i){if(t=i.indexOf("; "+u),t==-1){if(t=i.indexOf(u),t!=0)return null}else t+=2;return r=i.indexOf(";",t),r==-1&&(r=i.length),decodeURIComponent(i.substring(t+u.length,r))}},set:function(n,t,i,r,u,f){var e=new Date;typeof i=="object"&&i.toGMTString?i=i.toGMTString():parseInt(i,10)?(e.setTime(e.getTime()+parseInt(i,10)*1e3),i=e.toGMTString()):i="";document.cookie=n+"="+encodeURIComponent(t)+(i?"; expires="+i:"")+(r?"; path="+r:"")+(u?"; domain="+u:"")+(f?"; secure":"")},remove:function(n,t){this.set(n,"",-1e3,t)}};ace.storage={get:function(n){return window.localStorage.getItem(n)},set:function(n,t){window.localStorage.setItem(n,t)},remove:function(n){window.localStorage.removeItem(n)}};ace.sizeof=function(n){var t=0;for(var i in n)n.hasOwnProperty(i)&&t++;return t};ace.hasClass=function(n,t){return(" "+n.className+" ").indexOf(" "+t+" ")>-1};ace.addClass=function(n,t){for(var u,r=t.split(/\s+/),i=0;i<r.length;i++)r[i].length>0&&!ace.hasClass(n,r[i])&&(u=n.className,n.className=u+(u.length?" ":"")+r[i])};ace.removeClass=function(n,t){for(var r=t.split(/\s+/),i=0;i<r.length;i++)r[i].length>0&&ace.replaceClass(n,r[i]);ace.replaceClass(n,t)};ace.replaceClass=function(n,t,i){var r=new RegExp("(^|\\s)"+t+"(\\s|$)","i");n.className=n.className.replace(r,function(n,t,r){return i?t+i+r:" "}).replace(/^\s+|\s+$/g,"")};ace.toggleClass=function(n,t){ace.hasClass(n,t)?ace.removeClass(n,t):ace.addClass(n,t)};ace.isHTMlElement=function(n){return window.HTMLElement?n instanceof HTMLElement:"nodeType"in n?n.nodeType==1:!1};ace.data=new ace.data_storage(ace.config.storage_method)})()