UNPKG

232 kBJavaScriptView Raw
1!function(e){function t(t){for(var n,o,r=t[0],l=t[1],c=t[2],u=0,h=[];u<r.length;u++)o=r[u],Object.prototype.hasOwnProperty.call(s,o)&&s[o]&&h.push(s[o][0]),s[o]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);for(d&&d(t);h.length;)h.shift()();return i.push.apply(i,c||[]),a()}function a(){for(var e,t=0;t<i.length;t++){for(var a=i[t],n=!0,r=1;r<a.length;r++){var l=a[r];0!==s[l]&&(n=!1)}n&&(i.splice(t--,1),e=o(o.s=a[0]))}return e}var n={},s={1:0},i=[];function o(t){if(n[t])return n[t].exports;var a=n[t]={i:t,l:!1,exports:{}};return e[t].call(a.exports,a,a.exports,o),a.l=!0,a.exports}o.m=e,o.c=n,o.d=function(e,t,a){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(o.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(a,n,function(t){return e[t]}.bind(null,n));return a},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],l=r.push.bind(r);r.push=t,r=r.slice();for(var c=0;c<r.length;c++)t(r[c]);var d=l;i.push([63,2]),a()}([,function(e,t,a){"use strict";const n=a(5),s=a(64)({transports:n(document.body).data("transports"),path:window.location.pathname+"socket.io/",autoConnect:!1,reconnection:!n(document.body).hasClass("public")});e.exports=s;const{vueApp:i}=a(4),{requestIdleCallback:o}=a(6);function r(e){const t=e.message||e;i.isConnected=!1,i.currentUserVisibleError="Waiting to reconnect… (".concat(t,")"),n("#loading-page-message").text(i.currentUserVisibleError),s.io.skipReconnect&&o(()=>s.connect(),2e3)}s.on("disconnect",r),s.on("connect_error",r),s.on("error",r),s.on("reconnecting",function(e){i.currentUserVisibleError="Reconnecting… (attempt ".concat(e,")"),n("#loading-page-message").text(i.currentUserVisibleError)}),s.on("connecting",function(){i.currentUserVisibleError="Connecting…",n("#loading-page-message").text(i.currentUserVisibleError)}),s.on("connect",function(){s.sendBuffer=[],i.currentUserVisibleError="Finalizing connection…",n("#loading-page-message").text(i.currentUserVisibleError)}),s.on("authorized",function(){i.currentUserVisibleError="Loading messages…",n("#loading-page-message").text(i.currentUserVisibleError)})},function(e,t,a){"use strict";var n={name:"Username",props:{user:Object,active:Boolean,onHover:Function},methods:{hover(){return this.onHover(this.user)}}},s=a(0),i=Object(s.a)(n,function(){var e=this,t=e.$createElement;return(e._self._c||t)("span",e._g({class:["user",e.$options.filters.colorClass(e.user.nick),{active:e.active}],attrs:{"data-name":e.user.nick,role:"button"}},e.onHover?{mouseover:e.hover}:{}),[e._v(e._s(e.user.mode)+e._s(e.user.nick))])},[],!1,null,null,null);t.a=i.exports},function(e,t,a){"use strict";const n=a(100);var s={name:"ParsedMessage",functional:!0,props:{text:String,message:Object,network:Object},render:(e,t)=>n(e,void 0!==t.props.text?t.props.text:t.props.message.text,t.props.message,t.props.network)},i=a(0),o=Object(i.a)(s,void 0,void 0,!1,null,null,null);t.a=o.exports},function(e,t,a){"use strict";const n=a(86).default,s=a(200).default,i=a(168),o=a(53),r=a(169),l=a(51);n.filter("localetime",o),n.filter("friendlysize",r),n.filter("colorClass",l),n.filter("roundBadgeNumber",i);const c=new n({el:"#viewport",data:{activeChannel:null,appName:document.title,currentUserVisibleError:null,initialized:!1,isAutoCompleting:!1,isConnected:!1,isFileUploadEnabled:!1,isNotified:!1,networks:[],settings:{syncSettings:!1,advanced:!1,autocomplete:!0,nickPostfix:"",coloredNicks:!0,desktopNotifications:!1,highlights:"",links:!0,motd:!0,notification:!0,notifyAllMessages:!1,showSeconds:!1,statusMessages:"condensed",theme:document.getElementById("theme").dataset.serverTheme,media:!0,userStyles:""}},mounted(){n.nextTick(()=>window.vueMounted())},render(e){return e(s,{props:this})}});n.config.errorHandler=function(e){console.error(e),c.currentUserVisibleError="Vue error: ".concat(e.message,". Please check devtools and report it in #thelounge")},e.exports={vueApp:c,findChannel:function(e){for(const t of c.networks)for(const a of t.channels)if(a.id===e)return{network:t,channel:a};return null},initChannel:function(e){e.pendingMessage="",e.inputHistoryPosition=0,e.inputHistory=[""],e.historyLoading=!1,e.scrolledToBottom=!0,e.editTopic=!1,"channel"===e.type&&(e.usersOutdated=!0)}}},,function(e,t,a){"use strict";const n=a(5),s=a(55),i=n("#viewport"),{vueApp:o}=a(4);e.exports={mobileViewportPixels:768,findCurrentNetworkChan:function(e){return e=e.toLowerCase(),o.activeChannel.network.channels.find(t=>t.name.toLowerCase()===e)},serverHash:-1,confirmExit:function(){n(document.body).hasClass("public")&&(window.onbeforeunload=function(){return"Are you sure you want to navigate away from this page?"})},scrollIntoViewNicely:function(e){e.scrollIntoView({block:"center",inline:"nearest"})},hasRoleInChannel:function(e,t,a){if(!e||!t)return!1;const i=e.attr("data-id"),o=n("#sidebar .network").has('.chan[data-id="'.concat(i,'"]')),r=a||o.attr("data-nick");return e.find('.names .user[data-name="'.concat(s(r),'"]')).first().parent().is("."+t.join(", ."))},move:function(e,t,a){if(a>=e.length){let t=a-e.length;for(;1+t--;)this.push(void 0)}return e.splice(a,0,e.splice(t,1)[0]),e},closeChan:function(e){const t=a(1);let n="/close";if(e.hasClass("lobby")){n="/quit";const t=e.find(".name").html();if(!confirm("Are you sure you want to remove ".concat(t,"?")))return!1}return t.emit("input",{target:Number(e.attr("data-id")),text:n}),e.css({transition:"none",opacity:.4}),!1},synchronizeNotifiedState:function(){!function(){let e=o.appName;o.activeChannel&&(e="".concat(o.activeChannel.channel.name," — ").concat(e));let t=0;for(const e of o.networks)for(const a of e.channels)t+=a.highlight;t>0&&(e="(".concat(t,") ").concat(e));document.title=e}();let e=!1;for(const t of o.networks)for(const a of t.channels)if(a.highlight>0){e=!0;break}!function(e){if(o.isNotified!==e){o.isNotified=e;const t=r.prop("href");r.prop("href",r.data("other")),r.data("other",t)}i.toggleClass("notified",e)}(e)},togglePasswordField:function(e){n(e).on("click",function(){const e=n(this),t=e.closest("div").find("input");t.attr("type","password"===t.attr("type")?"text":"password"),l(e),l(e.find("span")),e.toggleClass("visible")})},requestIdleCallback:function(e,t){window.requestIdleCallback?window.requestIdleCallback(e,{timeout:t}):e()}};const r=n("#favicon");function l(e){const t=e.data("alt-label");e.data("alt-label",e.attr("aria-label")).attr("aria-label",t)}},,function(e,t,a){"use strict";e.exports=function(){return function(){}}},,,function(e,t,a){"use strict";e.exports={set(e,t){try{window.localStorage.setItem(e,t)}catch(e){}},get(e){try{return window.localStorage.getItem(e)}catch(e){return null}},remove(e){try{window.localStorage.removeItem(e)}catch(e){}},clear(){try{window.localStorage.clear()}catch(e){}}}},function(e,t,a){"use strict";const n=a(128);e.exports=n.keys().reduce((e,t)=>{let a=e;return t.substr(2).split("/").forEach(e=>{e.endsWith(".tpl")?a[e.substr(0,e.length-4)]=n(t):a[e]=a[e]||{},a=a[e]}),e},{})},,,,function(e,t,a){"use strict";e.exports=function(e,t,a){if(3!==arguments.length)throw new Error("Handlebars helper `equal` expects 3 arguments");return(e=e.toString())===(t=t.toString())?a.fn(this):a.inverse(this)}},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({compiler:[7,">= 4.0.0"],main:function(e,t,a,n,s){return'<span class="reveal-password tooltipped tooltipped-n tooltipped-no-delay" aria-label="Show password" data-alt-label="Hide password"><span type="button" aria-label="Show password" data-alt-label="Hide password"></span></span>'},useData:!0})},function(e,t,a){"use strict";const n=a(125);e.exports=n.keys().reduce((e,t)=>(e["message-"+t.substring(2,t.length-4)]=n(t).default,e),{})},function(e,t,a){"use strict";const n=["away","back","chghost","join","part","quit","nick","kick","mode"],s="."+n.join(", .");e.exports={colorCodeMap:[["00","White"],["01","Black"],["02","Blue"],["03","Green"],["04","Red"],["05","Brown"],["06","Magenta"],["07","Orange"],["08","Yellow"],["09","Light Green"],["10","Cyan"],["11","Light Cyan"],["12","Light Blue"],["13","Pink"],["14","Grey"],["15","Light Grey"]],commands:[],condensedTypes:n,condensedTypesQuery:s,timeFormats:{msgDefault:"HH:mm",msgWithSeconds:"HH:mm:ss"}}},,,,,,,function(e,t,a){"use strict";const n=a(5),s=a(11),i=a(1);let o,r,l=null;function c(){return o.prop("disabled",!0),navigator.serviceWorker.ready.then(e=>e.pushManager.getSubscription().then(t=>t?(i.emit("push:unregister"),t.unsubscribe()):e.pushManager.subscribe({applicationServerKey:u(r),userVisibleOnly:!0}).then(e=>{const t=e.getKey?e.getKey("p256dh"):"",a=t?window.btoa(String.fromCharCode(...new Uint8Array(t))):"",n=e.getKey?e.getKey("auth"):"",o=n?window.btoa(String.fromCharCode(...new Uint8Array(n))):"";return i.emit("push:register",{token:s.get("token"),endpoint:e.endpoint,keys:{p256dh:a,auth:o}}),!0})).then(e=>{e&&d().prop("disabled",!1)})).catch(e=>{n("#pushNotificationsUnsupported").find("span").text("An error has occurred: ".concat(e)).end().show()}),!1}function d(){const e=o.text();return o.text(o.data("text-alternate")).data("text-alternate",e)}function u(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),a=window.atob(t),n=new Uint8Array(a.length);for(let e=0;e<a.length;++e)n[e]=a.charCodeAt(e);return n}"serviceWorker"in navigator&&navigator.serviceWorker.addEventListener("message",e=>{e.data&&"open"===e.data.type&&n("#sidebar").find('.chan[data-target="#'.concat(e.data.channel,'"]')).trigger("click")}),e.exports.hasServiceWorker=!1,e.exports.configurePushNotifications=(e,t)=>{r=t,!0===l&&!1===e&&(o.prop("disabled",!0),navigator.serviceWorker.ready.then(e=>e.pushManager.getSubscription()).then(e=>e&&e.unsubscribe()).then(e=>{e&&d().prop("disabled",!1)}))},e.exports.initialize=()=>{o=n("#pushNotifications"),"https:"!==location.protocol&&"localhost"!==location.hostname&&"127.0.0.1"!==location.hostname||(n("#pushNotificationsHttps").hide(),"serviceWorker"in navigator&&navigator.serviceWorker.register("service-worker.js").then(t=>{if(e.exports.hasServiceWorker=!0,t.pushManager)return t.pushManager.getSubscription().then(e=>{n("#pushNotificationsUnsupported").hide(),o.prop("disabled",!1).on("click",c),(l=!!e)&&d()})}).catch(e=>{n("#pushNotificationsUnsupported span").text(e)}))}},,,,,,,,function(e,t,a){"use strict";const n=a(5),s=a(58),i=a(20),{Textcomplete:o,Textarea:r}=a(158),l=a(167),c=a(19),{vueApp:d}=a(4);let u,h,p=!1;e.exports={enable:function(e){p=!0;let t=0,a="",s=[];(u=n(e)).on("input.tabcomplete",e=>{"autocomplete"!==e.detail&&(t=0,s=[],a="")}),i(u.get(0)).bind("tab",e=>{if(d.isAutoCompleting)return;e.preventDefault();const n=u.val();if(u.get(0).selectionStart!==n.length)return;if(0===t){if(0===(a=n.split(/\s/).pop()).length)return;if(0===(s=y(a,!1)).length)return}const i=u.get(0).selectionStart-a.length,o=f.replace([0,s[t%s.length]],i);u.val(n.substr(0,i)+o),u.get(0).dispatchEvent(new CustomEvent("input",{detail:"autocomplete"})),a=o,t++},"keydown");const l=new r(u.get(0));(h=new o(l,{dropdown:{className:"textcomplete-menu",placement:"top"}})).register([g,f,b,v,w,_]),h.on("rendered",()=>{h.dropdown.items.length>0&&h.dropdown.items[0].activate()}),h.on("show",()=>{d.isAutoCompleting=!0}),h.on("hidden",()=>{d.isAutoCompleting=!1}),n("#form").on("submit.tabcomplete",()=>{h.hide()})},disable(){p&&(n("#form").off("submit.tabcomplete"),u.off("input.tabcomplete"),i(u.get(0)).unbind("tab","keydown"),h.destroy(),p=!1,d.isAutoCompleting=!1)}};const m=Object.keys(l),g={id:"emoji",match:/\B:([-+\w:?]{2,}):?$/,search(e,t){t(k(e=e.replace(/:$/,""),m))},template:([e,t])=>'<span class="emoji">'.concat(l[t],"</span> ").concat(e),replace:([,e])=>l[e],index:1},f={id:"nicks",match:/\B(@([a-zA-Z_[\]\\^{}|`@][a-zA-Z0-9_[\]\\^{}|`-]*)?)$/,search(e,t){"@"===(e=e.slice(1))[0]?t(y(e.slice(1),!0).map(e=>["@"+e[0],"@"+e[1]])):t(y(e,!0))},template:([e])=>e,replace:([,e],t=1)=>d.settings.nickPostfix?t>0&&/\s/.test(n("#input").val())?e+" ":e+d.settings.nickPostfix:e,index:1},b={id:"chans",match:/\B((#|\+|&|![A-Z0-9]{5})([^\x00\x0A\x0D\x20\x2C\x3A]+(:[^\x00\x0A\x0D\x20\x2C\x3A]*)?)?)$/,search(e,t,a){t(function(e){const t=[];for(const e of d.activeChannel.network.channels)"channel"===e.type&&t.push(e.name);return k(e,t)}(a[0]))},template:([e])=>e,replace:([,e])=>e,index:1},v={id:"commands",match:/^\/(\w*)$/,search(e,t){t(function(e){const t=c.commands.slice();return k(e,t)}("/"+e))},template:([e])=>e,replace:([,e])=>e,index:1},w={id:"foreground-colors",match:/\x03(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,t){e=e.toLowerCase(),t(c.colorCodeMap.filter(t=>s.test(e,t[0])||s.test(e,t[1])).map(t=>s.test(e,t[1])?[t[0],s.match(e,t[1],{pre:"<b>",post:"</b>"}).rendered]:t))},template:e=>'<span class="irc-fg'.concat(parseInt(e[0],10),'">').concat(e[1],"</span>"),replace:e=>""+e[0],index:1},_={id:"background-colors",match:/\x03(\d{2}),(\d{0,2}|[A-Za-z ]{0,10})$/,search(e,t,a){e=e.toLowerCase(),t(c.colorCodeMap.filter(t=>s.test(e,t[0])||s.test(e,t[1])).map(t=>s.test(e,t[1])?[t[0],s.match(e,t[1],{pre:"<b>",post:"</b>"}).rendered]:t).map(e=>e.concat(a[1])))},template:e=>'<span class="irc-fg'.concat(parseInt(e[2],10)," irc-bg irc-bg").concat(parseInt(e[0],10),'">').concat(e[1],"</span>"),replace:e=>"$1,"+e[0],index:2};function k(e,t){return s.filter(e,t,{pre:"<b>",post:"</b>"}).map(e=>[e.string,e.original])}function y(e,t){const a=function(){if(d.activeChannel.channel.users.length>0)return d.activeChannel.channel.users.slice().sort((e,t)=>t.lastMessage-e.lastMessage).map(e=>e.nick);const e=d.activeChannel.network.nick,t=d.activeChannel.channel.name;return e!==t&&"query"===d.activeChannel.channel.type?[t,e]:[e]}();return e=e.toLowerCase(),t?k(e,a):n.grep(a,t=>!t.toLowerCase().indexOf(e))}},,function(e,t,a){"use strict";const n=a(5),s=a(11),i=a(1),{vueApp:o}=a(4);a(34);const r=n("#windows"),l=n("#settings"),c=n("#theme"),d=n("#user-specified-css"),u=/[?&]nocss/;let h,p,m,g,f;const b=o.settings,v=["syncSettings"],w=["highlights"],_=document.querySelector('meta[name="theme-color"]').content;let k=JSON.parse(s.get("settings"))||!1;if(k)for(const e in b)"highlights"===e&&"object"==typeof k[e]&&(k[e]=k[e].join(", ")),void 0!==k[e]&&typeof b[e]==typeof k[e]&&(b[e]=k[e]);else b.syncSettings=!0;function y(){"denied"===Notification.permission?f.show():f.hide()}function C(e,t){if("syncSettings"===e&&t)h.hide(),m.hide();else if("theme"===e){const e="themes/".concat(t,".css");if(c.attr("href")!==e){c.attr("href",e);const a=l.find("#theme-select option[value='"+t+"']");let n=_;a.length>0&&a[0].dataset.themeColor&&(n=a[0].dataset.themeColor),document.querySelector('meta[name="theme-color"]').content=n}}else"userStyles"!==e||u.test(window.location.search)?"desktopNotifications"===e?"Notification"in window&&t&&"granted"!==Notification.permission?Notification.requestPermission(y):t||f.hide():"advanced"===e&&n("#settings [data-advanced]").toggle(b[e]):d.html(t)}function x(e,t){i.emit("setting:set",{name:e,value:t})}function S(e,t,a){b[e]!==t&&(b[e]=t,s.set("settings",JSON.stringify(b)),C(e,t),"syncSettings"===e&&t?(i.emit("setting:get"),h.hide(),p.hide(),m.hide()):"syncSettings"===e&&(h.show(),m.show()),b.syncSettings&&!v.includes(e)&&a?x(e,t):w.includes(e)&&a&&x(e,t))}function j(e=!1){if(b.syncSettings||e){for(const e in b)v.includes(e)?w.includes(e)&&x(e,b[e]):x(e,b[e]);h.hide(),p.hide(),m.hide()}else h.hide(),m.hide(),p.show()}function M(e,t,a){"userStyles"===e?l.find("#user-specified-css-input").val(t):"highlights"===e?l.find("input[name=".concat(e,"]")).val(t):"nickPostfix"===e?l.find("input[name=".concat(e,"]")).val(t):"statusMessages"===e?l.find("input[name=".concat(e,"][value=").concat(t,"]")).prop("checked",!0):"theme"===e?l.find("#theme-select").val(t):"boolean"==typeof t&&l.find("input[name=".concat(e,"]")).prop("checked",t),a?S(e,t,!1):C(e,t)}"string"!=typeof k.userStyles||u.test(window.location.search)||d.html(k.userStyles),"string"==typeof k.theme&&c.attr("href")!=="themes/".concat(k.theme,".css")&&c.attr("href","themes/".concat(k.theme,".css")),k=null,e.exports={alwaysSync:w,noSync:v,initialized:!1,settings:b,syncAllSettings:j,processSetting:M,initialize:function(){f=l.find("#warnBlockedDesktopNotifications"),g=l.find("#warnUnsupportedDesktopNotifications"),h=l.find(".sync-warning-override"),p=l.find(".sync-warning-base"),m=l.find(".force-sync-button"),f.hide(),e.exports.initialized=!0;for(const e in b)M(e,b[e],!1);"Notification"in window?(g.hide(),r.on("show","#settings",y)):g.show();l.on("change","input, select, textarea",function(e){if(e.originalEvent){const e=n(this),t=e.prop("type"),a=e.prop("name");"radio"===t?e.prop("checked")&&S(a,e.val(),!0):"checkbox"===t?(S(a,e.prop("checked"),!0),b[a]=e.prop("checked")):"password"!==t&&S(a,e.val(),!0)}}),l.find("#forceSync").on("click",()=>{j(!0)}),i.emit("setting:get");const t=n("#make-default-client");window.navigator.registerProtocolHandler?(t.on("click",function(){const e=document.location.origin+document.location.pathname+"?uri=%s";return window.navigator.registerProtocolHandler("irc",e,"The Lounge"),window.navigator.registerProtocolHandler("ircs",e,"The Lounge"),!1}),n("#native-app").prop("hidden",!1)):t.hide()}}},,,,,,,,,,,,,,,function(e,t,a){"use strict";e.exports=function(e){let t=0;for(let a=0;a<e.length;a++)t+=e.charCodeAt(a);return"color-"+(1+t%32)}},,function(e,t,a){"use strict";const n=a(33);e.exports=function(e){return n(e).format("D MMMM YYYY, HH:mm:ss")}},function(e,t,a){"use strict";const n=a(154);e.exports=n.keys().reduce((e,t)=>{const a=t.substring(2,t.length-3);return"index"===a?e:(e[a]=n(t),e)},{})},,function(e,t,a){"use strict";const n=a(1),s=a(57).update;const i=new class{init(){this.vueApp=a(4).vueApp,this.xhr=null,this.fileQueue=[],this.overlay=document.getElementById("upload-overlay"),this.uploadInput=document.getElementById("upload-input"),this.uploadProgressbar=document.getElementById("upload-progressbar"),this.uploadInput.addEventListener("change",e=>this.filesChanged(e)),document.addEventListener("dragenter",e=>this.dragEnter(e)),document.addEventListener("dragover",e=>this.dragOver(e)),document.addEventListener("dragleave",e=>this.dragLeave(e)),document.addEventListener("drop",e=>this.drop(e)),document.addEventListener("paste",e=>this.paste(e)),n.on("upload:auth",e=>this.uploadNextFileInQueue(e))}dragOver(e){e.preventDefault()}dragEnter(e){e.preventDefault(),!e.relatedTarget&&e.dataTransfer.types.includes("Files")&&this.overlay.classList.add("is-dragover")}dragLeave(e){e.preventDefault(),e.relatedTarget||this.overlay.classList.remove("is-dragover")}drop(e){let t;e.preventDefault(),this.overlay.classList.remove("is-dragover"),t=e.dataTransfer.items?Array.from(e.dataTransfer.items).filter(e=>"file"===e.kind).map(e=>e.getAsFile()):Array.from(e.dataTransfer.files),this.triggerUpload(t)}paste(e){const t=e.clipboardData.items,a=[];for(const e of t)"file"===e.kind&&a.push(e.getAsFile());0!==a.length&&(e.preventDefault(),this.triggerUpload(a))}filesChanged(){const e=Array.from(this.uploadInput.files);this.triggerUpload(e)}triggerUpload(e){if(!e.length)return;if(!this.vueApp.isConnected)return void this.handleResponse({error:"You are currently disconnected, unable to initiate upload process."});const t=0===this.fileQueue.length;for(const t of e)this.maxFileSize>0&&t.size>this.maxFileSize?this.handleResponse({error:"File ".concat(t.name," is over the maximum allowed size")}):this.fileQueue.push(t);t&&this.fileQueue.length>0&&this.requestToken()}requestToken(){n.emit("upload:auth")}setProgress(e){this.uploadProgressbar.classList.toggle("upload-progressbar-visible",e>0),this.uploadProgressbar.style.width=e+"%"}uploadNextFileInQueue(e){const t=this.fileQueue.shift(),a=new XMLHttpRequest;this.xhr=a,a.upload.addEventListener("progress",e=>{const t=Math.floor(e.loaded/e.total*1e3)/10;this.setProgress(t)},!1),a.onreadystatechange=()=>{if(a.readyState===XMLHttpRequest.DONE){let e;this.xhr=null;try{e=JSON.parse(a.responseText)}catch(t){e={error:"Upload aborted: HTTP ".concat(a.status)}}this.handleResponse(e),this.fileQueue.length>0&&this.requestToken()}};const n=new FormData;n.append("file",t),a.open("POST","uploads/new/".concat(e)),a.send(n)}handleResponse(e){if(this.setProgress(0),e.error){const{vueApp:t}=a(4);t.currentUserVisibleError=e.error}else e.url&&this.insertUploadUrl(e.url)}insertUploadUrl(e){const t=new URL(e,location).toString(),a=document.getElementById("input"),n=a.selectionStart,i=n>0?a.value.substr(0,n)+" ":"",o=a.value.substr(n),r=i+t+" ";s(a,r+o),a.selectionStart=a.selectionEnd=r.length}abort(){this.fileQueue=[],this.xhr&&(this.xhr.abort(),this.xhr=null)}};e.exports={abort:()=>i.abort(),initialize:function(){return i.init(),i},setMaxFileSize:function(e){i.maxFileSize=e}}},,,,function(e,t,a){"use strict";const n=document.getElementById("viewport"),s=document.getElementById("sidebar"),i=document.getElementById("sidebar-overlay");let o=null,r=null,l=0,c=0,d=!1,u=!1,h=!1;class p{static enable(){document.body.addEventListener("touchstart",m,{passive:!0})}static toggle(e){d=e,n.classList.toggle("menu-open",e)}static isOpen(){return d}}function m(e){if(o=r=e.touches.item(0),1!==e.touches.length)return void f();const t=window.getComputedStyle(s);c=parseFloat(t.width),h="absolute"===t.position,(!d||o.screenX>c)&&(l=Date.now(),document.body.addEventListener("touchmove",g,{passive:!0}),document.body.addEventListener("touchend",f,{passive:!0}))}function g(e){const t=r=e.touches.item(0);let a=t.screenX-o.screenX;const l=t.screenY-o.screenY;if(!u){if(Math.abs(l/a)>=1)return void f();const e=window.devicePixelRatio||2;Math.abs(a)>e&&(n.classList.toggle("menu-dragging",!0),u=!0)}h&&(d&&(a+=c),a>c?a=c:a<0&&(a=0),s.style.transform="translate3d("+a+"px, 0, 0)",i.style.opacity=a/c)}function f(){const e=r.screenX-o.screenX,t=Math.abs(e);(t>c/2||Date.now()-l<180&&t>50)&&p.toggle(e>0),document.body.removeEventListener("touchmove",g),document.body.removeEventListener("touchend",f),n.classList.toggle("menu-dragging",!1),s.style.transform=null,i.style.opacity=null,o=null,r=null,l=0,u=!1}e.exports=p},function(e,t,a){"use strict";const n=a(11),s=a(191);e.exports=class{static signout(){n.clear(),s.reload()}}},,function(e,t,a){"use strict";const n=a(5),s=a(1),{vueApp:i,findChannel:o}=a(4);window.vueMounted=()=>{a(170);const e=a(60),t=a(196),r=a(11),l=a(6);a(26),a(198);const c=n("#sidebar, #footer"),d=n("#viewport");function u(e,t){r.set(e,t),i.$emit("resize")}n("#sidebar-overlay").on("click",()=>{e.toggle(!1),n(window).outerWidth()>l.mobileViewportPixels&&u("thelounge.state.sidebar",!1)}),n("#windows").on("click","button.lt",()=>{const t=!e.isOpen();e.toggle(t),n(window).outerWidth()>l.mobileViewportPixels&&u("thelounge.state.sidebar",t)}),d.on("click",".rt",function(){const e=!d.hasClass("userlist-open");return d.toggleClass("userlist-open",e),u("thelounge.state.userlist",e),!1}),d.on("contextmenu",".network .chan",function(e){return t.createContextMenu(n(this),e).show()}),d.on("click contextmenu",".user",function(e){return!window.getSelection().isCollapsed||t.createContextMenu(n(this),e).show()}),d.on("click","#chat .menu",function(e){return e.currentTarget=n('#sidebar .chan[data-id="'.concat(n(this).closest(".chan").attr("data-id"),'"]'))[0],t.createContextMenu(n(this),e).show()}),navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)&&n(document.body).addClass("is-apple"),d.on("click",".inline-channel",function(){const e=n(this).attr("data-chan"),t=l.findCurrentNetworkChan(e);t&&n('#sidebar .chan[data-id="'.concat(t.id,'"]')).trigger("click"),s.emit("input",{target:i.activeChannel.channel.id,text:"/join "+e})});const h=function(t,{pushState:a,replaceHistory:r}={}){const c=n(this),d=c.attr("data-target");if(!d)return;const u=c.parents("#sidebar, #footer").length>0,h=u?o(Number(c.attr("data-id"))):null;if(i.activeChannel){const{channel:e}=i.activeChannel;if(h&&e===h.channel)return;e.messages.length>0&&(e.firstUnread=e.messages[e.messages.length-1].id),e.messages.length>100&&(e.messages.splice(0,e.messages.length-100),e.moreHistoryAvailable=!0)}u&&(i.activeChannel=h,h&&(h.channel.highlight=0,h.channel.unread=0),s.emit("open",h?h.channel.id:null),n(window).outerWidth()<=l.mobileViewportPixels&&e.toggle(!1)),n("#windows > .active").removeClass("active");const p=n(d).addClass("active").trigger("show");if(l.synchronizeNotifiedState(),c.hasClass("chan")&&i.$nextTick(()=>n("#chat-container").addClass("active")),p.find(".chat").length>0&&"special"!==h.type&&n("#input").trigger("ontouchstart"in window?"blur":"focus"),h&&h.channel.usersOutdated&&(h.channel.usersOutdated=!1,s.emit("names",{target:h.channel.id})),!1===a)return!1;const m={};return c.prop("id")?m.clickTarget="#".concat(c.prop("id")):c.hasClass("chan")?m.clickTarget='#sidebar .chan[data-id="'.concat(c.attr("data-id"),'"]'):m.clickTarget='#footer button[data-target="'.concat(d,'"]'),history&&history.pushState&&(r&&history.replaceState?history.replaceState(m,null,d):history.pushState(m,null,d)),!1};c.on("click",".chan, button",h),n("#help").on("click","#view-changelog, #back-to-help",h),n("#changelog").on("click","#back-to-help",h),c.on("click",".close",function(){l.closeChan(n(this).closest(".chan"))}),n(document).on("visibilitychange focus click",()=>{l.synchronizeNotifiedState()}),window.addEventListener("popstate",e=>{const{state:t}=e;if(!t)return;let{clickTarget:a}=t;if(a){!a.includes(".toggle-thumbnail")&&n("#image-viewer").hasClass("opened")&&(a+=", #image-viewer"),n(a).trigger("click",{pushState:!1})}}),s.open()}},,,,,,,,,,,,,,,,,,,,function(e,t){},,,,,,,,,,,,,,,,,function(e,t,a){"use strict";const n=a(101),s=a(102),i=a(108),o=a(116),r=a(118),l=a(119),c=a(51),d=a(122),u=a(202).default,h=/[\u{1F3FB}-\u{1F3FF}]/gu;e.exports=function(e,t,a,p){const m=n(t),g=m.map(e=>e.text).join(""),f=p?p.serverOptions.CHANTYPES:["#","&"],b=p?p.serverOptions.PREFIX:["!","@","%","+"],v=s(g,f,b),w=i(g),_=o(g),k=r(g,a&&a.users||[]),y=v.concat(w).concat(_).concat(k);return l(y,m,g).map(t=>{const n=t.fragments.map(t=>(function(e,t){const a=[];e.bold&&a.push("irc-bold"),void 0!==e.textColor&&a.push("irc-fg"+e.textColor),void 0!==e.bgColor&&a.push("irc-bg"+e.bgColor),e.italic&&a.push("irc-italic"),e.underline&&a.push("irc-underline"),e.strikethrough&&a.push("irc-strikethrough"),e.monospace&&a.push("irc-monospace");const n={};let s=!1;return a.length>0&&(s=!0,n.class=a),e.hexColor&&(s=!0,n.style={color:"#".concat(e.hexColor)},e.hexBgColor&&(n.style["background-color"]="#".concat(e.hexBgColor))),s?t("span",n,e.text):e.text})(t,e));if(t.link){const s=a&&a.previews.find(e=>e.link===t.link),i=e("a",{attrs:{href:t.link,target:"_blank",rel:"noopener"}},n);return s?[i,e(u,{class:["toggle-button","toggle-preview"],props:{link:s}},n)]:i}if(t.channel)return e("span",{class:["inline-channel"],attrs:{role:"button",tabindex:0,"data-chan":t.channel}},n);if(t.emoji){const a=t.emoji.replace(h,""),s=d[a]?"Emoji: ".concat(d[a]):null;return e("span",{class:["emoji"],attrs:{role:"img","aria-label":s,title:s}},n)}return t.nick?e("span",{class:["user",c(t.nick)],attrs:{role:"button","data-name":t.nick}},n):n})}},function(e,t,a){"use strict";const n="",s="",i="",o="",r="",l="",c="",d="",u="",h=/^(\d{1,2})(?:,(\d{1,2}))?/,p=/^([0-9a-f]{6})(?:,([0-9a-f]{6}))?/i,m=/[\u0000-\u0009\u000B-\u001F]/g;const g=["bold","textColor","bgColor","hexColor","hexBgColor","italic","underline","strikethrough","monospace"];e.exports=function(e){return function(e){const t=[];let a,g,f,b,v,w,_,k,y,C,x=0,S=0;const j=()=>{g=!1,f=void 0,b=void 0,v=void 0,w=void 0,_=!1,k=!1,y=!1,C=!1};j();const M=()=>{const a=e.slice(x,S).replace(m,"");if(a.length){const e=t.length?t[t.length-1].end:0;t.push({bold:g,textColor:f,bgColor:b,hexColor:v,hexBgColor:w,italic:_,underline:k,strikethrough:y,monospace:C,text:a,start:e,end:e+a.length})}x=S+1};for(;S<e.length;){switch(e[S]){case o:M(),j();break;case n:M(),g=!g;break;case s:M(),(a=e.slice(S+1).match(h))?(f=Number(a[1]),a[2]&&(b=Number(a[2])),S+=a[0].length,x=S+1):(f=void 0,b=void 0);break;case i:M(),(a=e.slice(S+1).match(p))?(v=a[1].toUpperCase(),a[2]&&(w=a[2].toUpperCase()),S+=a[0].length,x=S+1):(v=void 0,w=void 0);break;case r:{M();const e=b;b=f,f=e;break}case l:M(),_=!_;break;case c:M(),k=!k;break;case d:M(),y=!y;break;case u:M(),C=!C}S+=1}return M(),t}(e).reduce((e,t)=>{if(e.length){const a=e[e.length-1];if(g.every(e=>t[e]===a[e]))return a.text+=t.text,a.end+=t.text.length,e}return e.concat([t])},[])}},function(e,t,a){"use strict";const n=a(103);e.exports=function(e,t,a){const s=a.map(n).join(""),i=t.map(n).join(""),o="(?:^|\\s)[".concat(s,"]*([").concat(i,"][^ ]+)"),r=new RegExp(o,"g"),l=[];let c;do{(c=r.exec(e))&&l.push({start:c.index+c[0].length-c[1].length,end:c.index+c[0].length,channel:c[1]})}while(c);return l}},,,,,,function(e,t,a){"use strict";const n=a(109);n.prototype.normalize=function(e){e.schema||(e.schema="http:",e.url="http://"+e.url),"//"===e.schema&&(e.schema="http:",e.url="http:"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)};const s=n().tlds(a(115)).tlds("onion",!0),i=["sftp","smb","file","irc","ircs","svn","git","steam","mumble","ts3server","svn+ssh","ssh"];for(const e of i)s.add(e+":","http:");e.exports=function(e){const t=s.match(e);return t?t.map(e=>({start:e.index,end:e.lastIndex,link:e.url})):[]}},,,,,,,,function(e,t,a){"use strict";const n=a(117)();e.exports=function(e){const t=[];let a;for(;a=n.exec(e);)t.push({start:a.index,end:a.index+a[0].length,emoji:a[0]});return t}},,function(e,t,a){"use strict";const n=/([\w[\]\\`^{|}-]+)/g;e.exports=function(e,t){const a=[];if(0===t.length)return a;let s;for(;s=n.exec(e);)t.indexOf(s[1])>-1&&a.push({start:s.index,end:s.index+s[1].length,nick:s[1]});return a}},function(e,t,a){"use strict";const n=a(120),s=a(121);function i(e,t){return e.start-t.start||t.end-e.end}e.exports=function(e,t,a){return(e=e.sort(i).reduce((e,t)=>e.some(e=>n(e,t))?e:e.concat([t]),[])).concat(s(e,a)).sort(i).map(e=>(e.fragments=t.filter(t=>n(e,t)).map(t=>(function(e,t){const a=t.start,n=Math.max(t.start,e.start),s=Math.min(t.end,e.end),i=t.text.slice(n-a,s-a);return Object.assign({},t,{start:n,end:s,text:i})})(e,t)),e))}},function(e,t,a){"use strict";e.exports=function(e,t){return e.start<=t.start&&t.start<e.end||e.start<t.end&&t.end<=e.end||t.start<=e.start&&e.start<t.end||t.start<e.end&&e.end<=t.end}},function(e,t,a){"use strict";e.exports=function(e,t){let a=0;const n=e.reduce((e,t)=>(t.start>a&&e.push({start:a,end:t.start}),a=t.end,e),[]);return a<t.length&&n.push({start:a,end:t.length}),n}},function(e){e.exports=JSON.parse('{"😀":"grinning face","😃":"grinning face with big eyes","😄":"grinning face with smiling eyes","😁":"beaming face with smiling eyes","😆":"grinning squinting face","😅":"grinning face with sweat","🤣":"rolling on the floor laughing","😂":"face with tears of joy","🙂":"slightly smiling face","🙃":"upside-down face","😉":"winking face","😊":"smiling face with smiling eyes","😇":"smiling face with halo","🥰":"smiling face with hearts","😍":"smiling face with heart-eyes","🤩":"star-struck","😘":"face blowing a kiss","😗":"kissing face","☺️":"smiling face","😚":"kissing face with closed eyes","😙":"kissing face with smiling eyes","😋":"face savoring food","😛":"face with tongue","😜":"winking face with tongue","🤪":"zany face","😝":"squinting face with tongue","🤑":"money-mouth face","🤗":"hugging face","🤭":"face with hand over mouth","🤫":"shushing face","🤔":"thinking face","🤐":"zipper-mouth face","🤨":"face with raised eyebrow","😐":"neutral face","😑":"expressionless face","😶":"face without mouth","😏":"smirking face","😒":"unamused face","🙄":"face with rolling eyes","😬":"grimacing face","🤥":"lying face","😌":"relieved face","😔":"pensive face","😪":"sleepy face","🤤":"drooling face","😴":"sleeping face","😷":"face with medical mask","🤒":"face with thermometer","🤕":"face with head-bandage","🤢":"nauseated face","🤮":"face vomiting","🤧":"sneezing face","🥵":"hot face","🥶":"cold face","🥴":"woozy face","😵":"dizzy face","🤯":"exploding head","🤠":"cowboy hat face","🥳":"partying face","😎":"smiling face with sunglasses","🤓":"nerd face","🧐":"face with monocle","😕":"confused face","😟":"worried face","🙁":"slightly frowning face","☹️":"frowning face","😮":"face with open mouth","😯":"hushed face","😲":"astonished face","😳":"flushed face","🥺":"pleading face","😦":"frowning face with open mouth","😧":"anguished face","😨":"fearful face","😰":"anxious face with sweat","😥":"sad but relieved face","😢":"crying face","😭":"loudly crying face","😱":"face screaming in fear","😖":"confounded face","😣":"persevering face","😞":"disappointed face","😓":"downcast face with sweat","😩":"weary face","😫":"tired face","🥱":"yawning face","😤":"face with steam from nose","😡":"pouting face","😠":"angry face","🤬":"face with symbols on mouth","😈":"smiling face with horns","👿":"angry face with horns","💀":"skull","☠️":"skull and crossbones","💩":"pile of poo","🤡":"clown face","👹":"ogre","👺":"goblin","👻":"ghost","👽":"alien","👾":"alien monster","🤖":"robot","😺":"grinning cat","😸":"grinning cat with smiling eyes","😹":"cat with tears of joy","😻":"smiling cat with heart-eyes","😼":"cat with wry smile","😽":"kissing cat","🙀":"weary cat","😿":"crying cat","😾":"pouting cat","🙈":"see-no-evil monkey","🙉":"hear-no-evil monkey","🙊":"speak-no-evil monkey","💋":"kiss mark","💌":"love letter","💘":"heart with arrow","💝":"heart with ribbon","💖":"sparkling heart","💗":"growing heart","💓":"beating heart","💞":"revolving hearts","💕":"two hearts","💟":"heart decoration","❣️":"heart exclamation","💔":"broken heart","❤️":"red heart","🧡":"orange heart","💛":"yellow heart","💚":"green heart","💙":"blue heart","💜":"purple heart","🤎":"brown heart","🖤":"black heart","🤍":"white heart","💯":"hundred points","💢":"anger symbol","💥":"collision","💫":"dizzy","💦":"sweat droplets","💨":"dashing away","🕳️":"hole","💣":"bomb","💬":"speech balloon","👁️‍🗨️":"eye in speech bubble","🗨️":"left speech bubble","🗯️":"right anger bubble","💭":"thought balloon","💤":"zzz","👋":"waving hand","🤚":"raised back of hand","🖐️":"hand with fingers splayed","✋":"raised hand","🖖":"vulcan salute","👌":"OK hand","🤏":"pinching hand","✌️":"victory hand","🤞":"crossed fingers","🤟":"love-you gesture","🤘":"sign of the horns","🤙":"call me hand","👈":"backhand index pointing left","👉":"backhand index pointing right","👆":"backhand index pointing up","🖕":"middle finger","👇":"backhand index pointing down","☝️":"index pointing up","👍":"thumbs up","👎":"thumbs down","✊":"raised fist","👊":"oncoming fist","🤛":"left-facing fist","🤜":"right-facing fist","👏":"clapping hands","🙌":"raising hands","👐":"open hands","🤲":"palms up together","🤝":"handshake","🙏":"folded hands","✍️":"writing hand","💅":"nail polish","🤳":"selfie","💪":"flexed biceps","🦾":"mechanical arm","🦿":"mechanical leg","🦵":"leg","🦶":"foot","👂":"ear","🦻":"ear with hearing aid","👃":"nose","🧠":"brain","🦷":"tooth","🦴":"bone","👀":"eyes","👁️":"eye","👅":"tongue","👄":"mouth","👶":"baby","🧒":"child","👦":"boy","👧":"girl","🧑":"person","👱":"person: blond hair","👨":"man","🧔":"man: beard","👱‍♂️":"man: blond hair","👨‍🦰":"man: red hair","👨‍🦱":"man: curly hair","👨‍🦳":"man: white hair","👨‍🦲":"man: bald","👩":"woman","👱‍♀️":"woman: blond hair","👩‍🦰":"woman: red hair","👩‍🦱":"woman: curly hair","👩‍🦳":"woman: white hair","👩‍🦲":"woman: bald","🧓":"older person","👴":"old man","👵":"old woman","🙍":"person frowning","🙍‍♂️":"man frowning","🙍‍♀️":"woman frowning","🙎":"person pouting","🙎‍♂️":"man pouting","🙎‍♀️":"woman pouting","🙅":"person gesturing NO","🙅‍♂️":"man gesturing NO","🙅‍♀️":"woman gesturing NO","🙆":"person gesturing OK","🙆‍♂️":"man gesturing OK","🙆‍♀️":"woman gesturing OK","💁":"person tipping hand","💁‍♂️":"man tipping hand","💁‍♀️":"woman tipping hand","🙋":"person raising hand","🙋‍♂️":"man raising hand","🙋‍♀️":"woman raising hand","🧏":"deaf person","🧏‍♂️":"deaf man","🧏‍♀️":"deaf woman","🙇":"person bowing","🙇‍♂️":"man bowing","🙇‍♀️":"woman bowing","🤦":"person facepalming","🤦‍♂️":"man facepalming","🤦‍♀️":"woman facepalming","🤷":"person shrugging","🤷‍♂️":"man shrugging","🤷‍♀️":"woman shrugging","👨‍⚕️":"man health worker","👩‍⚕️":"woman health worker","👨‍🎓":"man student","👩‍🎓":"woman student","👨‍🏫":"man teacher","👩‍🏫":"woman teacher","👨‍⚖️":"man judge","👩‍⚖️":"woman judge","👨‍🌾":"man farmer","👩‍🌾":"woman farmer","👨‍🍳":"man cook","👩‍🍳":"woman cook","👨‍🔧":"man mechanic","👩‍🔧":"woman mechanic","👨‍🏭":"man factory worker","👩‍🏭":"woman factory worker","👨‍💼":"man office worker","👩‍💼":"woman office worker","👨‍🔬":"man scientist","👩‍🔬":"woman scientist","👨‍💻":"man technologist","👩‍💻":"woman technologist","👨‍🎤":"man singer","👩‍🎤":"woman singer","👨‍🎨":"man artist","👩‍🎨":"woman artist","👨‍✈️":"man pilot","👩‍✈️":"woman pilot","👨‍🚀":"man astronaut","👩‍🚀":"woman astronaut","👨‍🚒":"man firefighter","👩‍🚒":"woman firefighter","👮":"police officer","👮‍♂️":"man police officer","👮‍♀️":"woman police officer","🕵️":"detective","🕵️‍♂️":"man detective","🕵️‍♀️":"woman detective","💂":"guard","💂‍♂️":"man guard","💂‍♀️":"woman guard","👷":"construction worker","👷‍♂️":"man construction worker","👷‍♀️":"woman construction worker","🤴":"prince","👸":"princess","👳":"person wearing turban","👳‍♂️":"man wearing turban","👳‍♀️":"woman wearing turban","👲":"man with Chinese cap","🧕":"woman with headscarf","🤵":"man in tuxedo","👰":"bride with veil","🤰":"pregnant woman","🤱":"breast-feeding","👼":"baby angel","🎅":"Santa Claus","🤶":"Mrs. Claus","🦸":"superhero","🦸‍♂️":"man superhero","🦸‍♀️":"woman superhero","🦹":"supervillain","🦹‍♂️":"man supervillain","🦹‍♀️":"woman supervillain","🧙":"mage","🧙‍♂️":"man mage","🧙‍♀️":"woman mage","🧚":"fairy","🧚‍♂️":"man fairy","🧚‍♀️":"woman fairy","🧛":"vampire","🧛‍♂️":"man vampire","🧛‍♀️":"woman vampire","🧜":"merperson","🧜‍♂️":"merman","🧜‍♀️":"mermaid","🧝":"elf","🧝‍♂️":"man elf","🧝‍♀️":"woman elf","🧞":"genie","🧞‍♂️":"man genie","🧞‍♀️":"woman genie","🧟":"zombie","🧟‍♂️":"man zombie","🧟‍♀️":"woman zombie","💆":"person getting massage","💆‍♂️":"man getting massage","💆‍♀️":"woman getting massage","💇":"person getting haircut","💇‍♂️":"man getting haircut","💇‍♀️":"woman getting haircut","🚶":"person walking","🚶‍♂️":"man walking","🚶‍♀️":"woman walking","🧍":"person standing","🧍‍♂️":"man standing","🧍‍♀️":"woman standing","🧎":"person kneeling","🧎‍♂️":"man kneeling","🧎‍♀️":"woman kneeling","👨‍🦯":"man with probing cane","👩‍🦯":"woman with probing cane","👨‍🦼":"man in motorized wheelchair","👩‍🦼":"woman in motorized wheelchair","👨‍🦽":"man in manual wheelchair","👩‍🦽":"woman in manual wheelchair","🏃":"person running","🏃‍♂️":"man running","🏃‍♀️":"woman running","💃":"woman dancing","🕺":"man dancing","🕴️":"man in suit levitating","👯":"people with bunny ears","👯‍♂️":"men with bunny ears","👯‍♀️":"women with bunny ears","🧖":"person in steamy room","🧖‍♂️":"man in steamy room","🧖‍♀️":"woman in steamy room","🧗":"person climbing","🧗‍♂️":"man climbing","🧗‍♀️":"woman climbing","🤺":"person fencing","🏇":"horse racing","⛷️":"skier","🏂":"snowboarder","🏌️":"person golfing","🏌️‍♂️":"man golfing","🏌️‍♀️":"woman golfing","🏄":"person surfing","🏄‍♂️":"man surfing","🏄‍♀️":"woman surfing","🚣":"person rowing boat","🚣‍♂️":"man rowing boat","🚣‍♀️":"woman rowing boat","🏊":"person swimming","🏊‍♂️":"man swimming","🏊‍♀️":"woman swimming","⛹️":"person bouncing ball","⛹️‍♂️":"man bouncing ball","⛹️‍♀️":"woman bouncing ball","🏋️":"person lifting weights","🏋️‍♂️":"man lifting weights","🏋️‍♀️":"woman lifting weights","🚴":"person biking","🚴‍♂️":"man biking","🚴‍♀️":"woman biking","🚵":"person mountain biking","🚵‍♂️":"man mountain biking","🚵‍♀️":"woman mountain biking","🤸":"person cartwheeling","🤸‍♂️":"man cartwheeling","🤸‍♀️":"woman cartwheeling","🤼":"people wrestling","🤼‍♂️":"men wrestling","🤼‍♀️":"women wrestling","🤽":"person playing water polo","🤽‍♂️":"man playing water polo","🤽‍♀️":"woman playing water polo","🤾":"person playing handball","🤾‍♂️":"man playing handball","🤾‍♀️":"woman playing handball","🤹":"person juggling","🤹‍♂️":"man juggling","🤹‍♀️":"woman juggling","🧘":"person in lotus position","🧘‍♂️":"man in lotus position","🧘‍♀️":"woman in lotus position","🛀":"person taking bath","🛌":"person in bed","🧑‍🤝‍🧑":"people holding hands","👭":"women holding hands","👫":"woman and man holding hands","👬":"men holding hands","💏":"kiss","👩‍❤️‍💋‍👨":"kiss: woman, man","👨‍❤️‍💋‍👨":"kiss: man, man","👩‍❤️‍💋‍👩":"kiss: woman, woman","💑":"couple with heart","👩‍❤️‍👨":"couple with heart: woman, man","👨‍❤️‍👨":"couple with heart: man, man","👩‍❤️‍👩":"couple with heart: woman, woman","👪":"family","👨‍👩‍👦":"family: man, woman, boy","👨‍👩‍👧":"family: man, woman, girl","👨‍👩‍👧‍👦":"family: man, woman, girl, boy","👨‍👩‍👦‍👦":"family: man, woman, boy, boy","👨‍👩‍👧‍👧":"family: man, woman, girl, girl","👨‍👨‍👦":"family: man, man, boy","👨‍👨‍👧":"family: man, man, girl","👨‍👨‍👧‍👦":"family: man, man, girl, boy","👨‍👨‍👦‍👦":"family: man, man, boy, boy","👨‍👨‍👧‍👧":"family: man, man, girl, girl","👩‍👩‍👦":"family: woman, woman, boy","👩‍👩‍👧":"family: woman, woman, girl","👩‍👩‍👧‍👦":"family: woman, woman, girl, boy","👩‍👩‍👦‍👦":"family: woman, woman, boy, boy","👩‍👩‍👧‍👧":"family: woman, woman, girl, girl","👨‍👦":"family: man, boy","👨‍👦‍👦":"family: man, boy, boy","👨‍👧":"family: man, girl","👨‍👧‍👦":"family: man, girl, boy","👨‍👧‍👧":"family: man, girl, girl","👩‍👦":"family: woman, boy","👩‍👦‍👦":"family: woman, boy, boy","👩‍👧":"family: woman, girl","👩‍👧‍👦":"family: woman, girl, boy","👩‍👧‍👧":"family: woman, girl, girl","🗣️":"speaking head","👤":"bust in silhouette","👥":"busts in silhouette","👣":"footprints","🐵":"monkey face","🐒":"monkey","🦍":"gorilla","🦧":"orangutan","🐶":"dog face","🐕":"dog","🦮":"guide dog","🐕‍🦺":"service dog","🐩":"poodle","🐺":"wolf","🦊":"fox","🦝":"raccoon","🐱":"cat face","🐈":"cat","🦁":"lion","🐯":"tiger face","🐅":"tiger","🐆":"leopard","🐴":"horse face","🐎":"horse","🦄":"unicorn","🦓":"zebra","🦌":"deer","🐮":"cow face","🐂":"ox","🐃":"water buffalo","🐄":"cow","🐷":"pig face","🐖":"pig","🐗":"boar","🐽":"pig nose","🐏":"ram","🐑":"ewe","🐐":"goat","🐪":"camel","🐫":"two-hump camel","🦙":"llama","🦒":"giraffe","🐘":"elephant","🦏":"rhinoceros","🦛":"hippopotamus","🐭":"mouse face","🐁":"mouse","🐀":"rat","🐹":"hamster","🐰":"rabbit face","🐇":"rabbit","🐿️":"chipmunk","🦔":"hedgehog","🦇":"bat","🐻":"bear","🐨":"koala","🐼":"panda","🦥":"sloth","🦦":"otter","🦨":"skunk","🦘":"kangaroo","🦡":"badger","🐾":"paw prints","🦃":"turkey","🐔":"chicken","🐓":"rooster","🐣":"hatching chick","🐤":"baby chick","🐥":"front-facing baby chick","🐦":"bird","🐧":"penguin","🕊️":"dove","🦅":"eagle","🦆":"duck","🦢":"swan","🦉":"owl","🦩":"flamingo","🦚":"peacock","🦜":"parrot","🐸":"frog","🐊":"crocodile","🐢":"turtle","🦎":"lizard","🐍":"snake","🐲":"dragon face","🐉":"dragon","🦕":"sauropod","🦖":"T-Rex","🐳":"spouting whale","🐋":"whale","🐬":"dolphin","🐟":"fish","🐠":"tropical fish","🐡":"blowfish","🦈":"shark","🐙":"octopus","🐚":"spiral shell","🐌":"snail","🦋":"butterfly","🐛":"bug","🐜":"ant","🐝":"honeybee","🐞":"lady beetle","🦗":"cricket","🕷️":"spider","🕸️":"spider web","🦂":"scorpion","🦟":"mosquito","🦠":"microbe","💐":"bouquet","🌸":"cherry blossom","💮":"white flower","🏵️":"rosette","🌹":"rose","🥀":"wilted flower","🌺":"hibiscus","🌻":"sunflower","🌼":"blossom","🌷":"tulip","🌱":"seedling","🌲":"evergreen tree","🌳":"deciduous tree","🌴":"palm tree","🌵":"cactus","🌾":"sheaf of rice","🌿":"herb","☘️":"shamrock","🍀":"four leaf clover","🍁":"maple leaf","🍂":"fallen leaf","🍃":"leaf fluttering in wind","🍇":"grapes","🍈":"melon","🍉":"watermelon","🍊":"tangerine","🍋":"lemon","🍌":"banana","🍍":"pineapple","🥭":"mango","🍎":"red apple","🍏":"green apple","🍐":"pear","🍑":"peach","🍒":"cherries","🍓":"strawberry","🥝":"kiwi fruit","🍅":"tomato","🥥":"coconut","🥑":"avocado","🍆":"eggplant","🥔":"potato","🥕":"carrot","🌽":"ear of corn","🌶️":"hot pepper","🥒":"cucumber","🥬":"leafy green","🥦":"broccoli","🧄":"garlic","🧅":"onion","🍄":"mushroom","🥜":"peanuts","🌰":"chestnut","🍞":"bread","🥐":"croissant","🥖":"baguette bread","🥨":"pretzel","🥯":"bagel","🥞":"pancakes","🧇":"waffle","🧀":"cheese wedge","🍖":"meat on bone","🍗":"poultry leg","🥩":"cut of meat","🥓":"bacon","🍔":"hamburger","🍟":"french fries","🍕":"pizza","🌭":"hot dog","🥪":"sandwich","🌮":"taco","🌯":"burrito","🥙":"stuffed flatbread","🧆":"falafel","🥚":"egg","🍳":"cooking","🥘":"shallow pan of food","🍲":"pot of food","🥣":"bowl with spoon","🥗":"green salad","🍿":"popcorn","🧈":"butter","🧂":"salt","🥫":"canned food","🍱":"bento box","🍘":"rice cracker","🍙":"rice ball","🍚":"cooked rice","🍛":"curry rice","🍜":"steaming bowl","🍝":"spaghetti","🍠":"roasted sweet potato","🍢":"oden","🍣":"sushi","🍤":"fried shrimp","🍥":"fish cake with swirl","🥮":"moon cake","🍡":"dango","🥟":"dumpling","🥠":"fortune cookie","🥡":"takeout box","🦀":"crab","🦞":"lobster","🦐":"shrimp","🦑":"squid","🦪":"oyster","🍦":"soft ice cream","🍧":"shaved ice","🍨":"ice cream","🍩":"doughnut","🍪":"cookie","🎂":"birthday cake","🍰":"shortcake","🧁":"cupcake","🥧":"pie","🍫":"chocolate bar","🍬":"candy","🍭":"lollipop","🍮":"custard","🍯":"honey pot","🍼":"baby bottle","🥛":"glass of milk","☕":"hot beverage","🍵":"teacup without handle","🍶":"sake","🍾":"bottle with popping cork","🍷":"wine glass","🍸":"cocktail glass","🍹":"tropical drink","🍺":"beer mug","🍻":"clinking beer mugs","🥂":"clinking glasses","🥃":"tumbler glass","🥤":"cup with straw","🧃":"beverage box","🧉":"mate","🧊":"ice cube","🥢":"chopsticks","🍽️":"fork and knife with plate","🍴":"fork and knife","🥄":"spoon","🔪":"kitchen knife","🏺":"amphora","🌍":"globe showing Europe-Africa","🌎":"globe showing Americas","🌏":"globe showing Asia-Australia","🌐":"globe with meridians","🗺️":"world map","🗾":"map of Japan","🧭":"compass","🏔️":"snow-capped mountain","⛰️":"mountain","🌋":"volcano","🗻":"mount fuji","🏕️":"camping","🏖️":"beach with umbrella","🏜️":"desert","🏝️":"desert island","🏞️":"national park","🏟️":"stadium","🏛️":"classical building","🏗️":"building construction","🧱":"brick","🏘️":"houses","🏚️":"derelict house","🏠":"house","🏡":"house with garden","🏢":"office building","🏣":"Japanese post office","🏤":"post office","🏥":"hospital","🏦":"bank","🏨":"hotel","🏩":"love hotel","🏪":"convenience store","🏫":"school","🏬":"department store","🏭":"factory","🏯":"Japanese castle","🏰":"castle","💒":"wedding","🗼":"Tokyo tower","🗽":"Statue of Liberty","⛪":"church","🕌":"mosque","🛕":"hindu temple","🕍":"synagogue","⛩️":"shinto shrine","🕋":"kaaba","⛲":"fountain","⛺":"tent","🌁":"foggy","🌃":"night with stars","🏙️":"cityscape","🌄":"sunrise over mountains","🌅":"sunrise","🌆":"cityscape at dusk","🌇":"sunset","🌉":"bridge at night","♨️":"hot springs","🎠":"carousel horse","🎡":"ferris wheel","🎢":"roller coaster","💈":"barber pole","🎪":"circus tent","🚂":"locomotive","🚃":"railway car","🚄":"high-speed train","🚅":"bullet train","🚆":"train","🚇":"metro","🚈":"light rail","🚉":"station","🚊":"tram","🚝":"monorail","🚞":"mountain railway","🚋":"tram car","🚌":"bus","🚍":"oncoming bus","🚎":"trolleybus","🚐":"minibus","🚑":"ambulance","🚒":"fire engine","🚓":"police car","🚔":"oncoming police car","🚕":"taxi","🚖":"oncoming taxi","🚗":"automobile","🚘":"oncoming automobile","🚙":"sport utility vehicle","🚚":"delivery truck","🚛":"articulated lorry","🚜":"tractor","🏎️":"racing car","🏍️":"motorcycle","🛵":"motor scooter","🦽":"manual wheelchair","🦼":"motorized wheelchair","🛺":"auto rickshaw","🚲":"bicycle","🛴":"kick scooter","🛹":"skateboard","🚏":"bus stop","🛣️":"motorway","🛤️":"railway track","🛢️":"oil drum","⛽":"fuel pump","🚨":"police car light","🚥":"horizontal traffic light","🚦":"vertical traffic light","🛑":"stop sign","🚧":"construction","⚓":"anchor","⛵":"sailboat","🛶":"canoe","🚤":"speedboat","🛳️":"passenger ship","⛴️":"ferry","🛥️":"motor boat","🚢":"ship","✈️":"airplane","🛩️":"small airplane","🛫":"airplane departure","🛬":"airplane arrival","🪂":"parachute","💺":"seat","🚁":"helicopter","🚟":"suspension railway","🚠":"mountain cableway","🚡":"aerial tramway","🛰️":"satellite","🚀":"rocket","🛸":"flying saucer","🛎️":"bellhop bell","🧳":"luggage","⌛":"hourglass done","⏳":"hourglass not done","⌚":"watch","⏰":"alarm clock","⏱️":"stopwatch","⏲️":"timer clock","🕰️":"mantelpiece clock","🕛":"twelve o’clock","🕧":"twelve-thirty","🕐":"one o’clock","🕜":"one-thirty","🕑":"two o’clock","🕝":"two-thirty","🕒":"three o’clock","🕞":"three-thirty","🕓":"four o’clock","🕟":"four-thirty","🕔":"five o’clock","🕠":"five-thirty","🕕":"six o’clock","🕡":"six-thirty","🕖":"seven o’clock","🕢":"seven-thirty","🕗":"eight o’clock","🕣":"eight-thirty","🕘":"nine o’clock","🕤":"nine-thirty","🕙":"ten o’clock","🕥":"ten-thirty","🕚":"eleven o’clock","🕦":"eleven-thirty","🌑":"new moon","🌒":"waxing crescent moon","🌓":"first quarter moon","🌔":"waxing gibbous moon","🌕":"full moon","🌖":"waning gibbous moon","🌗":"last quarter moon","🌘":"waning crescent moon","🌙":"crescent moon","🌚":"new moon face","🌛":"first quarter moon face","🌜":"last quarter moon face","🌡️":"thermometer","☀️":"sun","🌝":"full moon face","🌞":"sun with face","🪐":"ringed planet","⭐":"star","🌟":"glowing star","🌠":"shooting star","🌌":"milky way","☁️":"cloud","⛅":"sun behind cloud","⛈️":"cloud with lightning and rain","🌤️":"sun behind small cloud","🌥️":"sun behind large cloud","🌦️":"sun behind rain cloud","🌧️":"cloud with rain","🌨️":"cloud with snow","🌩️":"cloud with lightning","🌪️":"tornado","🌫️":"fog","🌬️":"wind face","🌀":"cyclone","🌈":"rainbow","🌂":"closed umbrella","☂️":"umbrella","☔":"umbrella with rain drops","⛱️":"umbrella on ground","⚡":"high voltage","❄️":"snowflake","☃️":"snowman","⛄":"snowman without snow","☄️":"comet","🔥":"fire","💧":"droplet","🌊":"water wave","🎃":"jack-o-lantern","🎄":"Christmas tree","🎆":"fireworks","🎇":"sparkler","🧨":"firecracker","✨":"sparkles","🎈":"balloon","🎉":"party popper","🎊":"confetti ball","🎋":"tanabata tree","🎍":"pine decoration","🎎":"Japanese dolls","🎏":"carp streamer","🎐":"wind chime","🎑":"moon viewing ceremony","🧧":"red envelope","🎀":"ribbon","🎁":"wrapped gift","🎗️":"reminder ribbon","🎟️":"admission tickets","🎫":"ticket","🎖️":"military medal","🏆":"trophy","🏅":"sports medal","🥇":"1st place medal","🥈":"2nd place medal","🥉":"3rd place medal","⚽":"soccer ball","⚾":"baseball","🥎":"softball","🏀":"basketball","🏐":"volleyball","🏈":"american football","🏉":"rugby football","🎾":"tennis","🥏":"flying disc","🎳":"bowling","🏏":"cricket game","🏑":"field hockey","🏒":"ice hockey","🥍":"lacrosse","🏓":"ping pong","🏸":"badminton","🥊":"boxing glove","🥋":"martial arts uniform","🥅":"goal net","⛳":"flag in hole","⛸️":"ice skate","🎣":"fishing pole","🤿":"diving mask","🎽":"running shirt","🎿":"skis","🛷":"sled","🥌":"curling stone","🎯":"direct hit","🪀":"yo-yo","🪁":"kite","🎱":"pool 8 ball","🔮":"crystal ball","🧿":"nazar amulet","🎮":"video game","🕹️":"joystick","🎰":"slot machine","🎲":"game die","🧩":"puzzle piece","🧸":"teddy bear","♠️":"spade suit","♥️":"heart suit","♦️":"diamond suit","♣️":"club suit","♟️":"chess pawn","🃏":"joker","🀄":"mahjong red dragon","🎴":"flower playing cards","🎭":"performing arts","🖼️":"framed picture","🎨":"artist palette","🧵":"thread","🧶":"yarn","👓":"glasses","🕶️":"sunglasses","🥽":"goggles","🥼":"lab coat","🦺":"safety vest","👔":"necktie","👕":"t-shirt","👖":"jeans","🧣":"scarf","🧤":"gloves","🧥":"coat","🧦":"socks","👗":"dress","👘":"kimono","🥻":"sari","🩱":"one-piece swimsuit","🩲":"swim brief","🩳":"shorts","👙":"bikini","👚":"woman’s clothes","👛":"purse","👜":"handbag","👝":"clutch bag","🛍️":"shopping bags","🎒":"backpack","👞":"man’s shoe","👟":"running shoe","🥾":"hiking boot","🥿":"flat shoe","👠":"high-heeled shoe","👡":"woman’s sandal","🩰":"ballet shoes","👢":"woman’s boot","👑":"crown","👒":"woman’s hat","🎩":"top hat","🎓":"graduation cap","🧢":"billed cap","⛑️":"rescue worker’s helmet","📿":"prayer beads","💄":"lipstick","💍":"ring","💎":"gem stone","🔇":"muted speaker","🔈":"speaker low volume","🔉":"speaker medium volume","🔊":"speaker high volume","📢":"loudspeaker","📣":"megaphone","📯":"postal horn","🔔":"bell","🔕":"bell with slash","🎼":"musical score","🎵":"musical note","🎶":"musical notes","🎙️":"studio microphone","🎚️":"level slider","🎛️":"control knobs","🎤":"microphone","🎧":"headphone","📻":"radio","🎷":"saxophone","🎸":"guitar","🎹":"musical keyboard","🎺":"trumpet","🎻":"violin","🪕":"banjo","🥁":"drum","📱":"mobile phone","📲":"mobile phone with arrow","☎️":"telephone","📞":"telephone receiver","📟":"pager","📠":"fax machine","🔋":"battery","🔌":"electric plug","💻":"laptop computer","🖥️":"desktop computer","🖨️":"printer","⌨️":"keyboard","🖱️":"computer mouse","🖲️":"trackball","💽":"computer disk","💾":"floppy disk","💿":"optical disk","📀":"dvd","🧮":"abacus","🎥":"movie camera","🎞️":"film frames","📽️":"film projector","🎬":"clapper board","📺":"television","📷":"camera","📸":"camera with flash","📹":"video camera","📼":"videocassette","🔍":"magnifying glass tilted left","🔎":"magnifying glass tilted right","🕯️":"candle","💡":"light bulb","🔦":"flashlight","🏮":"red paper lantern","🪔":"diya lamp","📔":"notebook with decorative cover","📕":"closed book","📖":"open book","📗":"green book","📘":"blue book","📙":"orange book","📚":"books","📓":"notebook","📒":"ledger","📃":"page with curl","📜":"scroll","📄":"page facing up","📰":"newspaper","🗞️":"rolled-up newspaper","📑":"bookmark tabs","🔖":"bookmark","🏷️":"label","💰":"money bag","💴":"yen banknote","💵":"dollar banknote","💶":"euro banknote","💷":"pound banknote","💸":"money with wings","💳":"credit card","🧾":"receipt","💹":"chart increasing with yen","💱":"currency exchange","💲":"heavy dollar sign","✉️":"envelope","📧":"e-mail","📨":"incoming envelope","📩":"envelope with arrow","📤":"outbox tray","📥":"inbox tray","📦":"package","📫":"closed mailbox with raised flag","📪":"closed mailbox with lowered flag","📬":"open mailbox with raised flag","📭":"open mailbox with lowered flag","📮":"postbox","🗳️":"ballot box with ballot","✏️":"pencil","✒️":"black nib","🖋️":"fountain pen","🖊️":"pen","🖌️":"paintbrush","🖍️":"crayon","📝":"memo","💼":"briefcase","📁":"file folder","📂":"open file folder","🗂️":"card index dividers","📅":"calendar","📆":"tear-off calendar","🗒️":"spiral notepad","🗓️":"spiral calendar","📇":"card index","📈":"chart increasing","📉":"chart decreasing","📊":"bar chart","📋":"clipboard","📌":"pushpin","📍":"round pushpin","📎":"paperclip","🖇️":"linked paperclips","📏":"straight ruler","📐":"triangular ruler","✂️":"scissors","🗃️":"card file box","🗄️":"file cabinet","🗑️":"wastebasket","🔒":"locked","🔓":"unlocked","🔏":"locked with pen","🔐":"locked with key","🔑":"key","🗝️":"old key","🔨":"hammer","🪓":"axe","⛏️":"pick","⚒️":"hammer and pick","🛠️":"hammer and wrench","🗡️":"dagger","⚔️":"crossed swords","🔫":"pistol","🏹":"bow and arrow","🛡️":"shield","🔧":"wrench","🔩":"nut and bolt","⚙️":"gear","🗜️":"clamp","⚖️":"balance scale","🦯":"probing cane","🔗":"link","⛓️":"chains","🧰":"toolbox","🧲":"magnet","⚗️":"alembic","🧪":"test tube","🧫":"petri dish","🧬":"dna","🔬":"microscope","🔭":"telescope","📡":"satellite antenna","💉":"syringe","🩸":"drop of blood","💊":"pill","🩹":"adhesive bandage","🩺":"stethoscope","🚪":"door","🛏️":"bed","🛋️":"couch and lamp","🪑":"chair","🚽":"toilet","🚿":"shower","🛁":"bathtub","🪒":"razor","🧴":"lotion bottle","🧷":"safety pin","🧹":"broom","🧺":"basket","🧻":"roll of paper","🧼":"soap","🧽":"sponge","🧯":"fire extinguisher","🛒":"shopping cart","🚬":"cigarette","⚰️":"coffin","⚱️":"funeral urn","🗿":"moai","🏧":"ATM sign","🚮":"litter in bin sign","🚰":"potable water","♿":"wheelchair symbol","🚹":"men’s room","🚺":"women’s room","🚻":"restroom","🚼":"baby symbol","🚾":"water closet","🛂":"passport control","🛃":"customs","🛄":"baggage claim","🛅":"left luggage","⚠️":"warning","🚸":"children crossing","⛔":"no entry","🚫":"prohibited","🚳":"no bicycles","🚭":"no smoking","🚯":"no littering","🚱":"non-potable water","🚷":"no pedestrians","📵":"no mobile phones","🔞":"no one under eighteen","☢️":"radioactive","☣️":"biohazard","⬆️":"up arrow","↗️":"up-right arrow","➡️":"right arrow","↘️":"down-right arrow","⬇️":"down arrow","↙️":"down-left arrow","⬅️":"left arrow","↖️":"up-left arrow","↕️":"up-down arrow","↔️":"left-right arrow","↩️":"right arrow curving left","↪️":"left arrow curving right","⤴️":"right arrow curving up","⤵️":"right arrow curving down","🔃":"clockwise vertical arrows","🔄":"counterclockwise arrows button","🔙":"BACK arrow","🔚":"END arrow","🔛":"ON! arrow","🔜":"SOON arrow","🔝":"TOP arrow","🛐":"place of worship","⚛️":"atom symbol","🕉️":"om","✡️":"star of David","☸️":"wheel of dharma","☯️":"yin yang","✝️":"latin cross","☦️":"orthodox cross","☪️":"star and crescent","☮️":"peace symbol","🕎":"menorah","🔯":"dotted six-pointed star","♈":"Aries","♉":"Taurus","♊":"Gemini","♋":"Cancer","♌":"Leo","♍":"Virgo","♎":"Libra","♏":"Scorpio","♐":"Sagittarius","♑":"Capricorn","♒":"Aquarius","♓":"Pisces","⛎":"Ophiuchus","🔀":"shuffle tracks button","🔁":"repeat button","🔂":"repeat single button","▶️":"play button","⏩":"fast-forward button","⏭️":"next track button","⏯️":"play or pause button","◀️":"reverse button","⏪":"fast reverse button","⏮️":"last track button","🔼":"upwards button","⏫":"fast up button","🔽":"downwards button","⏬":"fast down button","⏸️":"pause button","⏹️":"stop button","⏺️":"record button","⏏️":"eject button","🎦":"cinema","🔅":"dim button","🔆":"bright button","📶":"antenna bars","📳":"vibration mode","📴":"mobile phone off","♀️":"female sign","♂️":"male sign","⚕️":"medical symbol","♾️":"infinity","♻️":"recycling symbol","⚜️":"fleur-de-lis","🔱":"trident emblem","📛":"name badge","🔰":"Japanese symbol for beginner","⭕":"hollow red circle","✅":"check mark button","☑️":"check box with check","✔️":"check mark","✖️":"multiplication sign","❌":"cross mark","❎":"cross mark button","➕":"plus sign","➖":"minus sign","➗":"division sign","➰":"curly loop","➿":"double curly loop","〽️":"part alternation mark","✳️":"eight-spoked asterisk","✴️":"eight-pointed star","❇️":"sparkle","‼️":"double exclamation mark","⁉️":"exclamation question mark","❓":"question mark","❔":"white question mark","❕":"white exclamation mark","❗":"exclamation mark","〰️":"wavy dash","©️":"copyright","®️":"registered","™️":"trade mark","#️⃣":"keycap: #","*️⃣":"keycap: *","0️⃣":"keycap: 0","1️⃣":"keycap: 1","2️⃣":"keycap: 2","3️⃣":"keycap: 3","4️⃣":"keycap: 4","5️⃣":"keycap: 5","6️⃣":"keycap: 6","7️⃣":"keycap: 7","8️⃣":"keycap: 8","9️⃣":"keycap: 9","🔟":"keycap: 10","🔠":"input latin uppercase","🔡":"input latin lowercase","🔢":"input numbers","🔣":"input symbols","🔤":"input latin letters","🅰️":"A button (blood type)","🆎":"AB button (blood type)","🅱️":"B button (blood type)","🆑":"CL button","🆒":"COOL button","🆓":"FREE button","ℹ️":"information","🆔":"ID button","Ⓜ️":"circled M","🆕":"NEW button","🆖":"NG button","🅾️":"O button (blood type)","🆗":"OK button","🅿️":"P button","🆘":"SOS button","🆙":"UP! button","🆚":"VS button","🈁":"Japanese “here” button","🈂️":"Japanese “service charge” button","🈷️":"Japanese “monthly amount” button","🈶":"Japanese “not free of charge” button","🈯":"Japanese “reserved” button","🉐":"Japanese “bargain” button","🈹":"Japanese “discount” button","🈚":"Japanese “free of charge” button","🈲":"Japanese “prohibited” button","🉑":"Japanese “acceptable” button","🈸":"Japanese “application” button","🈴":"Japanese “passing grade” button","🈳":"Japanese “vacancy” button","㊗️":"Japanese “congratulations” button","㊙️":"Japanese “secret” button","🈺":"Japanese “open for business” button","🈵":"Japanese “no vacancy” button","🔴":"red circle","🟠":"orange circle","🟡":"yellow circle","🟢":"green circle","🔵":"blue circle","🟣":"purple circle","🟤":"brown circle","⚫":"black circle","⚪":"white circle","🟥":"red square","🟧":"orange square","🟨":"yellow square","🟩":"green square","🟦":"blue square","🟪":"purple square","🟫":"brown square","⬛":"black large square","⬜":"white large square","◼️":"black medium square","◻️":"white medium square","◾":"black medium-small square","◽":"white medium-small square","▪️":"black small square","▫️":"white small square","🔶":"large orange diamond","🔷":"large blue diamond","🔸":"small orange diamond","🔹":"small blue diamond","🔺":"red triangle pointed up","🔻":"red triangle pointed down","💠":"diamond with a dot","🔘":"radio button","🔳":"white square button","🔲":"black square button","🏁":"chequered flag","🚩":"triangular flag","🎌":"crossed flags","🏴":"black flag","🏳️":"white flag","🏳️‍🌈":"rainbow flag","🏴‍☠️":"pirate flag","🇦🇨":"flag: Ascension Island","🇦🇩":"flag: Andorra","🇦🇪":"flag: United Arab Emirates","🇦🇫":"flag: Afghanistan","🇦🇬":"flag: Antigua & Barbuda","🇦🇮":"flag: Anguilla","🇦🇱":"flag: Albania","🇦🇲":"flag: Armenia","🇦🇴":"flag: Angola","🇦🇶":"flag: Antarctica","🇦🇷":"flag: Argentina","🇦🇸":"flag: American Samoa","🇦🇹":"flag: Austria","🇦🇺":"flag: Australia","🇦🇼":"flag: Aruba","🇦🇽":"flag: Åland Islands","🇦🇿":"flag: Azerbaijan","🇧🇦":"flag: Bosnia & Herzegovina","🇧🇧":"flag: Barbados","🇧🇩":"flag: Bangladesh","🇧🇪":"flag: Belgium","🇧🇫":"flag: Burkina Faso","🇧🇬":"flag: Bulgaria","🇧🇭":"flag: Bahrain","🇧🇮":"flag: Burundi","🇧🇯":"flag: Benin","🇧🇱":"flag: St. Barthélemy","🇧🇲":"flag: Bermuda","🇧🇳":"flag: Brunei","🇧🇴":"flag: Bolivia","🇧🇶":"flag: Caribbean Netherlands","🇧🇷":"flag: Brazil","🇧🇸":"flag: Bahamas","🇧🇹":"flag: Bhutan","🇧🇻":"flag: Bouvet Island","🇧🇼":"flag: Botswana","🇧🇾":"flag: Belarus","🇧🇿":"flag: Belize","🇨🇦":"flag: Canada","🇨🇨":"flag: Cocos (Keeling) Islands","🇨🇩":"flag: Congo - Kinshasa","🇨🇫":"flag: Central African Republic","🇨🇬":"flag: Congo - Brazzaville","🇨🇭":"flag: Switzerland","🇨🇮":"flag: Côte d’Ivoire","🇨🇰":"flag: Cook Islands","🇨🇱":"flag: Chile","🇨🇲":"flag: Cameroon","🇨🇳":"flag: China","🇨🇴":"flag: Colombia","🇨🇵":"flag: Clipperton Island","🇨🇷":"flag: Costa Rica","🇨🇺":"flag: Cuba","🇨🇻":"flag: Cape Verde","🇨🇼":"flag: Curaçao","🇨🇽":"flag: Christmas Island","🇨🇾":"flag: Cyprus","🇨🇿":"flag: Czechia","🇩🇪":"flag: Germany","🇩🇬":"flag: Diego Garcia","🇩🇯":"flag: Djibouti","🇩🇰":"flag: Denmark","🇩🇲":"flag: Dominica","🇩🇴":"flag: Dominican Republic","🇩🇿":"flag: Algeria","🇪🇦":"flag: Ceuta & Melilla","🇪🇨":"flag: Ecuador","🇪🇪":"flag: Estonia","🇪🇬":"flag: Egypt","🇪🇭":"flag: Western Sahara","🇪🇷":"flag: Eritrea","🇪🇸":"flag: Spain","🇪🇹":"flag: Ethiopia","🇪🇺":"flag: European Union","🇫🇮":"flag: Finland","🇫🇯":"flag: Fiji","🇫🇰":"flag: Falkland Islands","🇫🇲":"flag: Micronesia","🇫🇴":"flag: Faroe Islands","🇫🇷":"flag: France","🇬🇦":"flag: Gabon","🇬🇧":"flag: United Kingdom","🇬🇩":"flag: Grenada","🇬🇪":"flag: Georgia","🇬🇫":"flag: French Guiana","🇬🇬":"flag: Guernsey","🇬🇭":"flag: Ghana","🇬🇮":"flag: Gibraltar","🇬🇱":"flag: Greenland","🇬🇲":"flag: Gambia","🇬🇳":"flag: Guinea","🇬🇵":"flag: Guadeloupe","🇬🇶":"flag: Equatorial Guinea","🇬🇷":"flag: Greece","🇬🇸":"flag: South Georgia & South Sandwich Islands","🇬🇹":"flag: Guatemala","🇬🇺":"flag: Guam","🇬🇼":"flag: Guinea-Bissau","🇬🇾":"flag: Guyana","🇭🇰":"flag: Hong Kong SAR China","🇭🇲":"flag: Heard & McDonald Islands","🇭🇳":"flag: Honduras","🇭🇷":"flag: Croatia","🇭🇹":"flag: Haiti","🇭🇺":"flag: Hungary","🇮🇨":"flag: Canary Islands","🇮🇩":"flag: Indonesia","🇮🇪":"flag: Ireland","🇮🇱":"flag: Israel","🇮🇲":"flag: Isle of Man","🇮🇳":"flag: India","🇮🇴":"flag: British Indian Ocean Territory","🇮🇶":"flag: Iraq","🇮🇷":"flag: Iran","🇮🇸":"flag: Iceland","🇮🇹":"flag: Italy","🇯🇪":"flag: Jersey","🇯🇲":"flag: Jamaica","🇯🇴":"flag: Jordan","🇯🇵":"flag: Japan","🇰🇪":"flag: Kenya","🇰🇬":"flag: Kyrgyzstan","🇰🇭":"flag: Cambodia","🇰🇮":"flag: Kiribati","🇰🇲":"flag: Comoros","🇰🇳":"flag: St. Kitts & Nevis","🇰🇵":"flag: North Korea","🇰🇷":"flag: South Korea","🇰🇼":"flag: Kuwait","🇰🇾":"flag: Cayman Islands","🇰🇿":"flag: Kazakhstan","🇱🇦":"flag: Laos","🇱🇧":"flag: Lebanon","🇱🇨":"flag: St. Lucia","🇱🇮":"flag: Liechtenstein","🇱🇰":"flag: Sri Lanka","🇱🇷":"flag: Liberia","🇱🇸":"flag: Lesotho","🇱🇹":"flag: Lithuania","🇱🇺":"flag: Luxembourg","🇱🇻":"flag: Latvia","🇱🇾":"flag: Libya","🇲🇦":"flag: Morocco","🇲🇨":"flag: Monaco","🇲🇩":"flag: Moldova","🇲🇪":"flag: Montenegro","🇲🇫":"flag: St. Martin","🇲🇬":"flag: Madagascar","🇲🇭":"flag: Marshall Islands","🇲🇰":"flag: Macedonia","🇲🇱":"flag: Mali","🇲🇲":"flag: Myanmar (Burma)","🇲🇳":"flag: Mongolia","🇲🇴":"flag: Macao SAR China","🇲🇵":"flag: Northern Mariana Islands","🇲🇶":"flag: Martinique","🇲🇷":"flag: Mauritania","🇲🇸":"flag: Montserrat","🇲🇹":"flag: Malta","🇲🇺":"flag: Mauritius","🇲🇻":"flag: Maldives","🇲🇼":"flag: Malawi","🇲🇽":"flag: Mexico","🇲🇾":"flag: Malaysia","🇲🇿":"flag: Mozambique","🇳🇦":"flag: Namibia","🇳🇨":"flag: New Caledonia","🇳🇪":"flag: Niger","🇳🇫":"flag: Norfolk Island","🇳🇬":"flag: Nigeria","🇳🇮":"flag: Nicaragua","🇳🇱":"flag: Netherlands","🇳🇴":"flag: Norway","🇳🇵":"flag: Nepal","🇳🇷":"flag: Nauru","🇳🇺":"flag: Niue","🇳🇿":"flag: New Zealand","🇴🇲":"flag: Oman","🇵🇦":"flag: Panama","🇵🇪":"flag: Peru","🇵🇫":"flag: French Polynesia","🇵🇬":"flag: Papua New Guinea","🇵🇭":"flag: Philippines","🇵🇰":"flag: Pakistan","🇵🇱":"flag: Poland","🇵🇲":"flag: St. Pierre & Miquelon","🇵🇳":"flag: Pitcairn Islands","🇵🇷":"flag: Puerto Rico","🇵🇸":"flag: Palestinian Territories","🇵🇹":"flag: Portugal","🇵🇼":"flag: Palau","🇵🇾":"flag: Paraguay","🇶🇦":"flag: Qatar","🇷🇪":"flag: Réunion","🇷🇴":"flag: Romania","🇷🇸":"flag: Serbia","🇷🇺":"flag: Russia","🇷🇼":"flag: Rwanda","🇸🇦":"flag: Saudi Arabia","🇸🇧":"flag: Solomon Islands","🇸🇨":"flag: Seychelles","🇸🇩":"flag: Sudan","🇸🇪":"flag: Sweden","🇸🇬":"flag: Singapore","🇸🇭":"flag: St. Helena","🇸🇮":"flag: Slovenia","🇸🇯":"flag: Svalbard & Jan Mayen","🇸🇰":"flag: Slovakia","🇸🇱":"flag: Sierra Leone","🇸🇲":"flag: San Marino","🇸🇳":"flag: Senegal","🇸🇴":"flag: Somalia","🇸🇷":"flag: Suriname","🇸🇸":"flag: South Sudan","🇸🇹":"flag: São Tomé & Príncipe","🇸🇻":"flag: El Salvador","🇸🇽":"flag: Sint Maarten","🇸🇾":"flag: Syria","🇸🇿":"flag: Eswatini","🇹🇦":"flag: Tristan da Cunha","🇹🇨":"flag: Turks & Caicos Islands","🇹🇩":"flag: Chad","🇹🇫":"flag: French Southern Territories","🇹🇬":"flag: Togo","🇹🇭":"flag: Thailand","🇹🇯":"flag: Tajikistan","🇹🇰":"flag: Tokelau","🇹🇱":"flag: Timor-Leste","🇹🇲":"flag: Turkmenistan","🇹🇳":"flag: Tunisia","🇹🇴":"flag: Tonga","🇹🇷":"flag: Turkey","🇹🇹":"flag: Trinidad & Tobago","🇹🇻":"flag: Tuvalu","🇹🇼":"flag: Taiwan","🇹🇿":"flag: Tanzania","🇺🇦":"flag: Ukraine","🇺🇬":"flag: Uganda","🇺🇲":"flag: U.S. Outlying Islands","🇺🇳":"flag: United Nations","🇺🇸":"flag: United States","🇺🇾":"flag: Uruguay","🇺🇿":"flag: Uzbekistan","🇻🇦":"flag: Vatican City","🇻🇨":"flag: St. Vincent & Grenadines","🇻🇪":"flag: Venezuela","🇻🇬":"flag: British Virgin Islands","🇻🇮":"flag: U.S. Virgin Islands","🇻🇳":"flag: Vietnam","🇻🇺":"flag: Vanuatu","🇼🇫":"flag: Wallis & Futuna","🇼🇸":"flag: Samoa","🇽🇰":"flag: Kosovo","🇾🇪":"flag: Yemen","🇾🇹":"flag: Mayotte","🇿🇦":"flag: South Africa","🇿🇲":"flag: Zambia","🇿🇼":"flag: Zimbabwe","🏴󠁧󠁢󠁥󠁮󠁧󠁿":"flag: England","🏴󠁧󠁢󠁳󠁣󠁴󠁿":"flag: Scotland","🏴󠁧󠁢󠁷󠁬󠁳󠁿":"flag: Wales"}')},,function(e,t,a){"use strict";e.exports=function(e){const t=window.getSelection();if(t.anchorNode===t.focusNode)return;const a=t.getRangeAt(0),n=a.cloneContents(),s=document.createElement("div");s.id="js-copy-hack",s.appendChild(n),e.appendChild(s),t.selectAllChildren(s),window.setTimeout(()=>{e.removeChild(s),t.removeAllRanges(),t.addRange(a)},0)}},function(e,t,a){var n={"./away.vue":219,"./back.vue":204,"./chghost.vue":210,"./ctcp.vue":216,"./ctcp_request.vue":213,"./invite.vue":215,"./join.vue":214,"./kick.vue":201,"./mode.vue":208,"./mode_channel.vue":206,"./motd.vue":218,"./nick.vue":205,"./part.vue":212,"./quit.vue":217,"./raw.vue":203,"./topic.vue":207,"./topic_set_by.vue":209,"./whois.vue":211};function s(e){var t=i(e);return a(t)}function i(e){if(!a.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=i,e.exports=s,s.id=125},,function(e,t,a){"use strict";const n=a(5),s=a(20),i=a(12),o=n("#image-viewer");function r({pushState:e=!0}={}){if(o.removeClass("opened").one("transitionend",function(){o.empty()}),e){const e="#sidebar "+'.chan[data-id="'.concat(n("#sidebar .chan.active").attr("data-id"),'"]');history.pushState({clickTarget:e},null,null)}}n("#windows").on("click",".toggle-thumbnail",function(e,t={}){return function(e,{pushState:t=!0}={}){n(".previous-image").removeClass("previous-image"),n(".next-image").removeClass("next-image");let a=e.closest(".preview").prev(".preview").find(".toggle-content .toggle-thumbnail").last();a.length||(a=e.closest(".msg").prevAll().find(".toggle-content .toggle-thumbnail").last());a.addClass("previous-image");let s=e.closest(".preview").next(".preview").find(".toggle-content .toggle-thumbnail").first();s.length||(s=e.closest(".msg").nextAll().find(".toggle-content .toggle-thumbnail").first());if(s.addClass("next-image"),o.html(i.image_viewer({image:e.find("img").prop("src"),link:e.prop("href"),type:e.parent().hasClass("toggle-type-link")?"link":"image",hasPreviousImage:a.length>0,hasNextImage:s.length>0})),o.off("transitionend").addClass("opened"),t){let t="";e.closest(".msg").length>0&&(t="#".concat(e.closest(".msg").prop("id")," ")),t+='a.toggle-thumbnail[href="'.concat(e.prop("href"),'"] img'),history.pushState({clickTarget:t},null,null)}}(n(this),t),!1}),o.on("click",function(e,t={}){r(t)}),s.bind("esc",()=>r()),s.bind(["left","right"],(e,t)=>{if(o.hasClass("opened")){const e="left"===t?"previous":"next";o.find(".".concat(e,"-image-btn")).trigger("click")}}),o.on("click",".previous-image-btn",function(){return n(".previous-image").trigger("click"),!1}),o.on("click",".next-image-btn",function(){return n(".next-image").trigger("click"),!1})},function(e,t,a){var n={"./contextmenu_divider.tpl":129,"./contextmenu_item.tpl":145,"./image_viewer.tpl":146,"./reveal-password.tpl":17,"./session.tpl":147,"./version_checker.tpl":148,"./windows/changelog.tpl":149,"./windows/connect.tpl":150,"./windows/help.tpl":151,"./windows/settings.tpl":152,"./windows/sign_in.tpl":153};function s(e){var t=i(e);return a(t)}function i(e){if(!a.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=i,e.exports=s,s.id=128},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({compiler:[7,">= 4.0.0"],main:function(e,t,a,n,s){return'<li class="context-menu-divider" aria-hidden="true"></li>'},useData:!0})},,,,,,,,,,,,,,,,function(e,t,a){var n=a(7);e.exports=(n.default||n).template({1:function(e,t,a,n,s){var i;return' data-data="'+e.escapeExpression("function"==typeof(i=null!=(i=a.data||(null!=t?t.data:t))?i:a.helperMissing)?i.call(null!=t?t:e.nullContext||{},{name:"data",hash:{},data:s}):i)+'" '},compiler:[7,">= 4.0.0"],main:function(e,t,a,n,s){var i,o,r=null!=t?t:e.nullContext||{},l=a.helperMissing,c=e.escapeExpression;return'<li class="context-menu-item context-menu-'+c("function"==typeof(o=null!=(o=a.class||(null!=t?t.class:t))?o:l)?o.call(r,{name:"class",hash:{},data:s}):o)+'" data-action="'+c("function"==typeof(o=null!=(o=a.action||(null!=t?t.action:t))?o:l)?o.call(r,{name:"action",hash:{},data:s}):o)+'" '+(null!=(i=a.if.call(r,null!=t?t.data:t,{name:"if",hash:{},fn:e.program(1,s,0),inverse:e.noop,data:s}))?i:"")+' tabindex="0" role="menuitem"> '+c("function"==typeof(o=null!=(o=a.text||(null!=t?t.text:t))?o:l)?o.call(r,{name:"text",hash:{},data:s}):o)+" </li>"},useData:!0})},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({1:function(e,t,a,n,s){return' <button class="previous-image-btn" aria-label="Previous image"></button> '},3:function(e,t,a,n,s){return' <button class="next-image-btn" aria-label="Next image"></button> '},5:function(e,t,a,n,s){return" Open image "},7:function(e,t,a,n,s){return" Visit page "},compiler:[7,">= 4.0.0"],main:function(e,t,n,s,i){var o,r,l=null!=t?t:e.nullContext||{},c=e.lambda,d=e.escapeExpression;return'<button class="close-btn" aria-label="Close"></button> '+(null!=(o=n.if.call(l,null!=t?t.hasPreviousImage:t,{name:"if",hash:{},fn:e.program(1,i,0),inverse:e.noop,data:i}))?o:"")+" "+(null!=(o=n.if.call(l,null!=t?t.hasNextImage:t,{name:"if",hash:{},fn:e.program(3,i,0),inverse:e.noop,data:i}))?o:"")+' <a class="image-link" href="'+d(c(null!=t?t.link:t,t))+'" target="_blank"><img src="'+d(c(null!=t?t.image:t,t))+'" decoding="async" alt=""> </a><a class="btn open-btn" href="'+d(c(null!=t?t.link:t,t))+'" target="_blank"> '+(null!=(o=(r=a(16),r&&(r.__esModule?r.default:r)).call(l,null!=t?t.type:t,"image",{name:"equal",hash:{},fn:e.program(5,i,0),inverse:e.program(7,i,0),data:i}))?o:"")+" </a>"},useData:!0})},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({1:function(e,t,a,n,s){return' data-token="'+e.escapeExpression(e.lambda(null!=t?t.token:t,t))+'" '},3:function(e,t,a,n,s){return" Sign out "},5:function(e,t,a,n,s){return" Revoke "},7:function(e,t,a,n,s){var i;return" <br> "+(null!=(i=a.if.call(null!=t?t:e.nullContext||{},null!=t?t.active:t,{name:"if",hash:{},fn:e.program(8,s,0),inverse:e.program(10,s,0),data:s}))?i:"")+" "},8:function(e,t,a,n,s){return" <em>Currently active</em> "},10:function(e,t,n,s,i){return" Last used on <time>"+e.escapeExpression((o=a(53),o&&(o.__esModule?o.default:o)).call(null!=t?t:e.nullContext||{},null!=t?t.lastUse:t,{name:"localetime",hash:{},data:i}))+"</time> ";var o},compiler:[7,">= 4.0.0"],main:function(e,t,a,n,s){var i,o=null!=t?t:e.nullContext||{},r=e.lambda,l=e.escapeExpression;return'<p><button class="btn pull-right remove-session" '+(null!=(i=a.unless.call(o,null!=t?t.current:t,{name:"unless",hash:{},fn:e.program(1,s,0),inverse:e.noop,data:s}))?i:"")+" > "+(null!=(i=a.if.call(o,null!=t?t.current:t,{name:"if",hash:{},fn:e.program(3,s,0),inverse:e.program(5,s,0),data:s}))?i:"")+" </button> <strong>"+l(r(null!=t?t.agent:t,t))+'</strong><a href="https://ipinfo.io/'+l(r(null!=t?t.ip:t,t))+'" target="_blank" rel="noopener">'+l(r(null!=t?t.ip:t,t))+"</a> "+(null!=(i=a.unless.call(o,null!=t?t.current:t,{name:"unless",hash:{},fn:e.program(7,s,0),inverse:e.noop,data:s}))?i:"")+" </p>"},useData:!0})},function(e,t,a){var n=a(7);function s(e){return e&&(e.__esModule?e.default:e)}e.exports=(n.default||n).template({1:function(e,t,a,n,s){return" <p>Checking for updates...</p> "},3:function(e,t,n,i,o){var r;return null!=(r=s(a(16)).call(null!=t?t:e.nullContext||{},null!=t?t.status:t,"new-version",{name:"equal",hash:{},fn:e.program(4,o,0),inverse:e.program(7,o,0),data:o}))?r:""},4:function(e,t,a,n,s){var i,o=e.lambda,r=e.escapeExpression;return" <p>The Lounge <b>"+r(o(null!=(i=null!=t?t.latest:t)?i.version:i,t))+"</b>"+(null!=(i=a.if.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.latest:t)?i.prerelease:i,{name:"if",hash:{},fn:e.program(5,s,0),inverse:e.noop,data:s}))?i:"")+' is now available.<br><a href="'+r(o(null!=(i=null!=t?t.latest:t)?i.url:i,t))+'" target="_blank" rel="noopener">Read more on GitHub</a></p> '},5:function(e,t,a,n,s){return" (pre-release)"},7:function(e,t,n,i,o){var r;return null!=(r=s(a(16)).call(null!=t?t:e.nullContext||{},null!=t?t.status:t,"new-packages",{name:"equal",hash:{},fn:e.program(8,o,0),inverse:e.program(10,o,0),data:o}))?r:""},8:function(e,t,a,n,s){return" <p>The Lounge is up to date, but there are out of date packages Run <code>thelounge upgrade</code> on the server to upgrade packages.</p> "},10:function(e,t,n,i,o){var r;return null!=(r=s(a(16)).call(null!=t?t:e.nullContext||{},null!=t?t.status:t,"up-to-date",{name:"equal",hash:{},fn:e.program(11,o,0),inverse:e.program(13,o,0),data:o}))?r:""},11:function(e,t,a,n,s){return' <p>The Lounge is up to date!</p><button id="check-now" class="btn btn-small">Check now</button> '},13:function(e,t,n,i,o){var r;return null!=(r=s(a(16)).call(null!=t?t:e.nullContext||{},null!=t?t.status:t,"error",{name:"equal",hash:{},fn:e.program(14,o,0),inverse:e.noop,data:o}))?r:""},14:function(e,t,a,n,s){return' <p>Information about latest releases could not be retrieved.</p><button id="check-now" class="btn btn-small">Try again</button> '},compiler:[7,">= 4.0.0"],main:function(e,t,n,i,o){var r;return null!=(r=s(a(16)).call(null!=t?t:e.nullContext||{},null!=t?t.status:t,"loading",{name:"equal",hash:{},fn:e.program(1,o,0),inverse:e.program(3,o,0),data:o}))?r:""},useData:!0})},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({1:function(e,t,a,n,s){var i,o,r=null!=t?t:e.nullContext||{};return' <h1 class="title">Release notes for '+e.escapeExpression("function"==typeof(o=null!=(o=a.version||(null!=t?t.version:t))?o:a.helperMissing)?o.call(r,{name:"version",hash:{},data:s}):o)+"</h1> "+(null!=(i=a.if.call(r,null!=t?t.changelog:t,{name:"if",hash:{},fn:e.program(2,s,0),inverse:e.program(4,s,0),data:s}))?i:"")+" "},2:function(e,t,a,n,s){var i,o;return' <h3>Introduction</h3><div class="changelog-text">'+(null!=(i="function"==typeof(o=null!=(o=a.changelog||(null!=t?t.changelog:t))?o:a.helperMissing)?o.call(null!=t?t:e.nullContext||{},{name:"changelog",hash:{},data:s}):o)?i:"")+"</div> "},4:function(e,t,a,n,s){var i;return' <p>Unable to retrieve releases from GitHub.</p><p><a href="https://github.com/thelounge/thelounge/releases/tag/v'+e.escapeExpression("function"==typeof(i=null!=(i=a.version||(null!=t?t.version:t))?i:a.helperMissing)?i.call(null!=t?t:e.nullContext||{},{name:"version",hash:{},data:s}):i)+'" target="_blank" rel="noopener">View release notes for this version on GitHub</a></p> '},6:function(e,t,a,n,s){return" <p>Loading changelog…</p> "},compiler:[7,">= 4.0.0"],main:function(e,t,a,n,s){var i;return'<div class="header"><button class="lt" aria-label="Toggle channel list"></button></div><div class="container"><a href="#" id="back-to-help" data-target="#help">« Help</a> '+(null!=(i=a.if.call(null!=t?t:e.nullContext||{},null!=t?t.version:t,{name:"if",hash:{},fn:e.program(1,s,0),inverse:e.program(6,s,0),data:s}))?i:"")+" </div>"},useData:!0})},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({1:function(e,t,a,n,s){return"network:edit"},3:function(e,t,a,n,s){return"network:new"},5:function(e,t,a,n,s){var i,o=e.lambda,r=e.escapeExpression;return' <input type="hidden" name="uuid" value="'+r(o(null!=(i=null!=t?t.defaults:t)?i.uuid:i,t))+'"> Edit '+r(o(null!=(i=null!=t?t.defaults:t)?i.name:i,t))+" "},7:function(e,t,a,n,s){var i,o=null!=t?t:e.nullContext||{};return" "+(null!=(i=a.if.call(o,null!=t?t.public:t,{name:"if",hash:{},fn:e.program(8,s,0),inverse:e.noop,data:s}))?i:"")+" Connect "+(null!=(i=a.unless.call(o,null!=t?t.displayNetwork:t,{name:"unless",hash:{},fn:e.program(10,s,0),inverse:e.noop,data:s}))?i:"")+" "},8:function(e,t,a,n,s){return"The Lounge - "},10:function(e,t,a,n,s){var i;return" "+(null!=(i=a.if.call(null!=t?t:e.nullContext||{},null!=t?t.lockNetwork:t,{name:"if",hash:{},fn:e.program(11,s,0),inverse:e.noop,data:s}))?i:"")+" "},11:function(e,t,a,n,s){var i;return" to "+e.escapeExpression(e.lambda(null!=(i=null!=t?t.defaults:t)?i.name:i,t))+" "},13:function(e,t,a,n,s){var i,o=e.lambda,r=e.escapeExpression,l=null!=t?t:e.nullContext||{};return' <div><div class="col-sm-12"><h2>Network settings</h2></div><div class="col-sm-3"><label for="connect:name">Name</label></div><div class="col-sm-9"><input class="input" id="connect:name" name="name" value="'+r(o(null!=(i=null!=t?t.defaults:t)?i.name:i,t))+'" maxlength="100"></div><div class="col-sm-3"><label for="connect:host">Server</label></div><div class="col-sm-6 col-xs-8"><input class="input" id="connect:host" name="host" value="'+r(o(null!=(i=null!=t?t.defaults:t)?i.host:i,t))+'" aria-label="Server address" maxlength="255" required '+(null!=(i=a.if.call(l,null!=t?t.lockNetwork:t,{name:"if",hash:{},fn:e.program(14,s,0),inverse:e.noop,data:s}))?i:"")+'></div><div class="col-sm-3 col-xs-4"><div class="port"><input class="input" type="number" min="1" max="65535" name="port" value="'+r(o(null!=(i=null!=t?t.defaults:t)?i.port:i,t))+'" aria-label="Server port" '+(null!=(i=a.if.call(l,null!=t?t.lockNetwork:t,{name:"if",hash:{},fn:e.program(14,s,0),inverse:e.noop,data:s}))?i:"")+'></div></div><div class="clearfix"></div><div class="col-sm-9 col-sm-offset-3"><label class="tls"><input type="checkbox" name="tls" '+(null!=(i=a.if.call(l,null!=(i=null!=t?t.defaults:t)?i.tls:i,{name:"if",hash:{},fn:e.program(16,s,0),inverse:e.noop,data:s}))?i:"")+" "+(null!=(i=a.if.call(l,null!=t?t.lockNetwork:t,{name:"if",hash:{},fn:e.program(14,s,0),inverse:e.noop,data:s}))?i:"")+'> Use secure connection (TLS)</label></div><div class="col-sm-9 col-sm-offset-3"><label class="tls"><input type="checkbox" name="rejectUnauthorized" '+(null!=(i=a.if.call(l,null!=(i=null!=t?t.defaults:t)?i.rejectUnauthorized:i,{name:"if",hash:{},fn:e.program(16,s,0),inverse:e.noop,data:s}))?i:"")+" "+(null!=(i=a.if.call(l,null!=t?t.lockNetwork:t,{name:"if",hash:{},fn:e.program(14,s,0),inverse:e.noop,data:s}))?i:"")+'> Only allow trusted certificates</label></div><div class="clearfix"></div></div> '},14:function(e,t,a,n,s){return' disabled="disabled" '},16:function(e,t,a,n,s){return' checked="checked" '},18:function(e,t,a,n,s){var i;return' <div class="col-sm-3"><label for="connect:username">Username</label></div><div class="col-sm-9"><input class="input username" id="connect:username" name="username" value="'+e.escapeExpression(e.lambda(null!=(i=null!=t?t.defaults:t)?i.username:i,t))+'" maxlength="512"></div> '},20:function(e,t,a,n,s){var i;return' <div class="col-sm-3"><label for="connect:commands">Commands</label></div><div class="col-sm-9"><textarea class="input" id="connect:commands" name="commands" placeholder="One raw command per line, each command will be executed on new connection">'+(null!=(i=a.each.call(null!=t?t:e.nullContext||{},null!=(i=null!=t?t.defaults:t)?i.commands:i,{name:"each",hash:{},fn:e.program(21,s,0),inverse:e.noop,data:s}))?i:"")+'</textarea></div><div class="col-sm-9 col-sm-offset-3"><button type="submit" class="btn">Save</button></div> '},21:function(e,t,a,n,s){return e.escapeExpression(e.lambda(t,t))+"\n"},23:function(e,t,a,n,s){var i;return' <div class="col-sm-3"><label for="connect:channels">Channels</label></div><div class="col-sm-9"><input class="input" id="connect:channels" name="join" value="'+e.escapeExpression(e.lambda(null!=(i=null!=t?t.defaults:t)?i.join:i,t))+'"></div><div class="col-sm-9 col-sm-offset-3"><button type="submit" class="btn">Connect</button></div> '},compiler:[7,">= 4.0.0"],main:function(e,t,n,s,i){var o,r=null!=t?t:e.nullContext||{},l=e.lambda,c=e.escapeExpression;return'<div class="header"><button class="lt" aria-label="Toggle channel list"></button></div><form class="container" method="post" action="" data-event="'+(null!=(o=n.if.call(r,null!=(o=null!=t?t.defaults:t)?o.uuid:o,{name:"if",hash:{},fn:e.program(1,i,0),inverse:e.program(3,i,0),data:i}))?o:"")+'"><div class="row"><div class="col-sm-12"><h1 class="title"> '+(null!=(o=n.if.call(r,null!=(o=null!=t?t.defaults:t)?o.uuid:o,{name:"if",hash:{},fn:e.program(5,i,0),inverse:e.program(7,i,0),data:i}))?o:"")+" </h1></div> "+(null!=(o=n.if.call(r,null!=t?t.displayNetwork:t,{name:"if",hash:{},fn:e.program(13,i,0),inverse:e.noop,data:i}))?o:"")+' <div class="col-sm-12"><h2>User preferences</h2></div><div class="col-sm-3"><label for="connect:nick">Nick</label></div><div class="col-sm-9"><input class="input nick" id="connect:nick" name="nick" value="'+c(l(null!=(o=null!=t?t.defaults:t)?o.nick:o,t))+'" maxlength="100" required></div> '+(null!=(o=n.unless.call(r,null!=t?t.useHexIp:t,{name:"unless",hash:{},fn:e.program(18,i,0),inverse:e.noop,data:i}))?o:"")+' <div class="col-sm-3"><label for="connect:password">Password</label></div><div class="col-sm-9 password-container"><input class="input" id="connect:password" type="password" name="password" value="'+c(l(null!=(o=null!=t?t.defaults:t)?o.password:o,t))+'" maxlength="512"> '+(null!=(o=e.invokePartial(a(17),t,{name:"../reveal-password",data:i,helpers:n,partials:s,decorators:e.decorators}))?o:"")+' </div><div class="col-sm-3"><label for="connect:realname">Real name</label></div><div class="col-sm-9"><input class="input" id="connect:realname" name="realname" value="'+c(l(null!=(o=null!=t?t.defaults:t)?o.realname:o,t))+'" maxlength="512"></div> '+(null!=(o=n.if.call(r,null!=(o=null!=t?t.defaults:t)?o.uuid:o,{name:"if",hash:{},fn:e.program(20,i,0),inverse:e.program(23,i,0),data:i}))?o:"")+" </div></form>"},usePartial:!0,useData:!0})},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({1:function(e,t,a,n,s){var i,o=null!=t?t:e.nullContext||{},r=a.helperMissing,l="function",c=e.escapeExpression;return' <p>The Lounge is running from source (<a href="https://github.com/thelounge/thelounge/tree/'+c(typeof(i=null!=(i=a.gitCommit||(null!=t?t.gitCommit:t))?i:r)===l?i.call(o,{name:"gitCommit",hash:{},data:s}):i)+'" target="_blank" rel="noopener">commit <code>'+c(typeof(i=null!=(i=a.gitCommit||(null!=t?t.gitCommit:t))?i:r)===l?i.call(o,{name:"gitCommit",hash:{},data:s}):i)+'</code></a>).</p><ul><li>Compare <a href="https://github.com/thelounge/thelounge/compare/'+c(typeof(i=null!=(i=a.gitCommit||(null!=t?t.gitCommit:t))?i:r)===l?i.call(o,{name:"gitCommit",hash:{},data:s}):i)+'...master" target="_blank" rel="noopener">between <code>'+c(typeof(i=null!=(i=a.gitCommit||(null!=t?t.gitCommit:t))?i:r)===l?i.call(o,{name:"gitCommit",hash:{},data:s}):i)+'</code> and <code>master</code></a> to see what you are missing</li><li>Compare <a href="https://github.com/thelounge/thelounge/compare/'+c(typeof(i=null!=(i=a.version||(null!=t?t.version:t))?i:r)===l?i.call(o,{name:"version",hash:{},data:s}):i)+"..."+c(typeof(i=null!=(i=a.gitCommit||(null!=t?t.gitCommit:t))?i:r)===l?i.call(o,{name:"gitCommit",hash:{},data:s}):i)+'" target="_blank" rel="noopener">between <code>'+c(typeof(i=null!=(i=a.version||(null!=t?t.version:t))?i:r)===l?i.call(o,{name:"version",hash:{},data:s}):i)+"</code> and <code>"+c(typeof(i=null!=(i=a.gitCommit||(null!=t?t.gitCommit:t))?i:r)===l?i.call(o,{name:"gitCommit",hash:{},data:s}):i)+"</code></a> to see your local changes</li></ul> "},compiler:[7,">= 4.0.0"],main:function(e,t,a,n,s){var i,o,r=null!=t?t:e.nullContext||{};return'<div class="header"><button class="lt" aria-label="Toggle channel list"></button></div><div class="container"><h1 class="title">Help</h1><h2><small class="pull-right">v'+e.escapeExpression("function"==typeof(o=null!=(o=a.version||(null!=t?t.version:t))?o:a.helperMissing)?o.call(r,{name:"version",hash:{},data:s}):o)+' (<a href="#" id="view-changelog" data-target="#changelog">release notes</a>) </small>About The Lounge</h2><div class="about"><div id="version-checker"></div> '+(null!=(i=a.if.call(r,null!=t?t.gitCommit:t,{name:"if",hash:{},fn:e.program(1,s,0),inverse:e.noop,data:s}))?i:"")+' <p><a href="https://thelounge.chat/" target="_blank" rel="noopener" class="website-link">Website</a></p><p><a href="https://thelounge.chat/docs/" target="_blank" rel="noopener" class="documentation-link">Documentation</a></p><p><a href="https://github.com/thelounge/thelounge/issues/new" target="_blank" rel="noopener" class="report-issue-link">Report an issue…</a></p></div><h2>Keyboard Shortcuts</h2><div class="help-item"><div class="subject"><span class="key-all"><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd>↓</kbd></span> <span class="key-apple"><kbd>⌥</kbd> <kbd>⇧</kbd> <kbd>↓</kbd></span></div><div class="description"><p>Switch to the next lobby in the channel list.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Alt</kbd> <kbd>Shift</kbd> <kbd>↑</kbd></span> <span class="key-apple"><kbd>⌥</kbd> <kbd>⇧</kbd> <kbd>↑</kbd></span></div><div class="description"><p>Switch to the previous lobby in the channel list.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Alt</kbd> <kbd>↓</kbd></span> <span class="key-apple"><kbd>⌥</kbd> <kbd>↓</kbd></span></div><div class="description"><p>Switch to the next window in the channel list.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Alt</kbd> <kbd>↑</kbd></span> <span class="key-apple"><kbd>⌥</kbd> <kbd>↑</kbd></span></div><div class="description"><p>Switch to the previous window in the channel list.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Alt</kbd> <kbd>A</kbd></span> <span class="key-apple"><kbd>⌥</kbd> <kbd>A</kbd></span></div><div class="description"><p>Switch to the first window with unread messages.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Ctrl</kbd> <kbd>K</kbd></span> <span class="key-apple"><kbd>⌘</kbd> <kbd>K</kbd></span></div><div class="description"><p>Mark any text typed after this shortcut to be colored. After hitting this shortcut, enter an integer in the range <code>0—15</code> to select the desired color, or use the autocompletion menu to choose a color name (see below).</p><p>Background color can be specified by putting a comma and another integer in the range <code>0—15</code> after the foreground color number (autocompletion works too).</p><p>A color reference can be found <a href="https://modern.ircdocs.horse/formatting.html#colors" target="_blank" rel="noopener">here</a>.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Ctrl</kbd> <kbd>B</kbd></span> <span class="key-apple"><kbd>⌘</kbd> <kbd>B</kbd></span></div><div class="description"><p>Mark all text typed after this shortcut as <span class="irc-bold">bold</span>.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Ctrl</kbd> <kbd>U</kbd></span> <span class="key-apple"><kbd>⌘</kbd> <kbd>U</kbd></span></div><div class="description"><p>Mark all text typed after this shortcut as <span class="irc-underline">underlined</span>.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Ctrl</kbd> <kbd>I</kbd></span> <span class="key-apple"><kbd>⌘</kbd> <kbd>I</kbd></span></div><div class="description"><p>Mark all text typed after this shortcut as <span class="irc-italic">italics</span>.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Ctrl</kbd> <kbd>S</kbd></span> <span class="key-apple"><kbd>⌘</kbd> <kbd>S</kbd></span></div><div class="description"><p>Mark all text typed after this shortcut as <span class="irc-strikethrough">struck through</span>.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Ctrl</kbd> <kbd>M</kbd></span> <span class="key-apple"><kbd>⌘</kbd> <kbd>M</kbd></span></div><div class="description"><p>Mark all text typed after this shortcut as <span class="irc-monospace">monospaced</span>.</p></div></div><div class="help-item"><div class="subject"><span class="key-all"><kbd>Ctrl</kbd> <kbd>O</kbd></span> <span class="key-apple"><kbd>⌘</kbd> <kbd>O</kbd></span></div><div class="description"><p>Mark all text typed after this shortcut to be reset to its original formatting.</p></div></div><h2>Autocompletion</h2><p>To auto-complete nicknames, channels, commands, and emoji, type one of the characters below to open a suggestion list. Use the <kbd>↑</kbd> and <kbd>↓</kbd> keys to highlight an item, and insert it by pressing <kbd>Tab</kbd> or <kbd>Enter</kbd> (or by clicking the desired item).</p><p>Autocompletion can be disabled in settings.</p><div class="help-item"><div class="subject"><code>@</code></div><div class="description"><p>Nickname</p></div></div><div class="help-item"><div class="subject"><code>#</code></div><div class="description"><p>Channel</p></div></div><div class="help-item"><div class="subject"><code>/</code></div><div class="description"><p>Commands (see list of commands below)</p></div></div><div class="help-item"><div class="subject"><code>:</code></div><div class="description"><p>Emoji (note: requires two search characters, to avoid conflicting with common emoticons like <code>:)</code>)</p></div></div><h2>Commands</h2><div class="help-item"><div class="subject"><code>/away [message]</code></div><div class="description"><p>Mark yourself as away with an optional message.</p></div></div><div class="help-item"><div class="subject"><code>/back</code></div><div class="description"><p>Remove your away status (set with <code>/away</code>).</p></div></div><div class="help-item"><div class="subject"><code>/ban nick</code></div><div class="description"><p>Ban (<code>+b</code>) a user from the current channel. This can be a nickname or a hostmask.</p></div></div><div class="help-item"><div class="subject"><code>/banlist</code></div><div class="description"><p>Load the banlist for the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/collapse</code></div><div class="description"><p>Collapse all previews in the current channel (opposite of <code>/expand</code>)</p></div></div><div class="help-item"><div class="subject"><code>/connect host [port]</code></div><div class="description"><p>Connect to a new IRC network. If <code>port</code> starts with a <code>+</code> sign, the connection will be made secure using TLS.</p><p>Alias: <code>/server</code></p></div></div><div class="help-item"><div class="subject"><code>/ctcp target cmd [args]</code></div><div class="description"><p>Send a <abbr title="Client-to-client protocol">CTCP</abbr> request. Read more about this on <a href="https://en.wikipedia.org/wiki/Client-to-client_protocol" target="_blank" rel="noopener">the dedicated Wikipedia article</a>.</p></div></div><div class="help-item"><div class="subject"><code>/deop nick [...nick]</code></div><div class="description"><p>Remove op (<code>-o</code>) from one or several users in the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/devoice nick [...nick]</code></div><div class="description"><p>Remove voice (<code>-v</code>) from one or several users in the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/disconnect [message]</code></div><div class="description"><p>Disconnect from the current network with an optionally-provided message.</p></div></div><div class="help-item"><div class="subject"><code>/expand</code></div><div class="description"><p>Expand all previews in the current channel (opposite of <code>/collapse</code>)</p></div></div><div class="help-item"><div class="subject"><code>/invite nick [channel]</code></div><div class="description"><p>Invite a user to the specified channel. If <code>channel</code> is omitted, user will be invited to the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/ignore nick</code></div><div class="description"><p>Block any messages from the specified user on the current network. This can be a nickname or a hostmask.</p></div></div><div class="help-item"><div class="subject"><code>/ignorelist</code></div><div class="description"><p>Load the list of ignored users for the current network.</p></div></div><div class="help-item"><div class="subject"><code>/join channel</code></div><div class="description"><p>Join a channel.</p></div></div><div class="help-item"><div class="subject"><code>/kick nick</code></div><div class="description"><p>Kick a user from the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/list</code></div><div class="description"><p>Retrieve a list of available channels on this network.</p></div></div><div class="help-item"><div class="subject"><code>/me message</code></div><div class="description"><p>Send an action message to the current channel. The Lounge will display it inline, as if the message was posted in the third person.</p></div></div><div class="help-item"><div class="subject"><code>/mode flags [args]</code></div><div class="description"><p>Set the given flags to the current channel if the active window is a channel, another user if the active window is a private message window, or yourself if the current window is a server window.</p></div></div><div class="help-item"><div class="subject"><code>/msg channel message</code></div><div class="description"><p>Send a message to the specified channel.</p></div></div><div class="help-item"><div class="subject"><code>/nick newnick</code></div><div class="description"><p>Change your nickname on the current network.</p></div></div><div class="help-item"><div class="subject"><code>/notice channel message</code></div><div class="description"><p>Sends a notice message to the specified channel.</p></div></div><div class="help-item"><div class="subject"><code>/op nick [...nick]</code></div><div class="description"><p>Give op (<code>+o</code>) to one or several users in the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/part [channel]</code></div><div class="description"><p>Close the specified channel or private message window, or the current channel if <code>channel</code> is omitted.</p><p>Aliases: <code>/close</code>, <code>/leave</code></p></div></div><div class="help-item"><div class="subject"><code>/rejoin</code></div><div class="description"><p>Leave and immediately rejoin the current channel. Useful to quickly get op from ChanServ in an empty channel, for example.</p><p>Alias: <code>/cycle</code></p></div></div><div class="help-item"><div class="subject"><code>/query nick</code></div><div class="description"><p>Send a private message to the specified user.</p></div></div><div class="help-item"><div class="subject"><code>/quit [message]</code></div><div class="description"><p>Disconnect from the current network with an optional message.</p></div></div><div class="help-item"><div class="subject"><code>/raw message</code></div><div class="description"><p>Send a raw message to the current IRC network.</p><p>Aliases: <code>/quote</code>, <code>/send</code></p></div></div><div class="help-item"><div class="subject"><code>/slap nick</code></div><div class="description"><p>Slap someone in the current channel with a trout!</p></div></div><div class="help-item"><div class="subject"><code>/topic [newtopic]</code></div><div class="description"><p>Get the topic in the current channel. If <code>newtopic</code> is specified, sets the topic in the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/unban nick</code></div><div class="description"><p>Unban (<code>-b</code>) a user from the current channel. This can be a nickname or a hostmask.</p></div></div><div class="help-item"><div class="subject"><code>/unignore nick</code></div><div class="description"><p>Unblock messages from the specified user on the current network. This can be a nickname or a hostmask.</p></div></div><div class="help-item"><div class="subject"><code>/voice nick [...nick]</code></div><div class="description"><p>Give voice (<code>+v</code>) to one or several users in the current channel.</p></div></div><div class="help-item"><div class="subject"><code>/whois nick</code></div><div class="description"><p>Retrieve information about the given user on the current network.</p></div></div></div>'},useData:!0})},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({1:function(e,t,a,n,s){return' <div class="col-sm-12" data-advanced><h2>Settings synchronisation <span class="tooltipped tooltipped-n tooltipped-no-delay" aria-label="Note: This is an experimental feature and may change in future releases."><button class="extra-experimental" aria-label="Note: This is an experimental feature and may change in future releases."></button></span></h2><label class="opt"><input type="checkbox" name="syncSettings"> Synchronize settings with other clients.</label><p class="sync-warning-override"><strong>Warning</strong> Checking this box will override the settings of this client with those stored on the server.</p><p class="sync-warning-base"><strong>Warning</strong> No settings have been synced before. Enabling this will sync all settings of this client as the base for other clients.</p><div class="opt force-sync-button"><button type="button" class="btn" id="forceSync">Force sync settings</button><p>This will override any settings already synced to the server.</p></div></div> '},3:function(e,t,a,n,s){var i=e.lambda,o=e.escapeExpression;return' <option value="'+o(i(null!=t?t.name:t,t))+'" data-theme-color="'+o(i(null!=t?t.themeColor:t,t))+'"> '+o(i(null!=t?t.displayName:t,t))+" </option> "},5:function(e,t,a,n,s){return' <div class="col-sm-12"><h2>Link previews</h2></div><div class="col-sm-6"><label class="opt"><input type="checkbox" name="media"> Auto-expand media</label></div><div class="col-sm-6"><label class="opt"><input type="checkbox" name="links"> Auto-expand websites</label></div> '},7:function(e,t,a,n,s){return' <div class="col-sm-12"><h2>Push Notifications</h2></div><div class="col-sm-12"><button type="button" class="btn" id="pushNotifications" disabled="disabled" data-text-alternate="Unsubscribe from push notifications">Subscribe to push notifications</button><div class="error" id="pushNotificationsHttps"><strong>Warning</strong>: Push notifications are only supported over HTTPS connections.</div><div class="error" id="pushNotificationsUnsupported"><strong>Warning</strong>: <span>Push notifications are not supported by your browser.</span></div></div> '},9:function(e,t,a,n,s){var i;return" "+(null!=(i=a.unless.call(null!=t?t:e.nullContext||{},null!=t?t.ldapEnabled:t,{name:"unless",hash:{},fn:e.program(10,s,0),inverse:e.noop,data:s}))?i:"")+" "},10:function(e,t,n,s,i){var o;return' <div id="change-password"><form action="" method="post" data-event="change-password"><div class="col-sm-12"><h2>Change password</h2></div><div class="col-sm-12 password-container"><label for="old_password_input" class="sr-only">Enter current password</label> <input type="password" id="old_password_input" name="old_password" class="input" placeholder="Enter current password"> '+(null!=(o=e.invokePartial(a(17),t,{name:"../reveal-password",data:i,helpers:n,partials:s,decorators:e.decorators}))?o:"")+' </div><div class="col-sm-12 password-container"><label for="new_password_input" class="sr-only">Enter desired new password</label> <input type="password" id="new_password_input" name="new_password" class="input" placeholder="Enter desired new password"> '+(null!=(o=e.invokePartial(a(17),t,{name:"../reveal-password",data:i,helpers:n,partials:s,decorators:e.decorators}))?o:"")+' </div><div class="col-sm-12 password-container"><label for="verify_password_input" class="sr-only">Repeat new password</label> <input type="password" id="verify_password_input" name="verify_password" class="input" placeholder="Repeat new password"> '+(null!=(o=e.invokePartial(a(17),t,{name:"../reveal-password",data:i,helpers:n,partials:s,decorators:e.decorators}))?o:"")+' </div><div class="col-sm-12 feedback"></div><div class="col-sm-12"><button type="submit" class="btn">Change password</button></div></form></div> '},12:function(e,t,a,n,s){return' <div class="session-list"><h2>Sessions</h2><h3>Current session</h3><div id="session-current"></div><h3>Other sessions</h3><div id="session-list"></div></div> '},compiler:[7,">= 4.0.0"],main:function(e,t,a,n,s){var i,o=null!=t?t:e.nullContext||{};return'<div class="header"><button class="lt" aria-label="Toggle channel list"></button></div><div class="container"><h1 class="title">Settings</h1><div class="row"><div class="col-sm-6"><label class="opt"><input type="checkbox" name="advanced"> Advanced settings</label></div></div><div class="row"><div class="col-sm-12" id="native-app" hidden><h2>Native app</h2><button type="button" class="btn" id="webapp-install-button" hidden>Add The Lounge to Home screen</button> <button type="button" class="btn" id="make-default-client">Open irc:// URLs with The Lounge</button></div> '+(null!=(i=a.unless.call(o,null!=t?t.public:t,{name:"unless",hash:{},fn:e.program(1,s,0),inverse:e.noop,data:s}))?i:"")+' <div class="col-sm-12"><h2>Messages</h2></div><div class="col-sm-6"><label class="opt"><input type="checkbox" name="motd"> Show <abbr title="Message Of The Day">MOTD</abbr></label></div><div class="col-sm-6"><label class="opt"><input type="checkbox" name="showSeconds"> Show seconds in timestamp</label></div><div class="col-sm-12"><h2>Status messages <span class="tooltipped tooltipped-n tooltipped-no-delay" aria-label="Joins, parts, kicks, nick changes, away changes, and mode changes"><button class="extra-help" aria-label="Joins, parts, kicks, nick changes, away changes, and mode changes"></button></span></h2></div><div class="col-sm-12"><label class="opt"><input type="radio" name="statusMessages" value="shown"> Show all status messages individually</label> <label class="opt"><input type="radio" name="statusMessages" value="condensed"> Condense status messages together</label> <label class="opt"><input type="radio" name="statusMessages" value="hidden"> Hide all status messages</label></div><div class="col-sm-12"><h2>Visual Aids</h2></div><div class="col-sm-12"><label class="opt"><input type="checkbox" name="coloredNicks"> Enable colored nicknames</label> <label class="opt"><input type="checkbox" name="autocomplete"> Enable autocomplete</label></div><div class="col-sm-12" data-advanced><label class="opt"><label for="nickPostfix" class="sr-only">Nick autocomplete postfix (e.g. <code>,</code>)</label> <input type="text" id="nickPostfix" name="nickPostfix" class="input" placeholder="Nick autocomplete postfix (e.g. \', \')"></label></div><div class="col-sm-12"><h2>Theme</h2></div><div class="col-sm-12"><label for="theme-select" class="sr-only">Theme</label> <select id="theme-select" name="theme" class="input"> '+(null!=(i=a.each.call(o,null!=t?t.themes:t,{name:"each",hash:{},fn:e.program(3,s,0),inverse:e.noop,data:s}))?i:"")+" </select></div> "+(null!=(i=a.if.call(o,null!=t?t.prefetch:t,{name:"if",hash:{},fn:e.program(5,s,0),inverse:e.noop,data:s}))?i:"")+" "+(null!=(i=a.unless.call(o,null!=t?t.public:t,{name:"unless",hash:{},fn:e.program(7,s,0),inverse:e.noop,data:s}))?i:"")+' <div class="col-sm-12"><h2>Browser Notifications</h2></div><div class="col-sm-12"><label class="opt"><input id="desktopNotifications" type="checkbox" name="desktopNotifications"> Enable browser notifications<br><div class="error" id="warnUnsupportedDesktopNotifications"><strong>Warning</strong>: Notifications are not supported by your browser.</div><div class="error" id="warnBlockedDesktopNotifications"><strong>Warning</strong>: Notifications are blocked by your browser.</div></label></div><div class="col-sm-12"><label class="opt"><input type="checkbox" name="notification"> Enable notification sound</label></div><div class="col-sm-12"><div class="opt"><button id="play">Play sound</button></div></div><div class="col-sm-12" data-advanced><label class="opt"><input type="checkbox" name="notifyAllMessages"> Enable notification for all messages</label></div><div class="col-sm-12" data-advanced><label class="opt"><label for="highlights" class="sr-only">Custom highlights (comma-separated keywords)</label> <input type="text" id="highlights" name="highlights" class="input" placeholder="Custom highlights (comma-separated keywords)"></label></div> '+(null!=(i=a.unless.call(o,null!=t?t.public:t,{name:"unless",hash:{},fn:e.program(9,s,0),inverse:e.noop,data:s}))?i:"")+' <div class="col-sm-12" data-advanced><h2>Custom Stylesheet</h2></div><div class="col-sm-12" data-advanced><label for="user-specified-css-input" class="sr-only">Custom stylesheet. You can override any style with CSS here.</label> <textarea class="input" name="userStyles" id="user-specified-css-input" placeholder="/* You can override any style with CSS here */"></textarea></div></div> '+(null!=(i=a.unless.call(o,null!=t?t.public:t,{name:"unless",hash:{},fn:e.program(12,s,0),inverse:e.noop,data:s}))?i:"")+" </div>"},usePartial:!0,useData:!0})},function(e,t,a){var n=a(7);e.exports=(n.default||n).template({compiler:[7,">= 4.0.0"],main:function(e,t,n,s,i){var o;return'<form class="container" method="post" action=""><img src="img/logo-vertical-transparent-bg.svg" class="logo" alt="The Lounge" width="256" height="170"> <img src="img/logo-vertical-transparent-bg-inverted.svg" class="logo-inverted" alt="The Lounge" width="256" height="170"> <label>Username</label> <input class="input" type="text" name="user" autocapitalize="none" autocorrect="off" autocomplete="username" required autofocus><div class="password-container"><label>Password</label> <input class="input" type="password" name="password" autocapitalize="none" autocorrect="off" autocomplete="current-password" required> '+(null!=(o=e.invokePartial(a(17),t,{name:"../reveal-password",data:i,helpers:n,partials:s,decorators:e.decorators}))?o:"")+' </div><div class="error">Authentication failed.</div><button type="submit" class="btn">Sign in</button></form>'},usePartial:!0,useData:!0})},function(e,t,a){var n={"./collapse.js":155,"./expand.js":156,"./index.js":54,"./join.js":157};function s(e){var t=i(e);return a(t)}function i(e){if(!a.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}s.keys=function(){return Object.keys(n)},s.resolve=i,e.exports=s,s.id=154},function(e,t,a){"use strict";const n=a(5);t.input=function(){return n(".chan.active .toggle-button.toggle-preview.opened").click(),!0}},function(e,t,a){"use strict";const n=a(5);t.input=function(){return n(".chan.active .toggle-button.toggle-preview:not(.opened)").click(),!0}},function(e,t,a){"use strict";const n=a(5);t.input=function(e){const t=a(6),s=a(1),{vueApp:i}=a(4);if(e.length>0){const a=e[0];if(a.length>0){const e=t.findCurrentNetworkChan(a);e&&n('#sidebar .chan[data-id="'.concat(e.id,'"]')).trigger("click")}}else if("channel"===i.activeChannel.channel.type)return s.emit("input",{target:i.activeChannel.channel.id,text:"/join ".concat(i.activeChannel.channel.name)}),!0}},,,,,,,,,,function(e){e.exports=JSON.parse('{"100":"💯","1234":"🔢","grinning":"😀","smiley":"😃","smile":"😄","grin":"😁","laughing":"😆","satisfied":"😆","sweat_smile":"😅","rofl":"🤣","joy":"😂","slightly_smiling_face":"🙂","upside_down_face":"🙃","wink":"😉","blush":"😊","innocent":"😇","smiling_face_with_three_hearts":"🥰","heart_eyes":"😍","star_struck":"🤩","kissing_heart":"😘","kissing":"😗","relaxed":"☺️","kissing_closed_eyes":"😚","kissing_smiling_eyes":"😙","yum":"😋","stuck_out_tongue":"😛","stuck_out_tongue_winking_eye":"😜","zany_face":"🤪","stuck_out_tongue_closed_eyes":"😝","money_mouth_face":"🤑","hugs":"🤗","hand_over_mouth":"🤭","shushing_face":"🤫","thinking":"🤔","zipper_mouth_face":"🤐","raised_eyebrow":"🤨","neutral_face":"😐","expressionless":"😑","no_mouth":"😶","smirk":"😏","unamused":"😒","roll_eyes":"🙄","grimacing":"😬","lying_face":"🤥","relieved":"😌","pensive":"😔","sleepy":"😪","drooling_face":"🤤","sleeping":"😴","mask":"😷","face_with_thermometer":"🤒","face_with_head_bandage":"🤕","nauseated_face":"🤢","vomiting_face":"🤮","sneezing_face":"🤧","hot_face":"🥵","cold_face":"🥶","woozy_face":"🥴","dizzy_face":"😵","exploding_head":"🤯","cowboy_hat_face":"🤠","partying_face":"🥳","sunglasses":"😎","nerd_face":"🤓","monocle_face":"🧐","confused":"😕","worried":"😟","slightly_frowning_face":"🙁","frowning_face":"☹️","open_mouth":"😮","hushed":"😯","astonished":"😲","flushed":"😳","pleading_face":"🥺","frowning":"😦","anguished":"😧","fearful":"😨","cold_sweat":"😰","disappointed_relieved":"😥","cry":"😢","sob":"😭","scream":"😱","confounded":"😖","persevere":"😣","disappointed":"😞","sweat":"😓","weary":"😩","tired_face":"😫","yawning_face":"🥱","triumph":"😤","rage":"😡","pout":"😡","angry":"😠","cursing_face":"🤬","smiling_imp":"😈","imp":"👿","skull":"💀","skull_and_crossbones":"☠️","hankey":"💩","poop":"💩","shit":"💩","clown_face":"🤡","japanese_ogre":"👹","japanese_goblin":"👺","ghost":"👻","alien":"👽","space_invader":"👾","robot":"🤖","smiley_cat":"😺","smile_cat":"😸","joy_cat":"😹","heart_eyes_cat":"😻","smirk_cat":"😼","kissing_cat":"😽","scream_cat":"🙀","crying_cat_face":"😿","pouting_cat":"😾","see_no_evil":"🙈","hear_no_evil":"🙉","speak_no_evil":"🙊","kiss":"💋","love_letter":"💌","cupid":"💘","gift_heart":"💝","sparkling_heart":"💖","heartpulse":"💗","heartbeat":"💓","revolving_hearts":"💞","two_hearts":"💕","heart_decoration":"💟","heavy_heart_exclamation":"❣️","broken_heart":"💔","heart":"❤️","orange_heart":"🧡","yellow_heart":"💛","green_heart":"💚","blue_heart":"💙","purple_heart":"💜","brown_heart":"🤎","black_heart":"🖤","white_heart":"🤍","anger":"💢","boom":"💥","collision":"💥","dizzy":"💫","sweat_drops":"💦","dash":"💨","hole":"🕳️","bomb":"💣","speech_balloon":"💬","eye_speech_bubble":"👁️‍🗨️","left_speech_bubble":"🗨️","right_anger_bubble":"🗯️","thought_balloon":"💭","zzz":"💤","wave":"👋","raised_back_of_hand":"🤚","raised_hand_with_fingers_splayed":"🖐️","hand":"✋","raised_hand":"✋","vulcan_salute":"🖖","ok_hand":"👌","pinching_hand":"🤏","v":"✌️","crossed_fingers":"🤞","love_you_gesture":"🤟","metal":"🤘","call_me_hand":"🤙","point_left":"👈","point_right":"👉","point_up_2":"👆","middle_finger":"🖕","fu":"🖕","point_down":"👇","point_up":"☝️","+1":"👍","thumbsup":"👍","-1":"👎","thumbsdown":"👎","fist_raised":"✊","fist":"✊","fist_oncoming":"👊","facepunch":"👊","punch":"👊","fist_left":"🤛","fist_right":"🤜","clap":"👏","raised_hands":"🙌","open_hands":"👐","palms_up_together":"🤲","handshake":"🤝","pray":"🙏","writing_hand":"✍️","nail_care":"💅","selfie":"🤳","muscle":"💪","mechanical_arm":"🦾","mechanical_leg":"🦿","leg":"🦵","foot":"🦶","ear":"👂","ear_with_hearing_aid":"🦻","nose":"👃","brain":"🧠","tooth":"🦷","bone":"🦴","eyes":"👀","eye":"👁️","tongue":"👅","lips":"👄","baby":"👶","child":"🧒","boy":"👦","girl":"👧","adult":"🧑","blond_haired_person":"👱","man":"👨","bearded_person":"🧔","blond_haired_man":"👱‍♂️","red_haired_man":"👨‍🦰","curly_haired_man":"👨‍🦱","white_haired_man":"👨‍🦳","bald_man":"👨‍🦲","woman":"👩","blond_haired_woman":"👱‍♀️","blonde_woman":"👱‍♀️","red_haired_woman":"👩‍🦰","curly_haired_woman":"👩‍🦱","white_haired_woman":"👩‍🦳","bald_woman":"👩‍🦲","older_adult":"🧓","older_man":"👴","older_woman":"👵","frowning_person":"🙍","frowning_man":"🙍‍♂️","frowning_woman":"🙍‍♀️","pouting_face":"🙎","pouting_man":"🙎‍♂️","pouting_woman":"🙎‍♀️","no_good":"🙅","no_good_man":"🙅‍♂️","ng_man":"🙅‍♂️","no_good_woman":"🙅‍♀️","ng_woman":"🙅‍♀️","ok_person":"🙆","ok_man":"🙆‍♂️","ok_woman":"🙆‍♀️","tipping_hand_person":"💁","information_desk_person":"💁","tipping_hand_man":"💁‍♂️","sassy_man":"💁‍♂️","tipping_hand_woman":"💁‍♀️","sassy_woman":"💁‍♀️","raising_hand":"🙋","raising_hand_man":"🙋‍♂️","raising_hand_woman":"🙋‍♀️","deaf_person":"🧏","deaf_man":"🧏‍♂️","deaf_woman":"🧏‍♀️","bow":"🙇","bowing_man":"🙇‍♂️","bowing_woman":"🙇‍♀️","facepalm":"🤦","man_facepalming":"🤦‍♂️","woman_facepalming":"🤦‍♀️","shrug":"🤷","man_shrugging":"🤷‍♂️","woman_shrugging":"🤷‍♀️","man_health_worker":"👨‍⚕️","woman_health_worker":"👩‍⚕️","man_student":"👨‍🎓","woman_student":"👩‍🎓","man_teacher":"👨‍🏫","woman_teacher":"👩‍🏫","man_judge":"👨‍⚖️","woman_judge":"👩‍⚖️","man_farmer":"👨‍🌾","woman_farmer":"👩‍🌾","man_cook":"👨‍🍳","woman_cook":"👩‍🍳","man_mechanic":"👨‍🔧","woman_mechanic":"👩‍🔧","man_factory_worker":"👨‍🏭","woman_factory_worker":"👩‍🏭","man_office_worker":"👨‍💼","woman_office_worker":"👩‍💼","man_scientist":"👨‍🔬","woman_scientist":"👩‍🔬","man_technologist":"👨‍💻","woman_technologist":"👩‍💻","man_singer":"👨‍🎤","woman_singer":"👩‍🎤","man_artist":"👨‍🎨","woman_artist":"👩‍🎨","man_pilot":"👨‍✈️","woman_pilot":"👩‍✈️","man_astronaut":"👨‍🚀","woman_astronaut":"👩‍🚀","man_firefighter":"👨‍🚒","woman_firefighter":"👩‍🚒","police_officer":"👮","cop":"👮","policeman":"👮‍♂️","policewoman":"👮‍♀️","detective":"🕵️","male_detective":"🕵️‍♂️","female_detective":"🕵️‍♀️","guard":"💂","guardsman":"💂‍♂️","guardswoman":"💂‍♀️","construction_worker":"👷","construction_worker_man":"👷‍♂️","construction_worker_woman":"👷‍♀️","prince":"🤴","princess":"👸","person_with_turban":"👳","man_with_turban":"👳‍♂️","woman_with_turban":"👳‍♀️","man_with_gua_pi_mao":"👲","woman_with_headscarf":"🧕","man_in_tuxedo":"🤵","bride_with_veil":"👰","pregnant_woman":"🤰","breast_feeding":"🤱","angel":"👼","santa":"🎅","mrs_claus":"🤶","superhero":"🦸","superhero_man":"🦸‍♂️","superhero_woman":"🦸‍♀️","supervillain":"🦹","supervillain_man":"🦹‍♂️","supervillain_woman":"🦹‍♀️","mage":"🧙","mage_man":"🧙‍♂️","mage_woman":"🧙‍♀️","fairy":"🧚","fairy_man":"🧚‍♂️","fairy_woman":"🧚‍♀️","vampire":"🧛","vampire_man":"🧛‍♂️","vampire_woman":"🧛‍♀️","merperson":"🧜","merman":"🧜‍♂️","mermaid":"🧜‍♀️","elf":"🧝","elf_man":"🧝‍♂️","elf_woman":"🧝‍♀️","genie":"🧞","genie_man":"🧞‍♂️","genie_woman":"🧞‍♀️","zombie":"🧟","zombie_man":"🧟‍♂️","zombie_woman":"🧟‍♀️","massage":"💆","massage_man":"💆‍♂️","massage_woman":"💆‍♀️","haircut":"💇","haircut_man":"💇‍♂️","haircut_woman":"💇‍♀️","walking":"🚶","walking_man":"🚶‍♂️","walking_woman":"🚶‍♀️","standing_person":"🧍","standing_man":"🧍‍♂️","standing_woman":"🧍‍♀️","kneeling_person":"🧎","kneeling_man":"🧎‍♂️","kneeling_woman":"🧎‍♀️","man_with_probing_cane":"👨‍🦯","woman_with_probing_cane":"👩‍🦯","man_in_motorized_wheelchair":"👨‍🦼","woman_in_motorized_wheelchair":"👩‍🦼","man_in_manual_wheelchair":"👨‍🦽","woman_in_manual_wheelchair":"👩‍🦽","runner":"🏃","running":"🏃","running_man":"🏃‍♂️","running_woman":"🏃‍♀️","woman_dancing":"💃","dancer":"💃","man_dancing":"🕺","business_suit_levitating":"🕴️","dancers":"👯","dancing_men":"👯‍♂️","dancing_women":"👯‍♀️","sauna_person":"🧖","sauna_man":"🧖‍♂️","sauna_woman":"🧖‍♀️","climbing":"🧗","climbing_man":"🧗‍♂️","climbing_woman":"🧗‍♀️","person_fencing":"🤺","horse_racing":"🏇","skier":"⛷️","snowboarder":"🏂","golfing":"🏌️","golfing_man":"🏌️‍♂️","golfing_woman":"🏌️‍♀️","surfer":"🏄","surfing_man":"🏄‍♂️","surfing_woman":"🏄‍♀️","rowboat":"🚣","rowing_man":"🚣‍♂️","rowing_woman":"🚣‍♀️","swimmer":"🏊","swimming_man":"🏊‍♂️","swimming_woman":"🏊‍♀️","bouncing_ball_person":"⛹️","bouncing_ball_man":"⛹️‍♂️","basketball_man":"⛹️‍♂️","bouncing_ball_woman":"⛹️‍♀️","basketball_woman":"⛹️‍♀️","weight_lifting":"🏋️","weight_lifting_man":"🏋️‍♂️","weight_lifting_woman":"🏋️‍♀️","bicyclist":"🚴","biking_man":"🚴‍♂️","biking_woman":"🚴‍♀️","mountain_bicyclist":"🚵","mountain_biking_man":"🚵‍♂️","mountain_biking_woman":"🚵‍♀️","cartwheeling":"🤸","man_cartwheeling":"🤸‍♂️","woman_cartwheeling":"🤸‍♀️","wrestling":"🤼","men_wrestling":"🤼‍♂️","women_wrestling":"🤼‍♀️","water_polo":"🤽","man_playing_water_polo":"🤽‍♂️","woman_playing_water_polo":"🤽‍♀️","handball_person":"🤾","man_playing_handball":"🤾‍♂️","woman_playing_handball":"🤾‍♀️","juggling_person":"🤹","man_juggling":"🤹‍♂️","woman_juggling":"🤹‍♀️","lotus_position":"🧘","lotus_position_man":"🧘‍♂️","lotus_position_woman":"🧘‍♀️","bath":"🛀","sleeping_bed":"🛌","people_holding_hands":"🧑‍🤝‍🧑","two_women_holding_hands":"👭","couple":"👫","two_men_holding_hands":"👬","couplekiss":"💏","couplekiss_man_woman":"👩‍❤️‍💋‍👨","couplekiss_man_man":"👨‍❤️‍💋‍👨","couplekiss_woman_woman":"👩‍❤️‍💋‍👩","couple_with_heart":"💑","couple_with_heart_woman_man":"👩‍❤️‍👨","couple_with_heart_man_man":"👨‍❤️‍👨","couple_with_heart_woman_woman":"👩‍❤️‍👩","family":"👪","family_man_woman_boy":"👨‍👩‍👦","family_man_woman_girl":"👨‍👩‍👧","family_man_woman_girl_boy":"👨‍👩‍👧‍👦","family_man_woman_boy_boy":"👨‍👩‍👦‍👦","family_man_woman_girl_girl":"👨‍👩‍👧‍👧","family_man_man_boy":"👨‍👨‍👦","family_man_man_girl":"👨‍👨‍👧","family_man_man_girl_boy":"👨‍👨‍👧‍👦","family_man_man_boy_boy":"👨‍👨‍👦‍👦","family_man_man_girl_girl":"👨‍👨‍👧‍👧","family_woman_woman_boy":"👩‍👩‍👦","family_woman_woman_girl":"👩‍👩‍👧","family_woman_woman_girl_boy":"👩‍👩‍👧‍👦","family_woman_woman_boy_boy":"👩‍👩‍👦‍👦","family_woman_woman_girl_girl":"👩‍👩‍👧‍👧","family_man_boy":"👨‍👦","family_man_boy_boy":"👨‍👦‍👦","family_man_girl":"👨‍👧","family_man_girl_boy":"👨‍👧‍👦","family_man_girl_girl":"👨‍👧‍👧","family_woman_boy":"👩‍👦","family_woman_boy_boy":"👩‍👦‍👦","family_woman_girl":"👩‍👧","family_woman_girl_boy":"👩‍👧‍👦","family_woman_girl_girl":"👩‍👧‍👧","speaking_head":"🗣️","bust_in_silhouette":"👤","busts_in_silhouette":"👥","footprints":"👣","monkey_face":"🐵","monkey":"🐒","gorilla":"🦍","orangutan":"🦧","dog":"🐶","dog2":"🐕","guide_dog":"🦮","service_dog":"🐕‍🦺","poodle":"🐩","wolf":"🐺","fox_face":"🦊","raccoon":"🦝","cat":"🐱","cat2":"🐈","lion":"🦁","tiger":"🐯","tiger2":"🐅","leopard":"🐆","horse":"🐴","racehorse":"🐎","unicorn":"🦄","zebra":"🦓","deer":"🦌","cow":"🐮","ox":"🐂","water_buffalo":"🐃","cow2":"🐄","pig":"🐷","pig2":"🐖","boar":"🐗","pig_nose":"🐽","ram":"🐏","sheep":"🐑","goat":"🐐","dromedary_camel":"🐪","camel":"🐫","llama":"🦙","giraffe":"🦒","elephant":"🐘","rhinoceros":"🦏","hippopotamus":"🦛","mouse":"🐭","mouse2":"🐁","rat":"🐀","hamster":"🐹","rabbit":"🐰","rabbit2":"🐇","chipmunk":"🐿️","hedgehog":"🦔","bat":"🦇","bear":"🐻","koala":"🐨","panda_face":"🐼","sloth":"🦥","otter":"🦦","skunk":"🦨","kangaroo":"🦘","badger":"🦡","feet":"🐾","paw_prints":"🐾","turkey":"🦃","chicken":"🐔","rooster":"🐓","hatching_chick":"🐣","baby_chick":"🐤","hatched_chick":"🐥","bird":"🐦","penguin":"🐧","dove":"🕊️","eagle":"🦅","duck":"🦆","swan":"🦢","owl":"🦉","flamingo":"🦩","peacock":"🦚","parrot":"🦜","frog":"🐸","crocodile":"🐊","turtle":"🐢","lizard":"🦎","snake":"🐍","dragon_face":"🐲","dragon":"🐉","sauropod":"🦕","t-rex":"🦖","whale":"🐳","whale2":"🐋","dolphin":"🐬","flipper":"🐬","fish":"🐟","tropical_fish":"🐠","blowfish":"🐡","shark":"🦈","octopus":"🐙","shell":"🐚","snail":"🐌","butterfly":"🦋","bug":"🐛","ant":"🐜","bee":"🐝","honeybee":"🐝","beetle":"🐞","cricket":"🦗","spider":"🕷️","spider_web":"🕸️","scorpion":"🦂","mosquito":"🦟","microbe":"🦠","bouquet":"💐","cherry_blossom":"🌸","white_flower":"💮","rosette":"🏵️","rose":"🌹","wilted_flower":"🥀","hibiscus":"🌺","sunflower":"🌻","blossom":"🌼","tulip":"🌷","seedling":"🌱","evergreen_tree":"🌲","deciduous_tree":"🌳","palm_tree":"🌴","cactus":"🌵","ear_of_rice":"🌾","herb":"🌿","shamrock":"☘️","four_leaf_clover":"🍀","maple_leaf":"🍁","fallen_leaf":"🍂","leaves":"🍃","grapes":"🍇","melon":"🍈","watermelon":"🍉","tangerine":"🍊","orange":"🍊","mandarin":"🍊","lemon":"🍋","banana":"🍌","pineapple":"🍍","mango":"🥭","apple":"🍎","green_apple":"🍏","pear":"🍐","peach":"🍑","cherries":"🍒","strawberry":"🍓","kiwi_fruit":"🥝","tomato":"🍅","coconut":"🥥","avocado":"🥑","eggplant":"🍆","potato":"🥔","carrot":"🥕","corn":"🌽","hot_pepper":"🌶️","cucumber":"🥒","leafy_green":"🥬","broccoli":"🥦","garlic":"🧄","onion":"🧅","mushroom":"🍄","peanuts":"🥜","chestnut":"🌰","bread":"🍞","croissant":"🥐","baguette_bread":"🥖","pretzel":"🥨","bagel":"🥯","pancakes":"🥞","waffle":"🧇","cheese":"🧀","meat_on_bone":"🍖","poultry_leg":"🍗","cut_of_meat":"🥩","bacon":"🥓","hamburger":"🍔","fries":"🍟","pizza":"🍕","hotdog":"🌭","sandwich":"🥪","taco":"🌮","burrito":"🌯","stuffed_flatbread":"🥙","falafel":"🧆","egg":"🥚","fried_egg":"🍳","shallow_pan_of_food":"🥘","stew":"🍲","bowl_with_spoon":"🥣","green_salad":"🥗","popcorn":"🍿","butter":"🧈","salt":"🧂","canned_food":"🥫","bento":"🍱","rice_cracker":"🍘","rice_ball":"🍙","rice":"🍚","curry":"🍛","ramen":"🍜","spaghetti":"🍝","sweet_potato":"🍠","oden":"🍢","sushi":"🍣","fried_shrimp":"🍤","fish_cake":"🍥","moon_cake":"🥮","dango":"🍡","dumpling":"🥟","fortune_cookie":"🥠","takeout_box":"🥡","crab":"🦀","lobster":"🦞","shrimp":"🦐","squid":"🦑","oyster":"🦪","icecream":"🍦","shaved_ice":"🍧","ice_cream":"🍨","doughnut":"🍩","cookie":"🍪","birthday":"🎂","cake":"🍰","cupcake":"🧁","pie":"🥧","chocolate_bar":"🍫","candy":"🍬","lollipop":"🍭","custard":"🍮","honey_pot":"🍯","baby_bottle":"🍼","milk_glass":"🥛","coffee":"☕","tea":"🍵","sake":"🍶","champagne":"🍾","wine_glass":"🍷","cocktail":"🍸","tropical_drink":"🍹","beer":"🍺","beers":"🍻","clinking_glasses":"🥂","tumbler_glass":"🥃","cup_with_straw":"🥤","beverage_box":"🧃","mate":"🧉","ice_cube":"🧊","chopsticks":"🥢","plate_with_cutlery":"🍽️","fork_and_knife":"🍴","spoon":"🥄","hocho":"🔪","knife":"🔪","amphora":"🏺","earth_africa":"🌍","earth_americas":"🌎","earth_asia":"🌏","globe_with_meridians":"🌐","world_map":"🗺️","japan":"🗾","compass":"🧭","mountain_snow":"🏔️","mountain":"⛰️","volcano":"🌋","mount_fuji":"🗻","camping":"🏕️","beach_umbrella":"🏖️","desert":"🏜️","desert_island":"🏝️","national_park":"🏞️","stadium":"🏟️","classical_building":"🏛️","building_construction":"🏗️","bricks":"🧱","houses":"🏘️","derelict_house":"🏚️","house":"🏠","house_with_garden":"🏡","office":"🏢","post_office":"🏣","european_post_office":"🏤","hospital":"🏥","bank":"🏦","hotel":"🏨","love_hotel":"🏩","convenience_store":"🏪","school":"🏫","department_store":"🏬","factory":"🏭","japanese_castle":"🏯","european_castle":"🏰","wedding":"💒","tokyo_tower":"🗼","statue_of_liberty":"🗽","church":"⛪","mosque":"🕌","hindu_temple":"🛕","synagogue":"🕍","shinto_shrine":"⛩️","kaaba":"🕋","fountain":"⛲","tent":"⛺","foggy":"🌁","night_with_stars":"🌃","cityscape":"🏙️","sunrise_over_mountains":"🌄","sunrise":"🌅","city_sunset":"🌆","city_sunrise":"🌇","bridge_at_night":"🌉","hotsprings":"♨️","carousel_horse":"🎠","ferris_wheel":"🎡","roller_coaster":"🎢","barber":"💈","circus_tent":"🎪","steam_locomotive":"🚂","railway_car":"🚃","bullettrain_side":"🚄","bullettrain_front":"🚅","train2":"🚆","metro":"🚇","light_rail":"🚈","station":"🚉","tram":"🚊","monorail":"🚝","mountain_railway":"🚞","train":"🚋","bus":"🚌","oncoming_bus":"🚍","trolleybus":"🚎","minibus":"🚐","ambulance":"🚑","fire_engine":"🚒","police_car":"🚓","oncoming_police_car":"🚔","taxi":"🚕","oncoming_taxi":"🚖","car":"🚗","red_car":"🚗","oncoming_automobile":"🚘","blue_car":"🚙","truck":"🚚","articulated_lorry":"🚛","tractor":"🚜","racing_car":"🏎️","motorcycle":"🏍️","motor_scooter":"🛵","manual_wheelchair":"🦽","motorized_wheelchair":"🦼","auto_rickshaw":"🛺","bike":"🚲","kick_scooter":"🛴","skateboard":"🛹","busstop":"🚏","motorway":"🛣️","railway_track":"🛤️","oil_drum":"🛢️","fuelpump":"⛽","rotating_light":"🚨","traffic_light":"🚥","vertical_traffic_light":"🚦","stop_sign":"🛑","construction":"🚧","anchor":"⚓","boat":"⛵","sailboat":"⛵","canoe":"🛶","speedboat":"🚤","passenger_ship":"🛳️","ferry":"⛴️","motor_boat":"🛥️","ship":"🚢","airplane":"✈️","small_airplane":"🛩️","flight_departure":"🛫","flight_arrival":"🛬","parachute":"🪂","seat":"💺","helicopter":"🚁","suspension_railway":"🚟","mountain_cableway":"🚠","aerial_tramway":"🚡","artificial_satellite":"🛰️","rocket":"🚀","flying_saucer":"🛸","bellhop_bell":"🛎️","luggage":"🧳","hourglass":"⌛","hourglass_flowing_sand":"⏳","watch":"⌚","alarm_clock":"⏰","stopwatch":"⏱️","timer_clock":"⏲️","mantelpiece_clock":"🕰️","clock12":"🕛","clock1230":"🕧","clock1":"🕐","clock130":"🕜","clock2":"🕑","clock230":"🕝","clock3":"🕒","clock330":"🕞","clock4":"🕓","clock430":"🕟","clock5":"🕔","clock530":"🕠","clock6":"🕕","clock630":"🕡","clock7":"🕖","clock730":"🕢","clock8":"🕗","clock830":"🕣","clock9":"🕘","clock930":"🕤","clock10":"🕙","clock1030":"🕥","clock11":"🕚","clock1130":"🕦","new_moon":"🌑","waxing_crescent_moon":"🌒","first_quarter_moon":"🌓","moon":"🌔","waxing_gibbous_moon":"🌔","full_moon":"🌕","waning_gibbous_moon":"🌖","last_quarter_moon":"🌗","waning_crescent_moon":"🌘","crescent_moon":"🌙","new_moon_with_face":"🌚","first_quarter_moon_with_face":"🌛","last_quarter_moon_with_face":"🌜","thermometer":"🌡️","sunny":"☀️","full_moon_with_face":"🌝","sun_with_face":"🌞","ringed_planet":"🪐","star":"⭐","star2":"🌟","stars":"🌠","milky_way":"🌌","cloud":"☁️","partly_sunny":"⛅","cloud_with_lightning_and_rain":"⛈️","sun_behind_small_cloud":"🌤️","sun_behind_large_cloud":"🌥️","sun_behind_rain_cloud":"🌦️","cloud_with_rain":"🌧️","cloud_with_snow":"🌨️","cloud_with_lightning":"🌩️","tornado":"🌪️","fog":"🌫️","wind_face":"🌬️","cyclone":"🌀","rainbow":"🌈","closed_umbrella":"🌂","open_umbrella":"☂️","umbrella":"☔","parasol_on_ground":"⛱️","zap":"⚡","snowflake":"❄️","snowman_with_snow":"☃️","snowman":"⛄","comet":"☄️","fire":"🔥","droplet":"💧","ocean":"🌊","jack_o_lantern":"🎃","christmas_tree":"🎄","fireworks":"🎆","sparkler":"🎇","firecracker":"🧨","sparkles":"✨","balloon":"🎈","tada":"🎉","confetti_ball":"🎊","tanabata_tree":"🎋","bamboo":"🎍","dolls":"🎎","flags":"🎏","wind_chime":"🎐","rice_scene":"🎑","red_envelope":"🧧","ribbon":"🎀","gift":"🎁","reminder_ribbon":"🎗️","tickets":"🎟️","ticket":"🎫","medal_military":"🎖️","trophy":"🏆","medal_sports":"🏅","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","soccer":"⚽","baseball":"⚾","softball":"🥎","basketball":"🏀","volleyball":"🏐","football":"🏈","rugby_football":"🏉","tennis":"🎾","flying_disc":"🥏","bowling":"🎳","cricket_game":"🏏","field_hockey":"🏑","ice_hockey":"🏒","lacrosse":"🥍","ping_pong":"🏓","badminton":"🏸","boxing_glove":"🥊","martial_arts_uniform":"🥋","goal_net":"🥅","golf":"⛳","ice_skate":"⛸️","fishing_pole_and_fish":"🎣","diving_mask":"🤿","running_shirt_with_sash":"🎽","ski":"🎿","sled":"🛷","curling_stone":"🥌","dart":"🎯","yo_yo":"🪀","kite":"🪁","8ball":"🎱","crystal_ball":"🔮","nazar_amulet":"🧿","video_game":"🎮","joystick":"🕹️","slot_machine":"🎰","game_die":"🎲","jigsaw":"🧩","teddy_bear":"🧸","spades":"♠️","hearts":"♥️","diamonds":"♦️","clubs":"♣️","chess_pawn":"♟️","black_joker":"🃏","mahjong":"🀄","flower_playing_cards":"🎴","performing_arts":"🎭","framed_picture":"🖼️","art":"🎨","thread":"🧵","yarn":"🧶","eyeglasses":"👓","dark_sunglasses":"🕶️","goggles":"🥽","lab_coat":"🥼","safety_vest":"🦺","necktie":"👔","shirt":"👕","tshirt":"👕","jeans":"👖","scarf":"🧣","gloves":"🧤","coat":"🧥","socks":"🧦","dress":"👗","kimono":"👘","sari":"🥻","one_piece_swimsuit":"🩱","swim_brief":"🩲","shorts":"🩳","bikini":"👙","womans_clothes":"👚","purse":"👛","handbag":"👜","pouch":"👝","shopping":"🛍️","school_satchel":"🎒","mans_shoe":"👞","shoe":"👞","athletic_shoe":"👟","hiking_boot":"🥾","flat_shoe":"🥿","high_heel":"👠","sandal":"👡","ballet_shoes":"🩰","boot":"👢","crown":"👑","womans_hat":"👒","tophat":"🎩","mortar_board":"🎓","billed_cap":"🧢","rescue_worker_helmet":"⛑️","prayer_beads":"📿","lipstick":"💄","ring":"💍","gem":"💎","mute":"🔇","speaker":"🔈","sound":"🔉","loud_sound":"🔊","loudspeaker":"📢","mega":"📣","postal_horn":"📯","bell":"🔔","no_bell":"🔕","musical_score":"🎼","musical_note":"🎵","notes":"🎶","studio_microphone":"🎙️","level_slider":"🎚️","control_knobs":"🎛️","microphone":"🎤","headphones":"🎧","radio":"📻","saxophone":"🎷","guitar":"🎸","musical_keyboard":"🎹","trumpet":"🎺","violin":"🎻","banjo":"🪕","drum":"🥁","iphone":"📱","calling":"📲","phone":"☎️","telephone":"☎️","telephone_receiver":"📞","pager":"📟","fax":"📠","battery":"🔋","electric_plug":"🔌","computer":"💻","desktop_computer":"🖥️","printer":"🖨️","keyboard":"⌨️","computer_mouse":"🖱️","trackball":"🖲️","minidisc":"💽","floppy_disk":"💾","cd":"💿","dvd":"📀","abacus":"🧮","movie_camera":"🎥","film_strip":"🎞️","film_projector":"📽️","clapper":"🎬","tv":"📺","camera":"📷","camera_flash":"📸","video_camera":"📹","vhs":"📼","mag":"🔍","mag_right":"🔎","candle":"🕯️","bulb":"💡","flashlight":"🔦","izakaya_lantern":"🏮","lantern":"🏮","diya_lamp":"🪔","notebook_with_decorative_cover":"📔","closed_book":"📕","book":"📖","open_book":"📖","green_book":"📗","blue_book":"📘","orange_book":"📙","books":"📚","notebook":"📓","ledger":"📒","page_with_curl":"📃","scroll":"📜","page_facing_up":"📄","newspaper":"📰","newspaper_roll":"🗞️","bookmark_tabs":"📑","bookmark":"🔖","label":"🏷️","moneybag":"💰","yen":"💴","dollar":"💵","euro":"💶","pound":"💷","money_with_wings":"💸","credit_card":"💳","receipt":"🧾","chart":"💹","currency_exchange":"💱","heavy_dollar_sign":"💲","email":"✉️","envelope":"✉️","e-mail":"📧","incoming_envelope":"📨","envelope_with_arrow":"📩","outbox_tray":"📤","inbox_tray":"📥","package":"📦","mailbox":"📫","mailbox_closed":"📪","mailbox_with_mail":"📬","mailbox_with_no_mail":"📭","postbox":"📮","ballot_box":"🗳️","pencil2":"✏️","black_nib":"✒️","fountain_pen":"🖋️","pen":"🖊️","paintbrush":"🖌️","crayon":"🖍️","memo":"📝","pencil":"📝","briefcase":"💼","file_folder":"📁","open_file_folder":"📂","card_index_dividers":"🗂️","date":"📅","calendar":"📆","spiral_notepad":"🗒️","spiral_calendar":"🗓️","card_index":"📇","chart_with_upwards_trend":"📈","chart_with_downwards_trend":"📉","bar_chart":"📊","clipboard":"📋","pushpin":"📌","round_pushpin":"📍","paperclip":"📎","paperclips":"🖇️","straight_ruler":"📏","triangular_ruler":"📐","scissors":"✂️","card_file_box":"🗃️","file_cabinet":"🗄️","wastebasket":"🗑️","lock":"🔒","unlock":"🔓","lock_with_ink_pen":"🔏","closed_lock_with_key":"🔐","key":"🔑","old_key":"🗝️","hammer":"🔨","axe":"🪓","pick":"⛏️","hammer_and_pick":"⚒️","hammer_and_wrench":"🛠️","dagger":"🗡️","crossed_swords":"⚔️","gun":"🔫","bow_and_arrow":"🏹","shield":"🛡️","wrench":"🔧","nut_and_bolt":"🔩","gear":"⚙️","clamp":"🗜️","balance_scale":"⚖️","probing_cane":"🦯","link":"🔗","chains":"⛓️","toolbox":"🧰","magnet":"🧲","alembic":"⚗️","test_tube":"🧪","petri_dish":"🧫","dna":"🧬","microscope":"🔬","telescope":"🔭","satellite":"📡","syringe":"💉","drop_of_blood":"🩸","pill":"💊","adhesive_bandage":"🩹","stethoscope":"🩺","door":"🚪","bed":"🛏️","couch_and_lamp":"🛋️","chair":"🪑","toilet":"🚽","shower":"🚿","bathtub":"🛁","razor":"🪒","lotion_bottle":"🧴","safety_pin":"🧷","broom":"🧹","basket":"🧺","roll_of_paper":"🧻","soap":"🧼","sponge":"🧽","fire_extinguisher":"🧯","shopping_cart":"🛒","smoking":"🚬","coffin":"⚰️","funeral_urn":"⚱️","moyai":"🗿","atm":"🏧","put_litter_in_its_place":"🚮","potable_water":"🚰","wheelchair":"♿","mens":"🚹","womens":"🚺","restroom":"🚻","baby_symbol":"🚼","wc":"🚾","passport_control":"🛂","customs":"🛃","baggage_claim":"🛄","left_luggage":"🛅","warning":"⚠️","children_crossing":"🚸","no_entry":"⛔","no_entry_sign":"🚫","no_bicycles":"🚳","no_smoking":"🚭","do_not_litter":"🚯","non-potable_water":"🚱","no_pedestrians":"🚷","no_mobile_phones":"📵","underage":"🔞","radioactive":"☢️","biohazard":"☣️","arrow_up":"⬆️","arrow_upper_right":"↗️","arrow_right":"➡️","arrow_lower_right":"↘️","arrow_down":"⬇️","arrow_lower_left":"↙️","arrow_left":"⬅️","arrow_upper_left":"↖️","arrow_up_down":"↕️","left_right_arrow":"↔️","leftwards_arrow_with_hook":"↩️","arrow_right_hook":"↪️","arrow_heading_up":"⤴️","arrow_heading_down":"⤵️","arrows_clockwise":"🔃","arrows_counterclockwise":"🔄","back":"🔙","end":"🔚","on":"🔛","soon":"🔜","top":"🔝","place_of_worship":"🛐","atom_symbol":"⚛️","om":"🕉️","star_of_david":"✡️","wheel_of_dharma":"☸️","yin_yang":"☯️","latin_cross":"✝️","orthodox_cross":"☦️","star_and_crescent":"☪️","peace_symbol":"☮️","menorah":"🕎","six_pointed_star":"🔯","aries":"♈","taurus":"♉","gemini":"♊","cancer":"♋","leo":"♌","virgo":"♍","libra":"♎","scorpius":"♏","sagittarius":"♐","capricorn":"♑","aquarius":"♒","pisces":"♓","ophiuchus":"⛎","twisted_rightwards_arrows":"🔀","repeat":"🔁","repeat_one":"🔂","arrow_forward":"▶️","fast_forward":"⏩","next_track_button":"⏭️","play_or_pause_button":"⏯️","arrow_backward":"◀️","rewind":"⏪","previous_track_button":"⏮️","arrow_up_small":"🔼","arrow_double_up":"⏫","arrow_down_small":"🔽","arrow_double_down":"⏬","pause_button":"⏸️","stop_button":"⏹️","record_button":"⏺️","eject_button":"⏏️","cinema":"🎦","low_brightness":"🔅","high_brightness":"🔆","signal_strength":"📶","vibration_mode":"📳","mobile_phone_off":"📴","female_sign":"♀️","male_sign":"♂️","medical_symbol":"⚕️","infinity":"♾️","recycle":"♻️","fleur_de_lis":"⚜️","trident":"🔱","name_badge":"📛","beginner":"🔰","o":"⭕","white_check_mark":"✅","ballot_box_with_check":"☑️","heavy_check_mark":"✔️","heavy_multiplication_x":"✖️","x":"❌","negative_squared_cross_mark":"❎","heavy_plus_sign":"➕","heavy_minus_sign":"➖","heavy_division_sign":"➗","curly_loop":"➰","loop":"➿","part_alternation_mark":"〽️","eight_spoked_asterisk":"✳️","eight_pointed_black_star":"✴️","sparkle":"❇️","bangbang":"‼️","interrobang":"⁉️","question":"❓","grey_question":"❔","grey_exclamation":"❕","exclamation":"❗","heavy_exclamation_mark":"❗","wavy_dash":"〰️","copyright":"©️","registered":"®️","tm":"™️","hash":"#️⃣","asterisk":"*️⃣","zero":"0️⃣","one":"1️⃣","two":"2️⃣","three":"3️⃣","four":"4️⃣","five":"5️⃣","six":"6️⃣","seven":"7️⃣","eight":"8️⃣","nine":"9️⃣","keycap_ten":"🔟","capital_abcd":"🔠","abcd":"🔡","symbols":"🔣","abc":"🔤","a":"🅰️","ab":"🆎","b":"🅱️","cl":"🆑","cool":"🆒","free":"🆓","information_source":"ℹ️","id":"🆔","m":"Ⓜ️","new":"🆕","ng":"🆖","o2":"🅾️","ok":"🆗","parking":"🅿️","sos":"🆘","up":"🆙","vs":"🆚","koko":"🈁","sa":"🈂️","u6708":"🈷️","u6709":"🈶","u6307":"🈯","ideograph_advantage":"🉐","u5272":"🈹","u7121":"🈚","u7981":"🈲","accept":"🉑","u7533":"🈸","u5408":"🈴","u7a7a":"🈳","congratulations":"㊗️","secret":"㊙️","u55b6":"🈺","u6e80":"🈵","red_circle":"🔴","orange_circle":"🟠","yellow_circle":"🟡","green_circle":"🟢","large_blue_circle":"🔵","purple_circle":"🟣","brown_circle":"🟤","black_circle":"⚫","white_circle":"⚪","red_square":"🟥","orange_square":"🟧","yellow_square":"🟨","green_square":"🟩","blue_square":"🟦","purple_square":"🟪","brown_square":"🟫","black_large_square":"⬛","white_large_square":"⬜","black_medium_square":"◼️","white_medium_square":"◻️","black_medium_small_square":"◾","white_medium_small_square":"◽","black_small_square":"▪️","white_small_square":"▫️","large_orange_diamond":"🔶","large_blue_diamond":"🔷","small_orange_diamond":"🔸","small_blue_diamond":"🔹","small_red_triangle":"🔺","small_red_triangle_down":"🔻","diamond_shape_with_a_dot_inside":"💠","radio_button":"🔘","white_square_button":"🔳","black_square_button":"🔲","checkered_flag":"🏁","triangular_flag_on_post":"🚩","crossed_flags":"🎌","black_flag":"🏴","white_flag":"🏳️","rainbow_flag":"🏳️‍🌈","pirate_flag":"🏴‍☠️","ascension_island":"🇦🇨","andorra":"🇦🇩","united_arab_emirates":"🇦🇪","afghanistan":"🇦🇫","antigua_barbuda":"🇦🇬","anguilla":"🇦🇮","albania":"🇦🇱","armenia":"🇦🇲","angola":"🇦🇴","antarctica":"🇦🇶","argentina":"🇦🇷","american_samoa":"🇦🇸","austria":"🇦🇹","australia":"🇦🇺","aruba":"🇦🇼","aland_islands":"🇦🇽","azerbaijan":"🇦🇿","bosnia_herzegovina":"🇧🇦","barbados":"🇧🇧","bangladesh":"🇧🇩","belgium":"🇧🇪","burkina_faso":"🇧🇫","bulgaria":"🇧🇬","bahrain":"🇧🇭","burundi":"🇧🇮","benin":"🇧🇯","st_barthelemy":"🇧🇱","bermuda":"🇧🇲","brunei":"🇧🇳","bolivia":"🇧🇴","caribbean_netherlands":"🇧🇶","brazil":"🇧🇷","bahamas":"🇧🇸","bhutan":"🇧🇹","bouvet_island":"🇧🇻","botswana":"🇧🇼","belarus":"🇧🇾","belize":"🇧🇿","canada":"🇨🇦","cocos_islands":"🇨🇨","congo_kinshasa":"🇨🇩","central_african_republic":"🇨🇫","congo_brazzaville":"🇨🇬","switzerland":"🇨🇭","cote_divoire":"🇨🇮","cook_islands":"🇨🇰","chile":"🇨🇱","cameroon":"🇨🇲","cn":"🇨🇳","colombia":"🇨🇴","clipperton_island":"🇨🇵","costa_rica":"🇨🇷","cuba":"🇨🇺","cape_verde":"🇨🇻","curacao":"🇨🇼","christmas_island":"🇨🇽","cyprus":"🇨🇾","czech_republic":"🇨🇿","de":"🇩🇪","diego_garcia":"🇩🇬","djibouti":"🇩🇯","denmark":"🇩🇰","dominica":"🇩🇲","dominican_republic":"🇩🇴","algeria":"🇩🇿","ceuta_melilla":"🇪🇦","ecuador":"🇪🇨","estonia":"🇪🇪","egypt":"🇪🇬","western_sahara":"🇪🇭","eritrea":"🇪🇷","es":"🇪🇸","ethiopia":"🇪🇹","eu":"🇪🇺","european_union":"🇪🇺","finland":"🇫🇮","fiji":"🇫🇯","falkland_islands":"🇫🇰","micronesia":"🇫🇲","faroe_islands":"🇫🇴","fr":"🇫🇷","gabon":"🇬🇦","gb":"🇬🇧","uk":"🇬🇧","grenada":"🇬🇩","georgia":"🇬🇪","french_guiana":"🇬🇫","guernsey":"🇬🇬","ghana":"🇬🇭","gibraltar":"🇬🇮","greenland":"🇬🇱","gambia":"🇬🇲","guinea":"🇬🇳","guadeloupe":"🇬🇵","equatorial_guinea":"🇬🇶","greece":"🇬🇷","south_georgia_south_sandwich_islands":"🇬🇸","guatemala":"🇬🇹","guam":"🇬🇺","guinea_bissau":"🇬🇼","guyana":"🇬🇾","hong_kong":"🇭🇰","heard_mcdonald_islands":"🇭🇲","honduras":"🇭🇳","croatia":"🇭🇷","haiti":"🇭🇹","hungary":"🇭🇺","canary_islands":"🇮🇨","indonesia":"🇮🇩","ireland":"🇮🇪","israel":"🇮🇱","isle_of_man":"🇮🇲","india":"🇮🇳","british_indian_ocean_territory":"🇮🇴","iraq":"🇮🇶","iran":"🇮🇷","iceland":"🇮🇸","it":"🇮🇹","jersey":"🇯🇪","jamaica":"🇯🇲","jordan":"🇯🇴","jp":"🇯🇵","kenya":"🇰🇪","kyrgyzstan":"🇰🇬","cambodia":"🇰🇭","kiribati":"🇰🇮","comoros":"🇰🇲","st_kitts_nevis":"🇰🇳","north_korea":"🇰🇵","kr":"🇰🇷","kuwait":"🇰🇼","cayman_islands":"🇰🇾","kazakhstan":"🇰🇿","laos":"🇱🇦","lebanon":"🇱🇧","st_lucia":"🇱🇨","liechtenstein":"🇱🇮","sri_lanka":"🇱🇰","liberia":"🇱🇷","lesotho":"🇱🇸","lithuania":"🇱🇹","luxembourg":"🇱🇺","latvia":"🇱🇻","libya":"🇱🇾","morocco":"🇲🇦","monaco":"🇲🇨","moldova":"🇲🇩","montenegro":"🇲🇪","st_martin":"🇲🇫","madagascar":"🇲🇬","marshall_islands":"🇲🇭","macedonia":"🇲🇰","mali":"🇲🇱","myanmar":"🇲🇲","mongolia":"🇲🇳","macau":"🇲🇴","northern_mariana_islands":"🇲🇵","martinique":"🇲🇶","mauritania":"🇲🇷","montserrat":"🇲🇸","malta":"🇲🇹","mauritius":"🇲🇺","maldives":"🇲🇻","malawi":"🇲🇼","mexico":"🇲🇽","malaysia":"🇲🇾","mozambique":"🇲🇿","namibia":"🇳🇦","new_caledonia":"🇳🇨","niger":"🇳🇪","norfolk_island":"🇳🇫","nigeria":"🇳🇬","nicaragua":"🇳🇮","netherlands":"🇳🇱","norway":"🇳🇴","nepal":"🇳🇵","nauru":"🇳🇷","niue":"🇳🇺","new_zealand":"🇳🇿","oman":"🇴🇲","panama":"🇵🇦","peru":"🇵🇪","french_polynesia":"🇵🇫","papua_new_guinea":"🇵🇬","philippines":"🇵🇭","pakistan":"🇵🇰","poland":"🇵🇱","st_pierre_miquelon":"🇵🇲","pitcairn_islands":"🇵🇳","puerto_rico":"🇵🇷","palestinian_territories":"🇵🇸","portugal":"🇵🇹","palau":"🇵🇼","paraguay":"🇵🇾","qatar":"🇶🇦","reunion":"🇷🇪","romania":"🇷🇴","serbia":"🇷🇸","ru":"🇷🇺","rwanda":"🇷🇼","saudi_arabia":"🇸🇦","solomon_islands":"🇸🇧","seychelles":"🇸🇨","sudan":"🇸🇩","sweden":"🇸🇪","singapore":"🇸🇬","st_helena":"🇸🇭","slovenia":"🇸🇮","svalbard_jan_mayen":"🇸🇯","slovakia":"🇸🇰","sierra_leone":"🇸🇱","san_marino":"🇸🇲","senegal":"🇸🇳","somalia":"🇸🇴","suriname":"🇸🇷","south_sudan":"🇸🇸","sao_tome_principe":"🇸🇹","el_salvador":"🇸🇻","sint_maarten":"🇸🇽","syria":"🇸🇾","swaziland":"🇸🇿","tristan_da_cunha":"🇹🇦","turks_caicos_islands":"🇹🇨","chad":"🇹🇩","french_southern_territories":"🇹🇫","togo":"🇹🇬","thailand":"🇹🇭","tajikistan":"🇹🇯","tokelau":"🇹🇰","timor_leste":"🇹🇱","turkmenistan":"🇹🇲","tunisia":"🇹🇳","tonga":"🇹🇴","tr":"🇹🇷","trinidad_tobago":"🇹🇹","tuvalu":"🇹🇻","taiwan":"🇹🇼","tanzania":"🇹🇿","ukraine":"🇺🇦","uganda":"🇺🇬","us_outlying_islands":"🇺🇲","united_nations":"🇺🇳","us":"🇺🇸","uruguay":"🇺🇾","uzbekistan":"🇺🇿","vatican_city":"🇻🇦","st_vincent_grenadines":"🇻🇨","venezuela":"🇻🇪","british_virgin_islands":"🇻🇬","us_virgin_islands":"🇻🇮","vietnam":"🇻🇳","vanuatu":"🇻🇺","wallis_futuna":"🇼🇫","samoa":"🇼🇸","kosovo":"🇽🇰","yemen":"🇾🇪","mayotte":"🇾🇹","south_africa":"🇿🇦","zambia":"🇿🇲","zimbabwe":"🇿🇼","england":"🏴󠁧󠁢󠁥󠁮󠁧󠁿","scotland":"🏴󠁧󠁢󠁳󠁣󠁴󠁿","wales":"🏴󠁧󠁢󠁷󠁬󠁳󠁿"}')},function(e,t,a){"use strict";e.exports=function(e){return e<1e3?e.toString():(e/1e3).toFixed(2).slice(0,-1)+"k"}},function(e,t,a){"use strict";const n=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"];e.exports=function(e){const t=e>0?Math.floor(Math.log(e)/Math.log(1024)):0,a=parseFloat((e/Math.pow(1024,t)).toFixed(1));return"".concat(a," ").concat(n[t])}},function(e,t,a){"use strict";a(171),a(172),a(173),a(174),a(175),a(176),a(177),a(179),a(180),a(181),a(182),a(183),a(184),a(185),a(186),a(187),a(188),a(189),a(190),a(192),a(193),a(194),a(195)},function(e,t,a){"use strict";const n=a(5),s=a(1),i=a(11),o=a(6),r=a(12),{vueApp:l}=a(4);s.on("auth",function(e){if(o.serverHash>-1&&e.serverHash>-1&&e.serverHash!==o.serverHash)return s.disconnect(),l.isConnected=!1,l.currentUserVisibleError="Server restarted, reloading…",void location.reload(!0);const t=n("#sign-in");let a;e.serverHash>-1?(o.serverHash=e.serverHash,t.html(r.windows.sign_in()),o.togglePasswordField("#sign-in .reveal-password"),t.find("form").on("submit",function(){const e=n(this);e.find(".btn").prop("disabled",!0);const t={};return n.each(e.serializeArray(),function(e,a){t[a.name]=a.value}),i.set("user",t.user),s.emit("auth",t),!1})):t.find(".btn").prop("disabled",!1);const c=i.get("user");if(e.success){if(c&&(a=i.get("token"))){l.currentUserVisibleError="Authorizing…",n("#loading-page-message").text(l.currentUserVisibleError);let e=-1;for(const t of l.networks)for(const a of t.channels)for(const t of a.messages)t.id>e&&(e=t.id);s.emit("auth",{user:c,token:a,lastMessage:e})}}else{if(0===t.length)return s.disconnect(),l.isConnected=!1,l.currentUserVisibleError="Authentication failed, reloading…",void location.reload();i.remove("token");const e=t.find(".error");e.show().closest("form").one("submit",function(){e.hide()})}c&&t.find("input[name='user']").val(c),a||(n("#loading").remove(),n("#footer").find(".sign-in").trigger("click",{pushState:!1}))})},function(e,t,a){"use strict";const n=a(5);a(1).on("change-password",function(e){const t=n("#change-password");if(e.error||e.success){const a=e.success?e.success:e.error,n=t.find(".feedback");e.success?n.addClass("success").removeClass("error"):n.addClass("error").removeClass("success"),n.text(a).show(),n.closest("form").one("submit",function(){n.hide()})}t.find("input").val("").end().find(".btn").prop("disabled",!1)})},function(e,t,a){const n=a(19);a(1).on("commands",function(e){e&&(n.commands=e)})},function(e,t,a){"use strict";const n=a(5),s=a(55),i=a(1),o=a(26),r=a(60),l=n("#sidebar"),c=a(11),d=a(6),{vueApp:u,initChannel:h}=a(4);function p(e,t){for(let a=0;a<t.length;a++){const n=t[a],s=e.find(e=>e.id===n.id);if(s){for(const e in n)Object.prototype.hasOwnProperty.call(n,e)&&("users"!==e?"messages"===e&&s.messages&&n.messages.length<100?s.messages=s.messages.concat(n.messages):s[e]=n[e]:"channel"===n.type&&(n.usersOutdated=!0));t[a]=s}else h(n)}return t}i.on("init",function(e){u.currentUserVisibleError="Rendering…",n("#loading-page-message").text(u.currentUserVisibleError);const t=u.activeChannel&&u.activeChannel.channel.id;if(u.networks=function(e){const t=new Set(JSON.parse(c.get("thelounge.networks.collapsed")));for(let a=0;a<e.length;a++){const n=e[a],s=u.networks.find(e=>e.uuid===n.uuid);if(s){for(const e in n)Object.prototype.hasOwnProperty.call(n,e)&&("channels"===e?s.channels=p(s.channels,n.channels):s[e]=n[e]);e[a]=s}else n.isJoinChannelShown=!1,n.isCollapsed=t.has(n.uuid),n.channels.forEach(h)}return e}(e.networks),u.isConnected=!0,u.currentUserVisibleError=null,!u.initialized){u.initialized=!0,e.token&&c.set("token",e.token),o.configurePushNotifications(e.pushSubscription,e.applicationServerKey),r.enable();const t=n("#viewport"),a=n(window).outerWidth();let s=c.get("thelounge.state.userlist");a>d.mobileViewportPixels&&r.toggle("false"!==c.get("thelounge.state.sidebar")),a>=1024&&"true"!==s&&"false"!==s&&(s="true"),t.toggleClass("userlist-open","true"===s),n(document.body).removeClass("signed-out"),n("#loading").remove(),n("#sign-in").remove(),window.g_LoungeErrorHandler&&(window.removeEventListener("error",window.g_LoungeErrorHandler),window.g_LoungeErrorHandler=null)}u.$nextTick(()=>(function(e,t){let a=n();e>0&&(a=l.find('.chan[data-id="'.concat(e,'"]')));0===a.length&&window.location.hash&&(a=n('[data-target="'.concat(s(window.location.hash),'"]')).first());t>0&&0===a.length&&(a=l.find('.chan[data-id="'.concat(t,'"]')));0===a.length&&(a=l.find(".chan").first());if(a.length>0)return void a.trigger("click",{replaceHistory:!0});n("#footer .connect").trigger("click",{pushState:!1})})(t,e.active)),d.confirmExit(),d.synchronizeNotifiedState()})},function(e,t,a){"use strict";const n=a(5),s=a(1),{vueApp:i,initChannel:o}=a(4);s.on("join",function(e){o(e.chan),i.networks.find(t=>t.uuid===e.network).channels.splice(e.index||-1,0,e.chan),("query"!==e.chan.type||e.shouldOpen)&&i.$nextTick(()=>{n('#sidebar .chan[data-id="'.concat(e.chan.id,'"]')).trigger("click")})})},function(e,t,a){"use strict";const n=a(1),{vueApp:s,findChannel:i}=a(4);n.on("more",function(e){const t=i(e.chan);t&&(t.channel.moreHistoryAvailable=e.moreHistoryAvailable,t.channel.messages.unshift(...e.messages),s.$nextTick(()=>{t.channel.historyLoading=!1}))})},function(e,t,a){"use strict";const n=a(5),s=a(1),i=a(6),o=a(36),r=a(178),l=a(26),{vueApp:c,findChannel:d}=a(4);let u;try{(u=new Audio).src="audio/pop.wav"}catch(e){u={play:n.noop}}s.on("msg",function(e){const t=d(e.chan);if(!t)return;let a=t.channel;const s=c.activeChannel&&c.activeChannel.channel===a;e.msg.showInActive&&c.activeChannel&&c.activeChannel.network===t.network?(a=c.activeChannel.channel,e.chan=a.id):s||(void 0!==e.highlight&&(a.highlight=e.highlight),void 0!==e.unread&&(a.unread=e.unread)),a.messages.push(e.msg),e.msg.self?a.firstUnread=e.msg.id:function(e,t,a,s){const i=n("#sidebar .chan[data-id='"+e+"']");if((s.highlight||o.settings.notifyAllMessages&&"message"===s.type)&&(!document.hasFocus()||!a||a.channel!==t)){if(o.settings.notification)try{u.play()}catch(e){}if(o.settings.desktopNotifications&&"Notification"in window&&"granted"===Notification.permission){let a,n;"invite"===s.type?(a="New channel invite:",n=s.from.nick+" invited you to "+s.channel):(a=s.from.nick,"query"!==t.type&&(a+=" (".concat(t.name,")")),"message"===s.type&&(a+=" says:"),n=r(s.text));const o=Date.parse(s.time);try{if(l.hasServiceWorker)navigator.serviceWorker.ready.then(t=>{t.active.postMessage({type:"notification",chanId:e,timestamp:o,title:a,body:n})});else{const t=new Notification(a,{tag:"chan-".concat(e),badge:"img/icon-alerted-black-transparent-bg-72x72px.png",icon:"img/icon-alerted-grey-bg-192x192px.png",body:n,timestamp:o});t.addEventListener("click",function(){window.focus(),i.trigger("click"),this.close()})}}catch(e){}}}}(e.chan,a,c.activeChannel,e.msg);let h=0;if(s?a.scrolledToBottom&&(h=500):h=100,h>0&&a.messages.length>h&&(a.messages.splice(0,a.messages.length-h),a.moreHistoryAvailable=!0),("message"===e.msg.type||"action"===e.msg.type)&&"channel"===a.type){const t=a.users.find(t=>t.nick===e.msg.from.nick);t&&(t.lastMessage=new Date(e.msg.time).getTime()||Date.now())}(e.msg.self||e.msg.highlight)&&i.synchronizeNotifiedState()})},function(e,t,a){"use strict";const n=/\x02|\x1D|\x1F|\x16|\x0F|\x11|\x1E|\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?|\x04(?:[0-9a-f]{6}(?:,[0-9a-f]{6})?)?/gi;e.exports=e=>e.replace(n,"").trim()},function(e,t,a){"use strict";const n=a(1),{vueApp:s,findChannel:i}=a(4);n.on("msg:preview",function(e){const{channel:t}=i(e.chan),a=t.messages.find(t=>t.id===e.id);if(!a)return;const n=a.previews.findIndex(t=>t.link===e.preview.link);n>-1&&s.$set(a.previews,n,e.preview)})},function(e,t,a){"use strict";const n=a(5),s=a(1),{vueApp:i,findChannel:o}=a(4);s.on("msg:special",function(e){o(e.chan).channel.data=e.data,i.$nextTick(()=>{n('#sidebar .chan[data-id="'.concat(e.chan,'"]')).trigger("click")})})},function(e,t,a){"use strict";const n=a(1),{findChannel:s}=a(4);n.on("names",function(e){const t=s(e.id);t&&(t.channel.users=e.users)})},function(e,t,a){"use strict";const n=a(5),s=a(1),i=a(12),o=n("#sidebar"),r=a(6),{vueApp:l,initChannel:c,findChannel:d}=a(4);s.on("network",function(e){const t=e.networks[0];t.isJoinChannelShown=!1,t.isCollapsed=!1,t.channels.forEach(c),l.networks.push(t),l.$nextTick(()=>{o.find(".chan").last().trigger("click")}),n("#connect").find(".btn").prop("disabled",!1)}),s.on("network:options",function(e){l.networks.find(t=>t.uuid===e.network).serverOptions=e.serverOptions}),s.on("network:status",function(e){const t=l.networks.find(t=>t.uuid===e.network);t&&(t.status.connected=e.connected,t.status.secure=e.secure,e.connected||t.channels.forEach(e=>{e.users=[],e.state=0}))}),s.on("channel:state",function(e){const t=d(e.chan);t&&(t.channel.state=e.state)}),s.on("network:info",function(e){n("#connect").html(i.windows.connect(e)).find("form").on("submit",function(){const e=n(this).find("input[name=uuid]").val(),t=n(this).find("#connect\\:name").val(),a=l.networks.find(t=>t.uuid===e);a.name=a.channels[0].name=t,o.find('.network[data-uuid="'.concat(e,'"] .chan.lobby .name')).click()}),r.togglePasswordField("#connect .reveal-password")})},function(e,t,a){"use strict";const n=a(1),{vueApp:s}=a(4);n.on("nick",function(e){const t=s.networks.find(t=>t.uuid===e.network);t&&(t.nick=e.nick)})},function(e,t,a){"use strict";const n=a(1),s=a(6),{vueApp:i,findChannel:o}=a(4);n.on("open",function(e){if(e<1)return;if(i.activeChannel&&i.activeChannel.channel.id===e)return;const t=o(e);t&&(t.channel.highlight=0,t.channel.unread=0,t.channel.messages.length>0&&(t.channel.firstUnread=t.channel.messages[t.channel.messages.length-1].id)),s.synchronizeNotifiedState()})},function(e,t,a){"use strict";const n=a(5),s=a(1),i=a(6),{vueApp:o,findChannel:r}=a(4);s.on("part",function(e){o.activeChannel&&o.activeChannel.channel.id===e.chan&&n("#sidebar .chan[data-id='"+e.chan+"']").closest(".network").find(".lobby").trigger("click");const t=r(e.chan);t&&t.network.channels.splice(t.network.channels.findIndex(t=>t.id===e.chan),1),i.synchronizeNotifiedState()})},function(e,t,a){"use strict";const n=a(5),s=a(1),i=n("#sidebar"),{vueApp:o}=a(4);s.on("quit",function(e){o.networks.splice(o.networks.findIndex(t=>t.uuid===e.network),1),o.$nextTick(()=>{const e=i.find(".chan");0===e.length?n("#footer .connect").trigger("click",{pushState:!1}):e.eq(0).trigger("click")})})},function(e,t,a){"use strict";const n=a(1),{vueApp:s}=a(4);n.on("sync_sort",function(e){const t=e.order;switch(e.type){case"networks":s.networks.sort((e,a)=>t.indexOf(e.uuid)-t.indexOf(a.uuid));break;case"channels":{const a=s.networks.find(t=>t.uuid===e.target);if(!a)return;a.channels.sort((e,a)=>t.indexOf(e.id)-t.indexOf(a.id));break}}})},function(e,t,a){"use strict";const n=a(1),{findChannel:s}=a(4);n.on("topic",function(e){const t=s(e.chan);t&&(t.channel.topic=e.topic)})},function(e,t,a){"use strict";const n=a(1),{vueApp:s,findChannel:i}=a(4);n.on("users",function(e){if(s.activeChannel&&s.activeChannel.channel.id===e.chan)return n.emit("names",{target:e.chan});const t=i(e.chan);t&&(t.channel.usersOutdated=!0)})},function(e,t,a){"use strict";const n=a(1),s=a(61);n.on("sign-out",function(){s.signout()})},function(e,t,a){"use strict";e.exports={reload(){window.location.reload()}}},function(e,t,a){"use strict";const n=a(5),s=a(61),i=a(1),o=a(12);i.on("sessions:list",function(e){e.sort((e,t)=>t.lastUse-e.lastUse);let t="";e.forEach(e=>{e.current?n("#session-current").html(o.session(e)):t+=o.session(e)}),0===t.length&&(t="<p><em>You are not currently logged in to any other device.</em></p>"),n("#session-list").html(t)}),n("#settings").on("click",".remove-session",function(){const e=n(this).data("token");e?i.emit("sign-out",e):(i.emit("sign-out"),s.signout())})},function(e,t,a){"use strict";const n=a(5),s=a(1),i=a(12),o=a(36),r=a(26),l=n("#connect"),c=a(6),d=a(56),{vueApp:u}=a(4);window.addEventListener("beforeinstallprompt",e=>{n("#webapp-install-button").on("click",function(){e&&e.prompt&&e.prompt(),n(this).prop("hidden",!0)}).prop("hidden",!1),n("#native-app").prop("hidden",!1)}),s.on("configuration",function(e){if(u.isFileUploadEnabled=e.fileUpload,o.initialized)return void s.emit("setting:get");n("#settings").html(i.windows.settings(e)),n("#help").html(i.windows.help(e)),n("#changelog").html(i.windows.changelog()),n("#settings").on("show",()=>{n("#session-list").html("<p>Loading…</p>"),s.emit("sessions:get")}),n("#play").on("click",()=>{const e=new Audio;e.src="audio/pop.wav",e.play()}),e.fileUpload&&d.setMaxFileSize(e.fileUploadMaxFileSize),c.togglePasswordField("#change-password .reveal-password"),o.initialize(),r.initialize();const t=e.themes.find(e=>e.name===o.settings.theme);function a(){const e=n(this),t=e.data("event");e.find(".btn").prop("disabled",!0);const a={};return n.each(e.serializeArray(),function(e,t){""!==t.value&&(a[t.name]=t.value)}),s.emit(t,a),!1}if(void 0===t?o.processSetting("theme",e.defaultTheme,!0):t.themeColor&&(document.querySelector('meta[name="theme-color"]').content=t.themeColor),n("#change-password form").on("submit",a),l.on("submit","form",a),l.on("show",function(){l.html(i.windows.connect(e)).find("#connect\\:nick").on("focusin",function(){const e=n(this);e.data("lastvalue",e.val())}).on("input",function(){const e=n(this).val(),t=l.find(".username"),a=n(this).data("lastvalue");t.val()===a&&t.val(e),n(this).data("lastvalue",e)}),c.togglePasswordField("#connect .reveal-password")}),"URLSearchParams"in window){const t=new URLSearchParams(document.location.search);t.has("uri")?function(e,t){const a=Object.assign({},t.defaults);try{const s=new URL(e);if("irc:"===s.protocol)s.protocol="http:",s.port||(s.port=6667),a.tls=!1;else{if("ircs:"!==s.protocol)return;s.protocol="https:",s.port||(s.port=6697),a.tls=!0}a.host=a.name=s.hostname,a.port=s.port,a.username=window.decodeURIComponent(s.username)||a.username,a.password=window.decodeURIComponent(s.password)||a.password;let i=(s.pathname+s.hash).substr(1);const o=i.indexOf(",");o>-1&&(i=i.substring(0,o)),a.join=i,t.defaults=a,n('button[data-target="#connect"]').trigger("click")}catch(e){}}(t.get("uri")+location.hash,e):n(document.body).hasClass("public")&&function(e,t){for(let[a,n]of e)if("channels"===a&&(a="join"),Object.prototype.hasOwnProperty.call(t.defaults,a)&&(!t.lockNetwork||!["host","port","tls","rejectUnauthorized"].includes(a))&&(t.displayNetwork||"name"!==a))switch("join"===a&&(n=n.split(",").map(e=>e.match(/^[#&!+]/)?e:"#".concat(e)).join(", ")),typeof t.defaults[a]){case"boolean":t.defaults[a]="1"===n||"true"===n;break;case"number":t.defaults[a]=Number(n);break;case"string":t.defaults[a]=String(n)}}(t,e)}})},function(e,t,a){"use strict";const n=a(5),s=a(1),i=a(12);function o(){n("#version-checker").is(":empty")&&(r({status:"loading"}),s.emit("changelog"))}function r({status:e,latest:t}){n("#version-checker").prop("class",e).html(i.version_checker({latest:t,status:e}))}s.on("changelog",function(e){n("#changelog").html(i.windows.changelog(e.current));const t=n("#changelog .changelog-text a");let a;t.prop("target","_blank"),t.has("img").addClass("toggle-thumbnail"),a=e.latest?"new-version":e.packages?"new-packages":e.current.changelog?"up-to-date":"error",r({latest:e.latest,status:a}),e.expiresAt&&setTimeout(()=>n("#version-checker #check-now").show(),e.expiresAt-Date.now())}),n("#help, #changelog").on("show",o),n("#help").on("click","#check-now",()=>{n("#version-checker").empty(),o()})},function(e,t,a){"use strict";const n=a(1),s=a(36);function i(e,t){s.settings.syncSettings&&s.settings[e]!==t&&!s.noSync.includes(e)?s.processSetting(e,t,!0):s.alwaysSync.includes(e)&&s.processSetting(e,t,!0)}n.on("setting:new",function(e){i(e.name,e.value)}),n.on("setting:all",function(e){if(0===Object.keys(e).length)s.syncAllSettings();else for(const t in e)i(t,e[t])})},function(e,t,a){"use strict";const n=a(5),s=a(1),i=a(6),o=a(197),r=[],l=[],{vueApp:c,findChannel:d}=a(4);function u(e){e.check=e.check||(()=>!0),e.actionId=r.push(e.callback)-1,l.push(e)}function h(e){e.check=e.check||(()=>!0),e.divider=!0,l.push(e)}e.exports={addContextMenuItem:u,createContextMenu:function(e,t){return new o(l,r,e,t)}},u({check:e=>e.hasClass("chan"),className:e=>e.hasClass("lobby")?"network":e.hasClass("query")?"query":"chan",displayName:e=>e.attr("data-name")||e.attr("aria-label"),data:e=>e.attr("data-target"),callback:function(e){n('.networks .chan[data-target="'.concat(e,'"]')).click()}}),h({check:e=>e.hasClass("chan")}),function(){function e(e){const t=i.findCurrentNetworkChan(e);t&&n('#sidebar .chan[data-id="'.concat(t.id,'"]')).trigger("click"),s.emit("input",{target:Number(n("#chat").attr("data-id")),text:"/whois "+e})}u({check:e=>e.hasClass("user"),className:"user",displayName:e=>e.attr("data-name"),data:e=>e.attr("data-name"),callback:e}),h({check:e=>e.hasClass("user")}),u({check:e=>e.hasClass("user")||e.hasClass("query"),className:"action-whois",displayName:"User information",data:e=>e.attr("data-name")||e.attr("aria-label"),callback:e})}(),u({check:e=>e.hasClass("user"),className:"action-query",displayName:"Direct messages",data:e=>e.attr("data-name"),callback:function(e){const t=i.findCurrentNetworkChan(e);t&&n('#sidebar .chan[data-id="'.concat(t.id,'"]')).trigger("click"),s.emit("input",{target:Number(n("#chat").attr("data-id")),text:"/query "+e})}}),u({check:e=>i.hasRoleInChannel(e.closest(".chan"),["op"])&&"channel"===e.closest(".chan").attr("data-type"),className:"action-kick",displayName:"Kick",data:e=>e.attr("data-name"),callback:function(e){s.emit("input",{target:Number(n("#chat").attr("data-id")),text:"/kick "+e})}}),u({check:e=>i.hasRoleInChannel(e.closest(".chan"),["op"])&&!i.hasRoleInChannel(e.closest(".chan"),["op"],e.attr("data-name")),className:"action-op",displayName:"Give operator (+o)",data:e=>e.attr("data-name"),callback:function(e){s.emit("input",{target:Number(n("#chat").attr("data-id")),text:"/op "+e})}}),u({check:e=>i.hasRoleInChannel(e.closest(".chan"),["op"])&&i.hasRoleInChannel(e.closest(".chan"),["op"],e.attr("data-name")),className:"action-op",displayName:"Revoke operator (-o)",data:e=>e.attr("data-name"),callback:function(e){s.emit("input",{target:Number(n("#chat").attr("data-id")),text:"/deop "+e})}}),u({check:e=>i.hasRoleInChannel(e.closest(".chan"),["op"])&&!i.hasRoleInChannel(e.closest(".chan"),["voice"],e.attr("data-name")),className:"action-voice",displayName:"Give voice (+v)",data:e=>e.attr("data-name"),callback:function(e){s.emit("input",{target:Number(n("#chat").attr("data-id")),text:"/voice "+e})}}),u({check:e=>i.hasRoleInChannel(e.closest(".chan"),["op"])&&i.hasRoleInChannel(e.closest(".chan"),["voice"],e.attr("data-name")),className:"action-voice",displayName:"Revoke voice (-v)",data:e=>e.attr("data-name"),callback:function(e){s.emit("input",{target:Number(n("#chat").attr("data-id")),text:"/devoice "+e})}}),u({check:e=>e.hasClass("lobby"),className:"edit",displayName:"Edit this network…",data:e=>e.closest(".network").attr("data-uuid"),callback:function(e){s.emit("network:get",e),n('button[data-target="#connect"]').trigger("click")}}),u({check:e=>e.hasClass("lobby"),className:"join",displayName:"Join a channel…",data:e=>e.attr("data-id"),callback:function(e){d(Number(e)).network.isJoinChannelShown=!0}}),u({check:e=>e.hasClass("lobby"),className:"list",displayName:"List all channels",data:e=>e.attr("data-id"),callback:function(e){s.emit("input",{target:parseInt(e,10),text:"/list"})}}),u({check:e=>e.hasClass("channel"),className:"edit",displayName:"Edit topic",data:e=>e.attr("data-id"),callback:function(e){d(Number(e)).channel.editTopic=!0,document.querySelector('#sidebar .chan[data-id="'.concat(Number(e),'"]')).click(),c.$nextTick(()=>{document.querySelector("#chan-".concat(Number(e)," .topic-input")).focus()})}}),u({check:e=>e.hasClass("channel"),className:"list",displayName:"List banned users",data:e=>e.attr("data-id"),callback:function(e){s.emit("input",{target:parseInt(e,10),text:"/banlist"})}}),u({check:e=>e.hasClass("lobby"),className:"list",displayName:"List ignored users",data:e=>e.attr("data-id"),callback:function(e){s.emit("input",{target:parseInt(e,10),text:"/ignorelist"})}}),u({check:e=>e.hasClass("lobby")&&e.parent().hasClass("not-connected"),className:"connect",displayName:"Connect",data:e=>e.attr("data-id"),callback:function(e){s.emit("input",{target:Number(e),text:"/connect"})}}),u({check:e=>e.hasClass("lobby")&&!e.parent().hasClass("not-connected"),className:"disconnect",displayName:"Disconnect",data:e=>e.attr("data-id"),callback:function(e){s.emit("input",{target:Number(e),text:"/disconnect"})}}),u({check:e=>e.hasClass("chan"),className:"close",displayName:function(e){return e.hasClass("lobby")?"Remove":e.hasClass("channel")?"Leave":"Close"},data:e=>e.attr("data-target"),callback:e=>i.closeChan(n('.networks .chan[data-target="'.concat(e,'"]')))})},function(e,t,a){"use strict";const n=a(5),s=a(20),i=a(12),o=n("#context-menu-container");e.exports=class{constructor(e,t,a,n){this.previousActiveElement=document.activeElement,this.contextMenuItems=e,this.contextMenuActions=t,this.selectedElement=a,this.event=n}show(){const e=function(e,t,a){const s=n(a.currentTarget),r=n("<ul>",{id:"context-menu",role:"menu"});for(const t of e)t.check(s)&&(t.divider?r.append(i.contextmenu_divider()):r.append(i.contextmenu_item({class:"function"==typeof t.className?t.className(s):t.className,action:t.actionId,text:"function"==typeof t.displayName?t.displayName(s):t.displayName,data:"function"==typeof t.data?t.data(s):t.data})));return o.html(r).show(),r.css(function(e,t,a){let n;const s=e.outerWidth(),i=e.outerHeight();return t.hasClass("menu")?((n=t.offset()).left-=s-t.outerWidth(),n.top+=t.outerHeight(),n):(n={left:a.pageX,top:a.pageY},window.innerWidth-n.left<s&&(n.left=window.innerWidth-s),window.innerHeight-n.top<i&&(n.top=window.innerHeight-i),n)}(r,t,a)).find(".context-menu-item:first-child").trigger("focus"),r}(this.contextMenuItems,this.selectedElement,this.event);return this.bindEvents(e),!1}hide(){o.hide().empty().off(".contextMenu"),s.unbind("escape")}bindEvents(e){const t=this.contextMenuActions;t.execute=(e,...a)=>t[e]&&t[e](...a);const a=e=>{const a=e.attr("data-data"),n=e.attr("data-action");this.hide(),t.execute(n,a)};e.on("click",".context-menu-item",function(){a(n(this))});const i=s(e.get(0));i.bind(["up","down"],(t,a)=>{const s=e.find(".context-menu-item");let i=s.toArray().findIndex(e=>n(e).is(":focus"));i="down"===a?(i+1)%s.length:Math.max(i,0)-1,s.eq(i).trigger("focus")}),i.bind("enter",()=>{const t=e.find(".context-menu-item:focus");return t.length&&a(t),!1}),o.on("click.contextMenu contextmenu.contextMenu",e=>{if("context-menu"!==n(e.target).prop("id"))return this.hide(),!1}),s.bind("escape",()=>(this.hide(),n(this.previousActiveElement).trigger("focus"),!1))}}},function(e,t,a){"use strict";const n=a(5),s=a(20),i=a(6),{vueApp:o}=a(4);s.bind(["alt+up","alt+down"],function(e,t){const a=n("#sidebar").find(".chan").not(".network.collapsed :not(.lobby)"),s=a.index(a.filter(".active"));let o;switch(t.split("+").pop()){case"up":o=(a.length+(s-1+a.length))%a.length;break;case"down":o=(a.length+(s+1+a.length))%a.length}return o=a.eq(o).click(),i.scrollIntoViewNicely(o[0]),!1}),s.bind(["alt+shift+up","alt+shift+down"],function(e,t){const a=n("#sidebar"),s=a.find(".lobby"),o=t.split("+").pop();let r,l=s.index(s.filter(".active"));switch(o){case"up":r=l<0?s.index(a.find(".channel").filter(".active").siblings(".lobby")[0]):(s.length+(l-1+s.length))%s.length;break;case"down":l<0&&(l=s.index(a.find(".channel").filter(".active").siblings(".lobby")[0])),r=(s.length+(l+1+s.length))%s.length}return r=s.eq(r).click(),i.scrollIntoViewNicely(r[0]),!1}),s.bind(["alt+a"],function(){let e;e:for(const t of o.networks)for(const a of t.channels){if(a.highlight){e=a;break e}a.unread&&!e&&(e=a)}return e&&n('#sidebar .chan[data-id="'.concat(e.id,'"]')).trigger("click"),!1});const r={8:!0,9:!0,12:!0,16:!0,17:!0,18:!0,19:!0,20:!0,27:!0,35:!0,36:!0,37:!0,38:!0,39:!0,40:!0,45:!0,46:!0,112:!0,113:!0,114:!0,115:!0,116:!0,117:!0,118:!0,119:!0,120:!0,121:!0,122:!0,123:!0,144:!0,145:!0,224:!0};n(document).on("keydown",e=>{if(e.altKey||r[e.which])return;if((e.ctrlKey||e.metaKey)&&86!==e.which)return;if(33===e.which||34===e.which)return void n("#windows .window.active .chan.active .chat").trigger("focus");const t=e.target.tagName;if("INPUT"===t||"TEXTAREA"===t)return;const a=n("#input");if(13===e.which)return a.trigger("focus"),!1;a.trigger("focus")})},,function(e,t,a){"use strict";a.r(t);var n=a(62),s=a.n(n),i={name:"ChannelWrapper",props:{network:Object,channel:Object,activeChannel:Object},methods:{getAriaLabel(){const e=[];return this.channel.unread>0&&e.push("".concat(this.channel.unread," unread")),this.channel.highlight>0&&e.push("".concat(this.channel.highlight," mention")),e.length>0?"".concat(this.channel.name," (").concat(e.join(", "),")"):this.channel.name}}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return!e.network.isCollapsed||e.channel.highlight||"lobby"===e.channel.type||e.activeChannel&&e.channel===e.activeChannel.channel?a("div",{class:["chan",e.channel.type,{active:e.activeChannel&&e.channel===e.activeChannel.channel},{"parted-channel":"channel"===e.channel.type&&0===e.channel.state}],attrs:{"aria-label":e.getAriaLabel(),title:e.getAriaLabel(),"data-id":e.channel.id,"data-target":"#chan-"+e.channel.id,"data-name":e.channel.name,"aria-controls":"#chan-"+e.channel.id,"aria-selected":e.activeChannel&&e.channel===e.activeChannel.channel,role:"tab"}},[e._t("default",null,{network:e.network,channel:e.channel,activeChannel:e.activeChannel})],2):e._e()},[],!1,null,null,null).exports;const l=a(11);var c={name:"Channel",components:{ChannelWrapper:r},props:{activeChannel:Object,network:Object,isJoinChannelShown:Boolean},computed:{channel(){return this.network.channels[0]},joinChannelLabel(){return this.isJoinChannelShown?"Cancel":"Join a channel…"}},methods:{onCollapseClick(){const e=new Set(JSON.parse(l.get("thelounge.networks.collapsed")));this.network.isCollapsed=!this.network.isCollapsed,this.network.isCollapsed?e.add(this.network.uuid):e.delete(this.network.uuid),l.set("thelounge.networks.collapsed",JSON.stringify([...e]))},getExpandLabel:e=>e.isCollapsed?"Expand":"Collapse"}},d=Object(o.a)(c,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ChannelWrapper",{attrs:{network:e.network,channel:e.channel,"active-channel":e.activeChannel}},[e.network.channels.length>1?a("button",{staticClass:"collapse-network",attrs:{"aria-controls":"network-"+e.network.uuid,"aria-label":e.getExpandLabel(e.network),"aria-expanded":!e.network.isCollapsed},on:{click:function(t){return t.stopPropagation(),e.onCollapseClick(t)}}},[a("span",{staticClass:"collapse-network-icon"})]):a("span",{staticClass:"collapse-network"}),a("div",{staticClass:"lobby-wrap"},[a("span",{staticClass:"name",attrs:{title:e.channel.name}},[e._v(e._s(e.channel.name))]),e.network.status.connected&&!e.network.status.secure?a("span",{staticClass:"not-secure-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Insecure connection"}},[a("span",{staticClass:"not-secure-icon"})]):e._e(),e.network.status.connected?e._e():a("span",{staticClass:"not-connected-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Disconnected"}},[a("span",{staticClass:"not-connected-icon"})]),e.channel.unread?a("span",{staticClass:"badge",class:{highlight:e.channel.highlight}},[e._v(e._s(e._f("roundBadgeNumber")(e.channel.unread)))]):e._e()]),a("span",{staticClass:"add-channel-tooltip tooltipped tooltipped-w tooltipped-no-touch",attrs:{"aria-label":e.joinChannelLabel}},[a("button",{class:["add-channel",{opened:e.isJoinChannelShown}],attrs:{"aria-controls":"join-channel-"+e.channel.id,"aria-label":e.joinChannelLabel},on:{click:function(t){return t.stopPropagation(),e.$emit("toggleJoinChannel")}}})])])},[],!1,null,null,null).exports,u={name:"Channel",components:{ChannelWrapper:r},props:{activeChannel:Object,network:Object,channel:Object}},h=Object(o.a)(u,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ChannelWrapper",{attrs:{network:e.network,channel:e.channel,"active-channel":e.activeChannel}},[a("span",{staticClass:"name"},[e._v(e._s(e.channel.name))]),e.channel.unread?a("span",{staticClass:"badge",class:{highlight:e.channel.highlight}},[e._v(e._s(e._f("roundBadgeNumber")(e.channel.unread)))]):e._e(),"channel"===e.channel.type?[0===e.channel.state?a("span",{staticClass:"parted-channel-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Not currently joined"}},[a("span",{staticClass:"parted-channel-icon"})]):e._e(),a("span",{staticClass:"close-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Leave"}},[a("button",{staticClass:"close",attrs:{"aria-label":"Leave"}})])]:[a("span",{staticClass:"close-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Close"}},[a("button",{staticClass:"close",attrs:{"aria-label":"Close"}})])]],2)},[],!1,null,null,null).exports,p=a(1),m=a.n(p),g={name:"JoinChannel",directives:{focus:{inserted(e){e.focus()}}},props:{network:Object,channel:Object},data:()=>({inputChannel:"",inputPassword:""}),methods:{onSubmit(){const e=this.inputChannel.toLowerCase(),t=this.network.channels.find(t=>t.name.toLowerCase()===e);if(t){a(5)('#sidebar .chan[data-id="'.concat(t.id,'"]')).trigger("click")}else m.a.emit("input",{text:"/join ".concat(this.inputChannel," ").concat(this.inputPassword),target:this.channel.id});this.inputChannel="",this.inputPassword="",this.$emit("toggleJoinChannel")}}},f={name:"NetworkList",components:{JoinChannel:Object(o.a)(g,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("form",{staticClass:"join-form",attrs:{id:"join-channel-"+e.channel.id,method:"post",action:"",autocomplete:"off"},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:(t.preventDefault(),e.$emit("toggleJoinChannel"))},submit:function(t){return t.preventDefault(),e.onSubmit(t)}}},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.inputChannel,expression:"inputChannel"},{name:"focus",rawName:"v-focus"}],staticClass:"input",attrs:{type:"text",name:"channel",placeholder:"Channel",pattern:"[^\\s]+",maxlength:"200",title:"The channel name may not contain spaces",required:""},domProps:{value:e.inputChannel},on:{input:function(t){t.target.composing||(e.inputChannel=t.target.value)}}}),a("input",{directives:[{name:"model",rawName:"v-model",value:e.inputPassword,expression:"inputPassword"}],staticClass:"input",attrs:{type:"password",name:"key",placeholder:"Password (optional)",pattern:"[^\\s]+",maxlength:"200",title:"The channel password may not contain spaces",autocomplete:"new-password"},domProps:{value:e.inputPassword},on:{input:function(t){t.target.composing||(e.inputPassword=t.target.value)}}}),a("button",{staticClass:"btn btn-small",attrs:{type:"submit"}},[e._v("Join")])])},[],!1,null,null,null).exports,NetworkLobby:d,Channel:h,Draggable:s.a},props:{activeChannel:Object,networks:Array},methods:{isCurrentlyInTouch:e=>"mouse"!==e.pointerType,onDragStart(e){e.target.classList.add("ui-sortable-active")},onDragEnd(e){e.target.classList.remove("ui-sortable-active")},onNetworkSort(e){e.moved&&m.a.emit("sort",{type:"networks",order:this.networks.map(e=>e.uuid)})},onChannelSort(e){if(!e.moved)return;const{findChannel:t}=a(4),n=t(e.moved.element.id);n&&m.a.emit("sort",{type:"channels",target:n.network.uuid,order:n.network.channels.map(e=>e.id)})}}},b=Object(o.a)(f,function(){var e=this,t=e.$createElement,a=e._self._c||t;return 0===e.networks.length?a("div",{staticClass:"empty"},[e._v("\n\tYou are not connected to any networks yet.\n")]):a("Draggable",{staticClass:"networks",attrs:{list:e.networks,filter:e.isCurrentlyInTouch,"prevent-on-filter":!1,handle:".lobby",draggable:".network","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragged",group:"networks"},on:{change:e.onNetworkSort,start:e.onDragStart,end:e.onDragEnd}},e._l(e.networks,function(t){return a("div",{key:t.uuid,staticClass:"network",class:{collapsed:t.isCollapsed,"not-connected":!t.status.connected,"not-secure":!t.status.secure},attrs:{id:"network-"+t.uuid,"data-uuid":t.uuid,"data-nick":t.nick,role:"region"}},[a("NetworkLobby",{attrs:{network:t,"active-channel":e.activeChannel,"is-join-channel-shown":t.isJoinChannelShown},on:{toggleJoinChannel:function(e){t.isJoinChannelShown=!t.isJoinChannelShown}}}),t.isJoinChannelShown?a("JoinChannel",{attrs:{network:t,channel:t.channels[0]},on:{toggleJoinChannel:function(e){t.isJoinChannelShown=!t.isJoinChannelShown}}}):e._e(),a("Draggable",{staticClass:"channels",attrs:{draggable:".chan","ghost-class":"ui-sortable-ghost","drag-class":"ui-sortable-dragged",group:t.uuid,filter:e.isCurrentlyInTouch,"prevent-on-filter":!1,list:t.channels},on:{change:e.onChannelSort,start:e.onDragStart,end:e.onDragEnd}},e._l(t.channels,function(n,s){return s>0?a("Channel",{key:n.id,attrs:{channel:n,network:t,"active-channel":e.activeChannel}}):e._e()}),1)],1)}),0)},[],!1,null,null,null).exports,v=a(3),w=a(2),_={name:"LinkPreview",props:{link:Object,keepScrollPosition:Function},data:()=>({showMoreButton:!1,isContentShown:!1}),computed:{moreButtonLabel(){return this.isContentShown?"Less":"More"}},watch:{"link.type"(){this.updateShownState(),this.onPreviewUpdate()}},created(){this.updateShownState()},mounted(){this.$root.$on("resize",this.handleResize),this.onPreviewUpdate()},beforeDestroy(){this.$root.$off("resize",this.handleResize)},destroyed(){this.link.canDisplay=!1},methods:{onPreviewUpdate(){"loading"!==this.link.type&&("error"===this.link.type&&this.onPreviewReady(),"link"!==this.link.type||this.link.thumb||this.onPreviewReady())},onPreviewReady(){this.$set(this.link,"canDisplay",!0),this.keepScrollPosition(),"link"===this.link.type&&this.handleResize()},onThumbnailError(){this.link.thumb="",this.onPreviewReady()},onMoreClick(){this.isContentShown=!this.isContentShown,this.keepScrollPosition()},handleResize(){this.$nextTick(()=>{this.$refs.content&&(this.showMoreButton=this.$refs.content.offsetWidth>=this.$refs.container.offsetWidth)})},updateShownState(){let e=!0;switch(this.link.type){case"error":e="image-too-big"===this.link.error?this.$root.settings.media:this.$root.settings.links;break;case"loading":e=!1;break;case"link":e=this.$root.settings.links;break;default:e=this.$root.settings.media}this.link.shown=this.link.shown&&e}}},k=Object(o.a)(_,function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.link.shown?a("div",{directives:[{name:"show",rawName:"v-show",value:e.link.canDisplay,expression:"link.canDisplay"}],ref:"container",staticClass:"preview"},[a("div",{ref:"content",class:["toggle-content","toggle-type-"+e.link.type,{opened:e.isContentShown}]},["link"===e.link.type?[e.link.thumb?a("a",{staticClass:"toggle-thumbnail",attrs:{href:e.link.link,target:"_blank",rel:"noopener"}},[a("img",{staticClass:"thumb",attrs:{src:e.link.thumb,decoding:"async",alt:""},on:{error:e.onThumbnailError,abort:e.onThumbnailError,load:e.onPreviewReady}})]):e._e(),a("div",{staticClass:"toggle-text"},[a("div",{staticClass:"head"},[a("div",{staticClass:"overflowable"},[a("a",{attrs:{href:e.link.link,title:e.link.head,target:"_blank",rel:"noopener"}},[e._v(e._s(e.link.head))])]),e.showMoreButton?a("button",{staticClass:"more",attrs:{"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel},on:{click:e.onMoreClick}},[a("span",{staticClass:"more-caret"})]):e._e()]),a("div",{staticClass:"body overflowable"},[a("a",{attrs:{href:e.link.link,title:e.link.body,target:"_blank",rel:"noopener"}},[e._v(e._s(e.link.body))])])])]:"image"===e.link.type?[a("a",{staticClass:"toggle-thumbnail",attrs:{href:e.link.link,target:"_blank",rel:"noopener"}},[a("img",{attrs:{src:e.link.thumb,decoding:"async",alt:""},on:{load:e.onPreviewReady}})])]:"video"===e.link.type?[a("video",{attrs:{preload:"metadata",controls:""},on:{canplay:e.onPreviewReady}},[a("source",{attrs:{src:e.link.media,type:e.link.mediaType}})])]:"audio"===e.link.type?[a("audio",{attrs:{controls:"",preload:"metadata"},on:{canplay:e.onPreviewReady}},[a("source",{attrs:{src:e.link.media,type:e.link.mediaType}})])]:"error"===e.link.type?["image-too-big"===e.link.error?a("em",[e._v("\n\t\t\t\tThis image is larger than "+e._s(e._f("friendlysize")(e.link.maxSize))+" and cannot be\n\t\t\t\tpreviewed.\n\t\t\t\t"),a("a",{attrs:{href:e.link.link,target:"_blank",rel:"noopener"}},[e._v("Click here")]),e._v("\n\t\t\t\tto open it in a new window.\n\t\t\t")]):"message"===e.link.error?[a("div",[a("em",[e._v("\n\t\t\t\t\t\tA preview could not be loaded.\n\t\t\t\t\t\t"),a("a",{attrs:{href:e.link.link,target:"_blank",rel:"noopener"}},[e._v("Click here")]),e._v("\n\t\t\t\t\t\tto open it in a new window.\n\t\t\t\t\t")]),a("br"),a("pre",{staticClass:"prefetch-error"},[e._v(e._s(e.link.message))])]),a("button",{staticClass:"more",attrs:{"aria-expanded":e.isContentShown,"aria-label":e.moreButtonLabel},on:{click:e.onMoreClick}},[a("span",{staticClass:"more-caret"})])]:e._e()]:e._e()],2)]):e._e()},[],!1,null,null,null).exports,y=a(18),C=a.n(y);const x=a(33),S=a(19);C.a.ParsedMessage=v.a,C.a.LinkPreview=k,C.a.Username=w.a;var j={name:"Message",components:C.a,props:{message:Object,network:Object,keepScrollPosition:Function},computed:{messageTime(){const e=this.$root.settings.showSeconds?S.timeFormats.msgWithSeconds:S.timeFormats.msgDefault;return x(this.message.time).format(e)},messageComponent(){return"message-"+this.message.type}},mounted(){a(127)},methods:{isAction(){return void 0!==C.a["message-"+this.message.type]}}},M=Object(o.a)(j,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:["msg",e.message.type,{self:e.message.self,highlight:e.message.highlight}],attrs:{id:"msg-"+e.message.id,"data-from":e.message.from&&e.message.from.nick}},[a("span",{staticClass:"time tooltipped tooltipped-e",attrs:{"aria-label":e._f("localetime")(e.message.time)}},[e._v(e._s(e.messageTime)+"\n\t")]),"unhandled"===e.message.type?[a("span",{staticClass:"from"},[e._v("["+e._s(e.message.command)+"]")]),a("span",{staticClass:"content"},e._l(e.message.params,function(t,n){return a("span",{key:n},[e._v(e._s(t)+" ")])}),0)]:e.isAction()?[e._m(0),a(e.messageComponent,{tag:"Component",attrs:{network:e.network,message:e.message}})]:"action"===e.message.type?[e._m(1),a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),e._v(" "),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._l(e.message.previews,function(t){return a("LinkPreview",{key:t.link,attrs:{"keep-scroll-position":e.keepScrollPosition,link:t}})})],2)]:["message"===e.message.type?a("span",{staticClass:"from"},[e.message.from&&e.message.from.nick?[a("span",{staticClass:"only-copy"},[e._v("<")]),a("Username",{attrs:{user:e.message.from}}),a("span",{staticClass:"only-copy"},[e._v("> ")])]:e._e()],2):a("span",{staticClass:"from"},[e.message.from&&e.message.from.nick?[a("span",{staticClass:"only-copy"},[e._v("-")]),a("Username",{attrs:{user:e.message.from}}),a("span",{staticClass:"only-copy"},[e._v("- ")])]:e._e()],2),a("span",{staticClass:"content"},[a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._l(e.message.previews,function(t){return a("LinkPreview",{key:t.link,attrs:{"keep-scroll-position":e.keepScrollPosition,link:t}})})],2)]],2)},[function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"from"},[t("span",{staticClass:"only-copy"},[this._v("*** ")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"from"},[t("span",{staticClass:"only-copy"},[this._v("* ")])])}],!1,null,null,null).exports;const O=a(19);var E={name:"MessageCondensed",components:{Message:M},props:{network:Object,messages:Array,keepScrollPosition:Function},data:()=>({isCollapsed:!0}),computed:{condensedText(){const e={};O.condensedTypes.forEach(t=>{e[t]=0});for(const t of this.messages)e[t.type]++;e.part+=e.quit;const t=[];O.condensedTypes.forEach(a=>{if(e[a])switch(a){case"away":t.push(e[a]+(e[a]>1?" users have gone away":" user has gone away"));break;case"back":t.push(e[a]+(e[a]>1?" users have come back":" user has come back"));break;case"chghost":t.push(e[a]+(e[a]>1?" users have changed hostname":" user has changed hostname"));break;case"join":t.push(e[a]+(e[a]>1?" users have joined":" user has joined"));break;case"part":t.push(e[a]+(e[a]>1?" users have left":" user has left"));break;case"nick":t.push(e[a]+(e[a]>1?" users have changed nick":" user has changed nick"));break;case"kick":t.push(e[a]+(e[a]>1?" users were kicked":" user was kicked"));break;case"mode":t.push(e[a]+(e[a]>1?" modes were set":" mode was set"))}});let a=t.pop();return t.length&&(a=t.join(", ")+", and "+a),a}},methods:{onCollapseClick(){this.isCollapsed=!this.isCollapsed,this.keepScrollPosition()}}},T=Object(o.a)(E,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:["msg","condensed",{closed:e.isCollapsed}]},[a("div",{staticClass:"condensed-summary"},[a("span",{staticClass:"time"}),a("span",{staticClass:"from"}),a("span",{staticClass:"content",on:{click:e.onCollapseClick}},[e._v(e._s(e.condensedText)),a("button",{staticClass:"toggle-button",attrs:{"aria-label":"Toggle status messages"}})])]),e._l(e.messages,function(t){return a("Message",{key:t.id,attrs:{network:e.network,message:t}})})],2)},[],!1,null,null,null).exports;const N=a(33);var P={name:"DateMarker",props:{message:Object},computed:{localeDate(){return N(this.message.time).format("D MMMM YYYY")}},mounted(){this.hoursPassed()<48&&this.$root.$on("daychange",this.dayChange)},beforeDestroy(){this.$root.$off("daychange",this.dayChange)},methods:{hoursPassed(){return(Date.now()-Date.parse(this.message.time))/36e5},dayChange(){this.$forceUpdate(),this.hoursPassed()>=48&&this.$root.$off("daychange",this.dayChange)},friendlyDate(){return N(this.message.time).calendar(null,{sameDay:"[Today]",lastDay:"[Yesterday]",lastWeek:"D MMMM YYYY",sameElse:"D MMMM YYYY"})}}},U=Object(o.a)(P,function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"date-marker-container tooltipped tooltipped-s",attrs:{"aria-label":this.localeDate}},[t("div",{staticClass:"date-marker"},[t("span",{staticClass:"date-marker-text",attrs:{"data-label":this.friendlyDate()}})])])},[],!1,null,null,null).exports;a(123);const A=a(19),L=a(124);var z={name:"MessageList",components:{Message:M,MessageCondensed:T,DateMarker:U},props:{network:Object,channel:Object},computed:{condensedMessages(){if("channel"!==this.channel.type)return this.channel.messages;if("hidden"===this.$root.settings.statusMessages)return this.channel.messages.filter(e=>!A.condensedTypes.includes(e.type));if("condensed"!==this.$root.settings.statusMessages)return this.channel.messages;const e=[];let t=null;for(const a of this.channel.messages)a.self||a.highlight||!A.condensedTypes.includes(a.type)?(t=null,e.push(a)):(null===t&&(t={time:a.time,type:"condensed",messages:[]},e.push(t)),t.messages.push(a),t.id=a.id,a.id===this.channel.firstUnread&&(t=null));return e}},watch:{"channel.id"(){this.channel.scrolledToBottom=!0,this.historyObserver&&(this.historyObserver.unobserve(this.$refs.loadMoreButton),this.historyObserver.observe(this.$refs.loadMoreButton))},"channel.messages"(){this.keepScrollPosition()},"channel.pendingMessage"(){this.$nextTick(()=>{this.keepScrollPosition()})}},created(){this.$nextTick(()=>{this.$refs.chat&&(window.IntersectionObserver&&(this.historyObserver=new window.IntersectionObserver(this.onLoadButtonObserved,{root:this.$refs.chat})),this.jumpToBottom())})},mounted(){this.$refs.chat.addEventListener("scroll",this.handleScroll,{passive:!0}),this.$root.$on("resize",this.handleResize),this.$nextTick(()=>{this.historyObserver&&this.historyObserver.observe(this.$refs.loadMoreButton)})},beforeUpdate(){this.unreadMarkerShown=!1},beforeDestroy(){this.$root.$off("resize",this.handleResize),this.$refs.chat.removeEventListener("scroll",this.handleScroll)},destroyed(){this.historyObserver&&this.historyObserver.disconnect()},methods:{shouldDisplayDateMarker(e,t){const a=this.condensedMessages[t-1];return!a||new Date(a.time).getDay()!==new Date(e.time).getDay()},shouldDisplayUnreadMarker(e){return!this.unreadMarkerShown&&e>this.channel.firstUnread&&(this.unreadMarkerShown=!0,!0)},onCopy(){L(this.$el)},onLinkPreviewToggle(e,t){this.keepScrollPosition(),m.a.emit("msg:preview:toggle",{target:this.channel.id,msgId:t.id,link:e.link,shown:e.shown})},onShowMoreClick(){let e=this.channel.messages[0];e=e?e.id:-1,this.channel.historyLoading=!0,m.a.emit("more",{target:this.channel.id,lastId:e})},onLoadButtonObserved(e){e.forEach(e=>{e.isIntersecting&&this.onShowMoreClick()})},keepScrollPosition(){if(this.isWaitingForNextTick)return;const e=this.$refs.chat;if(e)if(this.channel.scrolledToBottom)this.isWaitingForNextTick=!0,this.$nextTick(()=>{this.isWaitingForNextTick=!1,this.jumpToBottom()});else if(this.channel.historyLoading){const t=e.scrollHeight-e.scrollTop;this.isWaitingForNextTick=!0,this.$nextTick(()=>{this.isWaitingForNextTick=!1,this.skipNextScrollEvent=!0,e.scrollTop=e.scrollHeight-t})}},handleScroll(){if(this.skipNextScrollEvent)return void(this.skipNextScrollEvent=!1);const e=this.$refs.chat;e&&(this.channel.scrolledToBottom=e.scrollHeight-e.scrollTop-e.offsetHeight<=30)},handleResize(){this.channel.scrolledToBottom&&this.jumpToBottom()},jumpToBottom(){this.skipNextScrollEvent=!0,this.channel.scrolledToBottom=!0;const e=this.$refs.chat;e.scrollTop=e.scrollHeight}}},$=Object(o.a)(z,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"chat",staticClass:"chat",attrs:{tabindex:"-1"}},[a("div",{class:["show-more",{show:e.channel.moreHistoryAvailable}]},[a("button",{ref:"loadMoreButton",staticClass:"btn",attrs:{disabled:e.channel.historyLoading||!e.$root.isConnected},on:{click:e.onShowMoreClick}},[e.channel.historyLoading?a("span",[e._v("Loading…")]):a("span",[e._v("Show older messages")])])]),a("div",{staticClass:"messages",attrs:{role:"log","aria-live":"polite","aria-relevant":"additions"},on:{copy:e.onCopy}},[e._l(e.condensedMessages,function(t,n){return[e.shouldDisplayDateMarker(t,n)?a("DateMarker",{key:t.id+"-date",attrs:{message:t}}):e._e(),e.shouldDisplayUnreadMarker(t.id)?a("div",{key:t.id+"-unread",staticClass:"unread-marker"},[a("span",{staticClass:"unread-marker-text"})]):e._e(),"condensed"===t.type?a("MessageCondensed",{key:t.id,attrs:{network:e.network,"keep-scroll-position":e.keepScrollPosition,messages:t.messages}}):a("Message",{key:t.id,attrs:{network:e.network,message:t,"keep-scroll-position":e.keepScrollPosition},on:{linkPreviewToggle:e.onLinkPreviewToggle}})]})],2)])},[],!1,null,null,null).exports;const I=a(54),q=a(1),D=a(56),B=a(20),{wrapCursor:H}=a(57),R={"mod+k":"","mod+b":"","mod+u":"","mod+i":"","mod+o":"","mod+s":"","mod+m":""},F={'"':'"',"'":"'","(":")","<":">","[":"]","{":"}","*":"*","`":"`","~":"~",_:"_"};var J={name:"ChatInput",props:{network:Object,channel:Object},watch:{"channel.pendingMessage"(){this.setInputSize()}},mounted(){this.$root.settings.autocomplete&&a(34).enable(this.$refs.input);const e=B(this.$refs.input);e.bind(Object.keys(R),function(e,t){const a=R[t];return H(e.target,a,e.target.selectionStart===e.target.selectionEnd?"":a),!1}),e.bind(Object.keys(F),function(e,t){if(e.target.selectionStart!==e.target.selectionEnd)return H(e.target,t,F[t]),!1}),e.bind(["up","down"],(e,t)=>{if(this.$root.isAutoCompleting||e.target.selectionStart!==e.target.selectionEnd)return;const{channel:a}=this;return 0===a.inputHistoryPosition&&(a.inputHistory[a.inputHistoryPosition]=a.pendingMessage),"up"===t?a.inputHistoryPosition<a.inputHistory.length-1&&a.inputHistoryPosition++:a.inputHistoryPosition>0&&a.inputHistoryPosition--,a.pendingMessage=a.inputHistory[a.inputHistoryPosition],this.$refs.input.value=a.pendingMessage,this.setInputSize(),!1}),this.$root.isFileUploadEnabled&&D.initialize()},destroyed(){a(34).disable(),D.abort()},methods:{setPendingMessage(e){this.channel.pendingMessage=e.target.value,this.channel.inputHistoryPosition=0,this.setInputSize()},setInputSize(){this.$nextTick(()=>{const e=window.getComputedStyle(this.$refs.input),t=parseFloat(e.lineHeight,10)||1;this.$refs.input.style.height="",this.$refs.input.style.height=Math.ceil(this.$refs.input.scrollHeight/t)*t+"px"})},getInputPlaceholder:e=>"channel"===e.type||"query"===e.type?"Write to ".concat(e.name):"",onSubmit(){if(this.$refs.input.click(),this.$refs.input.focus(),!this.$root.isConnected)return!1;const e=this.channel.id,t=this.channel.pendingMessage;if(0===t.length)return!1;if(this.channel.inputHistoryPosition=0,this.channel.pendingMessage="",this.$refs.input.value="",this.setInputSize(),this.channel.inputHistory[1]!==t&&this.channel.inputHistory.splice(1,0,t),this.channel.inputHistory.length>100&&this.channel.inputHistory.pop(),"/"===t[0]){const e=t.substr(1).split(" "),a=e.shift().toLowerCase();if(Object.prototype.hasOwnProperty.call(I,a)&&I[a].input(e))return!1}q.emit("input",{target:e,text:t})},openFileUpload(){this.$refs.uploadInput.click()}}},V=Object(o.a)(J,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("form",{attrs:{id:"form",method:"post",action:""},on:{submit:function(t){return t.preventDefault(),e.onSubmit(t)}}},[a("span",{attrs:{id:"nick"}},[e._v(e._s(e.network.nick))]),a("textarea",{ref:"input",staticClass:"mousetrap",attrs:{id:"input",placeholder:e.getInputPlaceholder(e.channel),"aria-label":e.getInputPlaceholder(e.channel)},domProps:{value:e.channel.pendingMessage},on:{input:e.setPendingMessage,keypress:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),e.onSubmit(t))}}}),this.$root.isFileUploadEnabled?a("span",{staticClass:"tooltipped tooltipped-w tooltipped-no-touch",attrs:{id:"upload-tooltip","aria-label":"Upload file"},on:{click:e.openFileUpload}},[a("input",{ref:"uploadInput",attrs:{id:"upload-input",type:"file",multiple:""}}),a("button",{attrs:{id:"upload",type:"button","aria-label":"Upload file",disabled:!this.$root.isConnected}})]):e._e(),a("span",{staticClass:"tooltipped tooltipped-w tooltipped-no-touch",attrs:{id:"submit-tooltip","aria-label":"Send message"}},[a("button",{attrs:{id:"submit",type:"submit","aria-label":"Send message",disabled:!this.$root.isConnected}})])])},[],!1,null,null,null).exports,W={name:"UsernameFiltered",props:{user:Object,active:Boolean,onHover:Function},methods:{hover(){this.onHover&&this.onHover(this.user.original)}}},K=Object(o.a)(W,function(){var e=this,t=e.$createElement;return(e._self._c||t)("span",{class:["user",e.$options.filters.colorClass(e.user.original.nick),{active:e.active}],attrs:{"data-name":e.user.original.nick,role:"button"},domProps:{innerHTML:e._s(e.user.original.mode+e.user.string)},on:{mouseover:e.hover}})},[],!1,null,null,null).exports;const G=a(58),Y={"~":"owner","&":"admin","!":"admin","@":"op","%":"half-op","+":"voice","":"normal"};var Q={name:"ChatUserList",components:{Username:w.a,UsernameFiltered:K},props:{channel:Object},data:()=>({userSearchInput:"",activeUser:null}),computed:{filteredUsers(){return G.filter(this.userSearchInput,this.channel.users,{pre:"<b>",post:"</b>",extract:e=>e.nick})},groupedUsers(){const e={};if(this.userSearchInput){const t=this.filteredUsers;for(const a of t)e[a.original.mode]||(e[a.original.mode]=[]),e[a.original.mode].push(a)}else for(const t of this.channel.users)e[t.mode]?e[t.mode].push(t):e[t.mode]=[t];return e}},methods:{setUserSearchInput(e){this.userSearchInput=e.target.value},getModeClass:e=>Y[e],selectUser(){if(!this.activeUser)return;const e=this.$refs.userlist.querySelector(".active"),t=e.getBoundingClientRect(),a=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0,clientX:t.x,clientY:t.y+t.height});e.dispatchEvent(a)},hoverUser(e){this.activeUser=e},removeHoverUser(){this.activeUser=null},navigateUserList(e,t){e.stopImmediatePropagation();let a=this.channel.users;if(this.userSearchInput&&(a=this.filteredUsers.map(e=>e.original)),!a.length)return void(this.activeUser=null);let n=a.indexOf(this.activeUser);if(!this.activeUser||-1===n)return this.activeUser=t?a[0]:a[a.length-1],void this.scrollToActiveUser();for(n+=t;n<0;)n+=a.length;for(;n>a.length-1;)n-=a.length;this.activeUser=a[n],this.scrollToActiveUser()},scrollToActiveUser(){this.$nextTick(()=>{this.$refs.userlist.querySelector(".active").scrollIntoView({block:"nearest",inline:"nearest"})})}}},X=Object(o.a)(Q,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("aside",{ref:"userlist",staticClass:"userlist",on:{mouseleave:e.removeHoverUser}},[a("div",{staticClass:"count"},[a("input",{ref:"input",staticClass:"search",attrs:{placeholder:e.channel.users.length+" user"+(1===e.channel.users.length?"":"s"),type:"search","aria-label":"Search among the user list",tabindex:"-1"},domProps:{value:e.userSearchInput},on:{input:e.setUserSearchInput,keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:e.navigateUserList(t,-1)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:e.navigateUserList(t,1)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"page-up",void 0,t.key,void 0)?null:e.navigateUserList(t,-10)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"page-down",void 0,t.key,void 0)?null:e.navigateUserList(t,10)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.selectUser(t)}]}})]),a("div",{staticClass:"names"},e._l(e.groupedUsers,function(t,n){return a("div",{key:n,class:["user-mode",e.getModeClass(n)]},[e.userSearchInput.length>0?e._l(t,function(t){return a("UsernameFiltered",{key:t.original.nick,attrs:{"on-hover":e.hoverUser,active:t.original===e.activeUser,user:t}})}):e._l(t,function(t){return a("Username",{key:t.nick,attrs:{"on-hover":e.hoverUser,active:t===e.activeUser,user:t}})})],2)}),0)])},[],!1,null,null,null).exports,Z={name:"ListBans",props:{network:Object,channel:Object}},ee=Object(o.a)(Z,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("table",{staticClass:"ban-list"},[e._m(0),a("tbody",e._l(e.channel.data,function(t){return a("tr",{key:t.hostmask},[a("td",{staticClass:"hostmask"},[e._v(e._s(t.hostmask))]),a("td",{staticClass:"banned_by"},[e._v(e._s(t.banned_by))]),a("td",{staticClass:"banned_at"},[e._v(e._s(e._f("localetime")(t.banned_at)))])])}),0)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"hostmask"},[this._v("Banned")]),t("th",{staticClass:"banned_by"},[this._v("Banned By")]),t("th",{staticClass:"banned_at"},[this._v("Banned At")])])])}],!1,null,null,null).exports,te={name:"ListInvites",props:{network:Object,channel:Object}},ae=Object(o.a)(te,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("table",{staticClass:"invite-list"},[e._m(0),a("tbody",e._l(e.channel.data,function(t){return a("tr",{key:t.hostmask},[a("td",{staticClass:"hostmask"},[e._v(e._s(t.hostmask))]),a("td",{staticClass:"invitened_by"},[e._v(e._s(t.invited_by))]),a("td",{staticClass:"invitened_at"},[e._v(e._s(e._f("localetime")(t.invited_at)))])])}),0)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"hostmask"},[this._v("Invited")]),t("th",{staticClass:"invitened_by"},[this._v("Invited By")]),t("th",{staticClass:"invitened_at"},[this._v("Invited At")])])])}],!1,null,null,null).exports,ne={name:"ListChannels",components:{ParsedMessage:v.a},props:{network:Object,channel:Object}},se=Object(o.a)(ne,function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.channel.data.text?a("span",[e._v(e._s(e.channel.data.text))]):a("table",{staticClass:"channel-list"},[e._m(0),a("tbody",e._l(e.channel.data,function(t){return a("tr",{key:t.channel},[a("td",{staticClass:"channel"},[a("ParsedMessage",{attrs:{network:e.network,text:t.channel}})],1),a("td",{staticClass:"users"},[e._v(e._s(t.num_users))]),a("td",{staticClass:"topic"},[a("ParsedMessage",{attrs:{network:e.network,text:t.topic}})],1)])}),0)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"channel"},[this._v("Channel")]),t("th",{staticClass:"users"},[this._v("Users")]),t("th",{staticClass:"topic"},[this._v("Topic")])])])}],!1,null,null,null).exports,ie={name:"ListIgnored",props:{network:Object,channel:Object}},oe=Object(o.a)(ie,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("table",{staticClass:"ignore-list"},[e._m(0),a("tbody",e._l(e.channel.data,function(t){return a("tr",{key:t.hostmask},[a("td",{staticClass:"hostmask"},[e._v(e._s(t.hostmask))]),a("td",{staticClass:"when"},[e._v(e._s(e._f("localetime")(t.when)))])])}),0)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("thead",[t("tr",[t("th",{staticClass:"hostmask"},[this._v("Hostmask")]),t("th",{staticClass:"when"},[this._v("Ignored At")])])])}],!1,null,null,null).exports;const re=a(1);var le={name:"Chat",components:{ParsedMessage:v.a,MessageList:$,ChatInput:V,ChatUserList:X},props:{network:Object,channel:Object},computed:{specialComponent(){switch(this.channel.special){case"list_bans":return ee;case"list_invites":return ae;case"list_channels":return se;case"list_ignored":return oe}}},methods:{hideUserVisibleError(){this.$root.currentUserVisibleError=null},editTopic(){"channel"===this.channel.type&&(this.channel.editTopic=!0,this.$nextTick(()=>{document.querySelector("#chan-".concat(this.channel.id," .topic-input")).focus()}))},saveTopic(){this.channel.editTopic=!1;const e=document.querySelector("#chan-".concat(this.channel.id," .topic-input")).value;if(this.channel.topic!==e){const t=this.channel.id,a="/raw TOPIC ".concat(this.channel.name," :").concat(e);re.emit("input",{target:t,text:a})}}}},ce=Object(o.a)(le,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"window",attrs:{id:"chat-container"}},[a("div",{class:{"hide-motd":!this.$root.settings.motd,"colored-nicks":this.$root.settings.coloredNicks,"show-seconds":this.$root.settings.showSeconds},attrs:{id:"chat","data-id":e.channel.id}},[a("div",{class:[e.channel.type,"chan","active"],attrs:{id:"chan-"+e.channel.id,"data-id":e.channel.id,"data-type":e.channel.type,"aria-label":e.channel.name,role:"tabpanel"}},[a("div",{staticClass:"header"},[a("button",{staticClass:"lt",attrs:{"aria-label":"Toggle channel list"}}),a("span",{staticClass:"title"},[e._v(e._s(e.channel.name))]),!0===e.channel.editTopic?a("div",{staticClass:"topic-container"},[a("input",{staticClass:"topic-input",attrs:{placeholder:"Set channel topic"},domProps:{value:e.channel.topic},on:{keyup:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.saveTopic(t)},function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.channel.editTopic=!1}]}}),a("span",{staticClass:"save-topic",attrs:{"aria-label":"Save topic"},on:{click:e.saveTopic}},[a("span",{attrs:{type:"button","aria-label":"Save topic"}})])]):a("span",{staticClass:"topic",attrs:{title:e.channel.topic},on:{dblclick:e.editTopic}},[e.channel.topic?a("ParsedMessage",{attrs:{network:e.network,text:e.channel.topic}}):e._e()],1),a("button",{staticClass:"menu",attrs:{"aria-label":"Open the context menu"}}),"channel"===e.channel.type?a("span",{staticClass:"rt-tooltip tooltipped tooltipped-w",attrs:{"aria-label":"Toggle user list"}},[a("button",{staticClass:"rt",attrs:{"aria-label":"Toggle user list"}})]):e._e()]),"special"===e.channel.type?a("div",{staticClass:"chat-content"},[a("div",{staticClass:"chat"},[a("div",{staticClass:"messages"},[a("div",{staticClass:"msg"},[a(e.specialComponent,{tag:"Component",attrs:{network:e.network,channel:e.channel}})],1)])])]):a("div",{staticClass:"chat-content"},[a("div",{class:["scroll-down tooltipped tooltipped-w tooltipped-no-touch",{"scroll-down-shown":!e.channel.scrolledToBottom}],attrs:{"aria-label":"Jump to recent messages"},on:{click:function(t){return e.$refs.messageList.jumpToBottom()}}},[a("div",{staticClass:"scroll-down-arrow"})]),a("MessageList",{ref:"messageList",attrs:{network:e.network,channel:e.channel}}),"channel"===e.channel.type?a("ChatUserList",{attrs:{channel:e.channel}}):e._e()],1)])]),this.$root.currentUserVisibleError?a("div",{attrs:{id:"user-visible-error"},on:{click:e.hideUserVisibleError}},[e._v("\n\t\t"+e._s(this.$root.currentUserVisibleError)+"\n\t")]):e._e(),a("span",{attrs:{id:"upload-progressbar"}}),a("ChatInput",{attrs:{network:e.network,channel:e.channel}})],1)},[],!1,null,null,null).exports;const de=a(90);var ue={name:"App",components:{NetworkList:b,Chat:ce},props:{activeChannel:Object,networks:Array},mounted(){this.debouncedResize=de(()=>{this.$root.$emit("resize")},100),window.addEventListener("resize",this.debouncedResize,{passive:!0});const e=()=>{this.$root.$emit("daychange"),this.dayChangeTimeout=setTimeout(e,this.msUntilNextDay())};this.dayChangeTimeout=setTimeout(e,this.msUntilNextDay())},beforeDestroy(){window.removeEventListener("resize",this.debouncedResize),clearTimeout(this.dayChangeTimeout)},methods:{isPublic:()=>document.body.classList.contains("public"),msUntilNextDay(){const e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+1)-e}}},he=Object(o.a)(ue,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"viewport",role:"tablist"}},[a("aside",{attrs:{id:"sidebar"}},[a("div",{staticClass:"scrollable-area"},[a("div",{staticClass:"logo-container"},[a("img",{staticClass:"logo",attrs:{src:"img/logo-"+(e.isPublic()?"horizontal-":"")+"transparent-bg.svg",alt:"The Lounge"}}),a("img",{staticClass:"logo-inverted",attrs:{src:"img/logo-"+(e.isPublic()?"horizontal-":"")+"transparent-bg-inverted.svg",alt:"The Lounge"}})]),a("NetworkList",{attrs:{networks:e.networks,"active-channel":e.activeChannel}})],1),e._m(0)]),a("div",{attrs:{id:"sidebar-overlay"}}),a("article",{attrs:{id:"windows"}},[e.activeChannel?a("Chat",{attrs:{network:e.activeChannel.network,channel:e.activeChannel.channel}}):e._e(),a("div",{staticClass:"window",attrs:{id:"sign-in",role:"tabpanel","aria-label":"Sign-in"}}),a("div",{staticClass:"window",attrs:{id:"connect",role:"tabpanel","aria-label":"Connect"}}),a("div",{staticClass:"window",attrs:{id:"settings",role:"tabpanel","aria-label":"Settings"}}),a("div",{staticClass:"window",attrs:{id:"help",role:"tabpanel","aria-label":"Help"}}),a("div",{staticClass:"window",attrs:{id:"changelog","aria-label":"Changelog"}})],1)])},[function(){var e=this.$createElement,t=this._self._c||e;return t("footer",{attrs:{id:"footer"}},[t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-touch",attrs:{"aria-label":"Sign in"}},[t("button",{staticClass:"icon sign-in",attrs:{"data-target":"#sign-in","aria-label":"Sign in",role:"tab","aria-controls":"sign-in","aria-selected":"false"}})]),t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-touch",attrs:{"aria-label":"Connect to network"}},[t("button",{staticClass:"icon connect",attrs:{"data-target":"#connect","aria-label":"Connect to network",role:"tab","aria-controls":"connect","aria-selected":"false"}})]),t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-touch",attrs:{"aria-label":"Settings"}},[t("button",{staticClass:"icon settings",attrs:{"data-target":"#settings","aria-label":"Settings",role:"tab","aria-controls":"settings","aria-selected":"false"}})]),t("span",{staticClass:"tooltipped tooltipped-n tooltipped-no-touch",attrs:{"aria-label":"Help"}},[t("button",{staticClass:"icon help",attrs:{"data-target":"#help","aria-label":"Help",role:"tab","aria-controls":"help","aria-selected":"false"}})])])}],!1,null,null,null);t.default=he.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeKick",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),e._v("\n\thas kicked\n\t"),a("Username",{attrs:{user:e.message.target}}),e.message.text?a("i",{staticClass:"part-reason"},[e._v("\n\t\t("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1):e._e()],1)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n={name:"LinkPreviewToggle",props:{link:Object},computed:{ariaLabel(){return this.link.shown?"Collapse preview":"Expand preview"}},methods:{onClick(){this.link.shown=!this.link.shown,this.$parent.$emit("linkPreviewToggle",this.link,this.$parent.message)}}},s=a(0),i=Object(s.a)(n,function(){var e=this.$createElement,t=this._self._c||e;return"loading"!==this.link.type?t("button",{class:["toggle-button","toggle-preview",{opened:this.link.shown}],attrs:{"aria-label":this.ariaLabel},on:{click:this.onClick}}):this._e()},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n={name:"MessageTypeRaw",props:{network:Object,message:Object}},s=a(0),i=Object(s.a)(n,function(){var e=this.$createElement;return(this._self._c||e)("span",{staticClass:"content"},[this._v(this._s(this.message.text))])},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeBack",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[this.message.self?t("ParsedMessage",{attrs:{network:this.network,message:this.message}}):[t("Username",{attrs:{user:this.message.from}}),this._v("\n\t\tis back\n\t")]],2)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n={name:"MessageTypeNick",components:{Username:a(2).a},props:{network:Object,message:Object}},s=a(0),i=Object(s.a)(n,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v("\n\tis now known as\n\t"),t("Username",{attrs:{user:{nick:this.message.new_nick,mode:this.message.from.mode}}})],1)},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n={name:"MessageChannelMode",props:{network:Object,message:Object}},s=a(0),i=Object(s.a)(n,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[this._v("\n\tChannel mode is "),t("b",[this._v(this._s(this.message.text))])])},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeTopic",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[e.message.from&&e.message.from.nick?[a("Username",{attrs:{user:e.message.from}}),e._v(" has changed the topic to:\n\t")]:[e._v("The topic is:\n\t")],e.message.text?a("span",{staticClass:"new-topic"},[a("ParsedMessage",{attrs:{network:e.network,message:e.message}})],1):e._e()],2)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeMode",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v("\n\tsets mode\n\t"),t("ParsedMessage",{attrs:{message:this.message}})],1)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n={name:"MessageTypeTopicSetBy",components:{Username:a(2).a},props:{network:Object,message:Object}},s=a(0),i=Object(s.a)(n,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[this._v("\n\tTopic set by\n\t"),t("Username",{attrs:{user:this.message.from}}),this._v("\n\ton "+this._s(this._f("localetime")(this.message.when))+"\n")],1)},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n={name:"MessageTypeChangeHost",components:{Username:a(2).a},props:{network:Object,message:Object}},s=a(0),i=Object(s.a)(n,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),e._v("\n\thas changed\n\t"),e.message.new_ident?a("span",[e._v("username to "),a("b",[e._v(e._s(e.message.new_ident))])]):e._e(),e.message.new_host?a("span",[e._v("hostname to "),a("i",{staticClass:"hostmask"},[e._v(e._s(e.message.new_host))])]):e._e()],1)},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeWhois",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("p",[a("Username",{attrs:{user:{nick:e.message.whois.nick}}}),e.message.whois.whowas?a("span",[e._v(" is offline, last information:")]):e._e()],1),a("dl",{staticClass:"whois"},[e.message.whois.account?[a("dt",[e._v("Logged in as:")]),a("dd",[e._v(e._s(e.message.whois.account))])]:e._e(),a("dt",[e._v("Host mask:")]),a("dd",{staticClass:"hostmask"},[e._v(e._s(e.message.whois.ident)+"@"+e._s(e.message.whois.hostname))]),e.message.whois.actual_hostname?[a("dt",[e._v("Actual host:")]),a("dd",{staticClass:"hostmask"},[a("a",{attrs:{href:"https://ipinfo.io/"+e.message.whois.actual_ip,target:"_blank",rel:"noopener"}},[e._v(e._s(e.message.whois.actual_ip))]),e.message.whois.actual_hostname!=e.message.whois.actual_ip?a("i",[e._v("\n\t\t\t\t\t("+e._s(e.message.whois.actual_hostname)+")")]):e._e()])]:e._e(),e.message.whois.real_name?[a("dt",[e._v("Real name:")]),a("dd",[a("ParsedMessage",{attrs:{network:e.network,text:e.message.whois.real_name}})],1)]:e._e(),e.message.whois.registered_nick?[a("dt",[e._v("Registered nick:")]),a("dd",[e._v(e._s(e.message.whois.registered_nick))])]:e._e(),e.message.whois.channels?[a("dt",[e._v("Channels:")]),a("dd",[a("ParsedMessage",{attrs:{network:e.network,text:e.message.whois.channels}})],1)]:e._e(),e.message.whois.modes?[a("dt",[e._v("Modes:")]),a("dd",[e._v(e._s(e.message.whois.modes))])]:e._e(),e.message.whois.special?[e._l(e.message.whois.special,function(t){return[a("dt",{key:t},[e._v("Special:")]),a("dd",{key:t},[e._v(e._s(t))])]})]:e._e(),e.message.whois.operator?[a("dt",[e._v("Operator:")]),a("dd",[e._v(e._s(e.message.whois.operator))])]:e._e(),e.message.whois.helpop?[a("dt",[e._v("Available for help:")]),a("dd",[e._v("Yes")])]:e._e(),e.message.whois.bot?[a("dt",[e._v("Is a bot:")]),a("dd",[e._v("Yes")])]:e._e(),e.message.whois.away?[a("dt",[e._v("Away:")]),a("dd",[a("ParsedMessage",{attrs:{network:e.network,text:e.message.whois.away}})],1)]:e._e(),e.message.whois.secure?[a("dt",[e._v("Secure connection:")]),a("dd",[e._v("Yes")])]:e._e(),e.message.whois.server?[a("dt",[e._v("Connected to:")]),a("dd",[e._v("\n\t\t\t\t"+e._s(e.message.whois.server)+" "),a("i",[e._v("("+e._s(e.message.whois.server_info)+")")])])]:e._e(),e.message.whois.logonTime?[a("dt",[e._v("Connected at:")]),a("dd",[e._v(e._s(e._f("localetime")(e.message.whois.logonTime)))])]:e._e(),e.message.whois.idle?[a("dt",[e._v("Idle since:")]),a("dd",[e._v(e._s(e._f("localetime")(e.message.whois.idleTime)))])]:e._e()],2)])},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypePart",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),a("i",{staticClass:"hostmask"},[e._v(" ("+e._s(e.message.hostmask)+")")]),e._v(" has left the channel\n\t"),e.message.text?a("i",{staticClass:"part-reason"},[e._v("("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1):e._e()],1)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeRequestCTCP",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v("\n\tsent a "),t("abbr",{attrs:{title:"Client-to-client protocol"}},[this._v("CTCP")]),this._v(" request:\n\t"),t("span",{staticClass:"ctcp-message"},[t("ParsedMessage",{attrs:{text:this.message.ctcpMessage}})],1)],1)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n={name:"MessageTypeJoin",components:{Username:a(2).a},props:{network:Object,message:Object}},s=a(0),i=Object(s.a)(n,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),t("i",{staticClass:"hostmask"},[this._v(" ("+this._s(this.message.hostmask)+")")]),this._v("\n\thas joined the channel\n")],1)},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeInvite",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),e._v("\n\tinvited\n\t"),e.message.invitedYou?a("span",[e._v("you")]):a("Username",{attrs:{user:e.message.target}}),e._v("\n\tto "),a("ParsedMessage",{attrs:{network:e.network,text:e.message.channel}})],1)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeCTCP",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("Username",{attrs:{user:this.message.from}}),this._v(" \n\t"),t("span",{staticClass:"ctcp-message"},[t("ParsedMessage",{attrs:{text:this.message.ctcpMessage}})],1)],1)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeQuit",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[a("Username",{attrs:{user:e.message.from}}),a("i",{staticClass:"hostmask"},[e._v(" ("+e._s(e.message.hostmask)+")")]),e._v(" has quit\n\t"),e.message.text?a("i",{staticClass:"quit-reason"},[e._v("("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1):e._e()],1)},[],!1,null,null,null);t.default=r.exports},function(e,t,a){"use strict";a.r(t);var n={name:"MessageTypeMOTD",components:{ParsedMessage:a(3).a},props:{network:Object,message:Object},computed:{cleanText(){let e=this.message.text.split("\n");return e.every(e=>""===e||"-"===e[0])&&(e=e.map(e=>e.substr(2))),e.map(e=>e.replace(/\s*$/,"")).join("\n").replace(/^[\r\n]+|[\r\n]+$/g,"")}}},s=a(0),i=Object(s.a)(n,function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"content"},[t("span",{staticClass:"text"},[t("ParsedMessage",{attrs:{network:this.network,text:this.cleanText}})],1)])},[],!1,null,null,null);t.default=i.exports},function(e,t,a){"use strict";a.r(t);var n=a(3),s=a(2),i={name:"MessageTypeAway",components:{ParsedMessage:n.a,Username:s.a},props:{network:Object,message:Object}},o=a(0),r=Object(o.a)(i,function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("span",{staticClass:"content"},[e.message.self?a("ParsedMessage",{attrs:{network:e.network,message:e.message}}):[a("Username",{attrs:{user:e.message.from}}),e._v("\n\t\tis away\n\t\t"),a("i",{staticClass:"away-message"},[e._v("("),a("ParsedMessage",{attrs:{network:e.network,message:e.message}}),e._v(")")],1)]],2)},[],!1,null,null,null);t.default=r.exports}]);
2//# sourceMappingURL=bundle.js.map
\No newline at end of file