!function(){"use strict";!function(e){if(!e.Promise){var t=setTimeout,n=function(e){console.warn("Possible Unhandled Promise Rejection:",e)},i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};a.prototype.catch=function(e){return this.then(null,e)},a.prototype.then=function(e,t){var n=new a(r);return s(this,new l(e,t,n)),n},a.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&i(arguments[0])?arguments[0]:arguments);return new a((function(t,n){if(0===e.length)return t([]);var i=e.length;function r(o,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,(function(e){r(o,e)}),n)}e[o]=a,0==--i&&t(e)}catch(e){n(e)}}for(var o=0;o>>0,r=arguments[1],o=0;o>>0,r=arguments[1],o=0;o=0?i=o:(i=n+o)<0&&(i=0);in.length)&&(t=n.length),t-=e.length;var i=n.lastIndexOf(e,t);return-1!==i&&i===t});var e=Function.bind.call(Function.call,Array.prototype.reduce),t=Function.bind.call(Function.call,Object.prototype.propertyIsEnumerable),n=Function.bind.call(Function.call,Array.prototype.concat);function i(e,t){return void 0===t&&(t=document),t.querySelector(e)||null}function r(e,t){void 0===t&&(t=document);var n=t.querySelectorAll(e);return[].slice.call(n)}function o(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];(e=[]).concat.apply(e,t).forEach((function(e){return e.classList.remove("hidden")}))}function a(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];(e=[]).concat.apply(e,t).forEach((function(e){return e.classList.add("hidden")}))}function s(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];(e=[]).concat.apply(e,t).forEach((function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}))}function c(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];(e=[]).concat.apply(e,t).forEach((function(e){return e.parentNode.removeChild(e)}))}function u(e,t){void 0===t&&(t={});var n=document.createElement(e);for(var i in t)n[i]=t[i];return n}function d(e){return e.replace(/&/g,"&").replace(/>/g,">").replace(/n}};function y(e,t){return et)}var _=function(e){if(this.data=new Uint8Array(e),this.view=new DataView(e),this.decoder=new TextDecoder,this.numTags=this.view.getUint32(e.byteLength-4,!0),this.referenceStart=this.view.getUint32(e.byteLength-8,!0),this.secondaryStart=this.referenceStart+8*this.numTags,this.formatVersion=this.view.getUint32(e.byteLength-12,!0),2!==this.formatVersion)throw new Error("Incompatible autocomplete format version")};function L(e,t,n){var i={method:e,credentials:"same-origin",headers:{"Content-Type":"application/json","x-csrf-token":window.booru.csrfToken,"x-requested-with":"xmlhttprequest"}};return n&&(n._method=e,i.body=JSON.stringify(n)),fetch(t,i)}function E(e){return fetch(e,{credentials:"same-origin",headers:{"x-csrf-token":window.booru.csrfToken,"x-requested-with":"xmlhttprequest"}})}function k(e){if(!e.ok)throw new Error("Received error from server");return e}_.prototype.getTagFromLocation=function(e){for(var t=this.view.getUint8(e),n=this.view.getUint8(e+1+t),i=[],r=this.decoder.decode(this.data.slice(e+1,e+t+1)),o=0;o=0?o=s:r=s}for(var u=function(){var o=e(++r),s=o[0],c=o[1];if(0!==t(s))return"break";(i||-1===a.findIndex((function(e){return c.associations.includes(e)})))&&(n[c.name]=c)};r=o&&(S[t]?D(S[t],t,n.target):(e=t,fetch(""+x.dataset.acSource+e).then((function(e){return e.json()}))).then((function(e){return D(e,t,n.target)})))}),300)})),document.addEventListener("click",(function(e){e.target&&e.target!==x&&j()}))}var M=[["fuzz",/^~(?:\d+(\.\d+)?|\.\d+)/],["boost",/^\^[-+]?\d+(\.\d+)?/],["quoted_lit",/^\s*"(?:[^"]|\\")+"/],["lparen",/^\s*\(\s*/],["rparen",/^\s*\)\s*/],["and_op",/^\s*(?:&&|AND)\s+/],["and_op",/^\s*,\s*/],["or_op",/^\s*(?:\|\||OR)\s+/],["not_op",/^\s*NOT(?:\s+|(?=\())/],["not_op",/^\s*[!-]\s*/],["space",/^\s+/],["word",/^(?:\\[\s,()^~]|[^\s,()^~])+/],["word",/^(?:\\[\s,()]|[^\s,()])+/]],I=["id","width","height","aspect_ratio","comment_count","score","upvotes","downvotes","faves","tag_count"],z=["created_at"],P=["tags","orig_sha512_hash","sha512_hash","score","uploader","source_url","description"],H={tags:"data-image-tag-aliases",score:"data-score",upvotes:"data-upvotes",downvotes:"data-downvotes",uploader:"data-uploader",id:"data-image-id",width:"data-width",height:"data-height",aspect_ratio:"data-aspect-ratio",comment_count:"data-comment-count",tag_count:"data-tag-count",source_url:"data-source-url",faves:"data-faves",sha512_hash:"data-sha512",orig_sha512_hash:"data-orig-sha512",created_at:"data-created-at"};function R(e){this.term=e.trim(),this.parsed=!1}function F(e){return function(e){var t,n,i,r=[];if(e.forEach((function(o,a){if("not_op"!==o)if(t="not_op"===e[a+1],"string"==typeof o){if(i=r.pop(),void 0===(n=r.pop())||void 0===i)throw new Error("Missing operand.");r.push(new U(o,t,n,i))}else t?r.push(new U(null,!0,o)):r.push(o)})),r.length>1)throw new Error("Missing operator.");return void 0===(n=r.pop())?new U:W(n)?new U(null,!1,n):n}(function(e){for(var t=[],n=[],i=[],r=null,o=null,a=null,s=0,c=!1,u="",d=e;d.length>0;)M.every((function(e){var l,f=e[0],p=e[1].exec(d);if(p){switch(p=p[0],Boolean(r)&&(-1!==["and_op","or_op"].indexOf(f)||"rparen"===f&&0===s)&&(r.boost=o,r.fuzz=a,i.push(r),r=a=o=null,u="",s=0,c&&(i.push("not_op"),c=!1)),f){case"and_op":for(;"and_op"===t[0];)i.push(t.shift());t.unshift("and_op");break;case"or_op":for(;"and_op"===t[0]||"or_op"===t[0];)i.push(t.shift());t.unshift("or_op");break;case"not_op":r?r.append(p):c=!c;break;case"lparen":r?(r.append(p),s+=1):(t.unshift("lparen"),n.push(c),c=!1);break;case"rparen":if(s>0)r?r.append(p):r=new R(p),s-=1;else{for(;t.length&&"lparen"!==(l=t.shift());)i.push(l);n.length>0&&n.pop()&&i.push("not_op")}break;case"fuzz":r?(a=parseFloat(p.substr(1)),u+=p):r=new R(p);break;case"boost":r?(o=p.substr(1),u+=p):r=new R(p);break;case"quoted_lit":r?r.append(p):r=new R(p);break;case"word":r?((a||o)&&(o=a=null,r.append(u),u=""),r.append(p)):r=new R(p);break;default:r&&r.append(p)}return d=d.substr(p.length,d.length-p.length),!1}return!0}));if(r&&(r.boost=o,r.fuzz=a,i.push(r)),c&&i.push("not_op"),-1!==t.indexOf("rparen")||-1!==t.indexOf("lparen"))throw new Error("Mismatched parentheses.");return i.push.apply(i,t),i}(e))}function W(e){return void 0!==e.term}function U(e,t,n,i){this.negate=Boolean(t),this.leftOperand=n||null,this.op=e||null,this.rightOperand=i||null}function B(e,t,n){var i;return i="and_op"===n.op?e&&t:e||t,n.negate?!i:i}function $(e){var t=b.get("bor_tags_"+e);return t||{id:e,name:"(unknown tag)",images:0,spoiler_image_uri:null}}function K(e){if(e.length){var t=e.slice(0,40),n=e.slice(41);fetch("/fetch/tags?ids[]="+t.join("&ids[]=")).then((function(e){return e.json()})).then((function(e){return e.tags.forEach((function(e){return(t=e).fetchedAt=(new Date).getTime()/1e3,void b.set("bor_tags_"+t.id,t);var t}))})).then((function(){return K(n)}))}}function J(e){var t=[];e.forEach((function(e){var n,i,r=b.get("bor_tags_"+e);(!r||(n=r,i=(new Date).getTime()/1e3,null===n.fetchedAt||n.fetchedAt\n \n ',i.classList.remove("hidden"),i.play(),e.querySelector(".js-spoiler-info-overlay").classList.add("hidden"),0))}(e);var o=r.querySelector("img");if(!o||-1!==o.src.indexOf(i))return!1;if(b.get("serve_hidpi")&&!i.endsWith(".gif")){var a="medium"===t?n.large:n.medium;o.srcset=i+" 1x, "+a+" 2x"}if(o.src=i,-1!==n[t].indexOf(".webm")){var s=e.querySelector(".js-spoiler-info-overlay");s.classList.remove("hidden"),s.innerHTML="WebM"}else e.querySelector(".js-spoiler-info-overlay").classList.add("hidden");return!0}function Q(e){e.querySelector(".image-filtered").classList.add("hidden");var t=e.querySelector(".image-show").classList;t.remove("hidden"),t.add("spoiler-pending")}function Z(e,t,n){var i=e.querySelector("picture");if(!i)return function(e,t,n){var i=e.querySelector("video");if(i){var r=e.querySelector("img"),o=e.querySelector(".js-spoiler-info-overlay");r&&(r.classList.remove("hidden"),r.src=t,o.innerHTML=n,o.classList.remove("hidden"),s(i),i.classList.add("hidden"),i.pause())}}(e,t,n);var r=i.querySelector("img"),o=e.querySelector(".js-spoiler-info-overlay");r&&-1===r.src.indexOf(t)&&(r.srcset="",r.src=t,o.innerHTML=n,o.classList.remove("hidden"))}function ee(e,t,n){switch(Z(e,t,n),window.booru.spoilerType){case"click":e.addEventListener("click",(function(t){Y(e)&&t.preventDefault()})),e.addEventListener("mouseleave",(function(){return Z(e,t,n)}));break;case"hover":e.addEventListener("mouseenter",(function(){return Y(e)})),e.addEventListener("mouseleave",(function(){return Z(e,t,n)}))}}function te(e,t,n){var i=e.querySelector(".image-filtered img"),r=e.querySelector(".filter-explanation");i&&(i.src=t,r.innerHTML=n,e.querySelector(".image-show").classList.add("hidden"),e.querySelector(".image-filtered").classList.remove("hidden"))}function ne(e){var t=r(".js-taginput",e),n=t[0],u=t[1],l=i(".js-tag-block ~ button",e.parentNode),f=i("input",u),p=[];function h(e){if(0!==(e=e.trim()).length&&-1===p.indexOf(e)){if("-"===e[0])return m(e=e.slice(1),i('[data-tag-name="'+(e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"]'),u).parentNode);p.push(e),n.value=p.join(", ");var t=''+d(e)+' x';f.insertAdjacentHTML("beforebegin",t),f.value=""}}function m(e,t){c(t),p.splice(p.indexOf(e),1),n.value=p.join(", ")}function v(){s(u),u.appendChild(f),p=[],n.value.split(",").forEach((function(e){return h(e)})),n.value=p.join(", ")}l.addEventListener("click",v),n.addEventListener("addtag",(function(e){if(u.classList.contains("hidden"))return;h(e.detail.name),e.stopPropagation()})),n.addEventListener("reload",v),e.addEventListener("click",(function(e){e.target.dataset.tagName&&(e.preventDefault(),m(e.target.dataset.tagName,e.target.parentNode))})),f.addEventListener("keydown",(function(e){var t=e.keyCode,n=e.ctrlKey,r=e.shiftKey;if(13===t&&n&&""===f.value)return;if(8===t&&""===f.value){e.preventDefault();var o=i(".tag:last-of-type",u);o&&m(p[p.length-1],o)}(13===t||188===t&&!r)&&(e.preventDefault(),f.value.split(",").forEach((function(e){return h(e)})),f.value="")})),f.addEventListener("autocomplete",(function(e){h(e.detail.value),f.focus()})),e.addEventListener("keydown",(function(t){var n=t.keyCode,r=t.ctrlKey;if(13!==n||!r)return;i('[type="submit"]',e.closest("form")).click()})),function(e){return window.booru.fancyTagUpload&&e.classList.contains("fancy-tag-upload")||window.booru.fancyTagEdit&&e.classList.contains("fancy-tag-edit")}(e)&&(o(r(".js-taginput-fancy")),o(r(".js-taginput-hide")),a(r(".js-taginput-plain")),a(r(".js-taginput-show")),v())}function ie(e,t){e.dispatchEvent(new CustomEvent("addtag",{detail:{name:t},bubbles:!0}))}function re(e){e.dispatchEvent(new CustomEvent("reload"))}R.prototype.append=function(e){this.term+=e,this.parsed=!1},R.prototype.parseRangeField=function(e){if(-1!==I.indexOf(e))return[e,"eq","number"];if(-1!==z.indexOf(e))return[e,"eq","date"];var t=/^(\w+)\.([lg]te?|eq)$/.exec(e);if(t){if(-1!==I.indexOf(t[1]))return[t[1],t[2],"number"];if(-1!==z.indexOf(t[1]))return[t[1],t[2],"date"]}return null},R.prototype.parseRelativeDate=function(e,t){var n=/(\d+) (second|minute|hour|day|week|month|year)s? ago/.exec(e);if(!n)throw new Error("Cannot parse date string: "+e);var i=parseInt(n[1],10),r={second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6}[n[2]],o=(new Date).getTime(),a=new Date(o-i*r),s=new Date(o-(i-1)*r);switch(t){case"lte":case"lt":return[a,"lt"];case"gte":case"gt":return[a,"gte"];default:return[[a,s],"eq"]}},R.prototype.parseAbsoluteDate=function(e,t){var n,i,r=[/^(\d{4})/,/^-(\d{2})/,/^-(\d{2})/,/^(?:\s+|T|t)(\d{2})/,/^:(\d{2})/,/^:(\d{2})/],o=[0,0],a=[0,0,1,0,0,0],s=e,c=null,u=s;for((i=/([+-])(\d{2}):(\d{2})$/.exec(u))?(o[0]=parseInt(i[2],10),o[1]=parseInt(i[3],10),"-"===i[1]&&(o[0]*=-1,o[1]*=-1),u=u.substr(0,u.length-6)):u=u.replace(/[Zz]$/,""),n=0;n0)throw new Error("Cannot parse date string: "+s);switch(a[3]-=o[0],a[4]-=o[1],t){case"lte":return a[n-1]+=1,[Date.UTC.apply(Date,a),"lt"];case"gte":return[Date.UTC.apply(Date,a),"gte"];case"lt":return[Date.UTC.apply(Date,a),"lt"];case"gt":return a[n-1]+=1,[Date.UTC.apply(Date,a),"gte"];default:return c=Date.UTC.apply(Date,a),a[n-1]+=1,[[c,Date.UTC.apply(Date,a)],"eq"]}},R.prototype.parseDate=function(e,t){try{return this.parseAbsoluteDate(e,t)}catch(n){return this.parseRelativeDate(e,t)}},R.prototype.parse=function(){var e,t,n;this.wildcardable=!this.fuzz&&!/^"([^"]|\\")+"$/.test(this.term),this.wildcardable||this.fuzz||(this.term=this.term.substr(1,this.term.length-2)),this.term=this._normalizeTerm(),this.termSpace="tags",this.termType="literal";var i=this.term.split(":");i.length>1&&(t=i[0],n=i.slice(1).join(":"),(e=this.parseRangeField(t))?(this.termSpace=e[0],this.termType=e[2],"date"===this.termType?(e=this.parseDate(n,e[1]),this.term=e[0],this.compare=e[1]):(this.term=parseFloat(n),this.compare=e[1]),this.wildcardable=!1):-1!==P.indexOf(t)?(this.termType="literal",this.term=n,this.termSpace=t):"my"===t&&(this.termType="my",this.termSpace=n)),this.wildcardable&&(this.term=new RegExp("^"+this.term.replace(/([.+^$[\]\\(){}|-])/g,"\\$1").replace(/([^\\]|[^\\](?:\\\\)+)\*/g,"$1.*").replace(/^(?:\\\\)*\*/g,".*").replace(/([^\\]|[^\\](?:\\\\)+)\?/g,"$1.?").replace(/^(?:\\\\)*\?/g,".?")+"$","i")),this.parsed=!0},R.prototype._normalizeTerm=function(){return this.wildcardable?this.term.replace(/\\([^*?])/g,"$1"):this.term.replace('"','"')},R.prototype.fuzzyMatch=function(e){var t,n,i,r,o=[],a=[],s=[];t=this.fuzz<1?e.length*(1-this.fuzz):this.fuzz;var c=e.toLowerCase();for(n=0;n<=c.length;n+=1)a.push(n);for(n=0;n1&&i>1&&this.term[n]===c[i-1]&&c[n-1]===c[i]&&(s[i+1]=Math.min(s[i],o[i-1]+u))}r=o,o=a,a=s,s=r}return a[c.length]<=t},R.prototype.exactMatch=function(e){return this.term.toLowerCase()===e.toLowerCase()},R.prototype.wildcardMatch=function(e){return this.term.test(e)},R.prototype.interactionMatch=function(e,t,n,i){var r=!1;return i.forEach((function(i){i.image_id!==e||i.interaction_type!==t||null!==n&&i.value!==n||(r=!0)})),r},R.prototype.match=function(e){var t,n,i,r=this,o=!1;if(this.parsed||this.parse(),"literal"===this.termType)t=this.fuzz?this.fuzzyMatch:this.wildcardable?this.wildcardMatch:this.exactMatch,"tags"===this.termSpace?e.getAttribute("data-image-tag-aliases").split(", ").every((function(e){return!t.call(r,e)||(o=!0,!1)})):o=t.call(this,e.getAttribute(H[this.termSpace]));else if("my"===this.termType&&window.booru.interactions.length>0)switch(this.termSpace){case"faves":o=this.interactionMatch(e.getAttribute("data-image-id"),"faved",null,window.booru.interactions);break;case"upvotes":o=this.interactionMatch(e.getAttribute("data-image-id"),"voted","up",window.booru.interactions);break;case"downvotes":o=this.interactionMatch(e.getAttribute("data-image-id"),"voted","down",window.booru.interactions);break;default:o=!1}else if("date"===this.termType)switch(i=new Date(e.getAttribute(H[this.termSpace])).getTime(),this.compare){case"lt":o=this.term>i;break;case"gte":o=this.term<=i;break;default:o=this.term[0]<=i&&this.term[1]>i}else if(n=parseFloat(e.getAttribute(H[this.termSpace])),isNaN(this.term))o=!1;else if(this.fuzz)o=this.term<=n+this.fuzz&&this.term+this.fuzz>=n;else switch(this.compare){case"lt":o=this.term>n;break;case"gt":o=this.term=n;break;case"gte":o=this.term<=n;break;default:o=this.term===n}return o},U.prototype.hitsImage=function(e){for(var t,n,i=[],r=this;!W(r);)if(i.push(r),!(r=r.leftOperand))return!1;for(r=r.match(e),i.push(r);i.length>0;){if(null===(n=i.pop()))t=r,r=i.pop(),n=i.pop();else{if(!r&&"and_op"===n.op){r=n.negate;continue}if(r&&"or_op"===n.op){r=!n.negate;continue}t=n.rightOperand}if("boolean"==typeof t)r=B(r,t,n);else if(t)if(W(t))r=B(r,t=t.match(e),n);else{i.push(n,r,null);do{i.push(t),t=t.leftOperand}while(!W(t));r=t.match(e)}else n.negate&&(r=!r)}return r},U.prototype.dumpTree=function(){for(var e,t,n,i=[],r=[["",this]];r.length>0;)t=(e=r.shift())[0],W(n=e[1])?i.push(t+"-> "+n.term):(n.negate&&(i.push(t+"+ NOT_OP"),t+="\t"),n.op?(i.push(t+"+ "+n.op.toUpperCase()),t+="\t",r.unshift([t,n.rightOperand]),r.unshift([t,n.leftOperand])):r.unshift([t,n.leftOperand]));return i.join("\n")},window.booru=new function(){this.apiEndpoint="/api/v2/",this.hiddenTag="/images/tagblocked.svg",this.tagsVersion=5};var oe={click:function(e){return 0!==e.button},change:function(){},fetchcomplete:function(){}},ae={hide:function(e){se(e.base,e.value,(function(e){return e.classList.add("hidden")}))},tabHide:function(e){!function(e,t,n){void 0===e&&(e=document);for(var i=r(t,e),o=0,a=e.children;o0&&(r+=', '+t+""),r}function Ie(e,t,n){return!(!t||0===t.length)&&(n(e,t),window.booru.imagesWithDownvotingDisabled.push(e.dataset.imageId),!0)}function ze(e,t){Z(e,t[0].spoiler_image_uri||window.booru.hiddenTag,"[HIDDEN] "+Me(t))}function Pe(e,t){ee(e,t[0].spoiler_image_uri||window.booru.hiddenTag,Me(t))}function He(e){Z(e,window.booru.hiddenTag,"[HIDDEN] (Complex Filter)")}function Re(e){ee(e,window.booru.hiddenTag,"(Complex Filter)")}function Fe(e,t){te(e,t[0].spoiler_image_uri||window.booru.hiddenTag,"This image is tagged "+d(t[0].name)+", which is hidden by ")}function We(e,t){te(e,t[0].spoiler_image_uri||window.booru.hiddenTag,"This image is tagged "+d(t[0].name)+", which is spoilered by ")}function Ue(e){te(e,window.booru.hiddenTag,"This image was hidden by a complex tag expression in ")}function Be(e){te(e,window.booru.hiddenTag,"This image was spoilered by a complex tag expression in ")}function $e(e){void 0===e&&(e=document);var t=qe(window.booru.hiddenTagList).map((function(e){return $(e)})).sort(Oe.bind(null,!0)),n="off"===window.booru.spoilerType?[]:qe(window.booru.spoileredTagList).filter((function(e){return-1===window.booru.ignoredTagList.indexOf(e)})).map((function(e){return $(e)})).sort(Oe.bind(null,!1)),i=window.booru,o=i.hiddenFilter,a=i.spoileredFilter;r(".image-container",e).filter((function(e){return!function(e,t){return Ie(t,De(t,e),ze)}(t,e)})).filter((function(e){return!function(e,t){return Ie(t,Ne(t,e),He)}(o,e)})).filter((function(e){return!function(e,t){return Ie(t,De(t,e),Pe)}(n,e)})).filter((function(e){return!function(e,t){return Ie(t,Ne(t,e),Re)}(a,e)})).forEach((function(e){return Y(e)})),r(".image-show-container",e).filter((function(e){return!function(e,t){return Ie(t,De(t,e),Fe)}(t,e)})).filter((function(e){return!function(e,t){return Ie(t,Ne(t,e),Ue)}(o,e)})).filter((function(e){return!function(e,t){return Ie(t,De(t,e),We)}(n,e)})).filter((function(e){return!function(e,t){return Ie(t,Ne(t,e),Be)}(a,e)})).forEach((function(e){return Q(e)}))}function Ke(e){return e.ok?e.text():"
Comment failed to load!
"}function Je(e){var t=e.target,n=t.closest("article.block"),i=/(\w+)#comment_(\w+)$/.exec(t.getAttribute("href"));return t.classList.contains("active_reply_link")?(Ve(t,n),!0):i?(E("/images/"+i[1]+"/comments/"+i[2]).then(Ke).then((function(e){Ve(t,n),function(e,t,n){n.classList.add("subthread"),n.insertAdjacentHTML("beforebegin",e),n.previousSibling.classList.add("subthread"),n.previousSibling.classList.add("fetched-comment"),window.booru.timeAgo(n.previousSibling.getElementsByTagName("time")),t.classList.add("active_reply_link"),$e(n.previousSibling)}(e,t,n)})),!0):void 0}function Ve(e,t){for(;t.previousSibling&&t.previousSibling.classList.contains("fetched-comment");)t.previousSibling.parentNode.removeChild(t.previousSibling);[].slice.call(t.getElementsByClassName("active_reply_link")).forEach((function(e){e.classList.remove("active_reply_link")})),t.classList.contains("fetched-comment")||t.classList.remove("subthread")}function Xe(e,t){e.innerHTML=t,window.booru.timeAgo(document.getElementsByTagName("time")),$e(e),g()}function Ge(e){var t=document.getElementById("comments"),n=e.target&&e.target.getAttribute("href"),i=window.location.hash&&window.location.hash.match(/#comment_([a-f0-9]+)/);return E(n||(i?t.dataset.currentUrl+"?comment_id="+window.location.hash.substring(9,window.location.hash.length):t.dataset.currentUrl)).then(Ke).then((function(e){Xe(t,e),i&&(window.location=window.location)})),!0}function Ye(){var e=document.getElementById("comments"),t=!(window.location.hash&&window.location.hash.match(/^#comment_([a-f0-9]+)$/))||Boolean(i(window.location.hash));e&&(e.dataset.loaded&&t?($e(e),g()):Ge(!1));var n={'article[id*="comment"] .communication__body__text a[href]':Je,"#comments .pagination a[href]":Ge,"#js-refresh-comments":Ge};document.addEventListener("click",(function(e){if(0===e.button)for(var t in n)e.target&&e.target.closest(t)&&n[t](e)&&e.preventDefault()})),document.addEventListener("fetchcomplete",(function(e){var t,n,r,o,a;"js-comment-form"===e.target.id&&(t=e.detail,n=i('#js-comment-form a[data-click-tab="write"]'),r=i("#js-comment-form"),o=document.getElementById("comments"),a=t.ok,n.click(),r.reset(),a?t.text().then((function(e){e.includes('
')?window.location.reload():Xe(o,e)})):(window.location.reload(),window.scrollTo(0,0)))}))}function Qe(){var e=r(".onion-skin__image, .onion-skin__slider"),t=e[0],n=e[1],o=i(".swipe__image");o&&function(e){var t=r("#clip rect, #divider",e),n=t[0],i=t[1],o=e.viewBox.baseVal,a=o.width;function s(t){var r=t.clientX,o=e.getBoundingClientRect(),s=(r-o.left)*(a/o.width);i.setAttribute("x",s),n.setAttribute("width",s)}e.addEventListener("mousemove",s)}(o),t&&function(e,t){var n=i("#target",e);function r(){n.setAttribute("opacity",t.value)}r(),t.addEventListener("input",r)}(t,n)}function Ze(){var e;try{e="c"+([navigator.userAgent,navigator.cpuClass,navigator.oscpu,navigator.platform,navigator.browserLanguage,navigator.language,navigator.systemLanguage,navigator.userLanguage,screen.availLeft,screen.availTop,screen.availWidth,screen.height,screen.width,window.devicePixelRatio,(new Date).getTimezoneOffset()].join("").split("").reduce((function(e,t){return(e<<5)-e+t.charCodeAt(0)}),0)>>>0)}catch(t){e="c1836832948"}document.cookie="_ses="+e+"; path=/; SameSite=Lax"}function et(e,t){t.classList.add("dragging"),je=t,0===e.dataTransfer.items.length&&e.dataTransfer.setData("text/plain",""),e.dataTransfer.effectAllowed="move"}function tt(e){e.preventDefault(),e.dataTransfer.dropEffect="move"}function nt(e,t){t.classList.add("over")}function it(e,t){t.classList.remove("over")}function rt(e,t){if(e.preventDefault(),je.classList.remove("dragging"),je!==t){var n=t.getBoundingClientRect(),i=n.left+n.width/2;e.clientX1024&&t>1024&&t>2.5*e)return"tall";for(var a=0,s=Object.keys(ct);ar||l>o)return c}return"video/webm"===i||n<=26214400?"full":"large"}(t,n,i,r));var u=a[c],d=/\.(\w+?)$/.exec(u)[1];if("full"===c&&b.get("serve_webm")&&Boolean(a.mp4)&&(d="mp4"),"mp4"===d||"webm"===d){for(var l=0,f=e.querySelectorAll("video source");l\n \n \n

\n Your browser supports neither MP4/H264 nor\n WebM/VP8! Please update it to the latest version.\n

\n ');else if("webm"===d){e.insertAdjacentHTML("afterbegin",'');var h=e.querySelector("video");"true"===o?h.className="image-scaled":"partscaled"===o&&(h.className="image-partscaled")}else{var m;if(m="true"===o?'':"partscaled"===o?'':'',e.innerHTML===m)return;s(e),e.insertAdjacentHTML("afterbegin",m)}}function dt(){var e=document.getElementById("image_target");e&&(ut(e),"video/webm"!==e.dataset.mimeType&&(!function(e){e.addEventListener("click",(function(){"true"===e.getAttribute("data-scaled")?e.setAttribute("data-scaled","partscaled"):"partscaled"===e.getAttribute("data-scaled")?e.setAttribute("data-scaled","false"):e.setAttribute("data-scaled","true"),ut(e)}))}(e),window.addEventListener("resize",(function(){ut(e)}))))}var lt=!1;function ft(e){var t=e.target,n=e.detail,r={"#description-form":".image-description","#uploader-form":".image_uploader","#source-form":"#image-source"};var o=function(e){t.matches(e)&&n.text().then((function(n){return o=i(r[e]),a=t,s=n,o.innerHTML=s,o.classList.remove("hidden"),a.classList.add("hidden"),void(a.querySelector('input[type="submit"],button').disabled=!1);var o,a,s}))};for(var a in r)o(a)}function pt(e){var t=e.target,n=t.closest(".spoiler"),i=t.closest(".spoiler .imgspoiler, .spoiler-revealed .imgspoiler"),r=t.closest(".image-show-container");if(lt)lt=!1;else{if(n){if(r){var o=r.querySelector(".image-show");if(!o.classList.contains("hidden")&&o.classList.contains("spoiler-pending"))return void o.classList.remove("spoiler-pending")}n.classList.remove("spoiler"),n.classList.add("spoiler-revealed"),"touchend"===e.type&&e.preventDefault(),i||(i=n.querySelector(".imgspoiler"))}i&&(i.classList.remove("imgspoiler"),i.classList.add("imgspoiler-revealed"),"touchend"!==e.type||e.defaultPrevented||e.preventDefault())}}var ht=6e5,mt=3e5;function vt(){var e;!document.hidden&&b.hasExpired("notificationCount")&&(e="GET",L(e,"/notifications/unread").then(k)).then((function(e){return e.json()})).then((function(e){var t=e.notifications;gt(t),wt(t),setTimeout(vt,ht)}))}function gt(e){var t=i(".js-notification-ticker"),n=Number(e);t.dataset.notificationCount=n,t.textContent=n}function wt(e){b.setWithExpireTime("notificationCount",e,mt)}function bt(){window.booru.userIsSignedIn&&(setTimeout(vt,ht),wt(i(".js-notification-ticker").dataset.notificationCount),b.watch("notificationCount",gt),h(document,"fetchcomplete",{".js-subscription-link":function(e){var t=i("#js-subscription-target");e.detail.text().then((function(e){t.outerHTML=e}))}}))}function yt(e){return e.ok?e.text():"
Preview failed to load!
"}function _t(e){var t=window.getComputedStyle(e.target),n=t.borderTopWidth,i=t.borderBottomWidth,r=t.height,o=e.target.scrollHeight+parseFloat(n)+parseFloat(i),a=parseFloat(r),s=Math.max(a,Math.min(1e3,o));e.target.style.height=s+"px"}function Lt(){var e=document.querySelector(".js-preview-input");e||(e=document.querySelector(".js-preview-description"));var t=document.querySelector('a[data-click-tab="preview"]'),n=document.querySelector(".js-preview-loading"),i=document.querySelector(".js-preview-idle"),r=document.querySelector(".js-preview-content"),s=document.querySelector(".js-preview-anonymous")||!1;if(e&&r){var c="data-previewed-text",u=function(){var t=(s&&s.checked?"anon;":"")+e.value;r.getAttribute(c)!==t&&(r.setAttribute(c,t),function(e,t,n,i,r){"string"==typeof e&&(o(n),a(i),L("POST","/posts/preview",{body:e,anonymous:t}).then(yt).then((function(e){r.innerHTML=e,$e(r),o(i),a(n)})))}(e.value,s&&s.checked,n,i,r))};t.addEventListener("click",u),e.addEventListener("change",_t),e.addEventListener("keyup",_t),e.value&&e.dispatchEvent(new Event("change")),s&&s.addEventListener("click",(function(){r.classList.contains("hidden")||u()})),document.addEventListener("click",(function(t){if(t.target&&t.target.closest(".post-reply")){var n=t.target.closest(".post-reply");!function(e,t,n,i){var r="["+e+"]("+t+")",o=n.value;o&&/\n$/.test(o)&&(o+="\n"),o+=r+"\n",i&&(o+="> "+i.replace(/\n/g,"\n> ")+"\n\n"),n.value=o,n.selectionStart=n.selectionEnd=o.length;var a=document.querySelector('a[data-click-tab="write"]:not(.selected)');a&&a.click(),n.focus()}(n.dataset.author,n.getAttribute("href"),e,n.dataset.post),t.preventDefault()}}))}}var Et,kt="quickTagQueue",xt="quickTagName";function Tt(){return b.get(kt)||[]}function St(){return b.get(xt)||""}function jt(){return i(".js-quick-tag")}function At(e){i(".js-quick-tag--submit span").textContent=e}function Ct(){!function(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];(e=[]).concat.apply(e,t).forEach((function(e){return e.classList.toggle("hidden")}))}(i(".js-quick-tag"),i(".js-quick-tag--abort"),i(".js-quick-tag--all"),i(".js-quick-tag--submit")),At("Submit ("+St()+")"),r(".media-box__header").forEach((function(e){return e.classList.toggle("media-box__header--unselected")})),r(".media-box__header").forEach((function(e){return e.classList.remove("media-box__header--selected")})),Tt().forEach((function(e){return r('.media-box__header[data-image-id="'+e+'"]').forEach((function(e){return e.classList.add("media-box__header--selected")}))}))}function qt(){b.set(xt,window.prompt("A comma-delimited list of tags you want to add:")),St()&&Ct()}function Ot(){b.remove(xt),b.remove(kt),Ct()}function Dt(){window.confirm("Are you sure you want to abort batch tagging?")&&Ot()}function Nt(){At("Wait... ("+St()+")"),L("PUT","/admin/batch/tags",{tags:St(),image_ids:Tt()}).then(k).then((function(e){return e.json()})).then((function(e){e.failed.length&&window.alert("Failed to add tags to the images with these IDs: "+e.failed),Ot()}))}function Mt(e){if(St()){var t=e.dataset.imageId,n=Tt();n.includes(t)?n.splice(n.indexOf(t),1):n.push(t),r('.media-box__header[data-image-id="'+t+'"]').forEach((function(e){return e.classList.toggle("media-box__header--selected")})),b.set(kt,n)}}function It(){r("#imagelist-container .media-box").forEach(Mt)}function zt(e){var t={".js-quick-tag":qt,".js-quick-tag--abort":Dt,".js-quick-tag--submit":Nt,".js-quick-tag--all":It,".media-box":Mt};for(var n in t)e.target&&e.target.closest(n)&&(t[n](e.target.closest(n)),St()&&e.preventDefault())}function Pt(){var e,t;jt()&&St()&&Ct(),jt()&&(e=zt,void 0===t&&(t=document),t.addEventListener("click",(function(t){0===t.button&&e(t)})))}var Ht=250,Rt=190,Ft=156,Wt=140,Ut=9;function Bt(){[].slice.call(Et).forEach((function(e){var t=null!==e.querySelector(".media-box__content--large"),n=e.offsetWidth-14;Math.floor(n/(Rt+Ut))>=3?t&&$t(e,n,Rt,Ht):$t(e,n,Wt,Ft)}))}function $t(e,t,n,i){var r=Math.floor(t/(n+Ut)),o=Math.floor(t/(i+Ut)),a=Math.round((r+o)/2);!function(e,t){var n=e.querySelectorAll(".media-box__content");[].slice.call(n).forEach((function(e){e.style.width=t+"px",e.style.height=t+"px";var n=e.parentNode.firstElementChild;e.parentNode.style.width=t+"px",t0?(l.innerText=e.errors.join(" "),void b()):(y(),p&&(p.value=p.value||e.source_url||""),m&&(m.value=m.value||e.description||""),h&&e.author_name&&ie(h,"artist:"+e.author_name.toLowerCase()),c.value="",w(e.images),void E())})).catch(b))})),d.addEventListener("keydown",(function(e){13===e.keyCode&&v.click()})),d.addEventListener("input",(function(){d.value.length>0?E():_()})),d.value.length>0?E():_(),c.addEventListener("change",T),v.addEventListener("click",T),t.addEventListener("submit",(function(){window.removeEventListener("beforeunload",x)}))}}function w(t){s(e),t.forEach((function(t,n){var i=function(e){var t=e.camo_url,n=e.type;if("string"==typeof t)return u("img",{className:"scraper-preview--image",src:t});var i=URL.createObjectURL(new Blob([t],{type:n}));return u(new DataView(t).getUint32(0)===un?"video":"img",{className:"scraper-preview--image",src:i})}(t),r=u("span",{className:"scraper-preview--image-wrapper"});r.appendChild(i);var o=u("label",{className:"scraper-preview--label"}),a=u("input",{type:"radio",className:"scraper-preview--input"});t.url&&(a.name="scraper_cache",a.value=t.url),0===n&&(a.checked=!0),o.appendChild(a),o.appendChild(r),e.appendChild(o)}))}function b(){s(e),o(l),E()}function y(){a(l)}function _(){v.setAttribute("disabled","")}function E(){v.removeAttribute("disabled")}function x(e){e.preventDefault(),e.returnValue=""}function T(){window.addEventListener("beforeunload",x)}}function ln(e){var t,n,o,a,s=i(".js-search-field"),c=function(t){return e.target.getAttribute(t)};c("data-search-add")&&ie(s,c("data-search-add")),c("data-search-show-help")&&(t=e.target.textContent,n=c("data-search-show-help"),r("[data-search-help]").forEach((function(e){e.getAttribute("data-search-help")===n?(i(".js-search-help-subject",e).textContent=t,e.classList.remove("hidden")):e.classList.add("hidden")}))),c("data-search-select-last")&&(o=s,a=parseInt(c("data-search-select-last"),10),o.focus(),o.selectionStart=o.value.length-a,o.selectionEnd=o.value.length),c("data-search-prepend")&&function(e,t){var n=e.value.lastIndexOf(","),i=" "===e.value[n+1]?2:1;e.value=e.value.slice(0,n+i)+t+e.value.slice(n+i)}(s,c("data-search-prepend"))}var fn,pn={bold:{action:vn,options:{prefix:"**",shortcutKey:"b"}},italics:{action:vn,options:{prefix:"*",shortcutKey:"i"}},under:{action:vn,options:{prefix:"__",shortcutKey:"u"}},spoiler:{action:vn,options:{prefix:"||",shortcutKey:"s"}},code:{action:function(e,t){gn(e,t,/\n/)},options:{prefix:"`",suffix:"`",prefixMultiline:"```\n",suffixMultiline:"\n```",singleWrap:!0,shortcutKey:"e"}},strike:{action:vn,options:{prefix:"~~"}},superscript:{action:vn,options:{prefix:"^"}},subscript:{action:vn,options:{prefix:"%"}},quote:{action:gn,options:{prefix:"> "}},link:{action:mn,options:{shortcutKey:"l"}},image:{action:mn,options:{image:!0,shortcutKey:"k"}},escape:{action:function(e,t){hn(e,(function(e){var n=t.text;if(void 0===n&&(n=e),!(""===n)){var i=n.replace(/([*_[\]()^`%\\~<>#|])/g,"\\$1");return{newText:i,caretOffset:i.length}}}))},options:{escapeChar:"\\"}}};function hn(e,t,n){var i=function(e,t){void 0===t&&(t=!1);var n,i=e.selectionStart,r=e.selectionEnd,o=e.value.substring(i,r),a="",s="",c=t instanceof RegExp?t.test(o):t;if(c){for(var u=/\n/g,d=0,l=e.value.length;u.exec(e.value);){var f=u.lastIndex;if(f<=i)d=f;else if(f>r){l=f-1;break}}i=d;var p=e.value.substring(i).match(/^[\s\n]+/);p&&(i+=p[0].length),r=l,o=e.value.substring(i,r)}else{for(n=o.length-1;n>0&&(" "===o[n]||"\n"===o[n]);n--)s=o[n]+s;for(o=o.substring(0,n+1),n=0;n=1?o.length+l:e.value.length-a.length-l;e.selectionStart=f,e.selectionEnd=f,e.scrollTop=c,e.dispatchEvent(new Event("change"))}function mn(e,t){var n=window.prompt(t.image?"Image link:":"Link:");n&&""!==n&&(!t.image&&n.startsWith(window.location.origin)&&(n=n.substring(window.location.origin.length)),vn(e,{prefix:t.image?"![":"[",suffix:"]("+n+")"}))}function vn(e,t){hn(e,(function(e){var n=t.text;void 0===n&&(n=e);var i=t.prefix;void 0===i&&(i="");var r=t.suffix;void 0===r&&(r=t.prefix);var o=""===n,a=n;return o||(a=n.replace(/(\n{2,})/g,(function(e){return r+e+i}))),{newText:a=i+a+r,caretOffset:o?i.length:a.length}}))}function gn(e,t,n){void 0===n&&(n=!0),hn(e,(function(e,n){var i=t.text;void 0===i&&(i=e);var r=t.singleWrap;void 0===r&&(r=!1);var o=n&&t.prefixMultiline||t.prefix||"",a=n&&t.suffixMultiline||t.suffix||"",s=""===i,c=r?o+i.trim()+a:i.split(/\n/g).map((function(e){return o+e.trim()+a})).join("\n");return{newText:c=c.replace(/^((?:>\s+)*)>$/gm,"$1> "),caretOffset:s?o.length:c.length}}),n)}function wn(e){var t=e.target.closest(".communication__toolbar__button");if(t){var n=i(".js-toolbar-input",t.closest(".communication__toolbar").parentNode),r=t.dataset.syntaxId;pn[r].action(n,pn[r].options),n.focus()}}function bn(e){if(e.ctrlKey&&("MacIntel"!==window.navigator.platform||e.metaKey)&&!e.shiftKey&&!e.altKey){var t=e.target,n=e.key.toLowerCase();for(var i in pn)n===pn[i].options.shortcutKey&&(pn[i].action(t,pn[i].options),e.preventDefault())}}function yn(e,t){c(t.closest(".js-poll-option"))}fn=function(){var e,t,n,o,a,s,u;g(),e=i(".js-editable-posts"),(t=e&&JSON.parse(e.dataset.editable))&&t.forEach((function(e){return i("#post_"+e+" .owner-options").classList.remove("hidden")})),G(),N(),function(){for(var e in oe)document.addEventListener(e,ce)}(),fe(),h(document,"click",{".js-captcha":p(pe)}),window.booru.imagesWithDownvotingDisabled=[],$e(document),Ce(),Ye(),Qe(),Ze(),st(),dt(),n=i("#extrameta"),b.get("hide_uploader")&&n&&n.classList.add("hidden"),b.get("hide_score")&&r(".upvotes,.score,.downvotes").forEach((function(e){return e.classList.add("hidden")})),document.addEventListener("fetchcomplete",ft),document.addEventListener("click",pt),document.addEventListener("touchend",pt),document.addEventListener("touchmove",(function(){return lt=!0})),bt(),Lt(),Pt(),(Et=document.querySelectorAll(".js-resizable-media-container")).length>0&&(window.addEventListener("resize",Bt),Bt()),function(){if(i("#js-setting-table")){var e=r('[data-tab="local"] input[type="checkbox"]'),t=i("#user_theme"),n=i('head link[rel="stylesheet"]');e.forEach((function(e){e.addEventListener("change",(function(){b.set(e.id.replace("user_",""),e.checked)}))})),t&&t.addEventListener("change",(function(){n.href=t.options[t.selectedIndex].dataset.themePath}))}}(),Xt(),Zt(),document.addEventListener("addtag",(function(e){e.target.value&&(e.target.value+=", "),e.target.value+=e.detail.name})),tn(),document.addEventListener("fetchcomplete",nn),document.addEventListener("click",en),cn(),dn(),(o=i(".js-search-form"))&&o.addEventListener("click",ln),r(".communication__toolbar").forEach((function(e){e.addEventListener("click",wn)})),r(".js-toolbar-input").forEach((function(e){e.addEventListener("keydown",bn)})),"true"===window.booru.hideStaffTools&&r(".js-staff-action").forEach((function(e){e.classList.add("hidden")})),function(){var e=i(".js-poll-add-option");if(h(document,"click",{".js-option-remove":p(yn)}),e){var t=e.closest("form"),n=parseInt(i(".js-max-option-count",t).innerHTML,10);e.addEventListener("click",(function(i){i.preventDefault();var o=r(".js-poll-option",t).length;if(o=n&&c(e)}))}}(),a=i(".js-toolbar-input"),s=i(".js-hidden-warning"),u=/!+\[/g,s&&a&&a.addEventListener("input",(function(){a.value.match(u)?s.classList.remove("hidden"):s.classList.contains("hidden")||s.classList.add("hidden")}))},"loading"!==document.readyState?fn():document.addEventListener("DOMContentLoaded",fn)}();