ace.define("ace/ext/settings_menu",["require","exports","module","ace/ext/menu_tools/generate_settings_menu","ace/ext/menu_tools/overlay_page","ace/editor"],function(e,t,r){function o(e){var t=document.getElementById("ace_settingsmenu");t||a(e,n(e),"0","0","0")}var n=e("./menu_tools/generate_settings_menu").generateSettingsMenu,a=e("./menu_tools/overlay_page").overlayPage;r.exports.init=function(t){var r=e("ace/editor").Editor;r.prototype.showSettingsMenu=function(){o(this)}}}),ace.define("ace/ext/menu_tools/generate_settings_menu",["require","exports","module","ace/ext/menu_tools/element_generator","ace/ext/menu_tools/add_editor_menu_options","ace/ext/menu_tools/get_set_functions"],function(e,t,r){var o=e("./element_generator"),n=e("./add_editor_menu_options").addEditorMenuOptions,a=e("./get_set_functions").getSetFunctions;r.exports.generateSettingsMenu=function(e){function t(){l.sort(function(e,t){var r=e.getAttribute("contains"),o=t.getAttribute("contains");return r.localeCompare(o)})}function r(){var e=document.createElement("div");return e.setAttribute("id","ace_settingsmenu"),l.forEach(function(t){e.appendChild(t)}),e}function i(t,r,n,a){var i,s=document.createElement("div");return s.setAttribute("contains",n),s.setAttribute("class","ace_optionsMenuEntry"),s.setAttribute("style","clear: both;"),s.appendChild(o.createLabel(n.replace(/^set/,"").replace(/([A-Z])/g," $1").trim(),n)),Array.isArray(a)?(i=o.createSelection(n,a,r),i.addEventListener("change",function(r){try{e.menuOptions[r.target.id].forEach(function(e){e.textContent!==r.target.textContent&&delete e.selected}),t[r.target.id](r.target.value)}catch(o){throw new Error(o)}})):"boolean"==typeof a?(i=o.createCheckbox(n,a,r),i.addEventListener("change",function(e){try{t[e.target.id](!!e.target.checked)}catch(r){throw new Error(r)}})):(i=o.createInput(n,a,r),i.addEventListener("change",function(e){try{t[e.target.id]("true"===e.target.value?!0:"false"===e.target.value?!1:e.target.value)}catch(r){throw new Error(r)}})),i.style.cssText="float:right;",s.appendChild(i),s}function s(t,r,o,n){var a=e.menuOptions[t],s=r[n]();return"object"==typeof s&&(s=s.$id),a.forEach(function(e){e.value===s&&(e.selected="selected")}),i(r,o,t,a)}function c(t){var r=t.functionName,o=t.parentObj,n=t.parentName,a,c=r.replace(/^set/,"get");if(void 0!==e.menuOptions[r])l.push(s(r,o,n,c));else if("function"==typeof o[c])try{a=o[c](),"object"==typeof a&&(a=a.$id),l.push(i(o,n,r,a))}catch(u){}}var l=[];return n(e),a(e).forEach(function(e){c(e)}),t(),r()}}),ace.define("ace/ext/menu_tools/element_generator",["require","exports","module"],function(e,t,r){r.exports.createOption=function(e){var t,r=document.createElement("option");for(t in e)e.hasOwnProperty(t)&&("selected"===t?r.setAttribute(t,e[t]):r[t]=e[t]);return r},r.exports.createCheckbox=function(e,t,r){var o=document.createElement("input");return o.setAttribute("type","checkbox"),o.setAttribute("id",e),o.setAttribute("name",e),o.setAttribute("value",t),o.setAttribute("class",r),t&&o.setAttribute("checked","checked"),o},r.exports.createInput=function(e,t,r){var o=document.createElement("input");return o.setAttribute("type","text"),o.setAttribute("id",e),o.setAttribute("name",e),o.setAttribute("value",t),o.setAttribute("class",r),o},r.exports.createLabel=function(e,t){var r=document.createElement("label");return r.setAttribute("for",t),r.textContent=e,r},r.exports.createSelection=function(e,t,o){var n=document.createElement("select");return n.setAttribute("id",e),n.setAttribute("name",e),n.setAttribute("class",o),t.forEach(function(e){n.appendChild(r.exports.createOption(e))}),n}}),ace.define("ace/ext/menu_tools/add_editor_menu_options",["require","exports","module","ace/ext/modelist","ace/ext/themelist"],function(e,t,r){r.exports.addEditorMenuOptions=function(t){var r=e("../modelist"),o=e("../themelist");t.menuOptions={setNewLineMode:[{textContent:"unix",value:"unix"},{textContent:"windows",value:"windows"},{textContent:"auto",value:"auto"}],setTheme:[],setMode:[],setKeyboardHandler:[{textContent:"ace",value:""},{textContent:"vim",value:"ace/keyboard/vim"},{textContent:"emacs",value:"ace/keyboard/emacs"}]},t.menuOptions.setTheme=o.themes.map(function(e){return{textContent:e.caption,value:e.theme}}),t.menuOptions.setMode=r.modes.map(function(e){return{textContent:e.name,value:e.mode}})}}),ace.define("ace/ext/modelist",["require","exports","module"],function(e,t,r){function o(e){for(var t=c.text,r=e.split(/[\/\\]/).pop(),o=0;o