1(self.webpackChunknodebb=self.webpackChunknodebb||[]).push([[33085,46379,69749,97650],{34405(m,C,d){"use strict";var w,h;w=[d(49897),d(29930),d(36e3),d(9787),d(35786)],h=(function(E,p,{Textcomplete:x},{TextareaEditor:u},{ContenteditableEditor:f}){const a={},o={delay:200,appendTo:null};a.init=i=>{const t={...o,...i},{input:n,onSelect:r}=t;app.loadJQueryUI(function(){n.autocomplete({position:s(),...t,open:function(){$(this).autocomplete("widget").css("z-index",100005)},select:function(c,l){e(n,r,c,l)}})})},a.user=function(i,t,n){typeof t=="function"&&(n=t,t={}),t=t||{},a.init({input:i,onSelect:n,source:(r,c)=>{t.query=r.term,E.get("/api/users",t,function(l,g){if(l)return p.error(l);if(g&&g.users){const b=g.users.map(function(y){return y&&{label:y.username,value:y.username,user:{uid:y.uid,name:y.username,slug:y.userslug,username:y.username,userslug:y.userslug,displayname:y.displayname,picture:y.picture,banned:y.banned,"icon:text":y["icon:text"],"icon:bgColor":y["icon:bgColor"]}}});c(b)}$(".ui-autocomplete a").attr("data-ajaxify","false")})}})},a.group=function(i,t){a.init({input:i,onSelect:t,source:(n,r)=>{E.get("/groups",{query:n.term},function(c,l){if(c)return p.error(c);if(l&&l.groups.length){const g=l.groups.map(function(b){return b&&{label:b.name,value:b.name,group:b}});r(g)}$(".ui-autocomplete a").attr("data-ajaxify","false")})}})},a.tag=function(i,t){a.init({input:i,onSelect:t,delay:100,source:(n,r)=>{socket.emit("topics.autocompleteTags",{query:n.term,cid:ajaxify.data.cid||0},function(c,l){if(c)return p.error(c);l&&r(l),$(".ui-autocomplete a").attr("data-ajaxify","false")})}})};function s(){const i=document.querySelector("html").getAttribute("data-dir")==="rtl"?"right":"left";return{my:`${i} top`,at:`${i} bottom`,collision:"none"}}function e(i,t,n,r){t=t||function(){};const c=jQuery.Event("keypress");c.which=13,c.keyCode=13,setTimeout(function(){i.trigger(c)},100),t(n,r)}return a.setup=function({element:i,strategies:t,options:n}){const r=i.get(0);if(!r)return;let c;if(r.nodeName==="TEXTAREA"||r.nodeName==="INPUT"?c=new u(r):r.nodeName==="DIV"&&r.getAttribute("contenteditable")==="true"&&(c=new f(r)),!c)throw new Error("unknown target element type");r.setAttribute("dir",document.querySelector("html").getAttribute("data-dir"));const l=new x(c,t,{dropdown:n});return l.on("rendered",function(){l.dropdown.items.length&&l.dropdown.items[0].activate()}),l},a}).apply(C,w),h!==void 0&&(m.exports=h)},96349(m,C,d){"use strict";var w,h;w=[d(29930),d(89336),d(49897)],h=(function(E,p,x){const u={};return u.init=function(f,a){let o=a.defaultCategories||null;a=a||{},a.privilege=a.privilege||"topics:read",a.states=a.states||["watching","tracking","notwatching","ignoring"],a.cacheList=a.hasOwnProperty("cacheList")?a.cacheList:!0;let s=[];Array.isArray(a.localCategories)&&(s=a.localCategories.map(r=>({...r})),o&&(o=[...s,...o])),a.selectedCids=a.selectedCids||ajaxify.data.selectedCids||[];const e=f.find('[component="category-selector-search"]');if(!e.length)return;const i=e.parents('[component="category/dropdown"]').length>0||e.parents('[component="category-selector"]').length>0;f.on("show.bs.dropdown",function(){i&&e.removeClass("hidden");function r(){const l=e.find("input").val();l.length>1||!l&&!o?t(l,function(g){o=a.cacheList&&(o||g),n(g)}):!l&&o&&n(o)}const c=e.find("input").val("");c.on("keydown",function(l){if(l.key==="ArrowDown"){const g=f.find('[component="category/list"] li[data-cid]:first a');g.length&&(g.focus(),l.stopPropagation(),l.preventDefault())}}),e.on("click",function(l){l.preventDefault(),l.stopPropagation()}),c.on("keyup",utils.debounce(r,300)),r()}),f.on("shown.bs.dropdown",function(){["xs","sm"].includes(utils.findBootstrapEnvironment())||e.find("input").focus()}),f.on("hide.bs.dropdown",function(){i&&e.addClass("hidden"),e.off("click"),e.find("input").off("keyup keydown")});function t(r,c){x.get("/search/categories",{search:r,query:utils.params(),parentCid:a.parentCid||0,selectedCids:a.selectedCids,privilege:a.privilege,states:a.states,showLinks:a.showLinks,localOnly:a.localOnly,hideUncategorized:a.hideUncategorized},function(l,{categories:g}){if(l)return E.error(l);c(s.concat(g))})}function n(r){const c=a.selectedCids.map(String),l=(a.disabledCids||[]).map(String);
1r.forEach(function(g){g.selected=c.includes(String(g.cid)),l.includes(String(g.cid))&&(g.disabledClass=!0)}),app.parseAndTranslate(a.template,{categoryItems:r.slice(0,200),selectedCategory:ajaxify.data.selectedCategory,allCategoriesUrl:ajaxify.data.allCategoriesUrl,hideAll:a.hideAll},function(g){f.find('[component="category/list"]').html(g.find('[component="category/list"]').html()),f.find('[component="category/list"] [component="category/no-matches"]').toggleClass("hidden",!!r.length);const b=p.Dropdown.getInstance(f.find(".dropdown-toggle").get(0));b&&b.update()})}},u}).apply(C,w),h!==void 0&&(m.exports=h)},65348(m,C,d){"use strict";var w,h;w=[d(96349),d(65303),d(91749),d(17459),d(81335)],h=(function(E,p,x,u,f){const a={};return a.init=function(o,s){if(!o||!o.length)return;s=s||{};const e=s.onSelect||function(){};s.states=s.states||["watching","tracking","notwatching","ignoring"],s.template=s.template||"partials/category/selector-dropdown-left",x.fire("action:category.selector.options",{el:o,options:s}),E.init(o,s);const i={el:o,selectedCategory:null};o.on("click","[data-cid]",function(){const n=$(this);return n.hasClass("disabled")?!1:(i.selectCategory(n.attr("data-cid")),e({...i.selectedCategory,categoryEl:n}))});let t=i.el.find('[component="category-selector-selected"]').html();return u.translate(t,n=>{t=n}),i.selectCategory=function(n,r=null){const c=r||i.el.find('[data-cid="'+n+'"]');i.selectedCategory={cid:n,name:c.attr("data-name")},c.length?i.el.find('[component="category-selector-selected"]').html(c.find('[component="category-markup"]').html()):i.el.find('[component="category-selector-selected"]').html(t)},i.getSelectedCategory=function(){return i.selectedCategory},i.getSelectedCid=function(){return i.selectedCategory?i.selectedCategory.cid:0},s.hasOwnProperty("selectedCategory")&&app.parseAndTranslate(s.template,{selectedCategory:s.selectedCategory},function(n){i.el.find('[component="category-selector-selected"]').html(n.find('[component="category-selector-selected"]').html())}),i},a.modal=async function(o){o=o||{},o.onSelect=o.onSelect||function(){},o.onSubmit=o.onSubmit||function(){};const s=await f.render("admin/partials/categories/select-category",{message:o.message}),e=await p.dialog({title:o.title||"[[modules:composer.select-category]]",message:s,buttons:{save:{label:"[[global:select]]",className:"btn-primary",callback:t}}}),i=a.init(e.find('[component="category-selector"]'),o);function t(n){return n.preventDefault(),i.selectedCategory&&(o.onSubmit(i.selectedCategory),e.modal("hide")),!1}o.openOnLoad&&e.on("shown.bs.modal",function(){e.find(".dropdown-toggle").dropdown("toggle")}),e.find("form").on("submit",t)},a}).apply(C,w),h!==void 0&&(m.exports=h)},71431(m,C,d){m.exports=d(49641)},88518(m,C,d){m.exports=d(54516)},13342(m,C,d){m.exports=d(41644)},74566(m,C,d){m.exports=d(12236)},92762(m,C,d){m.exports=d(94252)},72573(m,C,d){m.exports=d(59367)},52543(m,C,d){m.exports=d(28721)},31494(m,C,d){m.exports=d(36244)},10870(m,C,d){"use strict";var w,h;w=[d(65303),d(17459),d(68636),d(29930),d(91749)],h=(function(E,p,x,u,f){const a={};let o;a.show=function(){f.one("action:ajaxify.end",()=>{e(),s(),a.showEmailConfirmWarning()})},a.showEmailConfirmWarning=function(i){if(!config.emailPrompt||!app.user.uid||parseInt(x.getItem("email-confirm-dismiss"),10)===1)return;const t={alert_id:"email_confirm",type:"warning",timeout:0,closefn:()=>{x.setItem("email-confirm-dismiss",1)}};function n(){u.remove("email_confirm"),ajaxify.go("/me/edit/email")}!app.user.email&&!app.user.isEmailConfirmSent?(t.message="[[error:no-email-to-confirm]]",t.clickfn=n,u.alert(t)):!app.user["email:confirmed"]&&!app.user.isEmailConfirmSent?(t.message=i||"[[error:email-not-confirmed]]",t.clickfn=n,u.alert(t)):!app.user["email:confirmed"]&&app.user.isEmailConfirmSent&&(t.message="[[error:email-not-confirmed-email-sent]]",u.alert(t))};function s(){!config.cookies.enabled||!navigator.cookieEnabled||app.inAdmin||x.getItem("cookieconsent")==="1"||app.parseAndTranslate("partials/cookie-consent",config.cookies,function(i){$(document.body).append(i),$(document.body).addClass("cookie-consent-open");const t=$(".cookie-consent");
1t.find("button").on("click",function(){x.setItem("cookieconsent","1"),t.remove(),$(document.body).removeClass("cookie-consent-open")})})}function e(){const i=utils.params({full:!0}),t=i.toString();o=i.get("register"),o&&(E.alert({message:utils.escapeHTML(decodeURIComponent(o))}),i.delete("register")),i.has("lang")&&i.get("lang")===config.defaultLang&&(console.info(`The "lang" parameter was passed in to set the language to "${i.get("lang")}", but that is already the forum default language.`),i.delete("lang"));const n=i.toString();n!==t&&ajaxify.updateHistory(ajaxify.currentPage+(n?`?${n}`:"")+document.location.hash,!0)}return a.showInvalidSession=function(){E.alert({title:"[[error:invalid-session]]",message:"[[error:invalid-session-text]]",closeButton:!1,callback:function(){window.location.reload()}})},a.showSessionMismatch=function(){E.alert({title:"[[error:session-mismatch]]",message:"[[error:session-mismatch-text]]",closeButton:!1,callback:function(){window.location.reload()}})},a}).apply(C,w),h!==void 0&&(m.exports=h)},41088(m,C,d){"use strict";var w;w=(function(){const h={};return h.apply=function(E){$(E).on("mousewheel",function(p){const x=this.scrollTop,u=this.scrollHeight,f=Math.round(this.getBoundingClientRect().height);if(p.originalEvent.deltaY<0&&x===0||p.originalEvent.deltaY>0&&f+x>=u)return!1})},h}).call(C,d,C,m),w!==void 0&&(m.exports=w)},69749(m,C,d){"use strict";var w,h;w=[d(17459),d(68636),d(91749),d(29930),d(89336)],h=(function(E,p,x,u,f){const a={current:{}};a.init=function(e){if(!config.searchEnabled)return;e=e||{in:config.searchDefaultInQuick||"titles"},$('[component="search/form"]').each((t,n)=>{o($(n),e)})};function o(e,i){const t=e.find('[component="search/button"]'),n=e.find('[component="search/fields"]'),r=n.find('input[name="query"]'),c=n.find("#quick-search-container"),l=n.hasClass("hidden"),g=/^(@|acct:)?[\p{L}\p{N}\p{M}_.-]+@.+$/u;l&&n.off("focusout").on("focusout",function(){setTimeout(function(){n.find(":focus").length||(n.addClass("hidden"),t.removeClass("hidden"))},200)}),r.off("focus");const b={inputEl:r,resultEl:c};a.enableQuickSearch({searchOptions:i,searchElements:b}),t.off("click").on("click",function(y){return!config.loggedIn&&!app.user.privileges["search:content"]?(u.alert({message:"[[error:search-requires-login]]",timeout:3e3}),ajaxify.go("login"),!1):(y.stopPropagation(),a.showAndFocusInput(e),!1)}),e.off("submit").on("submit",function(){const y=$(this).find('input[name="query"]'),A=a.getSearchPreferences();return A.term=y.val(),A.in=i.in,g.test(A.term)&&(A.in="users"),x.fire("action:search.submit",{searchOptions:A,searchElements:b}),a.query(A,function(){y.val(""),r.trigger("blur")}),!1})}a.enableQuickSearch=function(e){if(!config.searchEnabled||!app.user.privileges["search:content"])return;const i=Object.assign({in:config.searchDefaultInQuick||"titles"},e.searchOptions),t=e.searchElements.resultEl,n=e.searchElements.inputEl;let r=n.val();const c=t.find(".filter-category");async function l(){if(ajaxify.data.template.category&&ajaxify.data.cid){const v=await E.translateKey("search:search-in-category",[ajaxify.data.name]),D=$("<div></div>").html(v).text();c.find(".name").text(D)}c.toggleClass("hidden",!(ajaxify.data.template.category&&ajaxify.data.cid))}function g(){e.searchOptions=Object.assign({},i),e.searchOptions.term=n.val(),l(),ajaxify.data.template.category&&ajaxify.data.cid&&c.find('input[type="checkbox"]').is(":checked")&&(e.searchOptions.categories=[ajaxify.data.cid],e.searchOptions.searchChildren=!0),e.hideDuringSearch||(t.removeClass("hidden").find(".quick-search-results-container").html(""),t.find(".loading-indicator").removeClass("hidden")),x.fire("action:search.quick.start",e),e.searchOptions.searchOnly=1,a.api(e.searchOptions,function(v){if(t.find(".loading-indicator").addClass("hidden"),e.searchOptions.in==="categories"){if(!v.categories||e.hideOnNoMatches&&!v.categories.length)return t.addClass("hidden").find(".quick-search-results-container").html("");v.dropdown={maxWidth:"400px",maxHeight:"500px",...e.dropdown},app.parseAndTranslate("partials/quick-category-search-results",v,D=>{D.length&&D.find(".timeago").timeago(),t.toggleClass("hidden",!D.length||!n.is(":focus")).find(".quick-search-results-container").html(D.length?D:""),x.fire("action:search.quick.complete",{data:v,options:e})})}else{if(!v.posts||e.hideOnNoMatches&&!v.posts.length)return t.addClass("hidden").find(".quick-search-results-container").html("");
1v.posts.forEach(function(D){const k=$("<div>"+D.content+"</div>").text(),_=n.val().toLowerCase().replace(/^in:topic-\d+/,""),S=Math.max(0,k.toLowerCase().indexOf(_)-40);D.snippet=utils.escapeHTML((S>0?"...":"")+k.slice(S,S+80)+(k.length-S>80?"...":""))}),v.dropdown={maxWidth:"400px",maxHeight:"500px",...e.dropdown},app.parseAndTranslate("partials/quick-search-results",v,function(D){D.length&&D.find(".timeago").timeago(),t.toggleClass("hidden",!D.length||!n.is(":focus")).find(".quick-search-results-container").html(D.length?D:"");const k=t.find(".quick-search-results .quick-search-title, .quick-search-results .snippet");a.highlightMatches(e.searchOptions.term,k),x.fire("action:search.quick.complete",{data:v,options:e})})}})}t.find('.filter-category input[type="checkbox"]').on("change",function(){n.focus(),g()}),n.off("keyup").on("keyup",utils.debounce(function(){if(n.val().length<3){t.addClass("hidden"),r=n.val();return}if(n.val()!==r){if(r=n.val(),!n.is(":focus"))return t.addClass("hidden");g()}},500)),t.on("mousedown",".quick-search-results > *",function(){$(window).one("mouseup",function(){t.addClass("hidden")})});const b=n.parent(),y=t.parent();b.on("focusout",A),y.on("focusout",A);function A(){setTimeout(function(){!b.find(":focus").length&&!y.find(":focus").length&&!t.hasClass("hidden")&&t.addClass("hidden")},200)}let I=!1;x.on("action:ajaxify.end",function(){ajaxify.isCold()||(I=!0),t.addClass("hidden")}),n.on("focus",function(){const v=n.val();r=v,v&&t.find("#quick-search-results").children().length&&(l(),I?(g(),I=!1):t.removeClass("hidden"),n[0].setSelectionRange(v.startsWith("in:topic")?v.indexOf(" ")+1:0,v.length))}),n.off("refresh").on("refresh",function(){g()})},a.showAndFocusInput=function(e){const i=e.parents(".dropdown-menu");if(i.length){const t=i.siblings("[data-bs-toggle]"),n=f.Dropdown.getOrCreateInstance(t[0]);n&&n.show()}else e.find('[component="search/fields"]').removeClass("hidden"),e.find('[component="search/button"]').addClass("hidden"),e.find('[component="search/fields"] input[name="query"]').trigger("focus")},a.query=function(e,i){i=i||function(){},ajaxify.go("search?"+s(e),i)},a.api=function(e,i){const t=config.relative_path+"/api/search?"+s(e);e.hasOwnProperty("searchOnly")&&delete e.searchOnly;const n=config.relative_path+"/search?"+s(e);$.get(t,function(r){r.url=n,i(r)})};function s(e){const i=e.in||"titles",t=e.term.replace(/^[ ?#]*/,""),n={...e,term:t,in:i};return x.fire("action:search.createQueryString",{query:n,data:e}),$.param(n)}return a.getSearchPreferences=function(){try{return JSON.parse(p.getItem("search-preferences")||"{}")}catch(e){return console.error(e),{}}},a.highlightMatches=function(e,i){if(!e||!i.length)return;e=utils.escapeHTML(e.replace(/^"/,"").replace(/"$/,"").trim());const t=e.split(" ").filter(r=>r.length>1).map(function(r){return utils.escapeRegexChars(r)}).join("|"),n=new RegExp("("+t+")","gi");i.each(function(){const r=$(this),c=[];r.find("*").each(function(){$(this).after("<!-- "+c.length+" -->"),c.push($("<div></div>").append($(this)))}),r.html(r.html().replace(n,function(l,g){return'<strong class="search-match fw-bold text-decoration-underline">'+g+"</strong>"})),c.forEach(function(l,g){r.html(r.html().replace("<!-- "+g+" -->",function(){return l.html()}))})}),$(".search-results .content").find("img:not(.not-responsive)").addClass("img-fluid")},a}).apply(C,w),h!==void 0&&(m.exports=h)},43103(m,C,d){"use strict";var w,h;w=[d(29930)],h=(function(E){const p={};p.init=function(u){const f=u.uploadFormEl;if(f.length&&(f.attr("action",config.relative_path+u.route),u.dragDropAreaEl&&p.handleDragDrop({container:u.dragDropAreaEl,callback:function(a){p.ajaxSubmit({uploadForm:f,upload:a,callback:u.callback})}}),u.pasteEl&&p.handlePaste({container:u.pasteEl,callback:function(a){p.ajaxSubmit({uploadForm:f,upload:a,callback:u.callback})}}),u.uploadBtnEl)){const a=f.find('input[name="files[]"]');u.uploadBtnEl.on("click",function(){return a.trigger("click"),!1}),a.on("change",function(o){const s=(o.target||{}).files||($(this).val()?[{name:$(this).val(),type:utils.fileMimeType($(this).val())}]:null);s&&p.ajaxSubmit({uploadForm:f,upload:{files:s,fileNames:Array.from(s).map(e=>e.name)}
1,callback:u.callback})})}},p.handleDragDrop=function(u){let f=!1;const a=u.container,o=u.container.find(".imagedrop");a.on("dragenter",function(){f||(o.css("top","0px"),o.css("height",a.height()+"px"),o.css("line-height",a.height()+"px"),o.show(),o.on("dragleave",function(){o.hide(),o.off("dragleave")}))}),o.on("drop",function(i){i.preventDefault();const t=i.originalEvent.dataTransfer.files;if(t.length){let n;if(window.FormData){n=new FormData;for(let r=0;r<t.length;++r)n.append("files[]",t[r],t[r].name)}u.callback({files:t,formData:n})}return o.hide(),!1});function s(e){return e.preventDefault(),!1}$(document).off("dragstart").on("dragstart",function(){f=!0}).off("dragend").on("dragend, mouseup",function(){f=!1}),o.on("dragover",s),o.on("dragenter",s)},p.handlePaste=function(u){u.container.on("paste",async function(a){const o=(a.clipboardData||a.originalEvent.clipboardData||{}).items,s=[],e=[],i=window.FormData?new FormData:null;function t(r,c){s.push(r),e.push(c),i&&i.append("files[]",r,c)}const{convertPastedImageTo:n}=config;for(const r of o){const c=r.getAsFile();if(c)try{if(n&&c.type.match(/image./)&&c.type!==n){const l=await x(c,n,.9),g=l.type.split("/")[1],b=`${utils.generateUUID()}-image.${g}`,y=new File([l],b,{type:l.type});t(y,b)}else{const l=utils.generateUUID()+"-"+c.name;t(c,l)}}catch(l){E.error(l),console.error(l)}}s.length&&u.callback({files:s,fileNames:e,formData:i})})},p.ajaxSubmit=function(u){const f=[...u.upload.files];for(let o=0;o<f.length;++o){const s=f[o].type.match(/image./);if(s&&!app.user.privileges["upload:post:image"]||!s&&!app.user.privileges["upload:post:file"])return E.error("[[error:no-privileges]]");if(!app.user.isAdmin&&f[o].size>parseInt(config.maximumFileSize,10)*1024)return u.uploadForm[0].reset(),E.error("[[error:file-too-big, "+config.maximumFileSize+"]]")}const a=Date.now();u.uploadForm.off("submit").on("submit",function(){return $(this).ajaxSubmit({headers:{"x-csrf-token":config.csrf_token},resetForm:!0,clearForm:!0,formData:u.upload.formData,error:function(o){let s=o.responseJSON&&(o.responseJSON.error||o.responseJSON.status&&o.responseJSON.status.message)||"[[error:parse-error]]";o&&o.status===413&&(s="[[error:api.413]]"),E.error(s),E.remove(a)},uploadProgress:function(o,s,e,i){E.alert({alert_id:a,message:"[[modules:composer.uploading, "+i+"%]]"})},success:function(o){const s=o.response.images;if(s&&s.length)for(let e=0;e<s.length;++e)s[e].filename=f[e].name,s[e].isImage=/image./.test(f[e].type);u.callback(s)},complete:function(){u.uploadForm[0].reset(),setTimeout(E.remove,100,a)}}),!1}),u.uploadForm.submit()};function x(u,f,a=.9){return new Promise((o,s)=>{const e=new Image,i=new FileReader;i.onload=t=>{e.onload=()=>{const n=document.createElement("canvas");n.width=e.width,n.height=e.height,n.getContext("2d").drawImage(e,0,0),n.toBlob(c=>{if(!c)return s(new Error("Conversion failed"));o(c)},f,a)},e.onerror=s,e.src=t.target.result},i.onerror=s,i.readAsDataURL(u)})}return p}).apply(C,w),h!==void 0&&(m.exports=h)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.