BUGFIX #24: toggle_string arguments are now escaped before being inserted into the DOM.

This commit is contained in:
n1474335 committed 2016-11-30 19:33:20 +00:00
1 parent 09d515cbae
commit 2f0bc54046
5 files changed
+12 -11

No files matched your search

+4 -4
View File
@@ -91,11 +91,11 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}#content-wrapper{top:0;left:0;width:100%;height:100%}#banner{height:30px;text-align:center;line-height:30px}#wrapper{top:30px;bottom:0}div#operations,div#recipe{width:50%;height:100%}div#input,div#output{width:100%;height:50%}.title{padding:10px;height:43px}.textarea-wrapper{top:43px;bottom:0;width:100%;overflow:hidden}#output-html,textarea{width:100%;height:100%;border:none;padding:3px;-moz-padding-start:3px;-moz-padding-end:3px}#input-text,#output-html,#output-text{position:relative;border-width:0;margin:0;resize:none;background-color:transparent;white-space:pre-wrap;word-wrap:break-word}#output-html{display:none;overflow-y:auto;-moz-padding-start:1px}.split{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:relative}.gutter.gutter-horizontal,.split.split-horizontal{height:100%;float:left}#input-highlighter,#output-highlighter{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px;margin:0;overflow:hidden;letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;color:#fff;background-color:transparent;border:none}#op_list,#rec_list,.op_list{margin:0;padding:0;list-style-type:none}#op_list,#rec_list{position:absolute;top:43px;bottom:0;width:100%}.io-btn-group,.io-info{margin-top:-4px;float:right}#rec_list{bottom:120px;overflow:auto}.operation{cursor:pointer;padding:10px;list-style-type:none;position:relative}#controls{position:absolute;width:100%;height:120px;bottom:0;padding:10px}.io-info{margin-right:20px;height:30px;text-align:right;line-height:10px}.arg-group,.inline-args input[type=checkbox]{margin-top:10px}#input-info{line-height:15px}.arg-group{display:table;width:100%}.arg-group-text{display:block}.inline-args{float:left;width:auto;margin-right:30px;height:34px}.inline-args input[type=number]{width:100px}.arg-input{display:table-cell;width:100%;padding:6px 12px}.short-string{width:150px}select{display:block}.arg[disabled]{cursor:not-allowed;opacity:1}textarea.arg{width:100%;min-height:50px;height:70px;margin-top:5px;border:1px solid #ddd;resize:vertical}.arg-label{display:table-cell;width:1px;padding-right:10px;font-weight:400;white-space:pre}.title,optgroup{font-weight:700}.editable-option{position:relative;display:inline-block}.editable-option-input{position:absolute;top:1px;left:1px;width:calc(100% - 20px);height:calc(100% - 2px)!important;border:none!important}#operational-controls{width:65%;float:left;text-align:center}#bake-group{display:table;width:100%}#bake{display:table-cell;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}#auto-bake-label{display:table-cell;padding:1px;line-height:1.35;width:60px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #5cb85c}#auto-bake-label:hover{border-left-color:#398439}#auto-bake-label div{font-size:10px;padding:2px}#extra-controls{float:right;width:35%;padding-left:10px}.op-icon{float:right;margin-left:10px;margin-top:3px}.recip-icons{position:absolute;top:13px;right:10px;height:16px}.recip-icon{margin-right:10px;vertical-align:baseline;float:right}.disable-icon{width:16px;height:16px;margin-top:-1px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVQ4y6WTPWgTYRjHf8nlfVvuoDVIP4Yuki4WHKoUqggFRUTsUEGkVG2hmCq6OnTwIxYHB+eijZOKdLNDW1pKKyGigh8dBHUJElxyBgx3vEnukvdyDrUhRXDxGR+e/+/583xEwjDkfyIGwNVTzURm4tYAMA6MAoN/0tvAMrA48uL+l2bx4w0iYRjSuHKC6OnTZLqHk8CcaZq9bW1tSCkBqNVq+L5PpVIpAHdGfr5LN9bXiT7Z2nGgteb1/qFkLBJZ6OjowHEc8vk8pVIJgHg8TldXF52dnb2u6y5s7R/iuF5JSyAKkLl4eyAMwznLsrBtm1wu99Z13amk+BFJih8R13WXANrb27EsizAM5zIXbw+wC9Baj0spe5VSFAqFt4ZhXJ6ufXuK55E5cDKVSCTGenp6yGazKKWQUvZqrcebgCAIRqWUOI6DEOLR1K8POapVMgfPpoC7u2LLspYcx0FKSRAEo60OBg3DwPd9Jr5vPqWvj8zh83vEwL2J75vnfN/HMAy01oPNNQZBQBAEO1OvVsl0D/8lTuZfpYDd7gRBQKuD7XK5jGmarB679PIv8deVFJUKq8cuTZqmSblcRmu93QpYVkohhMCyrLE94n2/UlSrbJy5kRBCXBNCoJRCa73cClh0XbfgeR6WZZHNZunv719KvnmeYnWVVxdmJ2Ox2DMhxFHP83Bdt6C1XgR2LvHzQDvvb84npZQL8Xgc0zSJRqN7br7RaFCpVCiVStRqtZmhh9fTh754TQdMr82nPc+bsW27UCwWUUpRr9ep1+sopSgWi9i2XfA8b2Z6bT6ttabp4GMi0uz0aXbhn890+MFM85mO5MIdwP/Eb1pMUCdctYRzAAAAAElFTkSuQmCC) no-repeat}.disable-icon-selected{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFUlEQVR4XqWTP0tbURjGn9zY3mjBwsUhBQtS6XKxiNypIGZJ6SKYUYdaKWg7OrrE3pYO+Qit3dpFuuQO6lI7Z4nESQdLine truncated
*/.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}#content-wrapper{top:0;left:0;width:100%;height:100%}#banner{height:30px;text-align:center;line-height:30px}#wrapper{top:30px;bottom:0}div#operations,div#recipe{width:50%;height:100%}div#input,div#output{width:100%;height:50%}.title{padding:10px;height:43px}.textarea-wrapper{top:43px;bottom:0;width:100%;overflow:hidden}#output-html,textarea{width:100%;height:100%;border:none;padding:3px;-moz-padding-start:3px;-moz-padding-end:3px}#input-text,#output-html,#output-text{position:relative;border-width:0;margin:0;resize:none;background-color:transparent;white-space:pre-wrap;word-wrap:break-word}#output-html{display:none;overflow-y:auto;-moz-padding-start:1px}.split{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;position:relative}.gutter.gutter-horizontal,.split.split-horizontal{height:100%;float:left}#input-highlighter,#output-highlighter{position:absolute;left:0;top:0;width:100%;height:100%;padding:3px;margin:0;overflow:hidden;letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;color:#fff;background-color:transparent;border:none}#op_list,#rec_list,.op_list{margin:0;padding:0;list-style-type:none}#op_list,#rec_list{position:absolute;top:43px;bottom:0;width:100%}.io-btn-group,.io-info{margin-top:-4px;float:right}#rec_list{bottom:120px;overflow:auto}.operation{cursor:pointer;padding:10px;list-style-type:none;position:relative}#controls{position:absolute;width:100%;height:120px;bottom:0;padding:10px}.io-info{margin-right:20px;height:30px;text-align:right;line-height:10px}.arg-group,.inline-args input[type=checkbox]{margin-top:10px}#input-info{line-height:15px}.arg-group{display:table;width:100%}.arg-group-text{display:block}.inline-args{float:left;width:auto;margin-right:30px;height:34px}.inline-args input[type=number]{width:100px}.arg-input{display:table-cell;width:100%;padding:6px 12px}.short-string{width:150px}select{display:block}.arg[disabled]{cursor:not-allowed;opacity:1}textarea.arg{width:100%;min-height:50px;height:70px;margin-top:5px;border:1px solid #ddd;resize:vertical}.arg-label{display:table-cell;width:1px;padding-right:10px;font-weight:400;white-space:pre}.title,optgroup{font-weight:700}.editable-option{position:relative;display:inline-block}.editable-option-input{position:absolute;top:1px;left:1px;width:calc(100% - 20px);height:calc(100% - 2px)!important;border:none!important}#operational-controls{width:65%;float:left;text-align:center}#bake-group{display:table;width:100%}#bake{display:table-cell;width:100%;border-top-right-radius:0;border-bottom-right-radius:0}#auto-bake-label{display:table-cell;padding:1px;line-height:1.35;width:60px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid #5cb85c}#auto-bake-label:hover{border-left-color:#398439}#auto-bake-label div{font-size:10px;padding:2px}#extra-controls{float:right;width:35%;padding-left:10px}.op-icon{float:right;margin-left:10px;margin-top:3px}.recip-icons{position:absolute;top:13px;right:10px;height:16px}.recip-icon{margin-right:10px;vertical-align:baseline;float:right}.disable-icon{width:16px;height:16px;margin-top:-1px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVQ4y6WTPWgTYRjHf8nlfVvuoDVIP4Yuki4WHKoUqggFRUTsUEGkVG2hmCq6OnTwIxYHB+eijZOKdLNDW1pKKyGigh8dBHUJElxyBgx3vEnukvdyDrUhRXDxGR+e/+/583xEwjDkfyIGwNVTzURm4tYAMA6MAoN/0tvAMrA48uL+l2bx4w0iYRjSuHKC6OnTZLqHk8CcaZq9bW1tSCkBqNVq+L5PpVIpAHdGfr5LN9bXiT7Z2nGgteb1/qFkLBJZ6OjowHEc8vk8pVIJgHg8TldXF52dnb2u6y5s7R/iuF5JSyAKkLl4eyAMwznLsrBtm1wu99Z13amk+BFJih8R13WXANrb27EsizAM5zIXbw+wC9Baj0spe5VSFAqFt4ZhXJ6ufXuK55E5cDKVSCTGenp6yGazKKWQUvZqrcebgCAIRqWUOI6DEOLR1K8POapVMgfPpoC7u2LLspYcx0FKSRAEo60OBg3DwPd9Jr5vPqWvj8zh83vEwL2J75vnfN/HMAy01oPNNQZBQBAEO1OvVsl0D/8lTuZfpYDd7gRBQKuD7XK5jGmarB679PIv8deVFJUKq8cuTZqmSblcRmu93QpYVkohhMCyrLE94n2/UlSrbJy5kRBCXBNCoJRCa73cClh0XbfgeR6WZZHNZunv719KvnmeYnWVVxdmJ2Ox2DMhxFHP83Bdt6C1XgR2LvHzQDvvb84npZQL8Xgc0zSJRqN7br7RaFCpVCiVStRqtZmhh9fTh754TQdMr82nPc+bsW27UCwWUUpRr9ep1+sopSgWi9i2XfA8b2Z6bT6ttabp4GMi0uz0aXbhn890+MFM85mO5MIdwP/Eb1pMUCdctYRzAAAAAElFTkSuQmCC) no-repeat}.disable-icon-selected{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACFUlEQVR4XqWTP0tbURjGn9zY3mjBwsUhBQtS6XKxiNypIGZJ6SKYUYdaKWg7OrrE3pYO+Qit3dpFuuQO6lI7Z4nESQdLine truncated
if (navigator.userAgent && navigator.userAgent.match(/MSIE \d\d?\./)) {
document.write("Internet Explorer is not supported, please use Firefox or Chrome instead");
alert("Internet Explorer is not supported, please use Firefox or Chrome instead");
}</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAE1UlEQVR4XoWVC0xT1x/Hv729t7e3LSoqWIRNW6uoARVH5mPGzfcmRvbSacISI5n42Mss25jROd0mOjXO7C9/3XSZdvjIlsxFYCrETWe34nQpD4GIIKgDIaAilpZH+9svJ9BUg/O0n9w2J+fz+55f77nVEREeN2wpWw0AEph7TPW1vMzHLpL/QzYJwGpmKjOM8TMSGJ6rAHCW2cFF6vsSiMR9pMtiMhIcVvMz44eBr0gcaRXzZVcbUXq1AS5PbRd/9gFYxfLDD4ulh6RjAFRqqpzxyco55q83vIwnrAPgKqnD29tP4N0deSgquwl73GAc2LhI2bRqbj9NVfbxulzG1KeYpSqA/LH2IcPz/5du5gVIXevE9kO/o8BdjVstXty67UXhXzXYffRPvP7xjxgcacEve5ZbEh0xswHsflTirZpRic5e96Jup/McPjvwK28/BlvemofjO9Nw7ps3ULBnGQ5uegVL5o1DEMCOHBcO5Rfjq8xUlYMs5XAzQjYiwvD5WZMYrzP3Eh095aHExV9SctoeOna6hB41jhWWUcraHHr+HSeddlfR4ZMesqVkNbLHws5Q4jcnxMeYZj7twC5OoaqKgACccl/F+r1nkLEtF0cKLocCzUq2QdNUaEYDvs31YO7kkUgaHWsGkBLeiqnTkmzcyyp0BwgGRYZqUOA8WYq9P13ClZt3cN8XgKv0Zkgs6yWYNIMQB0iHC+X1mJ48wgRgMnruSSOAJ8dxP8uvNUFR9EJsMMhQZL0oYFQNQpK+YEJIXFLTzFIVRhbzPGob7iLRYdVJkm56b+LxjI/vU1TWNkNmmcJigSgg2oKM1CQkjRoipNcb7yHPXSvSaizledQ1tmHM8CgQ0Zjek3efkXQ6HSTenqzXM5JIK8TMwmkOJI8WB0QInIVXoHBBjgdOCPBbkWWwA/zy94orGLm8pgkJ9iH4g/uoZzEDUYQLjHdEo3ecKa7nggoknuvq6hbFgkHCiLhIXLnezMV0HtEKPo5BAJXl1bcw1h4NTsBIAr2kEwWyj5dgs/MCvvjBg7vt3dA0g+gt70bsTC9LsA/tDw4XDASC58IPyNnzxXWB556ywWiQRQodw1sTpM0ZjRUpCVg2Jx6REUaYNFUIuXXghNB4TaI9CmeKqvwA3OHibe7iOl9R2Q2kp04UYhIQiAjRkSZYB5oQPUADKAifvxPd3QFuQZC/EhZMseO8p47+rvynHMCpkLjn0bdm4/9Pt09OiMPE+BixKBggcQUhNDo6u+HzdcDf0YVO7nF8XH/YrBFYtzuvnduwOPSsJqIQfCQLlmQe7mhobqM8VxUt//wEpW/NpzW7Cum97LP00X4XbfjOTRsPFtGn31+goooGarrjpUUf5Hj5PKwOd0kIG0R4qaj0+pF5q/d7iYLIWjUDrz47CuPsg2BW9TAZJIziH2nmhFisWZiI5tttNHPFPu/Fyzfer8n9MBsPyugBAFisU1a+Zpu/pSVt/VHf/uMXg+7SG9TS2i7g5zEd+PliYGlmjt/+wuby/o4ZswHEMpYwT/g/iLgLIgEMZAYp5qih/WzTZhksUQlqxOB4yOYoHQLBgL+1ydfaUNXZ2lDRWv2bC6AWAHcYvqKefb4+/5pYLgPQGBMT0UM/xsJIjK/ntLb1XL09+ClM9i/zfjVLWKBgfAAAAABJRU5ErkJggg=="></a><a href="#" id="options" class="banner-right">Options<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAD4UlEQVR4XpWTbWxTVRzGn9vhWlnZG1NYlwFLMGCUYfEt2dqwuDBfljGCUZkjgCgZyBeWBQ1ki1TmuvkFkw3JNAw1BhwmOslmtCwZmtDooCs6MCM4m6bQjtEVUtrStds9/s9J7/1wa5f4JE/+Pb25vzzPPedI0OgDEoAjEML75DGbzTaM/ykd0nVk/7v7cPjwITQ0bOsCcL6lpaUWgISFJXHeQmDT8U9PgMkySkwmDofRaBwEwDLBn9nzdfGHJ87JNL/SgiX6Ak+BRLUDHG7v7MJs/AHKysq0qbRQ/p6/bW8dTHlYTuthBSy1trbaALgJflSBWywWSFJaIRnpcl/6rBEulwtvVeZUm1caqkFaRH4oKyurbd/ePdBlZR8E0FpeXo61a9eAMZngEhKz0d95I2pzJT0tMDk5CZ/Ph49+jIJkUqv19vaO12+ue3Lx4oeRTCQIyIQV5eYXoKPDLl7ibVQo4HYefx0V+88iJfPlz7dfUcGUpthgMPz1Uk11/uNPrOMp1b0K37sLAc/LR4e9U8CH/I8t49DR3jfnnms6zVtvIuB/H0leta+v7zJNpnhoaCgxOxtnwekpdud2gMViUXbqVB+jtCwej4spkqeLomUQbwHASu7nZzo0E8TVGzfx8YAX3x+tRVXzgFpdA1DqqsrYhMxODoyKhB6PhzW0fcvOnDnN+DMNULPIcOiDt3x+ZV1UUooLx7ZgV6cDW8wGvLF5E9rb25UNnQYwr7nSmaGv1axB+4GXcWD786C1qP/qs3koLcrBVMDP24Dkp7kOGukWgu6ot0COBLEkPx/V5lwBnxj7FVarFQZ9Nmbu3Fbgbr75GnA69J2t67F760Y4fj6PX1zXAd0izM/NqWeVqmPpI8v4scwI12mhh962oLG2Amd/GMalax5UULqJib+RTMTBFQ6Hg4lE4mkOLyx6FCQVrtfrVbh6NVe9YmdfDv7GQvdjzNbdz3a9d4yd/OlPdvCT71hjcxfjz1fXNK8GkEM2NjU1VRKEybLMbvq8bOfOHeI3/09NTEndzbRB9VXr0X/uAjw+P6wvVIukfu8NXLwuIzk9Zo4FvbkACslLx8fHk+RantxEJ6anp4e3gZD4eCmtXFWKeZlh+pYnDRr5x1EVnBhJpoIU8Ol0OucABCKRyLbu7u5vQqEQKPFoMpm0A5BU8PCIEzNhMza+WIc/rqlQxLwjlQQNavZEVu6Aw+FwkVcAiJLjZLHLAly4vHjD4EX/GEhu8oNYRED1umiVXFByD4ACllLmYqm1TJ4XQGHxm6k3b8PuL8yhqQCHCxmXZK+42t8ypbn3UvpUn8spM+5/AT4U+4f4kq1OAAAAAElFTkSuQmCC"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGLklEQVR4Xq1XXWxUxxX+7t2769312muE7UCMowSXQDBxHmpo5VQqimQjRaiKlPBQiahKFaG8hCrICc4LT0lDhR8ixXnCElFaAQ9RUWLIgsHgKqCkpBY/TYrruja73nXtrL3e3/v7M5kzMtfRZlcBup/0aWbunXPON+foXp2RGGMgSJKEchw7diza1dV1QpblbgDtq/sq7iU/qxPYjnMLwLRt22f37t37MQC32n4FlSGPjIy8EolEhjs6OsBHBIJBWKYJ07Q4TVi2LdayoiDgDyAQUDgDkCUff64/YxjGM4VC4cXLly+fOHToUOjmzZt6xUCojGAoFBru6elB26ZNCPLgtmWBnwiO48B1XTicNDIiE3NBn0/mghvA7eHz+0FIJpP1qIjqGQiRMzoRnZTmXoq9MqxRU0vImxZ0XYdu6HytolDIT01P/3d8YGBgGID7oAJ8PwwmyzI/mY+EiCzkclkUcjkezBDrcDgsytTa2oKWllZMTf0be/bseRVAmjPDWXpQASKoZVli5LXEwuIictkVmIaJaNM6NESjaICEMA8cqqtDXbAOoWCQKIRyJDkXOI2HyYAzMTHxRwa8KUHyMwAdHZvRsbkDsuKHpmlQOTVVg8QFyjw7PsUvSKBx9dQaPDyYAO3w4cMnAHzO2XDt7zdiyYUMEqkluMwFwCCJ8pR/lhKEIE4PDylA55xfrV/Lmf5d2NbVwmvdhECoCYq/AbISAaR6JGZmcHc2Adex4GcmbDMPx2H/twCXU12lEqiPQjNCsJiMgOVAknUsLi4gHp9HV/dTeGH/87BtF6f/fAFNIQZeDABp3A/uKLine truncated
}</script><noscript>JavaScript is not enabled. Good luck.</noscript></span><a href="#" id="support" class="banner-right" data-toggle="modal" data-target="#support-modal">About / Support<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAE1UlEQVR4XoWVC0xT1x/Hv729t7e3LSoqWIRNW6uoARVH5mPGzfcmRvbSacISI5n42Mss25jROd0mOjXO7C9/3XSZdvjIlsxFYCrETWe34nQpD4GIIKgDIaAilpZH+9svJ9BUg/O0n9w2J+fz+55f77nVEREeN2wpWw0AEph7TPW1vMzHLpL/QzYJwGpmKjOM8TMSGJ6rAHCW2cFF6vsSiMR9pMtiMhIcVvMz44eBr0gcaRXzZVcbUXq1AS5PbRd/9gFYxfLDD4ulh6RjAFRqqpzxyco55q83vIwnrAPgKqnD29tP4N0deSgquwl73GAc2LhI2bRqbj9NVfbxulzG1KeYpSqA/LH2IcPz/5du5gVIXevE9kO/o8BdjVstXty67UXhXzXYffRPvP7xjxgcacEve5ZbEh0xswHsflTirZpRic5e96Jup/McPjvwK28/BlvemofjO9Nw7ps3ULBnGQ5uegVL5o1DEMCOHBcO5Rfjq8xUlYMs5XAzQjYiwvD5WZMYrzP3Eh095aHExV9SctoeOna6hB41jhWWUcraHHr+HSeddlfR4ZMesqVkNbLHws5Q4jcnxMeYZj7twC5OoaqKgACccl/F+r1nkLEtF0cKLocCzUq2QdNUaEYDvs31YO7kkUgaHWsGkBLeiqnTkmzcyyp0BwgGRYZqUOA8WYq9P13ClZt3cN8XgKv0Zkgs6yWYNIMQB0iHC+X1mJ48wgRgMnruSSOAJ8dxP8uvNUFR9EJsMMhQZL0oYFQNQpK+YEJIXFLTzFIVRhbzPGob7iLRYdVJkm56b+LxjI/vU1TWNkNmmcJigSgg2oKM1CQkjRoipNcb7yHPXSvSaizledQ1tmHM8CgQ0Zjek3efkXQ6HSTenqzXM5JIK8TMwmkOJI8WB0QInIVXoHBBjgdOCPBbkWWwA/zy94orGLm8pgkJ9iH4g/uoZzEDUYQLjHdEo3ecKa7nggoknuvq6hbFgkHCiLhIXLnezMV0HtEKPo5BAJXl1bcw1h4NTsBIAr2kEwWyj5dgs/MCvvjBg7vt3dA0g+gt70bsTC9LsA/tDw4XDASC58IPyNnzxXWB556ywWiQRQodw1sTpM0ZjRUpCVg2Jx6REUaYNFUIuXXghNB4TaI9CmeKqvwA3OHibe7iOl9R2Q2kp04UYhIQiAjRkSZYB5oQPUADKAifvxPd3QFuQZC/EhZMseO8p47+rvynHMCpkLjn0bdm4/9Pt09OiMPE+BixKBggcQUhNDo6u+HzdcDf0YVO7nF8XH/YrBFYtzuvnduwOPSsJqIQfCQLlmQe7mhobqM8VxUt//wEpW/NpzW7Cum97LP00X4XbfjOTRsPFtGn31+goooGarrjpUUf5Hj5PKwOd0kIG0R4qaj0+pF5q/d7iYLIWjUDrz47CuPsg2BW9TAZJIziH2nmhFisWZiI5tttNHPFPu/Fyzfer8n9MBsPyugBAFisU1a+Zpu/pSVt/VHf/uMXg+7SG9TS2i7g5zEd+PliYGlmjt/+wuby/o4ZswHEMpYwT/g/iLgLIgEMZAYp5qih/WzTZhksUQlqxOB4yOYoHQLBgL+1ydfaUNXZ2lDRWv2bC6AWAHcYvqKefb4+/5pYLgPQGBMT0UM/xsJIjK/ntLb1XL09+ClM9i/zfjVLWKBgfAAAAABJRU5ErkJggg=="></a><a href="#" id="options" class="banner-right">Options<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAD4UlEQVR4XpWTbWxTVRzGn9vhWlnZG1NYlwFLMGCUYfEt2dqwuDBfljGCUZkjgCgZyBeWBQ1ki1TmuvkFkw3JNAw1BhwmOslmtCwZmtDooCs6MCM4m6bQjtEVUtrStds9/s9J7/1wa5f4JE/+Pb25vzzPPedI0OgDEoAjEML75DGbzTaM/ykd0nVk/7v7cPjwITQ0bOsCcL6lpaUWgISFJXHeQmDT8U9PgMkySkwmDofRaBwEwDLBn9nzdfGHJ87JNL/SgiX6Ak+BRLUDHG7v7MJs/AHKysq0qbRQ/p6/bW8dTHlYTuthBSy1trbaALgJflSBWywWSFJaIRnpcl/6rBEulwtvVeZUm1caqkFaRH4oKyurbd/ePdBlZR8E0FpeXo61a9eAMZngEhKz0d95I2pzJT0tMDk5CZ/Ph49+jIJkUqv19vaO12+ue3Lx4oeRTCQIyIQV5eYXoKPDLl7ibVQo4HYefx0V+88iJfPlz7dfUcGUpthgMPz1Uk11/uNPrOMp1b0K37sLAc/LR4e9U8CH/I8t49DR3jfnnms6zVtvIuB/H0leta+v7zJNpnhoaCgxOxtnwekpdud2gMViUXbqVB+jtCwej4spkqeLomUQbwHASu7nZzo0E8TVGzfx8YAX3x+tRVXzgFpdA1DqqsrYhMxODoyKhB6PhzW0fcvOnDnN+DMNULPIcOiDt3x+ZV1UUooLx7ZgV6cDW8wGvLF5E9rb25UNnQYwr7nSmaGv1axB+4GXcWD786C1qP/qs3koLcrBVMDP24Dkp7kOGukWgu6ot0COBLEkPx/V5lwBnxj7FVarFQZ9Nmbu3Fbgbr75GnA69J2t67F760Y4fj6PX1zXAd0izM/NqWeVqmPpI8v4scwI12mhh962oLG2Amd/GMalax5UULqJib+RTMTBFQ6Hg4lE4mkOLyx6FCQVrtfrVbh6NVe9YmdfDv7GQvdjzNbdz3a9d4yd/OlPdvCT71hjcxfjz1fXNK8GkEM2NjU1VRKEybLMbvq8bOfOHeI3/09NTEndzbRB9VXr0X/uAjw+P6wvVIukfu8NXLwuIzk9Zo4FvbkACslLx8fHk+RantxEJ6anp4e3gZD4eCmtXFWKeZlh+pYnDRr5x1EVnBhJpoIU8Ol0OucABCKRyLbu7u5vQqEQKPFoMpm0A5BU8PCIEzNhMza+WIc/rqlQxLwjlQQNavZEVu6Aw+FwkVcAiJLjZLHLAly4vHjD4EX/GEhu8oNYRED1umiVXFByD4ACllLmYqm1TJ4XQGHxm6k3b8PuL8yhqQCHCxmXZK+42t8ypbn3UvpUn8spM+5/AT4U+4f4kq1OAAAAAElFTkSuQmCC"></a></div><div id="wrapper"><div id="operations" class="split split-horizontal no-select"><div class="title no-select">Operations</div><input type="search" class="form-control" id="search" placeholder="Search..." autocomplete="off"><ul class="op_list" id="search-results"></ul><div class="panel-group no-select" id="categories"></div></div><div id="recipe" class="split split-horizontal no-select"><div class="title no-select">Recipe</div><ul id="rec_list" class="no-select"></ul><div id="controls" class="no-select"><div id="operational-controls"><div id="bake-group"><button type="button" class="btn btn-success btn-lg" id="bake"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGLklEQVR4Xq1XXWxUxxX+7t2769312muE7UCMowSXQDBxHmpo5VQqimQjRaiKlPBQiahKFaG8hCrICc4LT0lDhR8ixXnCElFaAQ9RUWLIgsHgKqCkpBY/TYrruja73nXtrL3e3/v7M5kzMtfRZlcBup/0aWbunXPON+foXp2RGGMgSJKEchw7diza1dV1QpblbgDtq/sq7iU/qxPYjnMLwLRt22f37t37MQC32n4FlSGPjIy8EolEhjs6OsBHBIJBWKYJ07Q4TVi2LdayoiDgDyAQUDgDkCUff64/YxjGM4VC4cXLly+fOHToUOjmzZt6xUCojGAoFBru6elB26ZNCPLgtmWBnwiO48B1XTicNDIiE3NBn0/mghvA7eHz+0FIJpP1qIjqGQiRMzoRnZTmXoq9MqxRU0vImxZ0XYdu6HytolDIT01P/3d8YGBgGID7oAJ8PwwmyzI/mY+EiCzkclkUcjkezBDrcDgsytTa2oKWllZMTf0be/bseRVAmjPDWXpQASKoZVli5LXEwuIictkVmIaJaNM6NESjaICEMA8cqqtDXbAOoWCQKIRyJDkXOI2HyYAzMTHxRwa8KUHyMwAdHZvRsbkDsuKHpmlQOTVVg8QFyjw7PsUvSKBx9dQaPDyYAO3w4cMnAHzO2XDt7zdiyYUMEqkluMwFwCCJ8pR/lhKEIE4PDylA55xfrV/Lmf5d2NbVwmvdhECoCYq/AbISAaR6JGZmcHc2Adex4GcmbDMPx2H/twCXU12lEqiPQjNCsJiMgOVAknUsLi4gHp9HV/dTeGH/87BtF6f/fAFNIQZeDABp3A/uKLine truncated
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
@@ -360,5 +360,5 @@ c+="Total addresses in range: "+(parseInt(j.join(""),2)+1)+"\n\n"),c},_gen_ipv6_
"06036086480186f8420205":"netscape-cert-sequence","06036086480186f8420206":"netscape-cert-url","06036086480186f84203":"directory","06036086480186f8420401":"serverGatedCrypto","06036086480186f845010603":"Unknown Verisign extension","06036086480186f845010606":"Unknown Verisign extension","06036086480186f84501070101":"Verisign certificatePolicy","06036086480186f8450107010101":"Unknown Verisign policy qualifier","06036086480186f8450107010102":"Unknown Verisign policy qualifier","0603678105":"TCPA","060367810501":"tcpa_specVersion","060367810502":"tcpa_attribute","06036781050201":"tcpa_at_tpmManufacturer","0603678105020a":"tcpa_at_securityQualities","0603678105020b":"tcpa_at_tpmProtectionProfile","0603678105020c":"tcpa_at_tpmSecurityTarget","0603678105020d":"tcpa_at_foundationProtectionProfile","0603678105020e":"tcpa_at_foundationSecurityTarget","0603678105020f":"tcpa_at_tpmIdLabel","06036781050202":"tcpa_at_tpmModel","06036781050203":"tcpa_at_tpmVersion","06036781050204":"tcpa_at_platformManufacturer","06036781050205":"tcpa_at_platformModel","06036781050206":"tcpa_at_platformVersion","06036781050207":"tcpa_at_componentManufacturer","06036781050208":"tcpa_at_componentModel","06036781050209":"tcpa_at_componentVersion","060367810503":"tcpa_protocol","06036781050301":"tcpa_prtt_tpmIdProtocol","0603672a00":"contentType","0603672a0000":"PANData","0603672a0001":"PANToken","0603672a0002":"PANOnly","0603672a01":"msgExt","0603672a0a":"national","0603672a0a8140":"Japan","0603672a02":"field","0603672a0200":"fullName","0603672a0201":"givenName","0603672a020a":"amount","0603672a0202":"familyName","0603672a0203":"birthFamilyName","0603672a0204":"placeName","0603672a0205":"identificationNumber","0603672a0206":"month","0603672a0207":"date","0603672a02070b":"accountNumber","0603672a02070c":"passPhrase","0603672a0208":"address","0603672a0209":"telephone","0603672a03":"attribute","0603672a0300":"cert","0603672a030000":"rootKeyThumb","0603672a030001":"additionalPolicy","0603672a04":"algorithm","0603672a05":"policy","0603672a0500":"root","0603672a06":"module","0603672a07":"certExt","0603672a0700":"hashedRootKey","0603672a0701":"certificateType","0603672a0702":"merchantData","0603672a0703":"cardCertRequired","0603672a0704":"tunneling","0603672a0705":"setExtensions","0603672a0706":"setQualifier","0603672a08":"brand","0603672a0801":"IATA-ATA","0603672a081e":"Diners","0603672a0822":"AmericanExpress","0603672a0804":"VISA","0603672a0805":"MasterCard","0603672a08ae7b":"Novus","0603672a09":"vendor","0603672a0900":"GlobeSet","0603672a0901":"IBM","0603672a090a":"Griffin","0603672a090b":"Certicom","0603672a090c":"OSS","0603672a090d":"TenthMountain","0603672a090e":"Antares","0603672a090f":"ECC","0603672a0910":"Maithean","0603672a0911":"Netscape","0603672a0912":"Verisign","0603672a0913":"BlueMoney","0603672a0902":"CyberCash","0603672a0914":"Lacerte","0603672a0915":"Fujitsu","0603672a0916":"eLab","0603672a0917":"Entrust","0603672a0918":"VIAnet","0603672a0919":"III","0603672a091a":"OpenMarket","0603672a091b":"Lexem","0603672a091c":"Intertrader","0603672a091d":"Persimmon","0603672a0903":"Terisa","0603672a091e":"NABLE","0603672a091f":"espace-net","0603672a0920":"Hitachi","0603672a0921":"Microsoft","0603672a0922":"NEC","0603672a0923":"Mitsubishi","0603672a0924":"NCR","0603672a0925":"e-COMM","0603672a0926":"Gemplus","0603672a0904":"RSADSI","0603672a0905":"VeriFone","0603672a0906":"TrinTech","0603672a0907":"BankGate","0603672a0908":"GTE","0603672a0909":"CompuSource","0603551d01":"authorityKeyIdentifier","0603551d0a":"basicConstraints","0603551d0b":"nameConstraints","0603551d0c":"policyConstraints","0603551d0d":"basicConstraints","0603551d0e":"subjectKeyIdentifier","0603551d0f":"keyUsage","0603551d10":"privateKeyUsagePeriod","0603551d11":"subjectAltName","0603551d12":"issuerAltName","0603551d13":"basicConstraints","0603551d02":"keyAttributes","0603551d14":"cRLNumber","0603551d15":"cRLReason","0603551d16":"expirationDate","0603551d17":"instructionCode","0603551d18":"invalidityDate","0603551d1a":"issuingDistributionPoint","0603551d1b":"deltaCRLIndicator","0603551d1c":"issuingDistributionPoint","0603551d1d":"certificateIssuer","0603551d03":"certificatePolicies","0603551d1e":"nameConstraints","0603551d1f":"cRLDistributionPoints","0603551d20":"certificatePolicies","0603551d21":"policyMappings","0603551d22":"policyConstraints","0603551d23":"authorityKeyIdentifier","0603551d24":"policyConstraints","0603551d25":"extKeyUsage","0603551d04":"keyUsageRestriction","0603551d05":"policyMapping","0603551d06":"subtreesConstraint","0603551d07":"subjectAltName","0603551d08":"issuerAltName","0603551d09":"subjectDirectoryAttributes","0603550400":"objectClass","0603550401":"aliasObjectName","060355040d":"description","060355040e":"searchGuide","060355040f":"businessCategory","0603550410":"postalAddress","0603550411":"postalCode","0603550412":"postOfficeBox","0603550413":"physicalDeliveryOfficeName","0603550402":"knowledgeInformation","0603550415":"telexNumber","0603550416":Line truncated
run:FlowControl.run_fork,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Split delimiter",type:"binary_short_string",value:FlowControl.FORK_DELIM},{name:"Merge delimiter",type:"binary_short_string",value:FlowControl.MERGE_DELIM}]},Merge:{description:"Consolidate all branches back into a single trunk. The opposite of Fork.",run:FlowControl.run_merge,input_type:"string",output_type:"string",flow_control:!0,args:[]},Jump:{description:"Jump forwards or backwards over the specified number of operations.",run:FlowControl.run_jump,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Number of operations to jump over",type:"number",value:FlowControl.JUMP_NUM},{name:"Maximum jumps (if jumping backwards)",type:"number",value:FlowControl.MAX_JUMPS}]},"Conditional Jump":{description:"Conditionally jump forwards or backwards over the specified number of operations based on whether the data matches the specified regular expression.",run:FlowControl.run_cond_jump,input_type:"string",output_type:"string",flow_control:!0,args:[{name:"Match (regex)",type:"string",value:""},{name:"Number of operations to jump over if match found",type:"number",value:FlowControl.JUMP_NUM},{name:"Maximum jumps (if jumping backwards)",type:"number",value:FlowControl.MAX_JUMPS}]},Return:{description:"End execution of operations at this point in the recipe.",run:FlowControl.run_return,input_type:"string",output_type:"string",flow_control:!0,args:[]},"From Base64":{description:"Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation decodes data from an ASCII Base64 string back into its raw format.<br><br>e.g. <code>aGVsbG8=</code> becomes <code>hello</code>",run:Base64.run_from,highlight:Base64.highlight_from,highlight_reverse:Base64.highlight_to,input_type:"string",output_type:"byte_array",args:[{name:"Alphabet",type:"editable_option",value:Base64.ALPHABET_OPTIONS},{name:"Remove non&#8209;alphabet chars",type:"boolean",value:Base64.REMOVE_NON_ALPH_CHARS}]},"To Base64":{description:"Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation encodes data in an ASCII Base64 string.<br><br>e.g. <code>hello</code> becomes <code>aGVsbG8=</code>",run:Base64.run_to,highlight:Base64.highlight_to,highlight_reverse:Base64.highlight_from,input_type:"byte_array",output_type:"string",args:[{name:"Alphabet",type:"editable_option",value:Base64.ALPHABET_OPTIONS}]},"From Base32":{description:"Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",run:Base64.run_from_32,input_type:"string",output_type:"byte_array",args:[{name:"Alphabet",type:"binary_string",value:Base64.BASE32_ALPHABET},{name:"Remove non&#8209;alphabet chars",type:"boolean",value:Base64.REMOVE_NON_ALPH_CHARS}]},"To Base32":{description:"Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",run:Base64.run_to_32,input_type:"byte_array",output_type:"string",args:[{name:"Alphabet",type:"binary_string",value:Base64.BASE32_ALPHABET}]},"Show Base64 offsets":{description:"When a string is within a block of data and the whole block is Base64'd, the string itself could be represented in Base64 in three distinct ways depending on its offset within the block.<br><br>This operation shows all possible offsets for a given string so that each possible encoding can be considered.",run:Base64.run_offsets,input_type:"byte_array",output_type:"html",args:[{name:"Alphabet",type:"binary_string",value:Base64.ALPHABET},{name:"Show variable chars and padding",type:"boolean",value:Base64.OFFSETS_SHOW_VARIABLE}]},XOR:{description:"XOR the input with the given key.<br>e.g. <code>fe023da5</code><br><br><strong>Options</strong><br><u>Null preserving:</u> If the current byte is 0x00 or the same as the key, skip it.<br><br><u>Differential:</u> Set the key to the value of the previously decoded byte.",run:BitwiseOp.run_xor,highlight:!0,highlight_reverse:!0,input_type:"byte_array",output_type:"byte_array",args:[{name:"Key",type:"toggle_string",value:"",toggle_values:BitwiseOp.KEY_FORMAT},{name:"Null preserving",type:"boolean",value:BitwiseOp.XOR_PRESERVE_NULLS},{name:"Differential",type:"boolean",value:BitwiseOp.XOR_DIFFERENTIAL}]},"XOR Brute Force":{description:"Enumerate all possible XOR solutions. Current maximum key length is 2 due to browser performance.<br><br>Optionally enter a regex string that you expect to find in the plaintext to filter resuLine truncated
args:[{name:"Start",type:"number",value:Tidy.DROP_START},{name:"Length",type:"number",value:Tidy.DROP_LENGTH},{name:"Apply to each line",type:"boolean",value:Tidy.APPLY_TO_EACH_LINE}]},"Take bytes":{description:"Takes a slice of the specified number of bytes from the data.",run:Tidy.run_take_bytes,input_type:"byte_array",output_type:"byte_array",args:[{name:"Start",type:"number",value:Tidy.TAKE_START},{name:"Length",type:"number",value:Tidy.TAKE_LENGTH},{name:"Apply to each line",type:"boolean",value:Tidy.APPLY_TO_EACH_LINE}]},"Pad lines":{description:"Add the specified number of the specified character to the beginning or end of each line",run:Tidy.run_pad,input_type:"string",output_type:"string",args:[{name:"Position",type:"option",value:Tidy.PAD_POSITION},{name:"Length",type:"number",value:Tidy.PAD_LENGTH},{name:"Character",type:"binary_short_string",value:Tidy.PAD_CHAR}]},Reverse:{description:"Reverses the input string.",run:SeqUtils.run_reverse,input_type:"byte_array",output_type:"byte_array",args:[{name:"By",type:"option",value:SeqUtils.REVERSE_BY}]},Sort:{description:"Alphabetically sorts strings separated by the specified delimiter.<br><br>The IP address option supports IPv4 only.",run:SeqUtils.run_sort,input_type:"string",output_type:"string",args:[{name:"Delimiter",type:"option",value:SeqUtils.DELIMITER_OPTIONS},{name:"Reverse",type:"boolean",value:SeqUtils.SORT_REVERSE},{name:"Order",type:"option",value:SeqUtils.SORT_ORDER}]},Unique:{description:"Removes duplicate strings from the input.",run:SeqUtils.run_unique,input_type:"string",output_type:"string",args:[{name:"Delimiter",type:"option",value:SeqUtils.DELIMITER_OPTIONS}]},"Count occurrences":{description:"Counts the number of times the provided string occurs in the input.",run:SeqUtils.run_count,input_type:"string",output_type:"number",args:[{name:"Search string",type:"toggle_string",value:"",toggle_values:SeqUtils.SEARCH_TYPE}]},"Add line numbers":{description:"Adds line numbers to the output.",run:SeqUtils.run_add_line_numbers,input_type:"string",output_type:"string",args:[]},"Remove line numbers":{description:"Removes line numbers from the output if they can be trivially detected.",run:SeqUtils.run_remove_line_numbers,input_type:"string",output_type:"string",args:[]},"Find / Replace":{description:"Replaces all occurrences of the first string with the second.<br><br>The three match options are only relevant to regex search strings.",run:StrUtils.run_find_replace,manual_bake:!0,input_type:"string",output_type:"string",args:[{name:"Find",type:"toggle_string",value:"",toggle_values:StrUtils.SEARCH_TYPE},{name:"Replace",type:"binary_string",value:""},{name:"Global match",type:"boolean",value:StrUtils.FIND_REPLACE_GLOBAL},{name:"Case insensitive",type:"boolean",value:StrUtils.FIND_REPLACE_CASE},{name:"Multiline matching",type:"boolean",value:StrUtils.FIND_REPLACE_MULTILINE}]},"To Upper case":{description:"Converts the input string to upper case, optionally limiting scope to only the first character in each word, sentence or paragraph.",run:StrUtils.run_upper,highlight:!0,highlight_reverse:!0,input_type:"string",output_type:"string",args:[{name:"Scope",type:"option",value:StrUtils.CASE_SCOPE}]},"To Lower case":{description:"Converts every character in the input to lower case.",run:StrUtils.run_lower,highlight:!0,highlight_reverse:!0,input_type:"string",output_type:"string",args:[]},Split:{description:"Splits a string into sections around a given delimiter.",run:StrUtils.run_split,input_type:"string",output_type:"string",args:[{name:"Split delimiter",type:"binary_short_string",value:StrUtils.SPLIT_DELIM},{name:"Join delimiter",type:"option",value:StrUtils.DELIMITER_OPTIONS}]},Strings:{description:"Extracts all strings from the input.",run:Extract.run_strings,input_type:"string",output_type:"string",args:[{name:"Minimum length",type:"number",value:Extract.MIN_STRING_LEN},{name:"Display total",type:"boolean",value:Extract.DISPLAY_TOTAL}]},"Extract IP addresses":{description:"Extracts all IPv4 and IPv6 addresses.<br><br>Warning: Given a string <code>710.65.0.456</code>, this will match <code>10.65.0.45</code> so always check the original input!",run:Extract.run_ip,input_type:"string",output_type:"string",args:[{name:"IPv4",type:"boolean",value:Extract.INCLUDE_IPV4},{name:"IPv6",type:"boolean",value:Extract.INCLUDE_IPV6},{name:"Remove local IPv4 addresses",type:"boolean",value:Extract.REMOVE_LOCAL},{name:"Display total",type:"boolean",value:Extract.DISPLAY_TOTAL}]},"Extract email addresses":{description:"Extracts all email addresses from the input.",run:Extract.run_email,input_type:"string",output_type:"string",args:[{name:"Display total",type:"boolean",value:Extract.DISPLAY_TOTAL}]},"Extract MAC addresses":{description:"Extracts all Media Access Control (MAC) addresses from the input.",run:Extract.run_mac,input_type:"string",output_type:"string",args:[{name:"Display total",type:"boolean",value:Extract.DISPLAY_TOTAL}]},"Extract URLs":{description:"ExtLine truncated
},ControlsWaiter.prototype.sli_check_change=function(){this.initialise_save_link()},ControlsWaiter.prototype.load_click=function(){this.populate_load_recipes_list(),$("#load-modal").modal()},ControlsWaiter.prototype.save_button_click=function(){var a=document.getElementById("save-name").value,b=document.getElementById("save-text").value;if(!a)return void this.app.alert("Please enter a recipe name","danger",2e3);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=localStorage.recipe_id||0;c.push({id:++d,name:a,recipe:b}),localStorage.saved_recipes=JSON.stringify(c),localStorage.recipe_id=d,this.app.alert('Recipe saved as "'+a+'".',"success",2e3)},ControlsWaiter.prototype.populate_load_recipes_list=function(){for(var a=document.getElementById("load-name"),b=a.options.length;b--;)a.remove(b);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];for(b=0;b<c.length;b++){var d=document.createElement("option");d.value=c[b].id,d.innerHTML=c[b].name,a.appendChild(d)}document.getElementById("load-text").value=c.length?c[0].recipe:""},ControlsWaiter.prototype.load_delete_click=function(){var a=document.getElementById("load-name").value,b=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];b=b.filter(function(b){return b.id!=a}),localStorage.saved_recipes=JSON.stringify(b),this.populate_load_recipes_list()},ControlsWaiter.prototype.load_name_change=function(a){var b=a.target,c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=parseInt(b.value,10),e=c.filter(function(a){return a.id==d})[0];document.getElementById("load-text").value=e.recipe},ControlsWaiter.prototype.load_button_click=function(){try{var a=JSON.parse(document.getElementById("load-text").value);this.app.set_recipe_config(a),$("#rec_list [data-toggle=popover]").popover()}catch(a){this.app.alert("Invalid recipe","danger",2e3)}};var HTMLApp=function(a,b,c,d){this.categories=a,this.operations=b,this.dfavourites=c,this.doptions=d,this.options=Utils.extend({},d),this.chef=new Chef,this.manager=new Manager(this),this.auto_bake_=!1,this.progress=0,this.ing_id=0,window.chef=this.chef};HTMLApp.prototype.setup=function(){document.dispatchEvent(this.manager.appstart),this.initialise_splitter(),this.load_local_storage(),this.populate_operations_list(),this.manager.setup(),this.reset_layout(),this.set_compile_message(),this.load_URI_params()},HTMLApp.prototype.handle_error=function(a){console.error(a);var b=a.display_str||a.toString();this.alert(b,"danger",this.options.error_timeout,!this.options.show_errors)},HTMLApp.prototype.bake=function(a){var b;try{b=this.chef.bake(this.get_input(),this.get_recipe_config(),this.options,this.progress,a)}catch(a){this.handle_error(a)}finally{if(!b)return;b.error&&this.handle_error(b.error),this.options=b.options,this.dish_str="html"==b.type?Utils.strip_html_tags(b.result,!0):b.result,this.progress=b.progress,this.manager.recipe.update_breakpoint_indicator(b.progress),this.manager.output.set(b.result,b.type,b.duration),b.duration>this.options.auto_bake_threshold&&this.auto_bake_&&(this.manager.controls.set_auto_bake(!1),this.alert("Baking took longer than "+this.options.auto_bake_threshold+"ms, Auto Bake has been disabled.","warning",5e3))}},HTMLApp.prototype.auto_bake=function(){this.auto_bake_&&this.bake()},HTMLApp.prototype.silent_bake=function(){var a=(new Date).getTime(),b=this.get_recipe_config();return this.auto_bake_&&this.chef.silent_bake(b),(new Date).getTime()-a},HTMLApp.prototype.get_input=function(){var a=this.manager.input.get();return sessionStorage.setItem("input_length",a.length),sessionStorage.setItem("input",a),a},HTMLApp.prototype.set_input=function(a){sessionStorage.setItem("input_length",a.length),sessionStorage.setItem("input",a),this.manager.input.set(a)},HTMLApp.prototype.populate_operations_list=function(){document.body.appendChild(document.getElementById("edit-favourites"));for(var a="",b=0;b<this.categories.length;b++){for(var c=this.categories[b],d=0===b,e=new HTMLCategory(c.name,d),f=0;f<c.ops.length;f++){var g=c.ops[f],h=new HTMLOperation(g,this.operations[g],this,this.manager);e.add_operation(h)}a+=e.to_html()}document.getElementById("categories").innerHTML=a;var i=document.querySelectorAll("#categories .op_list");for(b=0;b<i.length;b++)i[b].dispatchEvent(this.manager.oplistcreate);document.querySelector("#categories a").appendChild(document.getElementById("edit-favourites"))},HTMLApp.prototype.initialise_splitter=function(){Split(["#operations","#recipe","#IO"],{sizes:[20,30,50],minSize:[240,325,500],gutterSize:4,onDrag:this.manager.controls.adjust_width.bind(this.manager.controls)}),Split(["#input","#output"],{direction:"vertical",gutterSize:4}),this.reset_layout()},HTMLApp.prototype.load_local_storage=function(){var a;void 0!==localStorage.options&&(a=JSON.parse(localStorage.options)),this.manager.options.load(a),this.load_favourites()},HTMLApp.prototype.load_favourites=function(){var a=localStorage.favourites&&locaLine truncated
this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",this.output.save_click.bind(this.output)),document.getElementById("switch").addEventListener("click",this.output.switch_click.bind(this.output)),document.getElementById("undo-switch").addEventListener("click",this.output.undo_switch_click.bind(this.output)),document.getElementById("output-text").addEventListener("scroll",this.highlighter.output_scroll.bind(this.highlighter)),document.getElementById("output-text").addEventListener("mouseup",this.highlighter.output_mouseup.bind(this.highlighter)),document.getElementById("output-text").addEventListener("mousemove",this.highlighter.output_mousemove.bind(this.highlighter)),document.getElementById("output-html").addEventListener("mouseup",this.highlighter.output_html_mouseup.bind(this.highlighter)),document.getElementById("output-html").addEventListener("mousemove",this.highlighter.output_html_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#output-text","mousedown dblclick select",this.highlighter.output_mousedown,this.highlighter),this.add_multi_event_listener("#output-html","mousedown dblclick select",this.highlighter.output_html_mousedown,this.highlighter),document.getElementById("options").addEventListener("click",this.options.options_click.bind(this.options)),document.getElementById("reset-options").addEventListener("click",this.options.reset_options_click.bind(this.options)),$(".option-item input:checkbox").on("switchChange.bootstrapSwitch",this.options.switch_change.bind(this.options)),$(".option-item input:checkbox").on("switchChange.bootstrapSwitch",this.options.set_word_wrap.bind(this.options)),this.add_dynamic_listener(".option-item input[type=number]","keyup",this.options.number_change,this.options),this.add_dynamic_listener(".option-item input[type=number]","change",this.options.number_change,this.options),this.add_dynamic_listener(".option-item select","change",this.options.select_change,this.options),document.getElementById("alert-close").addEventListener("click",this.app.alert_close_click.bind(this.app))},Manager.prototype.add_listeners=function(a,b,c,d){d=d||this,[].forEach.call(document.querySelectorAll(a),function(a){a.addEventListener(b,c.bind(d))})},Manager.prototype.add_multi_event_listener=function(a,b,c,d){for(var e=b.split(" "),f=0;f<e.length;f++)document.querySelector(a).addEventListener(e[f],c.bind(d))},Manager.prototype.add_multi_event_listeners=function(a,b,c,d){for(var e=b.split(" "),f=0;f<e.length;f++)this.add_listeners(a,e[f],c,d)},Manager.prototype.add_dynamic_listener=function(a,b,c,d){var e={selector:a,callback:c.bind(d||this)};this.dynamic_handlers.hasOwnProperty(b)?this.dynamic_handlers[b].push(e):(this.dynamic_handlers[b]=[e],document.addEventListener(b,this.dynamic_listener_handler.bind(this)))},Manager.prototype.dynamicLine truncated
},ControlsWaiter.prototype.sli_check_change=function(){this.initialise_save_link()},ControlsWaiter.prototype.load_click=function(){this.populate_load_recipes_list(),$("#load-modal").modal()},ControlsWaiter.prototype.save_button_click=function(){var a=document.getElementById("save-name").value,b=document.getElementById("save-text").value;if(!a)return void this.app.alert("Please enter a recipe name","danger",2e3);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=localStorage.recipe_id||0;c.push({id:++d,name:a,recipe:b}),localStorage.saved_recipes=JSON.stringify(c),localStorage.recipe_id=d,this.app.alert('Recipe saved as "'+a+'".',"success",2e3)},ControlsWaiter.prototype.populate_load_recipes_list=function(){for(var a=document.getElementById("load-name"),b=a.options.length;b--;)a.remove(b);var c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];for(b=0;b<c.length;b++){var d=document.createElement("option");d.value=c[b].id,d.innerHTML=c[b].name,a.appendChild(d)}document.getElementById("load-text").value=c.length?c[0].recipe:""},ControlsWaiter.prototype.load_delete_click=function(){var a=document.getElementById("load-name").value,b=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[];b=b.filter(function(b){return b.id!=a}),localStorage.saved_recipes=JSON.stringify(b),this.populate_load_recipes_list()},ControlsWaiter.prototype.load_name_change=function(a){var b=a.target,c=localStorage.saved_recipes?JSON.parse(localStorage.saved_recipes):[],d=parseInt(b.value,10),e=c.filter(function(a){return a.id==d})[0];document.getElementById("load-text").value=e.recipe},ControlsWaiter.prototype.load_button_click=function(){try{var a=JSON.parse(document.getElementById("load-text").value);this.app.set_recipe_config(a),$("#rec_list [data-toggle=popover]").popover()}catch(a){this.app.alert("Invalid recipe","danger",2e3)}};var HTMLApp=function(a,b,c,d){this.categories=a,this.operations=b,this.dfavourites=c,this.doptions=d,this.options=Utils.extend({},d),this.chef=new Chef,this.manager=new Manager(this),this.auto_bake_=!1,this.progress=0,this.ing_id=0,window.chef=this.chef};HTMLApp.prototype.setup=function(){document.dispatchEvent(this.manager.appstart),this.initialise_splitter(),this.load_local_storage(),this.populate_operations_list(),this.manager.setup(),this.reset_layout(),this.set_compile_message(),this.load_URI_params()},HTMLApp.prototype.handle_error=function(a){console.error(a);var b=a.display_str||a.toString();this.alert(b,"danger",this.options.error_timeout,!this.options.show_errors)},HTMLApp.prototype.bake=function(a){var b;try{b=this.chef.bake(this.get_input(),this.get_recipe_config(),this.options,this.progress,a)}catch(a){this.handle_error(a)}finally{if(!b)return;b.error&&this.handle_error(b.error),this.options=b.options,this.dish_str="html"==b.type?Utils.strip_html_tags(b.result,!0):b.result,this.progress=b.progress,this.manager.recipe.update_breakpoint_indicator(b.progress),this.manager.output.set(b.result,b.type,b.duration),b.duration>this.options.auto_bake_threshold&&this.auto_bake_&&(this.manager.controls.set_auto_bake(!1),this.alert("Baking took longer than "+this.options.auto_bake_threshold+"ms, Auto Bake has been disabled.","warning",5e3))}},HTMLApp.prototype.auto_bake=function(){this.auto_bake_&&this.bake()},HTMLApp.prototype.silent_bake=function(){var a=(new Date).getTime(),b=this.get_recipe_config();return this.auto_bake_&&this.chef.silent_bake(b),(new Date).getTime()-a},HTMLApp.prototype.get_input=function(){var a=this.manager.input.get();return sessionStorage.setItem("input_length",a.length),sessionStorage.setItem("input",a),a},HTMLApp.prototype.set_input=function(a){sessionStorage.setItem("input_length",a.length),sessionStorage.setItem("input",a),this.manager.input.set(a)},HTMLApp.prototype.populate_operations_list=function(){document.body.appendChild(document.getElementById("edit-favourites"));for(var a="",b=0;b<this.categories.length;b++){for(var c=this.categories[b],d=0===b,e=new HTMLCategory(c.name,d),f=0;f<c.ops.length;f++){var g=c.ops[f],h=new HTMLOperation(g,this.operations[g],this,this.manager);e.add_operation(h)}a+=e.to_html()}document.getElementById("categories").innerHTML=a;var i=document.querySelectorAll("#categories .op_list");for(b=0;b<i.length;b++)i[b].dispatchEvent(this.manager.oplistcreate);document.querySelector("#categories a").appendChild(document.getElementById("edit-favourites"))},HTMLApp.prototype.initialise_splitter=function(){Split(["#operations","#recipe","#IO"],{sizes:[20,30,50],minSize:[240,325,500],gutterSize:4,onDrag:this.manager.controls.adjust_width.bind(this.manager.controls)}),Split(["#input","#output"],{direction:"vertical",gutterSize:4}),this.reset_layout()},HTMLApp.prototype.load_local_storage=function(){var a;void 0!==localStorage.options&&(a=JSON.parse(localStorage.options)),this.manager.options.load(a),this.load_favourites()},HTMLApp.prototype.load_favourites=function(){var a=localStorage.favourites&&locaLine truncated
this.add_dynamic_listener(".op_list .op-icon","mouseleave",this.ops.op_icon_mouseleave,this.ops),this.add_dynamic_listener(".op_list","oplistcreate",this.ops.op_list_create,this.ops),this.add_dynamic_listener("li.operation","operationadd",this.recipe.op_add.bind(this.recipe)),this.add_dynamic_listener(".arg","keyup",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".arg","change",this.recipe.ing_change,this.recipe),this.add_dynamic_listener(".disable-icon","click",this.recipe.disable_click,this.recipe),this.add_dynamic_listener(".breakpoint","click",this.recipe.breakpoint_click,this.recipe),this.add_dynamic_listener("#rec_list li.operation","dblclick",this.recipe.operation_dblclick,this.recipe),this.add_dynamic_listener("#rec_list li.operation > div","dblclick",this.recipe.operation_child_dblclick,this.recipe),this.add_dynamic_listener("#rec_list .input-group .dropdown-menu a","click",this.recipe.dropdown_toggle_click,this.recipe),this.add_dynamic_listener("#rec_list","operationremove",this.recipe.op_remove.bind(this.recipe)),this.add_multi_event_listener("#input-text","keyup paste",this.input.input_change,this.input),document.getElementById("reset-layout").addEventListener("click",this.app.reset_layout.bind(this.app)),document.getElementById("clr-io").addEventListener("click",this.input.clear_io_click.bind(this.input)),document.getElementById("input-text").addEventListener("dragover",this.input.input_dragover.bind(this.input)),document.getElementById("input-text").addEventListener("dragleave",this.input.input_dragleave.bind(this.input)),document.getElementById("input-text").addEventListener("drop",this.input.input_drop.bind(this.input)),document.getElementById("input-text").addEventListener("scroll",this.highlighter.input_scroll.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mouseup",this.highlighter.input_mouseup.bind(this.highlighter)),document.getElementById("input-text").addEventListener("mousemove",this.highlighter.input_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#input-text","mousedown dblclick select",this.highlighter.input_mousedown,this.highlighter),document.getElementById("save-to-file").addEventListener("click",this.output.save_click.bind(this.output)),document.getElementById("switch").addEventListener("click",this.output.switch_click.bind(this.output)),document.getElementById("undo-switch").addEventListener("click",this.output.undo_switch_click.bind(this.output)),document.getElementById("output-text").addEventListener("scroll",this.highlighter.output_scroll.bind(this.highlighter)),document.getElementById("output-text").addEventListener("mouseup",this.highlighter.output_mouseup.bind(this.highlighter)),document.getElementById("output-text").addEventListener("mousemove",this.highlighter.output_mousemove.bind(this.highlighter)),document.getElementById("output-html").addEventListener("mouseup",this.highlighter.output_html_mouseup.bind(this.highlighter)),document.getElementById("output-html").addEventListener("mousemove",this.highlighter.output_html_mousemove.bind(this.highlighter)),this.add_multi_event_listener("#output-text","mousedown dblclick select",this.highlighter.output_mousedown,this.highlighter),this.add_multi_event_listener("#output-html","mousedown dblclick select",this.highlighter.output_html_mousedown,this.highlighter),document.getElementById("options").addEventListener("click",this.options.options_click.bind(this.options)),document.getElementById("reset-options").addEventListener("click",this.options.reset_options_click.bind(this.options)),$(".option-item input:checkbox").on("switchChange.bootstrapSwitch",this.options.switch_change.bind(this.options)),$(".option-item input:checkbox").on("switchChange.bootstrapSwitch",this.options.set_word_wrap.bind(this.options)),this.add_dynamic_listener(".option-item input[type=number]","keyup",this.options.number_change,this.options),this.add_dynamic_listener(".option-item input[type=number]","change",this.options.number_change,this.options),this.add_dynamic_listener(".option-item select","change",this.options.select_change,this.options),document.getElementById("alert-close").addEventListener("click",this.app.alert_close_click.bind(this.app))},Manager.prototype.add_listeners=function(a,b,c,d){d=d||this,[].forEach.call(document.querySelectorAll(a),function(a){a.addEventListener(b,c.bind(d))})},Manager.prototype.add_multi_event_listener=function(a,b,c,d){for(var e=b.split(" "),f=0;f<e.length;f++)document.querySelector(a).addEventListener(e[f],c.bind(d))},Manager.prototype.add_multi_event_listeners=function(a,b,c,d){for(var e=b.split(" "),f=0;f<e.length;f++)this.add_listeners(a,e[f],c,d)},Manager.prototype.add_dynamic_listener=function(a,b,c,d){var e={selector:a,callback:c.bind(d||this)};this.dynamic_handlers.hasOwnProperty(b)?this.dynamic_handlers[b].push(e):(this.dynamic_handlers[b]=[e],document.addEventListener(b,this.dynamic_listener_handler.bind(this)))},Manager.prototype.dynamicLine truncated