-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.min.js
1 lines (1 loc) · 108 KB
/
index.min.js
1
const FlowRenderer=function(){let t=this||{};const e="flow-renderer-css",i=.75,n=30,o=100,a=20,M={width:8e3,height:8e3},A=13.5,r={view:{}};r.view.tools={},r.utils={},r.view.gridSize=function(){return a},r.view.tools.calculateGridSnapOffsets=function(t,e){0;e=e||{align:"nearest"};const i={x:0,y:0},n=r.view.gridSize(),o=t.x-(n*Math.round((t.x-t.w/2)/n)+t.w/2),a=t.x-(n*Math.round((t.x+t.w/2)/n)-t.w/2);i.x=a,"right"===e.align||("left"===e.align||Math.abs(o)<Math.abs(a))&&(i.x=o);return i.y=t.y-n*Math.round(t.y/n),i},r.utils.parseContextKey=function(t,e){var i={},n=/^#:\((\S+?)\)::(.*)$/.exec(t);n?(i.store=n[1],i.key=n[2]):(i.key=t,e&&(i.store=e));return i};const u={arrows:!1,gridLines:!0,zoom:!0,images:!0,linkLines:!1,labels:!0,autoZoom:!0,autoScroll:!0,flowId:void 0,container:void 0,document:void 0},s={width:10,height:10},d={rx:3,ry:3},g={junction:{width:10,height:10},"link in":{width:30,height:30},"link out":{width:30,height:30},subflow:{width:40,height:40},_default:{width:100,height:30},_default_no_label:{width:30,height:30}},l={batch:"batch.svg",catch:"alert.svg",change:"swap.svg",complete:"alert.svg",rbe:"rbe.png",comment:"comment.svg",csv:"parser-csv.svg",debug:"debug.svg",delay:"timer.svg",exec:"cog.svg",feedparse:"parser-xml.svg",file:"file.svg","file in":"file-in.svg",function:"function.svg","http response":"white-globe.svg","http in":"white-globe.svg","http request":"white-globe.svg",inject:"inject.svg",join:"join.svg",json:"parser-json.svg","link in":"link-out.svg","link out":"link-out.svg","link outlink":"link-out.svg","link outreturn":"link-return.svg","link call":"link-call.svg",xml:"parser-xml.svg",yaml:"parser-yaml.svg","mqtt in":"bridge.svg","mqtt out":"bridge.svg","tcp in":"bridge.svg","tcp out":"bridge.svg","tcp request":"bridge.svg","udp in":"bridge.svg","udp out":"bridge.svg",markdown:"parser-markdown.png",postgresql:"db.svg",range:"range.svg",sort:"sort.svg",split:"split.svg",subflow:"subflow.svg",switch:"switch.svg",template:"template.svg",trigger:"trigger.svg",ui_button:"ui_button.png",ui_template:"ui_template.png",ui_toast:"ui_toast.png",ui_audio:"feed.svg",ui_chart:"ui_chart.png",ui_colour_picker:"ui_colour_picker.png",ui_date_picker:"ui_date_picker.png",ui_dropdown:"ui_dropdown.png",ui_form:"ui_form.png",ui_gauge:"ui_gauge.png",ui_numeric:"ui_numeric.png",ui_slider:"ui_slider.png",ui_switch:"ui_switch.png",ui_text:"ui_text.png",ui_text_input:"ui_text.png","ui-button":"ui_button.png","ui-button-group":"ui_button.png","ui-chart":"ui_chart.png","ui-dropdown":"ui_dropdown.png","ui-form":"ui_form.png","ui-gauge":"ui_gauge.png","ui-markdown":"ui_text.png","ui-slider":"ui_slider.png","ui-switch":"ui_switch.png","ui-template":"ui_template.png","ui-text":"ui_text.png","ui-text-input":"ui_text.png","websocket in":"white-globe.svg","websocket out":"white-globe.svg","i2c scan":"serial.svg","i2c in":"serial.svg","i2c out":"serial.svg",cronplus:"timer.svg",Thought:"alert.svg",Idea:"light.svg","project link out":"ff-logo.svg","project link in":"ff-logo.svg","project link call":"ff-logo.svg"},c={"alert.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjE2Ljc0IC00MTUuMDQpIHNjYWxlKC42MjE0MykiIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0zNzEuMyA2ODMuOTdsMS42MS0xLjYxSDM4OWwxLjYxIDEuNjEtMy4yMTkgNDAuMjMtMy4yMTggMy4yMThoLTYuNDM3bC0zLjIxOS0zLjIxOHoiLz48cmVjdCB4PSIzNzIuOTEiIHk9IjczNS40NyIgd2lkdGg9IjE2LjA5MiIgaGVpZ2h0PSIxNi4wOTIiIHJ5PSIzLjAxNyIgY29sb3I9IiMwMDAiLz48L2c+PC9zdmc+Cg==","arduino.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHYSURBVEiJ7ZTBq4xRGMZ/77kzC6XuWN26V8qNdAsbyoI/AvU5u7tB3SihZMGClIVSlhSShb4zN5uxoGYplMWNbCjlkjuUmjKjKXdm3sfCN2NY6i6keVbnvOf0e9/zPuccy/OctVRYU9oYOAb+r8DSkBzCRJZlR4EzwCzSquChmZ1NKb0BiDEacA2YByrAV+BWs9m8WK/XWwDkeY6k0O/3b+qXGpJ6kuTuS5ImJVm/3z8/2ODuDZe+F+NXkibzPB8e+VAI4TDwGdifUpput9tTwFUz2wEsuvuJEMIl4BEwV61Wpw3mJD0xs+3AjdEKL0j6Jmmm+H0MsGLt1EjlL4rYlKT3q9LuYv5ckkYrBOimlFayLDsuySV5jHErcAfoShJwJcZYAR4Dm8pwEsDdnw69GAFOxBg3hBDuApuBWWDZ3SNQMjMDFoBWt9vNJDV6vd7twtBdfwI/AOv1sw9bUkrLwCdgPoSwACwBi8A+4HS5XG6a2cFSqfQuxnhZ0h7g2W8uS3owMFDSS0mdQd8kzRQ34XoR60p67e5fCpffdjqdjcMeppQcOODu54AWsBNYV2Q9klJaSSl5COGYu98DHNhmZhVJ981sb61W+8jAybXUv/+Wx8Ax8C/0A+UBSZXw25H1AAAAAElFTkSuQmCC","arrow-in.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTggNXYxMkg3djI2aDExdjEybDE0LTI1eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo=","batch.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9Ii42MTIiPjxwYXRoIGQ9Ik0zNC4wMDEgMjcuOTg3bC00IC4wMDR2My45OTdsNC0uMDFNNDAuMDAxIDI3Ljk4N2wtNCAuMDA0djMuOTk3bDQtLjAxTTI2LjAwMSAyOS45ODdsLTctNy45ODZ2MTUuOTg2TTM0LjAwMSAxMy45ODdsLTQgLjAwNHYzLjk5N2w0LS4wMU00MC4wMDEgMTMuOTg3bC00IC4wMDR2My45OTdsNC0uMDFNMzQuMDAxIDQxLjk4OGwtNCAuMDAzdjMuOTk3bDQtLjAxTTQwLjAwMSA0MS45ODhsLTQgLjAwM3YzLjk5N2w0LS4wMU04LjAwMSAyNy45ODdsLTQgLjAwNHYzLjk5N2w0LS4wMU0xNC4wMDEgMjcuOTg3bC00IC4wMDR2My45OTdsNC0uMDFNOC4wMDEgMTkuOTg3bC00IC4wMDR2My45OTdsNC0uMDFNMTQuMDAxIDE5Ljk4N2wtNCAuMDA0djMuOTk3bDQtLjAxTTguMDAxIDM1Ljk4N2wtNCAuMDA0djMuOTk3bDQtLjAxTTE0LjAwMSAzNS45ODdsLTQgLjAwNHYzLjk5N2w0LS4wMSIvPjwvZz48L3N2Zz4K","bluetooth.png":"data:image/png;base64,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","bridge-dash.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkuOTI0IDYuNjFjNC4zNzIgNS40MzMgNy4xODIgMTMuODkzIDcuMTgyIDIzLjM5NyAwIDkuNDkzLTIuODA0IDE3Ljk0Ni03LjE2NyAyMy4zNzltLTQuMjk0LTM4LjM5YzUuNjQ1IDkuNDE3IDcuMTcyIDIwLjk0NC4wMjQgMjkuOTkzbS00LjM2LTIxLjY2MWMxLjMzOCAxLjQ1OSAyLjIxNSAzLjkwNiAyLjIxNSA2LjY4IDAgMi41NzEtLjc1NSA0Ljg2My0xLjkzMSA2LjM0NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtZGFzaGFycmF5PSIxNC4wOTYsIDMuNTI0IiBzdHJva2Utd2lkdGg9IjMuNTI0Ii8+PC9zdmc+Cg==","bridge.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkuOTI0IDYuNjFjNC4zNzIgNS40MzMgNy4xODIgMTMuODkzIDcuMTgyIDIzLjM5NyAwIDkuNDkzLTIuODA0IDE3Ljk0Ni03LjE2NyAyMy4zNzltLTQuMjk0LTM4LjM5YzUuNjQ1IDkuNDE3IDcuMTcyIDIwLjk0NC4wMjQgMjkuOTkzbS00LjM2LTIxLjY2MWMxLjMzOCAxLjQ1OSAyLjIxNSAzLjkwNiAyLjIxNSA2LjY4IDAgMi41NzEtLjc1NSA0Ljg2My0xLjkzMSA2LjM0NiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjMuMjI0Ii8+PC9zdmc+","cog.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAgMTJhMTggMTggMCAwIDAtMy40OTQuMzZsLTEuNDI4IDUuNzE1LTUuMDYtMy4wMzZhMTggMTggMCAwIDAtNC45NDYgNC45MTdsMy4wNDUgNS4wNzgtNS43NjUgMS40NDJBMTggMTggMCAwIDAgMiAzMGExOCAxOCAwIDAgMCAuMzQ1IDMuNDM0bDUuNzc1IDEuNDQ0LTMuMDcyIDUuMTJhMTggMTggMCAwIDAgNC44OTMgNC45MjRsNS4xMzctMy4wODMgMS40NTUgNS44MkExOCAxOCAwIDAgMCAyMCA0OGExOCAxOCAwIDAgMCAzLjQ3LS4zNTNsMS40NTItNS44MDcgNS4xMjggMy4wNzZhMTggMTggMCAwIDAgNC45MDUtNC45MTNsLTMuMDc0LTUuMTI0IDUuNzgzLTEuNDQ2QTE4IDE4IDAgMCAwIDM4IDMwYTE4IDE4IDAgMCAwLS4zNjctMy41MjlsLTUuNzUtMS40MzcgMy4wNDEtNS4wNjlhMTggMTggMCAwIDAtNC45MzctNC45MjhsLTUuMDY1IDMuMDM4LTEuNDMzLTUuNzI4QTE4IDE4IDAgMCAwIDIwIDEyem0wIDlhOSA5IDAgMCAxIDkgOSA5IDkgMCAwIDEtOSA5IDkgOSAwIDAgMS05LTkgOSA5IDAgMCAxIDktOXoiIGNvbG9yPSIjMDAwIiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuOTgiIHN0eWxlPSJpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWwiLz48L3N2Zz4K","comment.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMzYuMTkgMjguNmMwIDYuMDg4LTcuMjg5IDExLjAyNC0xNi4yOCAxMS4wMjRhMjMuOTggMjMuOTggMCAwIDEtMi45ODItLjE4NWMtMS4yNzItLjE1OS03LjkzMyA3LjUyNi0xMy4xMTMgNi41My4xOC0yLjAwNCA4LjE4LTYuMDA0IDUuODctOC43OUM1Ljk5MyAzNS4xNiAzLjYzIDMyLjA2NiAzLjYzIDI4LjZjMC02LjA4OCA3LjI4OS0xMS4wMjQgMTYuMjgtMTEuMDI0IDguOTkxIDAgMTYuMjggNC45MzYgMTYuMjggMTEuMDI0eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjYmFiYWJhIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iaXNvbGF0aW9uOmF1dG87bWl4LWJsZW5kLW1vZGU6bm9ybWFsIi8+PC9zdmc+Cg==","db.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzU1IC03MDQuMzYpIj48ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCgxLjI4NjggMCAwIDEuOTI2MyAtNjQuNDQ0IC02MDcuNTYpIiBjeD0iMzQxLjI1IiBjeT0iNjg4LjYxIiByeD0iOS44NCIgcnk9IjMuMjUiIGNvbG9yPSIjMDAwIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTM4Ny4zMiA3NTAuNDhjMCAxLjk0OS01LjY2OSA1Ljg3OS0xMi42NjIgNS44NzlzLTEyLjY2Mi0zLjkzLTEyLjY2Mi01Ljg3OXYtMjcuMDQzYzAgMS45NDkgNS42NjkgNi4yNDIgMTIuNjYyIDYuMjQyczEyLjY2Mi00LjI5MyAxMi42NjItNi4yNDJ2MjcuMDQzIiBjb2xvcj0iIzAwMCIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4K","debug.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAuMDA0IDE0LjQ5OWgyME0xMC4wMDQgNDYuNTAzaDIwTTEwLjAwNCAyMi41aDIwTTEwLjAwNCAzMC41MDFoMjBNMTAuMDA0IDM4LjUwMmgyMCIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjIuOTk5NzAwMDAwMDAwMDAwMyIvPjwvc3ZnPgo=","envelope.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMjAgMzIuOTZsLTE4LTE4aDM2eiIvPjxwYXRoIGQ9Ik0yIDIwLjM2bDE4IDE4IDE4LTE4djI2LjFIMnoiLz48L2c+PC9zdmc+Cg==","feed.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjYjg1YzVjIiBzdHJva2U9IiMwMDAiPjxwYXRoIGNvbG9yPSIjMDAwIiBkPSJNLS4wMS0uMDA0aDM5Ljk5OHY2MEgtLjAxeiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1MC4yNjYgLTU4NS4zNykiPjxyZWN0IHg9IjQ2NC4yNyIgeT0iNjI1LjM3IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ5PSIyLjQiIGNvbG9yPSIjMDAwIiBmaWxsPSIjZmZmIiBzdHJva2U9Im5vbmUiLz48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iNCI+PHBhdGggZD0iTTQ2MS4yNyA2MTguODdsNS41LTIuNWg3bDUuNSAyLjVNNDU5LjI3IDYwOC44N2w1LjUtMi41aDExbDUuNSAyLjVNNDU3LjI3IDU5OC44N2w1LjUtMi41aDE1bDUuNSAyLjUiLz48L2c+PC9nPjwvZz48L3N2Zz4=","file-in.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBjb2xvcj0iIzAwMCIgZmlsbD0ibm9uZSIgZD0iTTAtLjA0aDQwdjYwSDB6Ii8+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTUgOS45NmgxNHYxNmg5djdIMTh2MTBoMTB2N0g1eiIvPjxwYXRoIGQ9Ik0yMiA5Ljk2bDEzIDEzSDIyeiIvPjxwYXRoIGQ9Ik0yOCAyNS45Nmg3djZsNSA2LTQuOTg3IDYtLjAxMyA2aC03bDEwLTEyeiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9nPjwvc3ZnPg==","file.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBjb2xvcj0iIzAwMCIgZmlsbD0ibm9uZSIgZD0iTTAtLjA0aDQwdjYwSDB6Ii8+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTUgOS45NmgxNHYxNmgxNnYyNEg1di03aDV2N2wxMC0xMi0xMC0xMnY3SDV6Ii8+PHBhdGggZD0iTTIyIDkuOTZsMTMgMTNIMjJ6Ii8+PC9nPjxwYXRoIGQ9Ik01IDMwLjk2SDB2MTRoNXYtMkgydi0xMGgzeiIgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+","function.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMzAuOTk5IDMxLjAwNXYtM2gtNi43NjJzLjgxMi0xMi4zOTcgMS4xNjItMTQgLjU5Ny0zLjM1IDIuNjI4LTMuMTAzIDEuOTcxIDMuMTAzIDEuOTcxIDMuMTAzbDQuODYyLS4wMTZzLS43ODMtMy45ODQtMi43ODMtNS45ODQtNy45NDYtMS43LTkuNjMzLjAzYy0xLjY4NyAxLjczLTIuMzAyIDUuMDY1LTIuNTk3IDYuNDIyLS41ODggNC41LS44NTQgOS4wMjctMS4yNDggMTMuNTQ3aC04LjZ2M0gxOC4xcy0uODEyIDEyLjM5OC0xLjE2MiAxNC0uNTk3IDMuMzUtMi42MjggMy4xMDMtMS45NzItMy4xMDItMS45NzItMy4xMDJsLTQuODYyLjAxNXMuNzgzIDMuOTg1IDIuNzgzIDUuOTg1YzIgMiA3Ljk0NiAxLjY5OSA5LjYzNC0uMDMxIDEuNjg3LTEuNzMgMi4zMDItNS4wNjUgMi41OTctNi40MjIuNTg3LTQuNS44NTQtOS4wMjcgMS4yNDgtMTMuNTQ3eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo=","hash.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9Ii44NTciPjxwYXRoIGQ9Ik0xNy45OTcgOC45OThsLTUuOTcyLjA3Mi00LjAyOCA0My45MjggNS45MTQuMDcyeiIvPjxwYXRoIGQ9Ik02IDE2Ljk5OWwtMSA2IDMxIDEgMS02eiIvPjxwYXRoIGQ9Ik0zMS45OTYgOC45OThsLTUuOTcxLjA3Mi00LjAyOSA0My45MjggNS45MTQuMDcyeiIvPjxwYXRoIGQ9Ik0zLjk5OCAzNy4wMDRsLTEgNiAzMSAxIDEtNnoiLz48L2c+PC9zdmc+Cg==","inject.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTggNXYxMkg3djloMTV2LTdsNiAxMS02IDEydi04SDd2OWgxMXYxMmwxNC0yNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4K","join.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDAuMDAxIDM5Ljk5bC0uMDMyLTE5Ljk1NS0xMS45NjcuMDE3djE5Ljk4M2wxMi0uMDQ2TTguMDAxIDI4LjAyN2wtNCAuMDA0djMuOTk3bDQtLjAxTTE0LjAwMSAyOC4wMjdsLTQgLjAwNHYzLjk5N2w0LS4wMU0yNS4wMDEgMzAuMDI3bC03LTcuOTg2djE1Ljk4Nk04LjAwMSAyMC4wMjdsLTQgLjAwNHYzLjk5Nmw0LS4wMU0xNC4wMDEgMjAuMDI3bC00IC4wMDR2My45OTZsNC0uMDFNOC4wMDEgMzYuMDI3bC00IC4wMDR2My45OTdsNC0uMDFNMTQuMDAxIDM2LjAyN2wtNCAuMDA0djMuOTk3bDQtLjAxIiBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9Ii42MTIiLz48L3N2Zz4K","leveldb.png":"data:image/png;base64,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","light.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyB0cmFuc2Zvcm09Im1hdHJpeCguNzg3MzcgMCAwIC43ODc5MyAtMjcxLjI5NCAtNTI5Ljk5KSIgc3Ryb2tlPSIjZmZmIiBmaWxsPSJub25lIj48ZWxsaXBzZSB0cmFuc2Zvcm09Im1hdHJpeCgxLjQ5MjQgMCAwIDEuNDYxNiAtNTkuNDkxIC0zNDMuNDYpIiBjeD0iMjg3Ljc1IiBjeT0iNzE1Ljg2IiByeD0iMTAuNzUiIHJ5PSIxMiIgY29sb3I9IiMwMDAiIHN0cm9rZS13aWR0aD0iNC4wNzEiLz48cGF0aCBkPSJNMzYyLjUgNzE3Ljg2djE1LjVjNi4zNzEgMi4xMjggOC43MTIgMi4wMDMgMTUgMHYtMTUuNSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1LjAxIi8+PHBhdGggZD0iTTM2Ni41IDcxNy44NmwxLTEyaDVsMSAxMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMuMDA2Ii8+PC9nPjwvc3ZnPgo=","link-call.svg":"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+Cjxzdmcgd2lkdGg9IjEwLjU4M21tIiBoZWlnaHQ9IjE1Ljg3NW1tIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMC41ODMgMTUuODc1IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHBhdGggZD0ibTguMjAyMSAyLjM4MTItNC44OTIyIDAuNTM2MTIgMS42MDQgMC45MjYwNC0xLjAzOTUgMS44MDA0YzAuNzM3MTktMC4zNzQwMiAxLjY0MzctMC4zODIyNyAyLjQwOTUgMC4wNTk4OTIgMC43NjUxMSAwLjQ0MTc0IDEuMjExOCAxLjIzMDEgMS4yNTc3IDIuMDU1bDEuMDM4NC0xLjc5ODYgMS42MDQgMC45MjYwNHptLTIuMzgxMyA0LjEyNDRjLTAuNzcwMTYtMC40NDQ2NS0xLjc0MDItMC4xODQ3NC0yLjE4NDggMC41ODU0Mi0wLjQ0NDY1IDAuNzcwMTYtMC4xODUgMS43NDA2IDAuNTg1MTYgMi4xODUzIDAuNzcwMTYgMC40NDQ2NSAxLjc0MjIgMC4xODUzMyAyLjE4NjktMC41ODQ4MyAwLjQ0NDY1LTAuNzcwMTYgMC4xODI5NS0xLjc0MTItMC41ODcyMS0yLjE4NTh6bS0zLjMxOTMgMS41MTU5LTEuODIxMSAzLjE1NDIgMy42NjYyIDIuMTE2NyAxLjgyLTMuMTUyNGMtMC43MzczMSAwLjM3MjY2LTEuNjQzMSAwLjM3OTYxLTIuNDA4Mi0wLjA2MjEyOS0wLjc2NTg1LTAuNDQyMTYtMS4yMTIyLTEuMjMwOS0xLjI1NjktMi4wNTYzeiIgZmlsbD0iI2ZmZiIvPgo8L3N2Zz4K","link-out.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNyAzOC45OHYzLjk4M2gxMXYxMmwxMy0yM0gxOWwtLjQ2My4wMTdjLTEuMjggNC4wNDgtNS4wNjYgNi45ODMtOS41MzcgNi45ODN6bTEyLTExLjAxN2gxMmwtMTMtMjN2MTJIN1YyMC45bDIgLjA2NGM0LjQ2NyAwIDguMjUgMi45MyA5LjUzNCA2Ljk3MnpNNi45NSAyNC4yMmE2IDYgMCAxIDEtLjA4MyAxMS40NTYiIGZpbGw9IiNmZmYiIHN0eWxlPSJpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWwiLz48L3N2Zz4K","link-return.svg":"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+Cjxzdmcgd2lkdGg9IjEwLjU4M21tIiBoZWlnaHQ9IjE1Ljg3NW1tIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMC41ODMgMTUuODc1IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPHBhdGggZD0ibTIuNjYyMyAxMy4yOTIgNC44OTIyLTAuNTM2MTItMS42MDQtMC45MjYwNCAxLjAzOTUtMS44MDA0Yy0wLjczNzE5IDAuMzc0MDItMS42NDM3IDAuMzgyMjctMi40MDk1LTAuMDU5ODkyLTAuNzY1MTEtMC40NDE3NC0xLjIxMTgtMS4yMzAxLTEuMjU3Ny0yLjA1NWwtMS4wMzg0IDEuNzk4Ni0xLjYwNC0wLjkyNjA0em0yLjM4MTMtNC4xMjQ0YzAuNzcwMTYgMC40NDQ2NSAxLjc0MDIgMC4xODQ3NCAyLjE4NDgtMC41ODU0MiAwLjQ0NDY1LTAuNzcwMTYgMC4xODUtMS43NDA2LTAuNTg1MTYtMi4xODUzLTAuNzcwMTYtMC40NDQ2NS0xLjc0MjItMC4xODUzMy0yLjE4NjkgMC41ODQ4My0wLjQ0NDY1IDAuNzcwMTYtMC4xODI5NSAxLjc0MTIgMC41ODcyMSAyLjE4NTh6bTMuMzE5My0xLjUxNTkgMS44MjExLTMuMTU0Mi0zLjY2NjItMi4xMTY3LTEuODIgMy4xNTI0YzAuNzM3MzEtMC4zNzI2NiAxLjY0MzEtMC4zNzk2MSAyLjQwODIgMC4wNjIxMjkgMC43NjU4NSAwLjQ0MjE2IDEuMjEyMiAxLjIzMDkgMS4yNTY5IDIuMDU2M3oiIGZpbGw9IiNmZmYiLz4KPC9zdmc+Cg==","mongodb.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEbSURBVEiJ7davSwRBGMbx76rJ4Gky62EThNOmWfwL7mlm0WAw2U2mK3aDwj5gMBgEi8FmEbGIWYMGwR8gJssGhb2dmdsNIr5t5n3nMy8TZibL85wmY6hR7e+AkmYlTTUCSpoAjoEjSa1aoKRhIAfaQAc4kTRap8NtYPnbeAnYHQiUNAZslaTWJS0O0uEGMF4ynwG9JFBSBmxWbLYgqZPSYRuYrAABVlPA+QAGMJcCTkeAMyngcwT4mQI+RYCPKeAZ8BYAL6JB2y/AQQB0NFjEXkXu0PZlEmj7BjgtSd0Ca/3WhS6HLj/P6gPo2u57vpWg7VdgBbgrpnZsX1etCV6wtt+Bh2J4H6r//Y/USGTdPnAOXIUKs/+fQ+34AkBdPov8hXWQAAAAAElFTkSuQmCC","mouse.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB98CBBcXKYRGaWIAAAIfSURBVEjHrVY9a1RBFD33bjAhNqYTBW0kpBErawPpjIq4RWyEYG2hiIWdnY3+Aiut/GhiYyeIhb/AJGgQFAtTpFlWCYjnHIvMw3XzXvI2m1vNx50zc7/OHaClSLLtB2WMsUXSkiSRfHgYYAAA29clmeSZJt0cBdh2pwz7h/HKm9qRJ2OD2Z4vpi7vF5SJOn9lZgV0SdKk7bsAEBEXbSeALdtvIuLPoP4uIVmBzktyMdG2RdJlooH1hcFzTaDvCtgLSfNl7bgkD1gxK+lWccPzRjeQXC5gdwaVSJ4eBKxeZPt20e8OO726+ZOkrzUX/Qc4tLci6WN1SRZnV/uzth+3jT5JZOYqgJkskdkVnsxcbwvY6XRgmxExASCaKiVGzNG9S8/2WFQyUbN2VdIvAOuZ2Ss+/l1z8REAc7bnALiR86qELolsSZ9tr5REfkTytaSfA4lu2z8q4ohhQABd25sRcTIiFm1fADATEZOl7PoANgA8i4g1Sd3MXAJwIiK4y+SI6GfmhzJ91YInFw7MhzUpNh7BHijKto+OAhARYVtVPuYwU0TE5REBp2z3M1N1Tn5q+9uIreELydWmzRsl9061LLtzhRPP79nQSXq4hQ7PSR4juW37ZSNr24akqfLK7ySvNdDWFUnbRW+61U9C0lo5sCnpHslFSfclbXmnsbytY5s9fwqSzkra8L/OZJLvq59DK7A635EM29O9Xm/fc38BtSAs2DgLlw8AAAAASUVORK5CYII=","parser-csv.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjYuMDAxIDcuMDM0bC0yMiAuMDQzdjQ1Ljk1OGgzMnYtMzZ6bS0xNC44MzggMTRoMi44Mzh2MTUuMDAxaC0zVjI1LjczOGMtMS4wMjcuOTYtMi42MDYgMS4xMTQtNCAxLjU3NFYyNC43NmMuNzM0LS4yNCAxLjUzLS43MDYgMi4zOS0xLjM3My44NjEtLjY3MyAxLjQ1Mi0xLjQ1NyAxLjc3Mi0yLjM1MXptMTUuOTQ4IDBjMS40NDggMCAyLjgyNC4zOTIgMy42NSAxLjE3My44MjguNzggMS4yNCAxLjc1MSAxLjI0IDIuOTEyIDAgLjY2LS4xMiAxLjI5LS4zNiAxLjg5YTcuMTQzIDcuMTQzIDAgMCAxLTEuMDUgMS44NzJjLS4zNC40MzMtLjk1MiAxLjA1Ny0xLjg0IDEuODctLjg4Ni44MTUtMS42ODcgMS4zNTUtMS45MjcgMS42MjItLjIzMy4yNjctLjQyMy40MDgtLjU3LjY2Mmg1Ljc0OHYzSDIxLjk4Yy4xMDctLjk4Ny40MjctMi4xOTIuOTYtMy4wNzIuNTM0LS44ODcgMS44MjUtMi4wNiAzLjQtMy41MjIgMS4yNjctMS4xOCAxLjk3Mi0xLjk4MiAyLjI1OS0yLjQwMi4zODctLjU4LjQwMi0xLjE1NC40MDItMS43MjEgMC0uNjI3LjAwOC0xLjEwOC0uMzMyLTEuNDQxLS4zMzMtLjM0LTEuMDM1LS41MS0xLjYyOS0uNTEtLjU4NyAwLTEuMDUzLjE3OC0xLjQuNTMxLS4zNDcuMzU0LS41NDYgMS4zMTYtLjYgMi4xMzdoLTMuMDM5Yy4xNjctMS41NDguOTI4LTMuMzE1IDEuODA5LTMuOTg5Ljg4LS42NzMgMS45OC0xLjAxMSAzLjMtMS4wMTF6TTE3LjAwMiAzMy4wMzZoM3YxLjkyOGMwIC44MTQtLjA3MyAxLjQ1NS0uMjEzIDEuOTIyLS4xNC40NzMtLjQwNy44OTgtLjggMS4yNzEtLjM4Ny4zNzQtLjg4LjY2Ni0xLjQ4MS44OGwtLjU0OS0xLjE2MWMuNTY3LS4xODcuOTY5LS40NDMgMS4yMS0uNzcuMjQtLjMyNy4zNjctLjUwMy4zOC0xLjA3aC0xLjU0N3oiIGZpbGw9IiNmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIuNjEyIi8+PC9zdmc+Cg==","parser-html.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjYuMDAxIDcuMDM0bC0yMiAuMDQzdjQ1Ljk1OGgzMnYtMzZ6bS0xMyAxM2wzIDItNiA4IDYgOC4wMDEtMyAyLTctMTB6bTEzIDBsNyAxMC03IDEwLjAwMS0zLTIgNi04LTYtOHoiIGZpbGw9IiNmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIuNjEyIi8+PC9zdmc+Cg==","parser-json.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjYuMDAxIDcuMDM0bC0yMiAuMDQzdjQ1Ljk1OGgzMnYtMzZ6bS05LjE3IDEwLjAwMmgxLjE5N3YzLjExYy0uOTc0IDAtMi4xLjA1Ny0yLjM4MS4xN2ExLjE0NiAxLjE0NiAwIDAgMC0uNjA2LjQ5M2MtLjEzMS4yMTctLjE5Ny41OTMtLjE5NyAxLjEzMSAwIC41NDYtLjA0IDEuNTgzLS4xMTkgMy4xMS0uMDQ0Ljg1OC0uMTU4IDEuNTU2LS4zNDIgMi4wOTMtLjE4NC41My0uNDIxLjk2OC0uNzEgMS4zMTUtLjI4MS4zNDctLjcxNi43MDUtMS4zMDMgMS4wNzguNTE3LjI5NS45MzkuNjQyIDEuMjYzIDEuMDQuMzM0LjM5MS41ODguODY5Ljc2NCAxLjQzMy4xNzUuNTYzLjI5IDEuMzE4LjM0MiAyLjI2M2E4Ni45IDg2LjkgMCAwIDEgLjA5MiAyLjc1NmMwIC41NzMuMDcuOTcyLjIxIDEuMTk4LjE0LjIyNS4zNS4zOTUuNjMxLjUwNy4yOS4xMjIgMS40MDguMTgyIDIuMzU2LjE4MnYzLjEyMUgxNi44M2MtMS4xODUgMC0yLjA5My0uMDk1LTIuNzI1LS4yODVhMy42OSAzLjY5IDAgMCAxLTEuNjA0LS45MjQgMy4zIDMuMyAwIDAgMS0uODY5LTEuNjEzYy0uMTQ5LS42MzMtLjIyNC0xLjYzNC0uMjI0LTMuMDA0IDAtMS41OTYtLjA3LTIuNjMzLS4yMS0zLjExLS4xOTItLjY5My0uNDg3LTEuMTg3LS44ODItMS40ODItLjM4Ni0uMzAzLTIuNTA5LS41MzktMy4zMTYtLjU4MnYtM2MuNjQtLjAzNSAyLjY0OS0uMTkgMi45NzQtLjM0Ni4zMjQtLjE1Ni42MDUtLjQxNy44NDItLjc4MS4yMzctLjM3My4zOTgtLjgzNi40ODYtMS4zOS4wNy0uNDE3LjEwNi0xLjE0My4xMDYtMi4xNzUgMC0xLjY4Mi4wOC0yLjg1Mi4yMzgtMy41MTEuMTU4LS42NjguNDQzLTEuMjAxLjg1NS0xLjYuNDEzLS40MDggMS4wMTItLjcyOSAxLjgwMS0uOTYzLjUzNS0uMTU2IDMuNjc3LS4yMzQgMi41MjctLjIzNHptNS4xNTcgMGgxLjE5N2MxLjE1IDAgMS45OTMuMDc4IDIuNTI4LjIzNC43OS4yMzQgMS4zODguNTU1IDEuOC45NjMuNDEzLjM5OS42OTguOTMyLjg1NiAxLjYuMTU4LjY1OS4yMzggMS44My4yMzggMy41MTEgMCAxLjAzMi4wMzYgMS43NTguMTA2IDIuMTc0LjA4Ny41NTUuMjUgMS4wMTguNDg2IDEuMzkuMjM3LjM2NS41MTcuNjI2Ljg0Mi43ODIuMzI0LjE1NiAyLjMzMy4zMTEgMi45NzMuMzQ2djNjLS44MDcuMDQzLTIuOTMuMjc4LTMuMzE1LjU4Mi0uMzk1LjI5NS0uNjkuNzg5LS44ODMgMS40ODItLjE0LjQ3Ny0uMjA5IDEuNTE0LS4yMDkgMy4xMSAwIDEuMzctLjA3NSAyLjM3LS4yMjQgMy4wMDQtLjE1LjY0MS0uNDQgMS4xOC0uODcgMS42MTNhMy42OSAzLjY5IDAgMCAxLTEuNjAzLjkyNGMtLjYzMi4xOS0zLjkwOS4yODUtMi43MjUuMjg1aC0xLjE5N3YtMy4xMjFjLjk0NyAwIDIuMDY2LS4wNiAyLjM1Ni0uMTgyLjI4LS4xMTIuNDktLjI4Mi42My0uNTA4LjE0LS4yMjUuMjExLS42MjUuMjExLTEuMTk3IDAtLjM5OS4wMy0xLjMxNi4wOTItMi43NTYuMDUzLS45NDUuMTY2LTEuNy4zNDItMi4yNjQuMTc1LS41NjMuNDMtMS4wNDEuNzY0LTEuNDMxYTQuNDM0IDQuNDM0IDAgMCAxIDEuMjYzLTEuMDQxYy0uNTg3LS4zNzMtMS4wMjItLjczMS0xLjMwMi0xLjA3OC0uMjktLjM0Ny0uNTI3LS43ODYtLjcxMS0xLjMxNS0uMTg1LS41MzctLjI5OC0xLjIzNS0uMzQyLTIuMDk0LS4wOC0xLjUyNi0uMTItMi41NjMtLjEyLTMuMTA5IDAtLjUzOC0uMDY1LS45MTQtLjE5Ny0xLjEzYTEuMTQ2IDEuMTQ2IDAgMCAwLS42MDUtLjQ5NWMtLjI4LS4xMTMtMS40MDctLjE3LTIuMzgtLjE3eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9Ii42MTIiLz48L3N2Zz4K","parser-xml.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjYuMDAxIDcuMDM0bC0yMiAuMDQzdjQ1Ljk1OGgzMnYtMzZ6bS0xMyAxM2wzIDItNiA4IDYgOC4wMDEtMyAyLTctMTB6bTEzIDBsNyAxMC03IDEwLjAwMS0zLTIgNi04LTYtOHoiIGZpbGw9IiNmZmYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIuNjEyIi8+PC9zdmc+Cg==","parser-yaml.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjYuMDAxIDYuOTg3bC0yMiAuMDQzdjQ1Ljk1OGgzMlYxNi45ODd6TTEwLjU2NyAxOS4zNjJoNS4zNTJjLjc2OCAwIDEuMjgyLjEwNCAxLjU0My4zMTMuMjczLjIwOC40MS41NzMuNDEgMS4wOTMgMCAuNTIxLS4xNjMuODg2LS40ODggMS4wOTQtLjMxMy4yMDktLjg5Mi4zMTMtMS43MzkuMzEzaC0uNjQ0bDQuNzI2IDguNDc3IDQuOTAzLTguNDc3aC0uODAxYy0uNzAzIDAtMS4xOTEtLjEwNC0xLjQ2NS0uMzEzLS4yNzMtLjIwOC0uNDEtLjU3My0uNDEtMS4wOTQgMC0uNTQ2LjExNy0uOTE4LjM1Mi0xLjExMy4yMzQtLjE5NS44MjYtLjI5MyAxLjc3Ny0uMjkzaDMuNTk0Yy45OSAwIDEuNjIuMTA0IDEuODk0LjMxMy4yODcuMTk1LjQzLjU2LjQzIDEuMDkzIDAgLjUyMS0uMTQzLjg4Ni0uNDMgMS4wOTQtLjI3My4yMDktLjguMzEzLTEuNTgyLjMxM2gtLjMxMmwtNi42NCAxMS4zODd2Ni4yMTFoMi44NWMxLjAwMyAwIDEuNjQxLjA5OCAxLjkxNS4yOTMuMjg2LjE4Mi40My41MzQuNDMgMS4wNTUgMCAuNTM0LS4xNDQuOTA1LS40MyAxLjExMy0uMjc0LjE5NS0uODM0LjI5My0xLjY4LjI5M2gtOS4yNzdjLS44NDcgMC0xLjQwNi0uMDk4LTEuNjgtLjI5My0uMjczLS4yMDgtLjQxLS41OC0uNDEtMS4xMTMgMC0uNTIxLjE1LS44NzMuNDUtMS4wNTUuMzEyLS4xOTUuOTUtLjI5MyAxLjkxMy0uMjkzaDIuODMyVjMzLjI5bC02LjUwNC0xMS4xMTRoLS4zMzJjLS43ODEgMC0xLjMxNS0uMTA0LTEuNjAxLS4zMTItLjI4Ny0uMjA5LS40My0uNTczLS40My0xLjA5NCAwLS40ODIuMTE3LS44MzMuMzUxLTEuMDU1LjI0OC0uMjM0LjYyNi0uMzUxIDEuMTMzLS4zNTF6IiBmaWxsPSIjZmZmIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iLjYxMiIvPjwvc3ZnPgo=","range.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC4wMDMgNDIuMDA3aDV2LTE4aC01ek04LjAwMyAyMC4wMDZoNXYtNWgtNXpNMjUgNTIuMDA3aDh2LTI5aC04ek0yNSAxNS4wMWg4di04aC04eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSJub25lIi8+PHBhdGggZD0iTTE1LjgxOSAxNS42MzlsNi4yOTMtMi41MTdNMTUuMTkgNDIuMzg1bDcuMjM2IDMuNzc1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iMS4yNTg2MiIvPjwvc3ZnPgo=","rbe.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAYAAAAe2bNZAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wcPFiwJnbnE1AAAAIlJREFUWMPtl7sJgEAQRGcPYwMbELQni7AJW7QYEzEYYwX1vog4L13YeWw0CwjxR0hOjKCEiC8LyZXkTLIvIWIBMiPJ1ne3xVzlsMDMrubn2RMu5UqhYUVlciMZyUhGMpKRjGQk87ZMauGuPAIaABuADsCQMzyoA6eExVRSd/eKRHrUubuxEJ9gB2tHwAJpckKMAAAAAElFTkSuQmCC","redis.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJdSURBVEiJ7ZVNSFVREMd/zxQL2kSBQl+4qSgoKVxKrSoo+lgNLdUylSzaJLWpNhG0SPuwoIW0sTvRIhShTSRRELTQQEOjoiCoJLEPi1Ly3+KdZ+c9nwbiIqiBw+XMnf/vMnPmzE0lScJcWsGc0v4D58QK/xRgZkXA0rD94u7DswKa2QrgIFADlAT3TzPrAJrd/X4+XSruQzNLAduBemAH6ZK8B7qAcWA1sCWE9wAtwA13H5uEJEmCpCWSjkl6od/WLckkFSVJQmZJ2iCpTdL3EPdO0klJJUmSTKb8BigGPgOXgCvu/jRfSu7+BKgys6aQST1wCjgOzM8Ai4FeoNLdR6eraw54CDhtZmeBh8AmyD6UcuCRmTUD7e7+bSagmRUCVUAdsDHjzwAvA/uAdcA14JyZXQeuuvtADmgRcAA4BCwP7g/ATWDyUBSK3CHpoqRX0eHcldQoqU5Sq6TR4B+WdEvSPUljkpQkSRbwmaSKsC+QtFNSl6SfyrZ+SbWSFoTYckmDucC+SNAjqToSlEnaE1Zl9MHdkh5Eur4YOBi9GA/PEUnnJa2KenChpMOSnoeYiUg3mJvygKQKSSWSTkh6HYn6JfVK+hR8X0M91wTNQCbleNqsDC2wzN3PAGXALuAOsBgoBd4CTSGmIehqgjarbRpJd3w1UG1mj4HWdP96Z54e3GpmR4FtQAp4CVyAqcNhM9AA7AWKgBGgDbhNejisB44Aa4OkG2gGOt19YgowApcC+4HaqHkz9gNoB1rCvc6yvMAIPI/0GMtcrY+kr+XQdJoZgbOxv/8n9Q8CfwE7dg5XDmjPIwAAAABJRU5ErkJggg==","rpi.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9Ii4xMzgiPjxwYXRoIGQ9Ik0yMC4yMSAyMC45OGMyLjA5Ni0uMDIzIDQuNjk0IDEuNTYyIDQuNjgzIDMuMDU4LS4wMSAxLjMyLTEuODI0IDIuMzktNC42NjcgMi4zNy0yLjc4NC0uMDM0LTQuNjU2LTEuMzQ0LTQuNjUtMi42MjMuMDA1LTEuMDUzIDIuMjcxLTIuODY2IDQuNjM0LTIuODA1ek0xMy4wNyAyMS44N2MuNDY5LS4wMDkuOTU0LjAyOCAxLjQ0OS4xMTEgMS40NTguMjQ1LTYuOTkgNy42MjMtNy4xMiA1Ljk3Ny0uMTE2LTMuNzU2IDIuMzktNi4wMjcgNS42NzEtNi4wODh6TTI2LjkxIDIxLjk5YzMuMjguMDYxIDUuNzg3IDIuMzMgNS42NyA2LjA4Ni0uMTMgMS42NDUtOC41NzctNS43My03LjExOS01Ljk3NWE3LjgzIDcuODMgMCAwIDEgMS40NDktLjExMXpNMjUuNzYgMjYuNTljMS41Ni4xNDMgMy4xNDMgMS4wOCA0LjE3NSAyLjY0MyAxLjY1MiAyLjUgMS4yNyA1LjY1Ni0uODU1IDcuMDQ4LTIuMTI1IDEuMzkyLTUuMTg1LjQ5Mi02LjgzNy0yLjAwOC0xLjY1Mi0yLjUtMS4yNjktNS42NTYuODU1LTcuMDQ4Ljc5Ny0uNTIyIDEuNzI1LS43MiAyLjY2Mi0uNjM1ek0xNC43IDI2Ljg0Yy45MzctLjA4NiAxLjg2NS4xMTMgMi42NjEuNjM1IDIuMTI1IDEuMzkyIDIuNTA4IDQuNTQ4Ljg1NiA3LjA0OC0xLjY1MiAyLjUtNC43MTIgMy4zOTctNi44MzcgMi4wMDUtMi4xMjQtMS4zOTItMi41MDctNC41NDUtLjg1NS03LjA0NSAxLjAzMi0xLjU2MyAyLjYxNC0yLjUgNC4xNzUtMi42NDN6TTMzLjA1IDI5LjZhLjcyOC43MjggMCAwIDEgLjIwNC4wMjZjMy44MDYgMi4xNzMgMy4xNDUgNy4wMSAxLjA5MiA4LjY2LTEuODA4LjgwNC0zLjI5LTguNjUzLTEuMjk2LTguNjg2ek02Ljk1IDI5LjczYzEuOTk0LjAzMy41MTIgOS40OS0xLjI5NiA4LjY4Ny0yLjA1My0xLjY1MS0yLjcxNC02LjQ4NiAxLjA5Mi04LjY2YS43MzguNzM4IDAgMCAxIC4yMDQtLjAyN3pNMjAuMyAzNi4yM2MyLjgzMi0uMDE0IDUuMTQxIDIuMDkzIDUuMTU2IDQuNzA0di4wNDljLjAxNSAyLjYxLTIuMjY5IDQuNzM4LTUuMSA0Ljc1Mi0yLjgzMi4wMTQtNS4xNDEtMi4wOS01LjE1Ni00LjcwMWEyLjk5NiAyLjk5NiAwIDAgMSAwLS4wNTFjLS4wMTUtMi42MTEgMi4yNjgtNC43NCA1LjEtNC43NTN6TTMxLjY2IDM4LjAyYy40LS4wMTEuNzc3LjEwMiAxLjExNS4zNjQuOTEuOTA3IDEuNDQzIDQuMzItLjE1IDYuMzY2LTIuMTk1IDMuMDQ1LTUuMTY1IDMuMTY0LTYuMjcyIDIuMzE2LTEuMTU3LTEuMDkyLS4yNzQtNC40ODIgMS4zMTMtNi4zNCAxLjM2MS0xLjUzOCAyLjc5My0yLjY3NSAzLjk5NC0yLjcwNnpNOC42NSAzOC43NGMxLjI5LjA1NSAyLjgzNiAxLjA3NiA0LjA5OSAyLjU0IDEuNDY2IDEuNzY4IDIuMTM1IDQuODcyLjkxIDUuNzg4LTEuMTU3LjY5OC0zLjk2OC40MDktNS45NjctMi40NjMtMS4zNDctMi40MDktMS4xNzUtNC44Ni0uMjI5LTUuNThhMi4wNyAyLjA3IDAgMCAxIDEuMTg3LS4yODV6TTIwLjM1IDQ3LjIxYzIuMDYtLjA5IDQuODI0LjY2MyA0LjgzIDEuNjYyLjAzMy45Ny0yLjUwOCAzLjE2My00Ljk2NyAzLjEyLTIuNTQ3LjExLTUuMDQ1LTIuMDg1LTUuMDEyLTIuODQ2LS4wMzgtMS4xMTYgMy4xMDItMS45ODcgNS4xNDktMS45MzZ6TTM1LjEzIDExLjAzYy0uNTY5IDcuMzU2LTcuNDA5IDE0LjEyOC0xMS42MjkgNi45NzEgMS4zNjMtMS41MiAzLjg1My0zLjMwNiA4LjEzMy01LjUxMy0zLjMzIDEuMTMyLTYuMzM1IDIuNjQtOC44NSA0LjcxNi01LjgzOC00LjI5NiA0LjczNC05LjY3NSAxMi4zNDYtNi4xNzR6Ii8+PHBhdGggZD0iTTUuNDIgMTEuMDNjLjU2OSA3LjM1NiA3LjQwOSAxNC4xMjggMTEuNjI5IDYuOTcxLTEuMzYzLTEuNTItMy44NTMtMy4zMDYtOC4xMzMtNS41MTMgMy4zMyAxLjEzMiA2LjMzNSAyLjY0IDguODUgNC43MTYgNS44MzgtNC4yOTYtNC43MzQtOS42NzUtMTIuMzQ2LTYuMTc0eiIvPjwvZz48L3N2Zz4=","serial.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC41IDQ3LjVoNGwuMDQtMzQuOTk1TDE5LjUgMTIuNXYzNWgxMXYtMzVoNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2Utd2lkdGg9IjUiLz48L3N2Zz4K","sort.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAuMDAxIDE5Ljk1NWwtNy41LTguMTc4LTcuNSA4LjE3OGg1djI4aDV2LTI4ek0zNS4wMDEgMzkuOTU1bC03LjUgOC4xNzctNy41LTguMTc3aDV2LTI4aDV2Mjh6IiBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9Ii41MzEiLz48L3N2Zz4K","split.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTYuMDAxIDM5Ljk5bC0uMDMyLTE5Ljk1Ny0xMS45NjguMDE3djE5Ljk4M2wxMi0uMDQ1TTM0LjAwMSAyOC4wMjdsLTQgLjAwNHYzLjk5N2w0LS4wMU00MC4wMDEgMjguMDI3bC00IC4wMDR2My45OTdsNC0uMDFNMjcuMDAxIDMwLjAyN2wtNy03Ljk4NnYxNS45ODZNMzQuMDAxIDIwLjAyN2wtNCAuMDA0djMuOTk3bDQtLjAxTTQwLjAwMSAyMC4wMjdsLTQgLjAwNHYzLjk5N2w0LS4wMU0zNC4wMDEgMzYuMDI3bC00IC4wMDR2My45OTdsNC0uMDFNNDAuMDAxIDM2LjAyN2wtNCAuMDA0djMuOTk3bDQtLjAxIiBmaWxsPSIjZmZmIiBzdHJva2Utd2lkdGg9Ii42MTIiLz48L3N2Zz4K","status.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAzMGg5bDMuNS0xMCA1IDI1IDUuMTI1LTMwTDI3LjUgNDAgMzEgMzBoOSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbWl0ZXJsaW1pdD0iNi41IiBzdHJva2Utd2lkdGg9IjQiLz48L3N2Zz4K","subflow.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjUgMjUuOTRoN2MuNTggMCAxLS40MiAxLTF2LTJjMC0uNTgtLjQyLTEtMS0xaC03Yy0uNTggMC0xIC40Mi0xIDF2MmMwIC41OC40MiAxIDEgMXptLTE3IDEyaDdjLjU4IDAgMS0uNDIgMS0xdi0yYzAtLjU4LS40Mi0xLTEtMUg4Yy0uNTggMC0xIC40Mi0xIDF2MmMwIC41OC40MiAxIDEgMXptLS40MTYgMTFDNS42MjQgNDguOTQgNCA0Ny4zMTUgNCA0NS4zNTZWMTQuNTIyYzAtMS45NiAxLjYyNS0zLjU4MiAzLjU4NC0zLjU4MmgyNC44MzJjMS45NiAwIDMuNTg0IDEuNjIzIDMuNTg0IDMuNTgydjMwLjgzNGMwIDEuOTYtMS42MjUgMy41ODQtMy41ODQgMy41ODR6TTMyIDM2Ljk0SDE5YzAgMi4xOS0xLjgxIDQtNCA0SDd2NC40MTZjMCAuMzUuMjM1LjU4NC41ODQuNTg0aDI0LjgzMmMuMzUgMCAuNTg0LS4yMzUuNTg0LS41ODR2LTguNDE3em0xLTJ2LTZoLThjLTIuMTkgMC00LTEuODEtNC00aC0xYy00LjMzMy0uMDAyLTguNjY3LjAwNC0xMyAwdjZoOGMyLjE5IDAgNCAxLjgxIDQgNGgxM3ptMC0xNnYtNC40MThjMC0uMzUtLjIzNS0uNTgyLS41ODQtLjU4Mkg3LjU4NGMtLjM1IDAtLjU4NC4yMzMtLjU4NC41ODJ2OC40MTdjNC4zMzMuMDAyIDguNjY3LjAwMSAxMyAuMDAxaDFjMC0yLjE5IDEuODEtNCA0LTRoOHoiIGNvbG9yPSIjMDAwIiBmaWxsPSIjZmZmIi8+PC9zdmc+Cg==","swap.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTIuNzg3IDI2LjQzMkw5LjUgMTguMDAzaC00LjV2LTVoOGwyLjI4NiA2LjI4Nm01LjM1NyAxNC4yODZsMy4zNTcgOC40MjhoNHYtOGw3IDEwLjUtNyAxMC41di04aC03LjVsLTIuMzU3LTYuMjg2Ii8+PHBhdGggZD0iTTEzLjAwMSA0Ny4wMDNsMTAuODU3LTI5aDQuMTQzdjhsNy0xMC41LTctMTAuNXY4aC03LjVsLTExIDI5aC00LjV2NXoiLz48L2c+PC9zdmc+","switch.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNS4wMDEgMjcuMDA2djZsMTAuMTItLjAxNCAzLjAyMyA3LjcyOCAyLjM1NyA2LjI4Nmg3LjV2OGw3LTEwLjUtNy0xMC41djhoLTRsLTMuMzU3LTguNDI5Yy0uNDc1LTEuMjY3LS45My0yLjQzNS0xLjI5NS0zLjYwMWw0LjUxLTExLjk3SDI4djhsNy0xMC41LTctMTAuNXY4aC03LjVMMTUuMDk4IDI3eiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSJub25lIi8+PC9zdmc+Cg==","template.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMzAuMDQxIDQ3LjkxdjMuNDg1aC0xLjVxLTYuMDI3IDAtOC4wODQtMS43OS0yLjAzMy0xLjc5Mi0yLjAzMy03LjE0VjM2LjY4cTAtMy42NTUtMS4zMDctNS4wNTgtMS4zMDYtMS40MDQtNC43NDMtMS40MDRoLTEuNDc2di0zLjQ2aDEuNDc2cTMuNDYgMCA0Ljc0My0xLjM4IDEuMzA3LTEuNDA0IDEuMzA3LTUuMDF2LTUuODA4cTAtNS4zNDkgMi4wMzMtNy4xMTYgMi4wNTctMS43OSA4LjA4My0xLjc5aDEuNTAxdjMuNDZoLTEuNjQ2cS0zLjQxMiAwLTQuNDUzIDEuMDY1LTEuMDQgMS4wNjUtMS4wNCA0LjQ3N3Y2LjAwMnEwIDMuOC0xLjExNCA1LjUxOC0xLjA4OSAxLjcxOS0zLjc1IDIuMzI0IDIuNjg1LjY1MyAzLjc3NSAyLjM3MSAxLjA4OSAxLjcxOSAxLjA4OSA1LjQ5NHY2LjAwMnEwIDMuNDEyIDEuMDQgNC40Nzd0NC40NTMgMS4wNjV6IiBmaWxsPSIjZmZmIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iLjcxOSIvPjwvc3ZnPgo=","timer.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjb2xvcj0iIzAwMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU0MCAtOTg3LjM2KSI+PHBhdGggZD0iTTU2NS40MyAxMDAxLjljNi41NjIgMi4wODkgMTEuMzE2IDguMjMzIDExLjMxNiAxNS40ODggMCA4Ljk3NS03LjI3NSAxNi4yNS0xNi4yNSAxNi4yNXMtMTYuMjUtNy4yNzUtMTYuMjUtMTYuMjVjMC0yLjgwMi43MS01LjQzOCAxLjk1OC03Ljc0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHlsZT0iaXNvbGF0aW9uOmF1dG87bWl4LWJsZW5kLW1vZGU6bm9ybWFsIi8+PGNpcmNsZSBjeD0iNTYwIiBjeT0iMTAwMS40IiByPSIxLjUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjMiIHN0eWxlPSJpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWwiLz48cGF0aCBkPSJNNTYwIDEwMTQuNGMtMS4yMDYgMC0xMS0xMC45OTktMTIuMzU0LTkuOTc1UzU1NyAxMDE2LjE0OCA1NTcgMTAxNy40czEuMzYgMyAzIDMgMy0xLjM2MSAzLTMtMS43OTQtMy0zLTN6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPgo=","trigger.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC41IDQ3LjQ2aDRsLjA0LTM0Ljk5NSAxMC45Ni0uMDA1djM1aDE2IiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS13aWR0aD0iNSIgZmlsbD0ibm9uZSIvPjwvc3ZnPgo=","watch.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzU1IC03MDQuMzYpIj48Y2lyY2xlIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00My4wOTEgLTQ0Ljc1Mikgc2NhbGUoLjgxODE4KSIgY3g9IjUwNS41IiBjeT0iOTQxLjg2IiByPSIxNC41IiBjb2xvcj0iIzAwMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjQiLz48cGF0aCBkPSJNMzc3LjYyIDczNy44Nmw4Ljg3NyAxNS41IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI2Ii8+PC9nPjwvc3ZnPgo=","white-globe.svg":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAgMTJhMTggMTggMCAwIDAtMTQuMjQ2IDcuMDMzbDIuNTI3Ljg0NCAxLjk4My0xLjc5NyA0Ljg5LTMuNzE1Ljk5LjkzLTQuMDg1IDEuOTE4LS4wNjMgMi40MTYgMy4yMi0uODA1Yy45NS0uNjggMS44OTktMS4zNjQgMi44NDktMi4wNDVsLS4yNDktMi4yOWgxLjM2NGMxLjUwNi0uNTE3IDMuMDEzLTEuMDMyIDQuNTItMS41NDhsMS4zNDEgMS4zMjUtLjM1MSAxLjk1Ny0yLjA0My0uMTg2IDEuOTgyIDIuNjYyLTIuNDc3IDEuODU4di0xLjYxbC0yLjI5LjEyM2MtLjg2OC42Ni0xLjczNSAxLjMyMi0yLjYwMiAxLjk4M2wtLjM3MSAzLjM0My0zLjA5Ni40OTctMS4wNTMgMi40MTQuNDk0LjQ5NiAxLjE3OC0uMzEgMS4yMzgtMS40MjUgMi4xMDYuMzcxIDEuMTEzIDEuMjM5YzEuNTY5LjY5MSAzLjEzOSAxLjM4MiA0LjcwNyAyLjA3NEgxMS4wNjhsLTEuNjcyIDEuNDU1LS4zMSAyLjY2MiAxLjc5NyAyLjg1IDQuNTgyLjg2Ny45OSAyLjY2Mi0uMzcxIDMuMDk2IDIuMTA1IDEuNjEgMy4yODEuMzFMMjUgNDMuMTU4bC4zNy0xLjYxLjU2LTIuMDQ0Yy40OTUtLjQ5NS45ODgtLjk5MSAxLjQ4NC0xLjQ4NmwuMTI1LTEuNjctMi44NS0xLjY3Mi0xLjQ4NC0yLjE2OCAxLjU0Ny40OTYgMi40MTYgMi40MTQgMi4zNTEtMS4zLjE4Ni0yLjY2My0yLjQxNC0uMzcxLjEyMy0xLjMzMmg0LjY0NGwxLjQyNCAyLjJjLjU3OC4zMDkgMS4xNTcuNjE3IDEuNzM1LjkyN2wtLjI0OS0zLjEyN2gxLjIzOWwxLjMgMy40MzcuNDA1LTEuNDJBMTggMTggMCAwIDAgMzggMzBhMTggMTggMCAwIDAtMTgtMTh6TTIuOTU3IDMzLjgwOWwtLjUxOC4wNDNhMTggMTggMCAwIDAgMi42NzYgNi4yMzhjLjIxLS42MjguNDE4LTEuMjU2LjYyNy0xLjg4NXYtMi4yOUw1IDM0LjI0MmwtMi4wNDMtLjQzNHptMjUuNTI3IDEyLjA0OWwtNS40OTYgMS44ODlhMTggMTggMCAwIDAgNS40OTYtMS44ODl6IiBjb2xvcj0iIzAwMCIgZmlsbD0iI2ZmZiIgc3R5bGU9Imlzb2xhdGlvbjphdXRvO21peC1ibGVuZC1tb2RlOm5vcm1hbCIvPjwvc3ZnPg==","parser-markdown.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAoCAYAAADpE0oSAAAABmJLR0QA/wD/AP+gvaeTAAAB7UlEQVRYw+2VPWhUQRSFv/NcloTFxCRCsBItlNiksrQxtUIKC7W2tFOwEIIoapFCtFFsokmRQmzSJ4WxVgsVF1kkEUkwKqgxPyQem1kYhk3eIiEozIHHm3vveffOvDl3BjIyMjIy/nWoObB9EOiJYuuS3qQf2O4CDgEF4OBuSPoe4gKOAh1RjSVJ87RIVtget70QPXXbZxJep+37Ib4Y3nO2z0ecHtuzSa7xtGYlGu8F+iO7H7hi+4Wk92ElF4CzQFfEWwGqkV0AfVEuA7W0cFGyFYPAiO0acAK4mBT9a1RK4nuAYeA1cBI4vFPiqrTBqQGXw0qL3SwM0FtGsN0dFNwZd0tT2bb3Bf+KpNXtCv8Moqkm/i9AdzJpAbeBA8HuS2IDwBjwG5iyPbbdr/sETAdyPJnHwHq6YKAODAGngP1J/EjwDwIfJLkoOVxuAo1gbwBPgtDUgj8BzGwRE7AK3JU0U9pOkp4BN4AFYBa4lfyBmPsZGAHetQhvAk+Bh+32McAk8AC4Kqlewn0J3AO+Jf63wKikX20XlrQGXJf0vA2ugUdhSzaC+ytwTdKrrdrpB7CYqLeZcDO+PIClSO1rsdgkLdu+AxwHjgUxTu3k7aRo/xqSlhPeOeA0cEnSx127b21Xw6GSkZGRkfGf4g8tS8n281i76AAAAABJRU5ErkJggg==","ui_button.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADNSURBVEiJ7ZQxCsJAEEX/hhSeQhux9gSSe3gBwcIDeDGx9CYWNvYRi8CzMAlr3M0uWYsI+d3A7Pt/ZmClSf8joABK3iqBIhXYQhp4KpC+2qcsyXV0QL7lPhawtC7aKsLAfSzgAhy6aWJT+0YZtM8usIE8JG2GAH0uRWeH26EJXQ1r4A7MfwKsm47AGTAhWCwwqy+/T05nNa9CH4ILGBwpZGyM+WDkoQeSbpIqqz4ZY3Y+wxhgJWlh1bO+5hhgLulq1U9fOilxh939TRqpXsa932DLVhSzAAAAAElFTkSuQmCC","ui_chart.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADVSURBVEiJ7dQva0JhFAdg2bJYZGUywzQNs7DkBxismvwkC8Mug0XrwG6xmtYWjWZZUIMG94ftMWi4iPd6r/c2/cUD5+Ec3sOby51zIkExa1BW1kWKIe5CN0s6IfIY4z0xiKs9tTf84j4RiCI+UQ/UWjZ5ilohDOxsmycoo4IFhrhMBKKEFQaYY4QPTHEdikWAXXzhBg184x+Pkdg+EFX84CVQa+L1IBYC9rDcfWHEu9sgiBr+0I7VHAPsY4ZCVuAtHo7GdsG0OfpzOAhKl+esBzvnpLIGJQw3hKYULUMAAAAASUVORK5CYII=","ui_colour_picker.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AwQFgsvH/cw7AAAAhdJREFUSMftlU1LlFEYhq/zopVgMuEipA8IAyGKIpOQIDAiamO0ahFUq/oDBf2Cdi2CCIQg6C9ELVr0SQW5iAxs00bQrEgwGct0Zq42z9jrNOI70Sq6V+frvs9znvN8wH/kobbMSQVEEyBASqk1QZWUEmoHcAIYBHYAs8Bb4BkwllKq1M+u+Tz1gPpUrfo7vqg31Z2FXKIOqJNBrqn31RtquUF4Sj20lliX+ipHeqxuVFGvxQU1dTb2Z9SjjTpZEACGgf7c3hwwH36aDH8/SCmVgJNACbiubmtm3Tr1Sdz8Ta2o8+oF9ZT6Pvauxvn16lysjTQT7Ak/vVOPqGdD8If6PeeGCfWgelFdzD29t1Fwr7qkXqnHnvrS4rgcHLLQ7AIyYEvMS0BHCwkyDLSllGiLhSWgCpxXNwFbgd0tCPaFUTN1Cz8BFaATOANsB8aAWkHBTqBDbcsLfo3xa2AIOAw8LCiYRVgtCy4Ad2M8nlKaSCmVgdHV8gC4DdyLeTleU83/9L5c6PSrfeqLVX51Ud2jHo/5m8i0rDF8RuLAR3U6Uq0ZFtRBtVt9rl6KMrey0tRqtR51vEDcVdWh4Har7XlnLte1LMumgXPAhwIfsSu4MxF2vwRXVNyURoHTwOc1CnM1xylUaHvVW7mczaOsbi7cU3KtoB3YDxwDBoANwBRwB3jUzLJUsPvlXZOllCp/tZX+SXv9h/ET4N13p8IOyEcAAAAASUVORK5CYII=","ui_date_picker.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABmJLR0QA/wD/AP+gvaeTAAAATklEQVRIx2NgGAUjFPz///8/uWoYSTEEH2BkZGTEaSOpLsSqnhIXIutloZahNHMhE7VTCBO5gU/QR0PLy8R4cwR6eegmbNrl5VEwCogHAB0Cc6jSgYOVAAAAAElFTkSuQmCC","ui_dropdown.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABpSURBVEiJ7ZS7CoAwEARnRfxrK//awrU6CRYhkLNQM9UVy9wjEBh8HwHY3lNk0jJliErShXO2OIQHsHW61qvKeJRwPHbDspMBJCnqGpJUFZaBe7iFsXI/f17Z9loLthIT9n4MWY7BKzgBTP0qup60jeAAAAAASUVORK5CYII=","ui_form.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNpiYBgFgw4w/v//vwFI/6KSeWwgA/8DGdVUMrCVAWogVQDILBYoo4FahjJRPVao7WVwpDACAbrXgUINxAYFSC3MQEJerifCvHqivUxMcCCrIcbLcDm84YbQ/5++sTzqZaK8zIIm2YAlsTZQMy83EmFGI03zMqz4qhq0VcBorToIAUCAAQDBm54wNDH87wAAAABJRU5ErkJggg==","ui_gauge.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAF4SURBVEiJ7ZTPK0RRHMXPnUSywGgshpXxLxgW2LBTytLKgoUiRcmOLJSyY6dEyX8wmq2FhYU1hfzYSGpmYzTNLHws5jtczzM/rOfU69s953vO/d7Xu09qoIG64SqJQJekIUlxo54lXTjnMnXtAiSBUyAPFANPHkgBA1UnBCKStiStmFaQdC7p3lr6JA1LapGEpB1J6865j78mO7ApcsAG0B7S0wFsAu/Wu/9X2II1ZICRGl7LKJA1z3xQjAKvJk5WC/N8U+Z5ATp9YcmEVK1hnjdt3kVJihg/YfWo3kBJh4EMCXiyXeLhnh8TDQLT3rrHvI9+U87I5hoCr4B+b91i3jfp+8hZq9EqYXOS2pxzdx5d9mT9wFuroV+/hbVKWpZ0FpCSVm/8wLTVmQoDbqt0U44DfNmT/mKAbvtIC8BYyHS9wANwDTR5/Lh3GWJB05qJl0DwjqcoIeVxznqLwOqv8wARYA9IhGgx4ASYDfAJYNd+Kg008F98AoTJY9ZKCu6sAAAAAElFTkSuQmCC","ui_numeric.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEUSURBVEiJ7dK9LgRhFIfxsz4SttgaEZ1CJEoNCYVoRUeLRqfYGxCJULoFoZNIFLqtRKFQuQFBrbIivn4K7zKZ3UVCoZinOjln/s97ZuaNKCgoaAa96Go3HMAtNjO9ZVzjAWcYTf0KjvCMe6zlZfO49M5m6g2mwC5mcYVamlXxiDns4QVDWeELdnLCPqw0HkQNF6nuwXCq1/GE/qxwGJ1ZYe4NZlJoI9ffTZlqq2/YUogp1HGKcm42ntlw+lshJnCHE1Qy/RFMprqcclutf/dnqBIRBxHRHRGHEbGAeqlU2o+I5YhYxWJEjKXI+ZcbYkkzN43DcIzXdKW2UfpqwR/h/WJ3/1rUjo8V4S+EHX8hKSj4b7wBmFxhytCBdoQAAAAASUVORK5CYII=","ui_slider.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABVSURBVEiJ7dNBCgAgCARA7f9/tlOQIiJpJOEcQ0oXA2j/Q+2QiIgVIap1mhHtSGIvy87cl2wT3O1wKZVhOvcoAL4oem1sTzJMZ4588mN6bbgSGba4CZuaJByfIWmXAAAAAElFTkSuQmCC","ui_switch.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEJSURBVEiJ7ZNNSsNQFEbPc9AKLkAHgh35M3QLLYK0W7HqetyK0q7BUn8GohRxasBWhE6Og6byDHlpx5oDGeTm3pOb5AvU1PwH1E31Qh2rM3WeOGZ5z7naXM6HgmwXuAG2ga2S+30CE2CYn7eBI+AZ6IQQ3oqbPapfiY3e1dOSJ+qqH+pDvCnqpZolZFmZrCCdq/0QFcfAfmLmLoRwnBLm8yMgbES1VkX/sOLakgHQioWuMbSSWDip6Guv4WoDL7HwikUsythTuymT2gMOc8dPsbkiNlmZVO3lsblXG2XBvgZ2SAf7lcUHAOgAB8ATcPIr2JG0ofbVkTqt+PWm6q16pjZSr6Om5k/wDYhUJfwAsEtnAAAAAElFTkSuQmCC","ui_template.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEaSURBVEiJ7dE/L4NRGAXw90W6EKMahEGMoh2wqUVC7d3EZjdZjGb1GXwIk6WpiVHMJEQwNUHjT+JncCXN9bZCGomkZ7r3nPOce3OeJOmhh38I7GC4W2GDeMLkb4b7MrgV3CBt5/lCBONEkiQnKEfSUpIkh2maCtoxxr/7WQl3eMRMpJ1iPZwLaAbvQruwDbzgErORNoo3jLVwBZzjFVtxWNUHahjJeGwNZxl8HvUwW20VGrhvt0HsY6+NNoUHNFrJSujkFqVoIMU1VjPCFkOPTVRisYCLuBNM4xlDkf+z8yvMZf0+7mQ5cJuoRb5y8NSRzwxrMefCkorhfoDtyFPELnIdwzLC+8Ky5n802CFwAEfo70pgDz38Ad4Br8tc7FtGcAwAAAAASUVORK5CYII=","ui_text.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEWSURBVEiJ7ZMhS0RBFEbPyDMYhGXB5poFm2GNJpHFplXQ32AVYYO4xSIGQTAqGhQ0mGwmDQYRZJPYXGQRMYnwjsFZGQyy4YUN75SB716Gc+8wUFJSUgBqU/3qt3+oaIHfC9W62vaHN3UlbVTX1Xv1SB2L2ZR6oT6qp2otNVwGOsAi0Aa2kloG1IAW0AB21BHgEqgAm8A0sJ8aDKtz6rb6pOZqiDvM4wWoB+qLOhOnacS8qmap4TGwBzwD1wAhBJN6iGfvgbI/eQUYTw3f1TN1Ur1V85g3o8muOq921BN1VH1Vr9SFuMeb1HADmAXOgTsgqBNJ/RM4BB6AtRDCB7AEVON0XWCVgae3UFT/a+yXwn9KSckg8A2LRsxzeZWjFAAAAABJRU5ErkJggg==","ui_toast.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAG7AAABuwBHnU4NQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADeSURBVEiJ7ZKxCQJBFERnRQ5BUCzAxEB7sAB7EGzB6EJzE0OLsAGbMDW0AROTM9E70GcyyiknihiI3MDn/52dP8vuX6lEiT9EkCQg+4pZCFHFdfoFv1SSroYdSRNJW69PbxicnXeSZpK6tx0gBlpABAyBFZABB+d8XLmVtZF747xhBiTAHOiZ6wMLG6SOg7m+NT33JHdzyJ1+dOMSGAABaANTR9vcwJrUPdkzw8drbYAxUAdqwAhYP3sO6fW3wZq966aHUSkShxCi6otJBudGjis0e2vzE/y+YYkSf4kLDcYTu4mDJeQAAAAASUVORK5CYII=","ff-logo.svg":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MCIgaGVpZ2h0PSIxMzUiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDkwIDEzNSI+PHNjcmlwdCB4bWxucz0iIi8+CiA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjAwNzggMCAwIDEuMDA3OCAtNjcuMDA3IC02NS45MTQpIj4KICA8cGF0aCBkPSJtNzcuNzcgOTIuN2MtMy40OTcgMC02LjMxMSAyLjgxNi02LjMxMSA2LjMxMy0wLjAwNTIgMTEuNTUtMC4wMTMxNiAyMy4xMS0wLjAxNDk5IDM0LjY2IDcuNSAwLjA0NDQgMTUuMDEgMC4yMTcgMjIuNDktMC4zMTgzIDEwLjQzLTAuOTUxMSAxOS42MS02LjU1MiAyOS4yMi0xMC4yMyA4Ljc0Mi0zLjY5NyAxOC4xMy01Ljk0MSAyNy42Ni01Ljc0MWwtMWUtMyAtMTguMzhjNGUtMyAtMy40OTgtMi44MTUtNi4zMTMtNi4zMTEtNi4zMTN6bTczLjA1IDM3LjE5Yy0xLjA1NSAwLjAxNjktMi4xMTEgMC4wNDU3LTMuMTY2IDAuMDg4OS0xMS42NC0wLjA0NDgtMjEuOTYgNS45NzQtMzIuNDYgMTAuMTkgOC4xMTUgMy4yODMgMTUuOTUgNy40NTQgMjQuNTUgOS4zODkgMy42NzUgMC41NTc2IDcuMzcyIDAuODI5MiAxMS4wOCAwLjkwODV6bS03MS4xMyAxNi41N2MtMi43NDcgNmUtMyAtNS40OTQgMC4wMzQ2LTguMjM5IDAuMDQ4NiAwLjAwMjQgNi40MTYgMC4wMDcyIDEyLjgzIDAuMDE3NTcgMTkuMjUgMC4wMDM3IDMuNDk4IDIuODE1IDYuMzEzIDYuMzExIDYuMzEzaDY2LjczYzMuNDk3IDAgNi4zMTEtMi44MTYgNi4zMTEtNi4zMTN2LTIuNzc4Yy04LjIwMy0wLjA1MzctMTYuNC0xLjMwNC0yNC4wNC00LjM3NC0xMS44Mi00LjEyNC0yMi44NS0xMS40NS0zNS42OC0xMS45NC0zLjc5OC0wLjE3OTQtNy42MDItMC4yMTQ3LTExLjQxLTAuMjA2MnoiIGZpbGw9IiNmZmYiLz4KIDwvZz4KPHNjcmlwdCB4bWxucz0iIi8+PC9zdmc+"},I={base64:L("#DEBD5C"),batch:L("#E2D96E"),catch:L("#e49191"),change:L("#E2D96E"),rbe:L("#E2D96E"),complete:L("#C0EDC0"),comment:L(),csv:L("#DEBD5C"),debug:L("#87a980"),delay:L("#E6E0F8"),exec:L("darksalmon"),feedparse:L("#C0DEED"),file:L("BurlyWood"),"file in":L("BurlyWood"),function:L("#fdd0a2"),html:L("#DEBD5C"),"http response":L("rgb(231, 231, 174)"),"http in":L("rgb(231, 231, 174)"),"http request":L("rgb(231, 231, 174)"),inject:L("#a6bbcf"),join:L("#E2D96E"),json:L("#DEBD5C"),junction:L("rgb(217, 217, 217)"),"link in":L("#ddd"),"link out":L("#ddd"),"link call":L("#ddd"),"mqtt in":L("#d8bfd8"),"mqtt out":L("#d8bfd8"),"tcp in":L("silver"),"tcp out":L("silver"),"tcp request":L("silver"),"udp in":L("silver"),"udp out":L("silver"),markdown:L("#DEBD5C"),postgresql:L("#5b85a7"),range:L("#E2D96E"),sort:L("#E2D96E"),split:L("#E2D96E"),subflow:L("#ddd"),switch:L("#E2D96E"),trigger:L("#E6E0F8"),template:L("rgb(243, 181, 103)"),ui_button:L("rgb(176, 223, 227)"),ui_list:L("rgb( 63, 173, 181)"),ui_svg_graphics:L("rgb( 63, 173, 181)"),ui_template:L("rgb( 63, 173, 181)"),ui_toast:L("rgb(119, 198, 204)"),ui_upload:L("rgb( 63, 173, 181)"),ui_audio:L("rgb(119, 198, 204)"),ui_chart:L("rgb(119, 198, 204)"),ui_gauge:L("rgb(119, 198, 204)"),ui_text:L("rgb(119, 198, 204)"),ui_date_picker:L("rgb(176, 223, 227)"),ui_dropdown:L("rgb(176, 223, 227)"),ui_form:L("rgb(176, 223, 227)"),ui_numeric:L("rgb(176, 223, 227)"),ui_slider:L("rgb(176, 223, 227)"),ui_switch:L("rgb(176, 223, 227)"),ui_text_input:L("rgb(176, 223, 227)"),ui_colour_picker:L("rgb(176, 223, 227)"),"ui-button":L("rgb(160, 230, 236)"),"ui-button-group":L("rgb(160, 230, 236)"),"ui-chart":L("rgb(90, 210, 220)"),"ui-control":L("rgb(32, 160, 170)"),"ui-dropdown":L("rgb(160, 230, 236)"),"ui-event":L("rgb(32, 160, 170)"),"ui-form":L("rgb(160, 230, 236)"),"ui-gauge":L("rgb(90, 210, 220)"),"ui-markdown":L("rgb(39, 183, 195)"),"ui-notification":L("rgb(90, 210, 220)"),"ui-radio-group":L("rgb(160, 230, 236)"),"ui-slider":L("rgb(160, 230, 236)"),"ui-switch":L("rgb(160, 230, 236)"),"ui-table":L("rgb(90, 210, 220)"),"ui-template":L("rgb(39, 183, 195)"),"ui-text":L("rgb(90, 210, 220)"),"ui-text-input":L("rgb(160, 230, 236)"),"websocket in":L("rgb(215, 215, 160)"),"websocket out":L("rgb(215, 215, 160)"),yaml:L("#DEBD5C"),xml:L("#DEBD5C"),BlogPages:L("#ddeeff"),BlogDetails:L("#ddeeff"),BlogPageInfo:L("#ddeeff"),BlogChanges:L("#ddeeff"),PubMedium:L("#ddee44"),Topic:L("#d0c9f6"),Observation:L("#f4adf3"),Question:L("#e0a4f3"),Thought:L("#cb9cf3"),Idea:L("#88baff"),Analogy:L("#86bfff"),Aphorism:L("#84c3ff"),Poesie:L("#83c7ff"),Humour:L("#81ccff"),Treasure:L("#7fd0ff"),Consequence:L("#f6c1cc"),Advantage:L("#efacbf"),Disadvantage:L("#e796b1"),Text:L("#c8ffb5"),"Blog-Post":L("#d0fdc2"),Comment:L("#d9fcce"),"Code-Base":L("#e1fbda"),Sketch:L("#e1fbda"),Inspiration:L("#dfdfb6"),Quote:L("#e5e5c0"),Definition:L("#eaebca"),Book:L("#f0f0d4"),Author:L("#f5f6de"),"nnb-input-node":L("#ffefef"),"nnb-layer-node":L("#ffffef"),"nnb-output-node":L("#efefef"),"nnb-backprop":L("#e3edef"),"nnb-trainer":L("#e5e4ef"),Seeker:L("#e5e4ef"),Sink:L("#e5e4ef"),Screenshot:L("#e5e4ef"),Orphans:L("#e5e4ef"),IsMobile:L("#e5e4ef"),Navigator:L("#e5e4ef"),DrawSVG:L("#e5e4ef"),GetFlows:L("#e5e4ef"),SendFlow:L("#e5e4ef"),TriggerImport:L("#e5e4ef"),"i2c scan":L("rgb(227, 82, 83)"),"i2c in":L("rgb(227, 82, 83)"),"i2c out":L("rgb(227, 82, 83)"),cronplus:L("#a6bbcf"),"buffer-maker":L("#0090d4"),"buffer-parser":L("#0090d4"),"FINS Read":L("#0090d4"),"FINS Write":L("#0090d4"),"FINS Read Multiple":L("#0090d4"),"FINS Transfer":L("#0090d4"),"FINS Fill":L("#0090d4"),"FINS Control":L("#0090d4"),"MC Read":L("#0090d4"),"MC Write":L("#0090d4"),"modbus-response":L("#E9967A"),"modbus-read":L("#E9967A"),"modbus-getter":L("#E9967A"),"modbus-write":L("#E9967A"),"modbus-flex-getter":L("#E9967A"),"modbus-flex-write":L("#E9967A"),"modbus-flex-server":L("#E9967A"),"modbus-flex-connector":L("#E9967A"),"modbus-response-filter":L("#E9967A"),"modbus-flex-sequencer":L("#E9967A"),"modbus-flex-fc":L("#E9967A"),"OpcUa-Item":L("#3FADB5"),"OpcUa-Client":L("#3FADB5"),"OpcUa-Browser":L("#3FADB5"),"OpcUa-Server":L("#3FADB5"),"OpcUa-Event":L("#3FADB5"),"OpcUa-Method":L("#3FADB5"),"OpcUa-Rights":L("#3FADB5"),"OpcUa-Discovery":L("#3FADB5"),"s7 in":L("#3FADB5"),"s7 out":L("#3FADB5"),"s7 control":L("#3FADB5"),"project link out":L("#87D8CF"),"project link in":L("#87D8CF"),"project link call":L("#87D8CF"),_default:L()};function j(t){let e=I[t=t||"_default"];return e||(t.startsWith("subflow:")?e=I.subflow:t.startsWith("ui-")?e=I["ui-template"]:t.startsWith("ui_")&&(e=I.ui_template)),e||I._default}function N(t){let e=g[t.type]||g._default;return"junction"!==t.type&&(!1===t.l?e=g._default_no_label:!0===t.l&&(e=g._default)),e}function L(t,e){return{fill:t||"#ffffff",stroke:e||"rgb(153, 153, 153)"}}function D(){if("undefined"!=typeof document)return document;if("undefined"!=typeof __document)return __document;const t=Array.prototype.slice.call(arguments)||[this];for(const e of t){const t=e&&e.constructor&&e.constructor.name;if("HTMLDocument"===t)return e;if("HTMLDivElement"===t||"HTMLBodyElement"===t||"HTMLHtmlElement"===t||"HTMLElement"===t)return e.ownerDocument;if("SVGElement"===t||"SVGSVGElement"===t)return e.ownerDocument}return"undefined"!=typeof window?window.document:null}function y(t,e,i,n){return"number"==typeof t&&!isNaN(t)?Math.min(Math.max(t,e),i):n||e}function b(t){return{hasHorizontalScrollbar:t.scrollWidth>t.clientWidth,hasVerticalScrollbar:t.scrollHeight>t.clientHeight}}function p(t,e){let i=1;const n=t.getAttribute("transform");if(n){const t=n.match(/scale\(([^,]+)\)/);t&&(i=y(parseFloat(t[1]||1),.25,3,1))}const o=t.querySelector("g.outerContainer");x(o,i,!0),e.onwheel=function(t){if(t.ctrlKey||t.metaKey){t.preventDefault();let e=w(o);e-=.075*Math.sign(t.deltaY),e=y(e,.2,3,1),x(o,e)}};const a=function(t){const e=D(t,this);if(!e)return null;let i=t.querySelector(".toolbar");i||(i=f(t));let n=i.querySelector(".zoom-controls");if(n)return{zoomIn:i.querySelector(".zoom-in"),zoomOut:i.querySelector(".zoom-out"),zoomReset:i.querySelector(".zoom-reset")};n=e.createElement("div"),n.classList.add("zoom-controls"),n.classList.add("button-group");const o=e.createElement("button");o.classList.add("red-ui-footer-button","zoom-in"),o.innerHTML="+";const a=e.createElement("button");a.classList.add("red-ui-footer-button","zoom-reset"),a.innerHTML="○";const M=e.createElement("button");M.classList.add("red-ui-footer-button","zoom-out"),M.innerHTML="-",n.appendChild(M),n.appendChild(a),n.appendChild(o),i&&i.appendChild(n);return{zoomIn:o,zoomOut:M,zoomReset:a}}(e);a.zoomIn.onclick=function(){const t=y(w(o)+.1,.2,3,1);x(o,t)},a.zoomOut.onclick=function(){const t=y(w(o)-.1,.2,3,1);x(o,t)},a.zoomReset.onclick=function(){!function(t){const e=t.getAttribute("_scale_original")||1;x(t,e)}(o),function(t){t.scrollLeft=t.getAttribute("_scroll_x")||0,t.scrollTop=t.getAttribute("_scroll_y")||0}(e.querySelector(".red-ui-workspace-chart"))}}function w(t){return parseFloat(t.getAttribute("_scale_current")||1)}function x(t,e,i=!1){t.setAttribute("transform",`scale(${e})`);const n=t.ownerSVGElement||t;n.style.width=M.width*e+"px",n.style.height=M.height*e+"px",t.setAttribute("_scale_current",e),i&&t.setAttribute("_scale_original",e)}function m(t,e,i,n=!1){t.scrollLeft=e,t.scrollTop=i,n&&(t.setAttribute("_scroll_x",e),t.setAttribute("_scroll_y",i))}function h(t,e,i){const n=i.autoZoom||i.autoScroll?function(t,e){const i=.2,n=1,o=e.container.querySelector(".red-ui-workspace-chart"),a=o.getBoundingClientRect(),A=a.width-25,r=a.height-25;let u=M.width,s=M.height,d=0,g=0;const l=e.flowId,c=t.filter((t=>"tab"!==t.type&&"subflow"!==t.type&&t.z==l));if(0===c.length)return{scale:1,scrollX:0,scrollY:0};for(let t of c){if("tab"===t.type||"subflow"===t.type||"junction"===t.type)continue;const e=t.x||0,i=t.y||0,n=N(t),o=(n.width||100)/2,a=(n.height||30)/2,M=e-o,A=i-a,r=e+o,l=i+a;u=Math.min(u,M),s=Math.min(s,A),d=Math.max(d,r),g=Math.max(g,l)}let I=1;const j=d-u,L=g-s,D=A/j,b=r/L;(j>A||L>r)&&(I=Math.min(D,b),I*=.95);I=y(I,i,n,1);let p=u,w=s;p<50&&(p=0);w<40&&(w=0);p>0&&(p-=50);w>0&&(w-=40);return p=y(p*I,0,o.scrollWidth),w=y(w*I,0,o.scrollHeight),{scale:I,scrollX:p,scrollY:w,minX:u,minY:s,maxX:d,maxY:g}}(e,i):null;if(t=t.ownerSVGElement||t,i.zoom&&n&&i.autoZoom){x(t.querySelector("g.outerContainer"),n.scale,!0)}return n&&i.autoScroll&&m(t.parentElement,n.scrollX,n.scrollY,!0),n}function C(t,e,i){const n=t.parentElement,o=t.querySelector("g.outerContainer"),a=n.scrollLeft,M=n.scrollTop,A=w(o),r=i||e.flowId||"global";n.setAttribute(`data-tab-${r}-x`,a),n.setAttribute(`data-tab-${r}-y`,M),n.setAttribute(`data-tab-${r}-scale`,A)}function S(t,e,i){const n=t.parentElement,o=t.querySelector("g.outerContainer"),a=i||e.flowId||"global",M=n.getAttribute(`data-tab-${a}-x`),A=n.getAttribute(`data-tab-${a}-y`),r=n.getAttribute(`data-tab-${a}-scale`);"string"==typeof M&&"string"==typeof A&&m(n,M,A),"string"==typeof r&&x(o,r)}function T(t){const e=t.parentElement,i=t.querySelector("g.outerContainer");for(const t in i.dataset)/^tab-\w+-.*/.test(t)&&e.removeAttribute(t)}function z(t){const e=D(t,this).createElement("div");return e.classList.add("red-ui-workspace-chart"),t?(t.appendChild(e),e):e}function f(t){const e=D(t,this);if(!e)return null;let i=t.querySelector(".toolbar");return i||(i=e.createElement("div"),i.classList.add("toolbar"),t&&t.appendChild(i),i)}function E(t,{addDefaultLayer:e=!0,layer:i=0}={}){const n=D(t,this),o=n.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("style",`width:${M.width}px; height:${M.height}px;`),t.appendChild(o);const A=n.createElementNS("http://www.w3.org/2000/svg","defs");o.appendChild(A);const r=`\n <pattern id="grid" width="${a}" height="${a}" patternUnits="userSpaceOnUse">\n <path d="M ${a} 0 L 0 0 0 ${a}" fill="none" stroke="rgb(208, 208, 208)" stroke-width="1" shape-rendering="geometricprecision"></path>\n </pattern>\n <filter id="node-glow" x="-5000%" y="-5000%" width="10000%" height="10000%">\n <feFlood result="flood" flood-color="#7d26cd" flood-opacity="0.8"></feFlood>\n <feComposite in="flood" result="mask" in2="SourceGraphic" operator="in"></feComposite>\n <feMorphology in="mask" result="dilated" operator="dilate" radius="2"></feMorphology>\n <feGaussianBlur in="dilated" result="blurred" stdDeviation="5">\n <animate attributeName="stdDeviation" values="5;0;5" dur="1s" repeatCount="indefinite"></animate>\n </feGaussianBlur>\n <feMerge>\n <feMergeNode in="blurred"></feMergeNode>\n <feMergeNode in="SourceGraphic"></feMergeNode>\n </feMerge>\n </filter>`;A.innerHTML=r;const u=v("g",{class:"outerContainer"});return o.appendChild(u),e&&O(o,{layer:i}),o}function v(t,e,i){const n=D(i,this),o=n.createElementNS.apply(n,["http://www.w3.org/2000/svg",t]);if("object"==typeof e)for(const t in e)o.setAttribute(t,e[t]);return i&&i.appendChild(o),o}function O(t,{layer:e=0,opacity:i=1}={}){let n=t.querySelector("g.outerContainer");n||(n=v("g",{class:"outerContainer"},t)),n.querySelector("g.flow_grid")||v("g",{class:"flow_grid"},n);let o=n.querySelector(`g.flow-layer-${e}`);for(o||(o=v("g",{class:`flow-layer-${e||0}`},n));o.firstChild;)o.removeChild(o.firstChild);return o.setAttribute("opacity",i),v("g","flow_group_elements",o),v("g","flow_group_select",o),v("g","flow_wires",o),v("g","flow_nodes",o),o}function k(t){if(t.childNodes.length>0)return;v("rect",{width:`${M.width}px`,height:`${M.height}px`,fill:"url(#grid)"},t).style.transform="translate(-1px, -1px)"}function Z(t,e,i,n,o){const a=D(o,this).createElement(t);if("object"==typeof e)for(const t in e)a.setAttribute(t,e[t]);return i&&"string"==typeof i?a.classList.add(...i.split(" ")):Array.isArray(i)&&a.classList.add(...i),"string"==typeof n&&(a.textContent=n),o&&o.appendChild(a),a}function B(t){const e=[],i={},n=new Set([...Object.keys(t.changed),...Object.keys(t.added),...Object.keys(t.deleted),...Object.keys(t.moved),...Object.keys(t.positionChanged)]),o=t.currentConfig,a=t.newConfig;function M(e,i,n,o,a,M){const A={tab:e,item:i,diffType:n,prop:o,value1:a,value2:M,toString:()=>""},r=t=>t?`'${t}'`:"''",u=t=>t?r(function(t,e,i){const n=K[t.type]||K._default,o=e&&e[t.type]||{};return n(t,o,i)}(t)):"'n/a'",s=t.currentConfig.all[e]||t.newConfig.all[e],d=u(s),g=t.currentConfig.all[i]||t.newConfig.all[i],l="tab"===i?s:t.currentConfig.all[i],c="tab"===i?s:t.newConfig.all[i],I=(l&&l.type,"tab"===i?"tab":"node"),j=(l&&(l.name||l.label||l.id),c&&(c.name||c.label||c.id),/wires\[\d+\]/.test(o));let N="";j&&(A.value1&&!A.value2?N=`had wire removed from ${u(l)}`:!A.value1&&A.value2&&(N=`was wired up to ${u(c)}`));const L=a&&("z"===o||/wires\[\d+\]/.test(o))?t.currentConfig.all[a]:null,D=M&&("z"===o||/wires\[\d+\]/.test(o))?t.newConfig.all[M]:null;return A.toString=function(){const t=[];switch(n){case"deleted":t.push("deleted",I,u(g));break;case"added":t.push("added",I,u(g));break;case"moved":t.push(u(g),"moved from ",u(L),"to",u(D));break;case"changed":"g"===o?a&&!M?t.push(d,u(g),"was removed from group",r(u(a))):!a&&M?t.push(d,u(g),"was added to group",r(u(M))):t.push(d,u(g),"moved group from",r(a),"to",r(M)):j?t.push(d,u(g),N):"tab"===i?t.push("tab",d,"property",r(A.prop),"was",r(A.value1||"")+", now",r(A.value2||"")):t.push(u(g),"property",r(A.prop),"was",r(A.value1||""),"now",r(A.value2||""));break;case"positionChanged":t.push(u(g),"moved from",A.value1,"to",A.value2);break;default:t.push(d,u(g),r(A.prop),"was",r(A.value1||""),"now",r(A.value2||""))}return t.join(" ")},A}function A(t,e){const i=t.currentConfig.all,o=t.newConfig.all,a=[];if(!e.v1||!e.v2)return e.v1&&a.push(M(e.id,e.id,"tab","deleted",e.v1,null)),e.v2&&a.push(M(e.id,e.id,"tab","added",null,e.v2)),a;const A=e.v1?.tab?{...e.v1.tab.n}:{};A.order=e.v1?.order;const u=e.v2?.tab?{...e.v2.tab.n}:{};u.order=e.v2?.order;const s=e.v1?.tab?.nodes||[],d=e.v2?.tab?.nodes||[];a.push(...r(e.id,"tab","","changed",A,u));const g=s.map((t=>t.id)),l=d.map((t=>t.id)),c=new Set([...g,...l].filter((t=>n.has(t)))),I=t=>"number"!=typeof t?null:t,j=(t,e)=>{const i={...e};for(const e of t)delete i[e];return i};for(const n of c){const M=i[n],A=o[n],u=!(!M||!A);if(t.deleted[n])a.push(...r(e.id,n,"","deleted",M,A));else if(t.added[n])a.push(...r(e.id,n,"","added",M,A));else if(u){let i=!0;if(t.moved[n]&&a.push(...r(e.id,n,"","moved",{z:M.z},{z:A.z})),t.positionChanged[n]){i=!1;const t={x:I(M.x),y:I(M.y)},o={x:I(A.x),y:I(A.y)},u=JSON.stringify(t),s=JSON.stringify(o);a.push(...r(e.id,n,"position","positionChanged",u,s))}if(i){const t=j(["x","y","z","w","h"],M),i=j(["x","y","z","w","h"],A);a.push(...r(e.id,n,"","changed",t,i))}}}return a}function r(t,e,i,n,o,a){const A=[];if("deleted"===n)A.push(M(t,e,n,i,o?"":"deleted",a?"":"deleted"));else if("added"===n)A.push(M(t,e,n,i,o?"added":"",a?"added":""));else if(typeof o!=typeof a)A.push(M(t,e,"changed",i,o||"",a||""));else if(Array.isArray(o))for(let M=0;M<o.length;M++){const u=i?`${i}[${M}]`:`[${M}]`,s=o[M],d=a[M];A.push(...r(t,e,u,n||"changed",s,d))}else if(o&&a&&"object"==typeof o&&"object"==typeof a){const M=Object.keys(o);for(const u of M){const M=/[^a-zA-Z0-9_$]/.test(u),s=i?M?`${i}["${u}"]`:`${i}.${u}`:M?`["${u}"]`:u,d=o[u],g=a[u];A.push(...r(t,e,s,n||"changed",d,g))}}else o!==a&&A.push(M(t,e,n,i,o,a));return A}return e.push(...function(){const e=[];if(0===n.size)return e;i.global={id:"global",v1:{tab:{nodes:o.globals}},v2:{tab:{nodes:a.globals}}};for(const t of[...o.tabOrder,...a.tabOrder]){const e=o.tabs[t],n=a.tabs[t],M=o.tabOrder.indexOf(t),A=a.tabOrder.indexOf(t);i[t]={id:t,v1:{order:M,tab:e},v2:{order:A,tab:n}}}const M=Object.keys(o.subflows),r=Object.keys(a.subflows);for(const t of[...M,...r]){if(i[t])continue;const e=o.subflows[t],n=a.subflows[t];i[t]={id:t,v1:{tab:e},v2:{tab:n}}}for(const n of Object.keys(i))e.push(...A(t,i[n]));const u=new Set;return e.filter((t=>{const e=`${"z"===t.prop&&"moved"===t.diffType?"*":t.tab}-${t.item}-${t.diffType}-${t.prop}-${t.value1}-${t.value2}`;return!u.has(e)&&(u.add(e),!0)}))}()),{get changes(){return e},get diff(){return t},get tabs(){return i},getNodeInfo:t=>({propertiesChanged:e.filter((e=>e.itemId===t&&e.tab!==t)),v1:o.all[t],v2:a.all[t]}),getTabInfo:t=>({propertiesChanged:e.filter((e=>e.tab===t&&"tab"===e.itemId)),nodesChanged:e.filter((e=>e.tab===t&&"tab"!==e.itemId)),v1:i[t],v2:i[t]})}}function U(t){t&&t.length&&"string"!=typeof t&&"string"==typeof t[0]&&(t=[...t].join(" "));return`\n :root {\n --red-ui-view-grid-color: #eee;\n --red-ui-view-border: 1px solid #bbbbbb;\n --red-ui-node-border: #999;\n --red-ui-node-port-background: #d9d9d9;\n --red-ui-workspace-button-color: #333;\n --red-ui-workspace-button-background: #f3f3f3;\n\n --red-ui-primary-font: Helvetica Neue, Arial, Helvetica, sans-serif;\n --red-ui-primary-font-size: 14px;\n --red-ui-monospace-font: Menlo, Consolas, DejaVu Sans Mono, Courier, monospace;\n --red-ui-primary-background: #f3f3f3;\n\n --red-ui-form-background: #fff;\n --red-ui-form-placeholder-color: #aaa;\n --red-ui-form-text-color: #555;\n --red-ui-form-text-color-disabled: #bbb;\n --red-ui-form-input-focus-color: rgba(85, 150, 230, 0.8);\n --red-ui-form-input-border-color: #ccc;\n --red-ui-form-input-border-selected-color: #aaa;\n --red-ui-form-input-border-error-color: rgb(214, 97, 95);\n --red-ui-form-input-background: #fff;\n --red-ui-form-input-background-disabled: #f9f9f9;\n --red-ui-form-button-background: #efefef;\n\n --red-ui-diff-state-color: #555;\n --red-ui-diff-state-prefix-color: #888;\n --red-ui-diff-state-added: #009900;\n --red-ui-diff-state-deleted: #f80000;\n --red-ui-diff-state-changed: #f89406;\n --red-ui-diff-state-moved: #3f81b3;\n }\n ${t=(t=t||".flow-renderer").split(" ").map((t=>`.${t}`)).join(" ").trim()} .diff-table {\n width: 100%;\n font-size: var(--red-ui-primary-font-size);\n font-family: var(--red-ui-primary-font);\n }\n ${t} .diff-table thead tr {\n font-weight: bold;\n padding: 2px 4px;\n /* bottom border only */\n border-bottom: 3px solid #ddd;\n }\n ${t} .diff-table td {\n padding: 2px 4px;\n border-bottom: 1px solid #ddd;\n }\n ${t} .diff-table .diff-info {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n ${t} .diff-value button {\n height: 20px;\n width: 20px;\n padding: 1px;\n }\n ${t} .diff-value span {\n margin-left: 4px;\n margin-top: 2px;\n }\n ${t} .diff-type {\n height: 14px;\n width: 14px;\n margin: 2px;\n }\n ${t} .diff-type-text {\n flex-grow: 1;\n }\n ${t} .diff-type-moved {\n background-color: var(--red-ui-diff-state-moved);\n }\n ${t} .diff-type-added {\n background-color: var(--red-ui-diff-state-added);\n }\n ${t} .diff-type-deleted {\n background-color: var(--red-ui-diff-state-deleted);\n }\n ${t} .diff-type-changed {\n background-color: var(--red-ui-diff-state-changed);\n }\n ${t} .diff-type-positionChanged {\n background-color: var(--red-ui-diff-state-changed);\n }\n\n .red-ui-editor {\n font-size: var(--red-ui-primary-font-size);\n font-family: var(--red-ui-primary-font);\n padding: 0;\n margin: 0;\n background: var(--red-ui-primary-background);\n color: var(--red-ui-primary-text-color);\n line-height: 20px\n }\n ${t} {\n position: relative;\n }\n ${t} .red-ui-workspace-chart {\n box-sizing: border-box;\n border: var(--red-ui-view-border);\n overflow: scroll;\n height: 100%;\n width: 100%;\n }\n ${t} div.red-ui-footer {\n height: 20px\n }\n ${t}.has-tabs div.red-ui-workspace-chart {\n height: calc(100% - 34px);\n }\n ${t} svg {\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 250px;\n margin: auto;\n display: block;\n border-radius: 2px;\n }\n ${t} svg {\n cursor: default;\n }\n ${t} svg .group-text-label {\n font-family: Helvetica Neue, Arial, Helvetica, sans-serif;\n font-size: 14px;\n }\n ${t} svg .node-text-label {\n font-family: Helvetica Neue, Arial, Helvetica, sans-serif;\n font-size: 14px;\n dominant-baseline: middle;\n }\n ${t} svg .subflow-node-text-label {\n color: rgb(85, 85, 85);\n dominant-baseline: middle;\n font-family: Helvetica Neue, Arial, Helvetica, sans-serif;\n font-size: 10px;\n line-height: 20px;\n pointer-events: none;\n text-anchor: middle;\n user-select: none\n }\n ${t} svg .subflow-node-text-label-number {\n color: rgb(85, 85, 85);\n dominant-baseline: middle;\n font-family: Helvetica Neue, Arial, Helvetica, sans-serif;\n font-size: 16px;\n line-height: 20px;\n pointer-events: none;\n text-anchor: middle;\n user-select: none\n }\n\n ${t} svg .node {\n fill-opacity: 1;\n stroke-width: 1px;\n }\n ${t} svg .link {\n stroke: #999;\n stroke-width: 3;\n fill: none;\n }\n ${t} svg .link-highlight, .node-highlight {\n stroke: rgb(255, 127, 14);\n }\n ${t} svg .node-highlight {\n stroke-width: 3px;\n }\n ${t} .tab-glow {\n border-radius: 2px;\n animation: tab-glow-animation 1s infinite;\n }\n @keyframes tab-glow-animation {\n 0% {\n box-shadow: 0 0 0px 0px #7d26cddd;\n }\n 50% {\n box-shadow: 0 0 10px 5px #7d26cddd;\n }\n 100% {\n box-shadow: 0 0 0px 0px #7d26cddd;\n }\n }\n\n ${t} svg .node-disabled {\n stroke-dasharray: 8,3;\n fill-opacity: 0.5;\n }\n ${t} svg .group-highlight {\n stroke: rgb(255, 127, 14);\n stroke-width: 4px;\n fill: rgb(255, 127, 14);\n fill-opacity: 0.2;\n }\n ${t} svg .link-disabled {\n stroke-dasharray: 10,8 !important;\n stroke-width: 2 !important;\n stroke: rgb(204, 204, 204);\n }\n ${t} svg .grid-line {\n shape-rendering: geometricprecision;\n stroke: rgb(238, 238, 238);\n stroke-width: 1px;\n fill: none;\n }\n ${t} svg .red-ui-flow-port {\n stroke-width: 1px;\n stroke-miterlimit: 4;\n fill: var(--red-ui-node-port-background);\n }\n ${t} svg .red-ui-flow-port-input {\n stroke-width: 1px;\n stroke-miterlimit: 4;\n fill: var(--red-ui-node-port-background);\n }\n ${t} svg .flow-render-error {\n background-color: rgb(54, 52, 52); \n color: rgb(196, 59, 59); \n width: 100%;\n }\n ${t} svg text {\n user-select: none;\n }\n ${t} .red-ui-tabs {\n display: flex;\n }\n ${t} .red-ui-tab {\n padding: 6px 12px;\n box-sizing: border-box;\n display: block;\n border: 1px solid #bbbbbb;\n border-right: none;\n background-color: #f0f0f0;\n max-width: 200px;\n max-height: 34px; /* for calculating svg height */\n height: 34px; /* for calculating svg height */\n width: 14%;\n overflow: hidden;\n white-space: nowrap;\n position: relative;\n margin-top: -1px;\n transition: 0.2s background-color;\n user-select: none;\n position: relative;\n z-index: 1;\n top: 1px;\n }\n ${t} .red-ui-tab div.red-ui-tab-label {\n position: absolute;\n top: 7px;\n left: 10px;\n }\n ${t} .red-ui-tab-subflow-icon {\n mask-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAsIDAsIDQwLCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjUgMjUuOTRoN2MuNTggMCAxLS40MiAxLTF2LTJjMC0uNTgtLjQyLTEtMS0xaC03Yy0uNTggMC0xIC40Mi0xIDF2MmMwIC41OC40MiAxIDEgMXptLTE3IDEyaDdjLjU4IDAgMS0uNDIgMS0xdi0yYzAtLjU4LS40Mi0xLTEtMUg4Yy0uNTggMC0xIC40Mi0xIDF2MmMwIC41OC40MiAxIDEgMXptLS40MTYgMTFDNS42MjQgNDguOTQgNCA0Ny4zMTUgNCA0NS4zNTZWMTQuNTIyYzAtMS45NiAxLjYyNS0zLjU4MiAzLjU4NC0zLjU4MmgyNC44MzJjMS45NiAwIDMuNTg0IDEuNjIzIDMuNTg0IDMuNTgydjMwLjgzNGMwIDEuOTYtMS42MjUgMy41ODQtMy41ODQgMy41ODR6TTMyIDM2Ljk0SDE5YzAgMi4xOS0xLjgxIDQtNCA0SDd2NC40MTZjMCAuMzUuMjM1LjU4NC41ODQuNTg0aDI0LjgzMmMuMzUgMCAuNTg0LS4yMzUuNTg0LS41ODR2LTguNDE3em0xLTJ2LTZoLThjLTIuMTkgMC00LTEuODEtNC00aC0xYy00LjMzMy0uMDAyLTguNjY3LjAwNC0xMyAwdjZoOGMyLjE5IDAgNCAxLjgxIDQgNGgxM3ptMC0xNnYtNC40MThjMC0uMzUtLjIzNS0uNTgyLS41ODQtLjU4Mkg3LjU4NGMtLjM1IDAtLjU4NC4yMzMtLjU4NC41ODJ2OC40MTdjNC4zMzMuMDAyIDguNjY3LjAwMSAxMyAuMDAxaDFjMC0yLjE5IDEuODEtNCA0LTRoOHoiIGNvbG9yPSIjMDAwIiBmaWxsPSIjZmZmIi8+PC9zdmc+Cg==);\n display: inline-block;\n background-color: grey;\n margin-left: -8px;\n margin-right: 3px;\n margin-top: -1px;\n margin-bottom: 1px;\n opacity: 1;\n width: 16px;\n height: 18px;\n vertical-align: middle;\n mask-size: contain;\n mask-position: center;\n mask-repeat: no-repeat;\n }\n ${t} .red-ui-tab-disabled-icon {\n mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1536 1792' style='&%2310;'%3E%3Cscript xmlns=''/%3E%3Cpath d='M1312 893q0-161-87-295l-754 753q137 89 297 89 111 0 211.5-43.5t173.5-116.5 116-174.5 43-212.5zM313 1192l755-754q-135-91-300-91-148 0-273 73t-198 199-73 274q0 162 89 299zM1536 893q0 157-61 300t-163.5 246-245 164-298.5 61-298.5-61-245-164-163.5-246-61-300 61-299.5 163.5-245.5 245-164 298.5-61 298.5 61 245 164 163.5 245.5 61 299.5z' fill='currentColor'/%3E%3Cscript xmlns=''/%3E%3C/svg%3E");\n display: inline-block;\n background-color: grey;\n margin-left: -8px;\n margin-right: 3px;\n margin-top: 0px;\n margin-bottom: 0px;\n opacity: 1;\n width: 16px;\n height: 16px;\n vertical-align: middle;\n mask-size: contain;\n mask-position: center;\n mask-repeat: no-repeat;\n transform: translateY(-2px);\n }\n ${t} .red-ui-tab span {\n font-size: 0.875rem;\n font-family: Helvetica Neue, Arial, Helvetica, sans-serif;\n }\n ${t} .red-ui-tab.active {\n background-color: white;\n border-bottom-color: white;\n font-weight: bold;\n }\n ${t} .red-ui-tab.disabled {\n border-top-style: dashed;\n border-left-style: dashed;\n font-style: italic;\n }\n ${t} .red-ui-tab:last-child {\n border-right: 1px solid #bbbbbb;\n }\n ${t} .red-ui-tab:last-child.disabled {\n border-right-style: dashed;\n }\n ${t} .red-ui-tab:hover {\n cursor: pointer;\n background-color: white;\n }\n /* positioning of toolbar */\n ${t} .toolbar {\n display: flex;\n flex-direction: row;\n position: absolute;\n bottom: 5px;\n right: 5px;\n opacity: 0.7;\n }\n ${t} .toolbar:hover {\n opacity: 1;\n }\n ${t}.has-scrollbars .toolbar {\n bottom: 24px;\n right: 24px;\n }\n /* styles for button groups and buttons */\n ${t} .button-group {\n display: flex;\n flex-direction: row;\n }\n ${t} .button-group button {\n user-select: none;\n box-sizing: border-box;\n display: inline-block;\n text-align: center;\n cursor: pointer;\n line-height: 22px;\n height: 24px;\n color: var(--red-ui-workspace-button-color) !important;\n background: var(--red-ui-workspace-button-background);\n text-decoration: none;\n border: 1px solid var(--red-ui-form-input-border-color);\n margin: 0px;\n padding: 0px;\n }\n ${t} .button-group button:not(:first-child) {\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n border-left: none;\n }\n\n /* zoom controls */\n ${t} .zoom-controls.button-group button {\n font-size: 22px;\n width: 24px;\n }\n\n /* copy controls */\n ${t} .copy-controls.button-group {\n margin-right: 24px;\n }\n ${t} .copy-controls.button-group button {\n padding: 0px 4px;\n }\n\n /* compare controls */\n ${t} .compare-controls.button-group {\n margin-right: 24px;\n }\n ${t} .compare-controls input[type='range'].flow-compare-slider {\n width: 100%;\n -webkit-appearance: none;\n }\n ${t} input[type='range'].flow-compare-slider::-webkit-slider-runnable-track {\n height: 16px;\n background: var(--red-ui-workspace-button-background);\n border-radius: 16px;\n }\n /* Track: Mozilla Firefox */\n ${t} input[type='range'].flow-compare-slider::-moz-range-track {\n height: 16px;\n background: var(--red-ui-workspace-button-background);\n border-radius: 16px;\n }\n `}function Y(t,i){const n=e+(i?"--"+i.toString():"").replace(/[^a-z0-9]/gi,"-").toLowerCase();let o=t.getElementById(n);o||(o=t.createElement("style"),o.id=n,o.innerHTML=U(i),t.head.appendChild(o))}function Q(t,e){if(t){const i=t.querySelector(`.flow-layer-${e||0}`);["flow_group_elements","flow_group_select","flow_wires","flow_nodes"].forEach((t=>{const e=i.querySelector(`.${t}`)||v("g",{class:t},i);for(;e.firstChild;)e.removeChild(e.firstChild)}))}}function G(t){var e=[],i={},n={},o=[],a={};return t.forEach((function(t){a[t.id]=t,"tab"===t.type?(e.push(t.id),i[t.id]={n:t,nodes:[]}):"subflow"===t.type&&(n[t.id]={n:t,nodes:[]})})),t.forEach((function(t){"tab"!==t.type&&"subflow"!==t.type&&(i[t.z]?i[t.z].nodes.push(t):n[t.z]?n[t.z].nodes.push(t):o.push(t))})),{all:a,tabOrder:e,tabs:i,subflows:n,globals:o}}function H(t,e,a,M,A,r=!1){var u=M-e,s=a-t,d=Math.sqrt(u*u+s*s),g=i;if(s*A>0?d<o&&(g=.75-(o-d)/o*.75):g=.4-.2*Math.max(0,(o-Math.min(Math.abs(s),Math.abs(u)))/o),s*A>0){let i=[[t+A*(o*g),e+0*n],[a-A*g*o,M-0*n]];return`M ${t} ${e} C ${i[0][0]} ${i[0][1]} ${i[1][0]} ${i[1][1]} ${a} ${M}`}{let i,d,N,L,D,y=Math.floor(a-s/2),b=Math.floor(M-u/2);if(Math.abs(u)<10){L=Math.max(e,M)+(r?35:25);let i=L-e;return D=[[t+15*A,e],[t+25*A,e+5],[t+25*A,e+i/2],[t+25*A,e+i-5],[t+15*A,e+i],[t,e+i],[a-15*A,e+i],[a-25*A,e+i-5],[a-25*A,M+(L-M)/2],[a-25*A,M+5],[a-15*A,M],[a,M]],"M "+t+" "+e+" C "+D[0][0]+" "+D[0][1]+" "+D[1][0]+" "+D[1][1]+" "+D[2][0]+" "+D[2][1]+" C "+D[3][0]+" "+D[3][1]+" "+D[4][0]+" "+D[4][1]+" "+D[5][0]+" "+D[5][1]+" h "+s+" C "+D[6][0]+" "+D[6][1]+" "+D[7][0]+" "+D[7][1]+" "+D[8][0]+" "+D[8][1]+" C "+D[9][0]+" "+D[9][1]+" "+D[10][0]+" "+D[10][1]+" "+D[11][0]+" "+D[11][1]+" "}var l=n/2,c=(M+b)/2;i=t+A*o*g,d=u>0?Math.min(c-u/2,e+l):Math.max(c-u/2,e-l),N=a-A*o*g,L=u>0?Math.max(c,M-l):Math.min(c,M+l);var I=(t+i)/2,j=u>0?1:-1;return D=[[I,e],[i,u>0?Math.max(e,d-l):Math.min(e,d+l)],[I,u>0?Math.min(b,d+l):Math.max(b,d-l)],[N,u>0?Math.max(b,L-l):Math.min(b,L+l)],[(a+N)/2,M]],D[2][1]===d+j*l&&(Math.abs(u)<10*l&&(D[1][1]=d-j*l/2,D[3][1]=L-j*l/2),D[2][0]=i),"M "+t+" "+e+" C "+D[0][0]+" "+D[0][1]+" "+D[1][0]+" "+D[1][1]+" "+i+" "+d+" S "+D[2][0]+" "+D[2][1]+" "+y+" "+b+" S "+D[3][0]+" "+D[3][1]+" "+N+" "+L+" S "+D[4][0]+" "+D[4][1]+" "+a+" "+M}}function P(t,e){for(var i=function(t){var e=[],i=t.split(/\\n /);if(i.length>1){var n=0;for(n=0;n<i.length-1;n++)/\\$/.test(i[n])?(e.push(i[n]+"\\n "+i[n+1]),n++):e.push(i[n]);n===i.length-1&&e.push(i[i.length-1])}else e=i;return e.map((function(t){return t.replace(/\\\\n /g,"\\n ").trim()}))}(t),n=0,o=0;o<i.length;o++){var a=J(i[o],e)[0];n<a&&(n=a)}return{lines:i,width:n}}var R={},W={};function J(t,e){const i=D(this);var n="!"+t;if(R[e]){if(W[e][n])return W[e][n]}else R[e]=i.createElement("span"),R[e].className=e,R[e].style.position="absolute",R[e].style.top="-1000px",i.querySelector("body").appendChild(R[e]),W[e]={};R[e].textContent=t||"";var o=R[e].offsetWidth,a=R[e].offsetHeight;return W[e][n]=[o,a],W[e][n]}const F=t=>{switch(t){case"str":return"string";case"num":return"number";case"bool":return"boolean";case"json":return"json";case"date":return"timestamp";case"bin":return"binary";case"env":return"environment";case"flow":return"flow";case"global":return"global";default:return t}},V=["inject","change","switch","function","template","delay","trigger","link in","link out","link call","watch","complete","catch","status","comment","debug","subflow","range","filter","rbe","mqtt in","mqtt out","http in","http response","http request","websocket in","websocket out","tcp in","tcp out","udp in","udp out","tcp request","split","join","sort","batch","csv","json","xml","yaml","html","file in","file","exec"];var X=(t,e,i)=>{let n=t.name||t.label||t.info||t.text||e.name||"",o="",a="",M="",A="";switch(t.type){case"file":M="write file";case"file in":return M=M||"read file",a=t.filename,"str"!=t.filenameType&&"env"!=t.filenameType&&(a=""),"env"===t.filenameType&&(a="env."+a),"write file"===M&&"delete"===t.overwriteFile?t.name||"delete "+a:t.name||a||M;case"html":o=t.tag;break;case"tcp in":case"tcp out":case"tcp request":M="tcp:";case"udp in":case"udp out":return M=M||"udp:",a=t.host||t.addr||t.server||"",M+(a?a+":":"")+(t.port||"");case"debug":return!0!==t.console&&"true"!==t.console||(A="\t⇲"),"jsonata"===t.targetType?(t.name||"JSONata")+A:!0===t.complete||"true"===t.complete?(t.name||"msg")+A:(t.name||"msg."+(t.complete&&"false"!==t.complete?this.complete:"payload"))+A}return t.type&&t.type.startsWith("ui-")?o=t.type.replace(/^ui-/,""):t.type&&t.type.startsWith("ui_")&&(o=t.type.replace(/^ui_/,"")),o&&o.length<=32?o:n||(t.topic&&t.topic.length<=32&&V.includes(t.type)?t.topic:t.type)};var q=(t,e,i)=>(t.name||t.label||t.info||t.text||"").replace(/(.{40,60})([ \n\t])/g,"$1\\n$2")+(t.sumPass?" ⭄":"")+(t.sumPassPrio&&0!=parseInt(t.sumPassPrio)?" ("+t.sumPassPrio+")":""),K={base64:void 0,batch:void 0,catch:(t,e,i)=>{var n="";return t.uncaught&&(n=": uncaught"),t.scope&&(n=": "+t.scope.length),t.scope||t.uncaught||(n=": all"),t.name||t.type+n},change:t=>{function e(t,e){return t+"."+r.utils.parseContextKey(e).key}return t.name?t.name:(t._=t._||function(t,e){let i=t;switch(t){case"change.label.set":i="set {{property}}";break;case"change.label.change":i="change {{property}}";break;case"change.label.move":i="move {{property}}";break;case"change.label.delete":i="delete {{property}}";break;case"change.label.changeCount":i="change {{count}} properties"}for(var n in e)t=i.replace(new RegExp("\\{\\{"+n+"\\}\\}","g"),e[n]);return t},t.rules?1==t.rules.length?"set"===t.rules[0].t?t._("change.label.set",{property:e(t.rules[0].pt||"msg",t.rules[0].p)}):"change"===t.rules[0].t?t._("change.label.change",{property:e(t.rules[0].pt||"msg",t.rules[0].p)}):"move"===t.rules[0].t?t._("change.label.move",{property:e(t.rules[0].pt||"msg",t.rules[0].p)}):t._("change.label.delete",{property:e(t.rules[0].pt||"msg",t.rules[0].p)}):t._("change.label.changeCount",{count:t.rules.length}):"replace"===t.action?t._("change.label.set",{property:"msg."+t.property}):"change"===t.action?t._("change.label.change",{property:"msg."+t.property}):"move"===t.action?t._("change.label.move",{property:"msg."+t.property}):t._("change.label.delete",{property:"msg."+t.property}))},comment:void 0,csv:void 0,debug:void 0,exec:void 0,file:void 0,"file in":void 0,function:void 0,html:void 0,"http response":(t,e,i)=>t.name||"http"+(t.statusCode?" ("+t.statusCode+")":""),"http in":(t,e,i)=>t.name||"["+t.method+"] "+t.url,"http request":void 0,inject:t=>{var e="";if(t.once&&(e=" ¹"),(t.repeat&&0!=t.repeat||t.crontab)&&(e="\t↻"),t.name)return t.name+e;var i,n="",o="str";const a=t.props;if(a)for(var M=0;M<a.length;M++)"payload"===a[M].p&&(n=(a[M].vt&&"str"!==a[M].vt?a[M].v:t.payload)||"",o=a[M].vt||t.payloadType||"str");else n=t.payload||"",o=t.payloadType||"str";return i=t.topic||"","string"===o||"str"===o||"num"===o||"bool"===o||"json"===o?""!==i&&i.length+n.length<=32?i+":"+n+e:n.length>0&&n.length<24?n+e:"inject"+e:"date"===o||"bin"===o||"env"===o?""!==i&&i.length<=16?i+":"+F(o)+e:F(o)+e:"flow"===o||"global"===o?o+"."+r.utils.parseContextKey(n).key+e:"inject"+e},join:void 0,json:void 0,junction:void 0,"link in":void 0,"link out":void 0,"link call":(t,e,i)=>{if(!t.links||0==t.links.length)return t.name||t.type;var n=void 0;return i.forEach((function(o){n||o.id==t.links[0]&&(n=(K[o.type]||X)(o,e,i))})),t.name||n||t.type},markdown:void 0,postgresql:void 0,range:void 0,sort:void 0,split:void 0,switch:void 0,yaml:void 0,xml:void 0,BlogPages:void 0,BlogDetails:void 0,BlogPageInfo:(t,e,i)=>{if(t.name)return t.name;var n=void 0;return i.forEach((function(e){n||"link in"==e.type&&e.name.startsWith("[blog] ")&&(e.wires[0]||[]).indexOf(t.id)>-1&&(n=e.name.substring(7))})),n||t.type},PubMedium:void 0,Topic:q,Observation:q,Question:q,Thought:q,Idea:q,Analogy:q,Aphorism:q,Poesie:q,Humour:q,Treasure:q,Consequence:q,Advantage:q,Disadvantage:q,Text:q,"Blog-Post":q,Comment:q,Codebase:q,Sketch:q,Inspiration:q,Quote:q,Definition:q,Book:q,Author:q,"nnb-input-node":void 0,"nnb-layer-node":(t,e,i)=>t.name||t.actfunct+": "+t.bias+", "+t.threshold,"nnb-output-node":void 0,"nnb-backprop":void 0,"nnb-trainer":void 0,Seeker:void 0,Sink:void 0,Screenshot:void 0,Orphans:void 0,IsMobile:void 0,Navigator:void 0,DrawSVG:void 0,GetFlows:void 0,_default:X};function _(t){const e={};let i=1e4,n=0;for(let o of t)"subflow"===o.type?e[o.id]={id:o.id,label:o.name,type:"subflow",disabled:o.disabled,order:i++}:"tab"!==o.type&&o.z&&(e[o.z]||(e[o.z]={id:o.z,label:"Flow "+(n+1),type:"tab",disabled:!1,order:n++}));const o=t.filter((t=>"tab"===t.type));let a=0;for(let t of o)e[t.id]&&(e[t.id].label=t.label||e[t.id].label,e[t.id].disabled=!!t.disabled,e[t.id].order=a++);const M=Object.keys(e).map((t=>e[t]));return M.sort(((t,e)=>t.order-e.order)),M}function $(t){Array.isArray(t)||(t=[]);const e=[...t];for(let t=0;t<e.length;t++)e[t]=JSON.parse(JSON.stringify(e[t])),e[t].id&&"string"==typeof e[t].id||(e[t].id=Math.random().toString(36).substring(2,14));return e}function tt(t){const e=[u];if(t){if(t.scope||(t.scope=function(t){const e=t?.container,i=new Set;let n=t?.scope||"";return n&&"string"==typeof n?i.add(n):(Array.isArray(n)||n instanceof DOMTokenList)&&n.length>0?i.add(...n):e?.classList?.length&&i.add(...e.classList),0===i.size&&i.add("flow-renderer"),[...i]}(t)),t.container){const i={};["scope","gridLines","arrows","zoom","images","linkLines","labels","autoZoom","autoScroll","flowId"].forEach((function(e){if("string"==typeof t.container.dataset[e]){const n=t.container.dataset[e]||"true";i[e.replace(/-/g,"")]="true"===n}})),e.push(i)}e.push(t)}return Object.assign({},...e)}function et(e,i){e=$(e);const n=D((i=tt(i)).document,t.document,i.container,this),o=i.container;for(;o.firstChild;)o.removeChild(o.firstChild);const a=n.createElement("div");a.classList.add("red-ui-tabs"),o.appendChild(a);const M=z(o),A=function(t){const e=D(t,this);if(!e)return null;let i=t.querySelector(".toolbar");i||(i=f(t));let n=i.querySelector(".copy-controls");if(n)return{copy:i.querySelector(".copy-flow"),download:i.querySelector(".download-flow")};n=e.createElement("div"),n.classList.add("copy-controls"),n.classList.add("button-group");const o=e.createElement("button");o.classList.add("red-ui-footer-button","copy-flow"),o.innerHTML="Copy";const a=e.createElement("button");return a.classList.add("red-ui-footer-button","download-flow"),a.innerHTML="Download",n.appendChild(o),n.appendChild(a),i&&i.appendChild(n),{copy:o,download:a}}(o);A.copy.onclick=function(t){!function(t,e,i){i=i||function(){};let n=e||[];"object"==typeof n?n=JSON.stringify(n,null,0):"string"!=typeof n&&(n=n.toString());const o=D(t&&t.target&&t.target.ownerDocument,this);if("undefined"!=typeof navigator&&navigator.clipboard)return void navigator.clipboard.writeText(n).then((function(){i(null,!0)})).catch((function(t){i(t,!1)}));const a=o.createElement("textarea");a.value=n,a.style.position="fixed",a.style.top="0",a.style.left="0";try{o.body.appendChild(a),a.focus(),a.select();const t=o.execCommand("copy");i(null,t),console.log("failed to copy",t)}catch(t){console.error("failed to copy",t)}finally{o.body.removeChild(a)}}(t,e)},A.download.onclick=function(t){!function(t,e,i,n,o){o=o||function(){};let a=e||[];"object"==typeof a?a=JSON.stringify(a,null,2):"string"!=typeof a&&(a=a.toString());const M=D(t&&t.target&&t.target.ownerDocument,this),A=new Blob([a],{type:i}),r=URL.createObjectURL(A),u=M.createElement("a");u.style.display="none",u.href=r,u.download=n,u.style.position="fixed",u.style.top="0",u.style.left="0";try{M.body.appendChild(u),u.focus(),u.click(t),URL.revokeObjectURL(r),o(null,!0)}catch(t){o(t,!1),console.error("failed to download",t)}finally{M.body.removeChild(u)}}(t,e,"application/json","flows.json")};const r=E(M);Q(r),T(r),o.classList.add(i.scope);const u=function(t){a.querySelectorAll(".red-ui-tab").forEach((t=>t.classList.remove("active")));return a.querySelector(`[data-flow-id="${t}"]`).classList.add("active"),i.flowId=t,it(e,i)};Y(n,i.scope);let s=o.querySelectorAll(".red-ui-tab");s&&s.forEach((t=>t.remove()));const d=_(e);if(d.forEach(((e,n)=>{!function(e,i,n,o,a){const M=`red-ui-tab-${n}`,A=o.container,r=o.svg||A.querySelector("svg"),u=D(o.document,t.document,A,this),s=i.label;let d=A.querySelector(`.${M}`);if(d||(d=u.createElement("div"),e.appendChild(d),d.classList.add("red-ui-tab"),d.classList.add("red-ui-tab-"+i.type),d.setAttribute("data-flow-id",i.id)),i.disabled){d.classList.add("disabled");const t=u.createElement("i");t.classList.add("red-ui-tab-disabled-icon"),d.appendChild(t)}else if("subflow"===i.type){const t=u.createElement("i");t.classList.add("red-ui-tab-subflow-icon"),d.appendChild(t)}d.title=s;const g=u.createElement("span");g.textContent=s,d.appendChild(g),d.onclick=function(t){C(r,o,o.flowId),a(i.id),S(r,o,i.id)}}(a,e,n,i,u)})),d.length?o.classList.add("has-tabs"):o.classList.remove("has-tabs"),!i.flowId){const t=d.find((t=>"tab"===t.type)),e=d.find((t=>"subflow"===t.type));i.flowId=t?t.id:e?e.id:null}let g=null;return g=d.length?u(i.flowId):it(e,i),C(r,i,i.flowId),g=g||{},g.tabs=d,g.flowId=i.flowId,g.css=g.css||U(i.scope),g}function it(e,i){e=$(e);D((i=tt(i)).document,t.document,i.container,this);const a=i.container,M={},u={},g={},I={},L={},y=(i=i||{}).flowId,w=j("junction");let x=!1;const m=_(e).find((t=>t.id===y));m&&"tab"===m.type&&(x=m.disabled);let C=a&&a.querySelector("svg");C=C||E(a),Q(C,i.layer);const S=(i.svgLayer||C).querySelector(".flow_grid");i.gridLines&&S&&k(S),e.forEach((function(t){if("subflow"==t.type){u["subflow:"+t.id]=t;for(var e=0;e<t.in.length;e++)for(var i=0;i<t.in[e].wires.length;i++)L[t.in[e].wires[i].id]=!0}t.wires&&t.wires.length>0&&t.wires.forEach((function(t){t.forEach((function(t){L[t]=!0}))}))}));const T=(i.svgLayer||C).querySelector(".flow_nodes");e.forEach((function(t){if(t.z==y||t.id==y){var a=N(t);const y=function(t){let e=!0;return"link out"!==t.type&&"link in"!==t.type||(e=!1),"junction"===t.type||"tab"===t.type||"subflow"===t.type||(!1===t.l?e=!1:!0===t.l&&(e=!0)),e}(t),h=!i.labels;var D=j(t.type);switch(t.type){case"tab":case"ui_spacer":case"ui-spacer":break;case"group":g[t.id]=t;break;case"subflow":I[t.id]={...t};for(var b=0;b<I[t.id].in.length;b++){var p=I[t.id].in[b];const e=v("g",{class:"in-connector"});T.appendChild(e),e.appendChild(v("rect",{...D,...a,rx:8,ry:8,x:-a.width/2,y:-a.height/2,"stroke-width":1})),e.setAttribute("transform",`translate(${p.x}, ${p.y})`),p.bbox=e.getBBox(),p.bbox.x=p.x-a.width/2,p.bbox.y=p.y-a.height/2,e.appendChild(v("rect",{...D,...s,...d,class:"red-ui-flow-port",transform:"translate(15, -5)"}));const i=v("text",{y:0,x:-2,class:"subflow-node-text-label"});i.textContent="input",e.appendChild(i)}for(b=0;b<I[t.id].out.length;b++){const e=I[t.id].out[b],i=v("g",{class:"out-connector"});T.appendChild(i),i.appendChild(v("rect",{...D,...a,rx:8,ry:8,x:-a.width/2,y:-a.height/2,"stroke-width":1})),i.setAttribute("transform",`translate(${e.x}, ${e.y})`),e.bbox=i.getBBox(),e.bbox.x=e.x-a.width/2,e.bbox.y=e.y-a.height/2,i.appendChild(v("rect",{...D,...s,...d,class:"red-ui-flow-port-input",transform:"translate(-25, -5)"}));const n=v("text",{y:-10,x:0,class:"subflow-node-text-label"});n.textContent="output",i.appendChild(n);const o=v("text",{y:8,x:0,class:"subflow-node-text-label-number"});o.textContent=""+(b+1),i.appendChild(o)}if(I[t.id].status){const e=I[t.id].status,i=v("g",{class:"status-connector"});T.appendChild(i),i.appendChild(v("rect",{...D,...a,rx:8,ry:8,x:-a.width/2,y:-a.height/2,"stroke-width":1})),i.setAttribute("transform",`translate(${e.x}, ${e.y})`),e.bbox=i.getBBox(),e.bbox.x=e.x-a.width/2,e.bbox.y=e.y-a.height/2,i.appendChild(v("path",{...D,...s,...d,class:"red-ui-flow-port-input",transform:"translate(-25, -5)"}));const n=v("text",{y:0,x:2,class:"subflow-node-text-label"});n.textContent="status",i.appendChild(n)}break;case"junction":{const e=v("g",{"data-node-id":t.id,class:"junction"});T.appendChild(e),e.appendChild(v("rect",{...D,...a,rx:3,ry:3,x:-5,y:-5,"stroke-width":1})),e.setAttribute("transform",`translate(${t.x}, ${t.y})`),t.bbox=e.getBBox(),t.bbox.x=t.x,t.bbox.y=t.y,t.bbox.width=0,t.bbox.height=0;break}default:{const M=K[t.type]||K._default,g=u[t.type]||{},I=P(M(t,g,e),"node-text-label");let j;if(y){j=v("g",{transform:"translate(38,"+(I.lines.length>1?18:16)+")"});var m=0;I.lines.forEach((function(t){var e=v("text",{y:m,class:"node-text-label"});e.textContent=t,j.appendChild(e),m+=20}))}const N=v("g",{"data-node-id":t.id,class:"node"});T.appendChild(N),y&&j&&N.appendChild(j);const b=y?j?.getBBox():{width:0,height:0},p=b.width,C=b.height+13.5;let S=y?a.width>p?a.width:p:a.width,z=y?a.height>C?a.height:C:a.height;const f={x:t.x,y:t.y,w:S,h:z,outputs:(t.wires||[]).length},E=!!L[t.id];try{y?(f.w=Math.max(o,20*Math.ceil((I.width+48+(E?7:0))/20)),f.h=Math.max(6+24*I.lines.length,15*(f.outputs||0),30)):(f.w=n,f.h=Math.max(n,15*(f.outputs||0)))}catch(t){}if(f.outputs>2&&y&&j&&f.h>C){const t=(f.h-C)/2;j.setAttributeNS(null,"transform","translate(38,"+((I.lines.length>1?16:14)+t)+")")}h&&j&&(j.style.display="none"),N.prepend(v("rect",{...D,rx:5,ry:5,fill:g.color||D.fill,width:f.w,height:f.h,class:"node node-"+t.id})),N.appendChild(v("path",{d:"M5 0 h25 v"+f.h+" h-25 a 5 5 0 0 1 -5 -5 v-"+(f.h-10)+" a 5 5 0 0 1 5 -5",fill:"rgb(0,0,0)","fill-opacity":.1,stroke:"none"})),y&&N.appendChild(v("path",{d:"M 29.5 0.5 l 0 "+(f.h-1),fill:"none",stroke:"rgb(0,0,0)","stroke-opacity":.1,"stroke-width":"1px"}));const O=r.view.tools.calculateGridSnapOffsets(f),k=t.x-f.w/2-O.x,Z=t.y-f.h/2-O.y;if(N.setAttribute("transform",`translate(${k}, ${Z})`),t.bbox=N.getBBox(),t.bbox.x=k,t.bbox.y=Z,i.images){const e={x:0,y:Math.max(f.h/2-15,0),width:30,height:30},i=function(t){let e=l[t];return e||(t.startsWith("subflow:")?e=l.subflow:t.startsWith("ui-")?e=l["ui-template"]:t.startsWith("ui_")&&(e=l.ui_template)),e&&c[e]||""}(t.type);if(i)N.appendChild(v("image",{href:i,...e}));else if(t.type.startsWith("subflow:")){const t=g.icon&&c[g.icon]||c["subflow.svg"];N.appendChild(v("image",{href:t,...e}))}}(g.in&&g.in.length>0||L[t.id])&&(i.arrows?N.appendChild(v("path",{...w,transform:"translate(-3,"+(t.bbox.height/2-5)+")",d:i.arrows?"M 0,10 9,5 0,0 Z":"M -1,9.5 8,9.5 8,0.5 -1,0.5 Z",class:"red-ui-flow-port-input input-arrows","stroke-linecap":"round","stroke-linejoin":"round"})):N.appendChild(v("rect",{...w,transform:"translate(-5,"+(t.bbox.height/2-5)+")",...s,...d,class:"red-ui-flow-port-input"})));const B={...w,...s,...d,class:"red-ui-flow-port"};if(t.wires&&Array.isArray(t.wires)){const e=1==t.wires.length?t.bbox.height/2-5:t.wires.length%2==0?3.5:4.5;for(let i=0;i<t.wires.length;i++)N.appendChild(v("rect",{transform:"translate("+(t.bbox.width-4)+","+(e+A*i)+")",...B}))}(t.d||x)&&N.setAttribute("class","node-disabled");break}}M[t.id]=t}}));const z=(i.svgLayer||C).querySelector(".flow_group_select");var f=[],O=[],Z=50;for(var B in g)O.push(B);for(;f.length!=O.length&&Z>0;)for(var B in Z-=1,g)if(!(f.indexOf(B)>-1)){var Y=g[B],G=0,R=0,W=!1;if(Y.nodes.forEach((function(t){var e=(M[t]||{}).bbox;e?(G=Math.max(G,e.x-Y.x+e.width),R=Math.max(R,e.y-Y.y+e.height)):W=!0})),!W){var J=v("g",{"data-node-id":B});J.setAttribute("transform",`translate(${Y.x}, ${Y.y})`),J.appendChild(v("rect",{rx:5,ry:5,width:Y.w,height:Y.h,fill:"none","fill-opacity":0,"stroke-width":2,stroke:"grey",class:"group-"+Y.id,...Y.style})),z.prepend(J);var F=M[B];F.bbox=J.getBBox(),F.bbox.x=Y.x,F.bbox.y=Y.y;var V=v("g",{});if(J.appendChild(V),Y.style.label&&Y.name){var X=Y.style["label-position"]||"nw",q=P(Y.name,"group-text-label"),et=0,it=0,nt="start";if(it="n"===X[0]?15:F.bbox.height-5-16*(q.lines.length-1),"w"===X[1]?(et=5,nt="start"):"e"===X[1]?(et=F.bbox.width-5,nt="end"):(et=F.bbox.width/2,nt="middle"),V.setAttribute("transform",`translate(${et}, ${it})`),V.setAttribute("text-anchor",nt),q){let t=0;q.lines.forEach((function(e){const i=v("text",{class:"group-text-label",x:0,y:t,fill:Y.style.color||"grey"});i.textContent=e,V.appendChild(i),t+=16}))}}f.push(B)}}const ot=(i.svgLayer||C).querySelector(".flow_wires");for(var at=[],Mt=Object.keys(I),At=0;At<Mt.length;At++){for(var rt=I[Mt[At]],ut=0;ut<rt.in.length;ut++)for(var st=rt.in[ut],dt=0;dt<st.wires.length;dt++){if(Nt=M[st.wires[dt].id]){var gt=st.bbox.x+st.bbox.width,lt=st.bbox.y+st.bbox.height/2,ct=Nt.bbox.x,It=Nt.bbox.y+Nt.bbox.height/2;ot.appendChild(v("path",{d:H(gt,lt,ct,It,1),class:"link "+(Nt.d||x?"link-disabled":"")+" link-from-"+rt.id+"-to-"+Nt.id}))}}rt.status&&rt.out.push(rt.status);for(ut=0;ut<rt.out.length;ut++){var jt=rt.out[ut];for(dt=0;dt<jt.wires.length;dt++){var Nt;if(!(Nt=M[jt.wires[dt].id]))continue;const t=1==Nt.wires.length?Nt.bbox.height/2:5+(Nt.wires.length%2==0?3.5:4.5);gt=Nt.bbox.x+Nt.bbox.width,lt=Nt.bbox.y+(t+A*jt.wires[dt].port),ct=jt.bbox.x,It=jt.bbox.y+jt.bbox.height/2;ot.appendChild(v("path",{d:H(gt,lt,ct,It,1),class:"link "+(Nt.d||x?"link-disabled":"")+" link-from-"+rt.id+"-to-"+Nt.id}))}}}for(var Lt in M){var Dt=M[Lt];if("link out"==Dt.type&&at.push(Dt),0==(Dt.wires||[]).length)continue;const t=1==Dt.wires.length?Dt.bbox.height/2:5+(Dt.wires.length%2==0?3.5:4.5);var yt=0;Dt.wires.forEach((function(e){e.forEach((function(e){var i=M[e];if(i){var n=Dt.bbox.x+Dt.bbox.width,o=Dt.bbox.y+(t+A*yt),a=i.bbox.x,r=i.bbox.y+i.bbox.height/2;ot.appendChild(v("path",{d:H(n,o,a,r,1),class:"link "+(i.d||Dt.d||x?"link-disabled":"")+" link-from-"+Dt.id+"-to-"+i.id}))}})),yt++}))}i.linkLines&&at.forEach((function(t){t.links.forEach((function(e){var i=M[e];if(i){var n=t.bbox.x+t.bbox.width,o=t.bbox.y+t.bbox.height/2,a=i.bbox.x,A=i.bbox.y+i.bbox.height/2;ot.appendChild(v("path",{d:H(n,o,a,A,1),"stroke-dasharray":"25,4",class:"link "+(i.d||t.d||x?"link-disabled":"")+" link-from-"+t.id+"-to-"+i.id})),ot.appendChild(v("circle",{cy:o,cx:n+6.5,r:5,stroke:"rgb(170, 170, 170)","stroke-width":1,stroke:"rgb(170, 170, 170)",fill:"rgb(238, 238, 238)",class:(i.d||t.d||x?"link-disabled":"")+" link-from-"+t.id+"-to-"+i.id})),ot.appendChild(v("circle",{cy:A,cx:a-6.5,r:5,stroke:"rgb(170, 170, 170)","stroke-width":1,stroke:"rgb(170, 170, 170)",fill:"rgb(238, 238, 238)",class:(i.d||t.d||x?"link-disabled":"")+" link-from-"+t.id+"-to-"+i.id}))}}))})),e.forEach((function(t){delete t.bbox}));const bt=b(C.parentElement);bt.hasHorizontalScrollbar||bt.hasVerticalScrollbar?a.classList.add("has-scrollbars"):a.classList.remove("has-scrollbars"),i.zoom&&p(C,i.container);const pt=h(C,e,i);return{svg:C.innerHTML,flowId:i.flowId,css:U(i.scope),autoScaleAndScroll:pt}}return{compare:function(e,i){if(!e||e.length<2)return et(e,i);e.length>2&&e.splice(2);const n=new Map,o=B(function(t,e){const i=G(t),n=G(e),o={},a={},M={},A={},r={};return Object.keys(i.all).forEach((function(t){if(!n.all.hasOwnProperty(t))return void(a[t]=!0);const e=JSON.stringify(i.all[t]),o=JSON.stringify(n.all[t]);if(e!==o)if(M[t]=!0,i.all[t].z!==n.all[t].z)r[t]=!0;else if(i.all[t].x!==n.all[t].x||i.all[t].y!==n.all[t].y||i.all[t].w!==n.all[t].w||i.all[t].h!==n.all[t].h){const i=JSON.parse(e),n=JSON.parse(o);delete i.x,delete i.y,delete i.w,delete i.h,delete n.x,delete n.y,delete n.w,delete n.h,JSON.stringify(i)===JSON.stringify(n)&&(A[t]=!0)}})),Object.keys(n.all).forEach((function(t){i.all.hasOwnProperty(t)||(o[t]=!0)})),{currentConfig:i,newConfig:n,added:o,deleted:a,changed:M,positionChanged:A,moved:r}}(e[0],e[1]));o.changes.forEach((t=>{t.highlight=e=>function(t=-1,e){clearTimeout(j),clearTimeout(N);u.querySelectorAll(".red-ui-tab").forEach((t=>t.classList.remove("tab-glow")));d.querySelectorAll("g[data-node-id]").forEach((t=>t.style.filter=""));const i=u.querySelector(".red-ui-tab.active").getAttribute("data-flow-id");let n=e.tab;"moved"===e.diffType&&(-1===t?t=e.v1:0===t?n=e.value1:1===t&&(n=e.value2));"added"===e.diffType&&-1===t?t=1:("deleted"===e.diffType&&-1===t||-1===t)&&(t=0);const o=u.querySelector(`.red-ui-tab[data-flow-id="${n}"]`);("tab"===e.item&&"changed"===e.diffType||n!==i)&&o&&(o.click(),o.classList.add("tab-glow"),N=setTimeout((()=>{o.classList.remove("tab-glow")}),1e4));if(parseInt(l.value)<10||parseInt(l.value)>90){const e=0===t?10:90;!async function(){let t=parseInt(l.value);const i=e>t?1:-1;for(;t!==e;){t+=i,l.value=t;const e=new Event("input",{bubbles:!0});l.dispatchEvent(e),await new Promise((t=>setTimeout(t,10)))}}()}let a=[e.item,e.tab][0];const M=d.querySelector(`g.flow-layer-0 g[data-node-id="${a}"]`),A=d.querySelector(`g.flow-layer-1 g[data-node-id="${a}"]`);if(!M&&!A)return;(M||A).scrollIntoView({behavior:"smooth",block:"center",inline:"center"}),M&&(M.style.filter="url(#node-glow)");A&&(A.style.filter="url(#node-glow)");j=setTimeout((()=>{try{M&&(M.style.filter=""),A&&(A.style.filter="")}catch(t){}}),1e4)}(e,t)})),o.tabMap=n;const a=D((i=tt(i)).document,t.document,i.container,this),M=i.container;Y(a,i.scope);const A=i.zoom,r=i.gridLines;for(i.zoom=!1,i.gridLines=!1;M.firstChild;)M.removeChild(M.firstChild);const u=Z("div",null,"red-ui-tabs",null,M),s=z(M),d=E(s,{addDefaultLayer:!1}),g=[...d.childNodes].find((t=>"g"===t.tagName&&t.classList.contains("outerContainer"))),l=function(t){if(!D(t,this))return null;let e=t.querySelector(".toolbar");e||(e=f(t));let i=e.querySelector(".compare-controls");if(i)return e.querySelector(".flow-compare-slider");i=Z("div",null,"button-group compare-controls",null,e);const n=Z("input",null,"flow-compare-slider",null,i);return n.type="range",n.min="0",n.max="100",n}(M);l.type="range",l.min=0,l.max=100,l.value=0,l.step=5,l.style.width="100%",l.classList.add("flow-compare-slider");const c=M,I=s;T(d);for(let t=0;t<e.length;t++){const o=t,M=O(d,{layer:o,opacity:0===t?1:0}),A=[..._(e[t])||[]];for(let e of A){const A=e.order,r=e.id,u={renderOptions:{...i,index:t,layer:o,svgLayer:M,order:A,document:a,container:c,flowId:r},index:t,layer:o,order:A,svgLayer:M,flowRenderer:c,workspace:I,tab:e};n.has(r)||n.set(r,{}),n.get(r)[t]=u}}[...n.entries()].forEach((n=>{const o=n[0],a=n[1],s={...i,flowId:o,container:null,layers:a};!function(e,i,n){const o=D(i.document,t.document,M,this),a=i.layers;for(let t of Object.values(a)){const M=t.tab,A=M.label,r=`red-ui-tab-${t.index}`,u=`red-ui-tab-${M.id}`;let s=e.querySelector(`.${u}`);s||(s=o.createElement("div"),e.appendChild(s),s.classList.add("red-ui-tab"),s.classList.add(r),s.classList.add(u),s.classList.add("red-ui-tab-"+a.type),s.setAttribute("data-flow-id",M.id));let g=s.querySelector(`.red-ui-tab-label-${t.index}`);if(g||(g=o.createElement("div"),g.classList.add(`red-ui-tab-label-${t.index}`)),g.classList.add("red-ui-tab-label"),g.setAttribute("data-layer",t.index),g.style.opacity=0,s.appendChild(g),M.disabled){g.classList.add("disabled");const t=o.createElement("i");t.classList.add("red-ui-tab-disabled-icon"),g.appendChild(t)}else if("subflow"===M.type){const t=o.createElement("i");t.classList.add("red-ui-tab-subflow-icon"),g.appendChild(t)}g.title=A;const l=o.createElement("span");l.textContent=A,g.appendChild(l),s.onclick=function(t){C(d,i,i.flowId),n(i),S(d,i,M.id)}}}(u,s,(function(t){u.querySelectorAll(".red-ui-tab").forEach((t=>t.classList.remove("active")));u.querySelector(`[data-flow-id="${t.flowId}"]`).classList.add("active");const n=Object.values(t.layers),o={0:!0,1:!0};n.forEach((t=>{t.svgLayer.setAttribute("opacity",0);const i=t.renderOptions;it(e[i.index]||[],i),o[i.index]=!1}));const a=o[0]||o[1],s={...i,flowId:t.flowId,container:a?.container||a?.flowRenderer||M};if(o[0]&&(s.layer=0,s.svgLayer=d.querySelector("g.flow-layer-0"),it(e[0]||[],s)),o[1]&&(s.layer=1,s.svgLayer=d.querySelector("g.flow-layer-1"),it(e[1]||[],s)),A&&p(d,M),r){let t=[...g.childNodes].find((t=>"g"===t.tagName&&t.classList.contains("flow_grid")));t||(t=v("g",{class:"flow_grid"}),g.insertBefore(t,d.firstChild)),t&&k(t)}L()}))})),l.addEventListener("input",(function(t){L()}));let j=null,N=null;function L(){const t=parseInt(l.value),i=[1-t/100,t/100];i.forEach(((t,e)=>{t=t>.05?y(t+.15,0,1):t;const i=function(t,e){return t.querySelector(`g.flow-layer-${e||0}`)}(d,e);i?.setAttribute("opacity",t)}));u.querySelectorAll(".red-ui-tab-label").forEach(((t,n)=>{let o=parseInt(t.getAttribute("data-layer"));(isNaN(o)||o<0||o>=e.length)&&(o=0),t.style.opacity=i[o]||0}))}const w=u.querySelector(".red-ui-tab");w&&w.click(),n.size>0?M.classList.add("has-tabs"):M.classList.remove("has-tabs");const x=b(d.parentElement);return x.hasHorizontalScrollbar||x.hasVerticalScrollbar?M.classList.add("has-scrollbars"):M.classList.remove("has-scrollbars"),o},renderFlows:et,renderFlow:it,normaliseOptions:tt,getStyles:U}};"object"==typeof module&&module.exports?module.exports=FlowRenderer:"object"==typeof window?window.FlowRenderer=FlowRenderer:global.FlowRenderer=FlowRenderer;export default FlowRenderer;