MediaViki:Gadget-TwinkleV3.js

Qeyd: Dəyişiklikləri yayımladıqdan sonra etdiyiniz dəyişikliklərin görünməsi üçün brauzerinizin keşinin təmizlənməsi lazım ola bilər.

  • Firefox / Safari: Reload düyməsinə basılı tutarkən Shift düyməsinə basın, və ya Ctrl+F5 və ya Ctrl+R (Mac üçün ⌘-R )
  • Google Chrome: Ctrl-Shift-R (Mac üçün ⌘-Shift-R)
  • Edge: Ctrl düyməsini basılı tutarkən Refresh düyməsinə basın, və ya sadəcə Ctrl+F5.
/*  _______________________________________________________________________________	
 * |                                                                               |
 * |                     === WARNING: GLOBAL GADGET FILE ===                       |
 * |                   Changes to this page affect many users.                     |
 * |  Please discuss changes on the talk page or on [[WT:Gadget]] before editing.  |
 * |_______________________________________________________________________________|
 *
 * Built from source code at GitHub repository [https://github.com/nemoralis/twinkle-azwiki]
 * All changes should be made in the repository. Please do not attempt to edit this file directly.
 */
/* <nowiki> */
(()=>{var e={193:function(e){e.exports=function(){"use strict";class e{constructor(e){this.locale=e}convertPlural(t,a){var i=new RegExp("\\d+=","i");if(!a||0===a.length)return"";for(let e=0;e<a.length;e++){let n=a[e];if(i.test(n)){if(parseInt(n.slice(0,n.indexOf("=")),10)===t)return n.slice(n.indexOf("=")+1);a[e]=void 0}}a=a.filter((e=>!!e));let n=e.pluralRules[this.locale];n||(n={one:"i = 1 and v = 0"});let r=this.getPluralForm(t,n);return r=Math.min(r,a.length-1),a[r]}getPluralForm(e,t){const a=["zero","one","two","few","many","other"];let i=0;const n=mw.libs.pluralRuleParser;for(let r=0;r<a.length;r++)if(t[a[r]]){if(n(t[a[r]],e))return i;i++}return i}convertNumber(e,t){let a=this.digitTransformTable(this.locale),i=String(e),n="";if(!a)return e;if(t){if(parseFloat(e,10)===e)return e;let t=[];for(let e in a)t[a[e]]=e;a=t}for(let e=0;e<i.length;e++)a[i[e]]?n+=a[i[e]]:n+=i[e];return t?parseFloat(n,10):n}convertGrammar(e,t){return e}gender(e,t){if(!t||0===t.length)return"";for(;t.length<2;)t.push(t[t.length-1]);return"male"===e?t[0]:"female"===e?t[1]:3===t.length?t[2]:t[0]}digitTransformTable(t){return!!e.digitTransforms[t]&&e.digitTransforms[t].split("")}}e.pluralRules={},e.digitTransforms={};var t={bs:class extends e{convertGrammar(e,t){switch(t){case"instrumental":e="s "+e;break;case"lokativ":e="o "+e}return e}},default:e,dsb:class extends e{convertGrammar(e,t){switch(t){case"instrumental":e="z "+e;break;case"lokatiw":e="wo "+e}return e}},fi:class extends e{convertGrammar(e,t){let a=e.match(/[aou][^\xe4\xf6y]*$/i),i=e;switch(e.match(/wiki$/i)&&(a=!1),e.match(/[bcdfghjklmnpqrstvwxz]$/i)&&(e+="i"),t){case"genitive":e+="n";break;case"elative":e+=a?"sta":"st\xe4";break;case"partitive":e+=a?"a":"\xe4";break;case"illative":e+=e.slice(-1)+"n";break;case"inessive":e+=a?"ssa":"ss\xe4";break;default:e=i}return e}},ga:class extends e{convertGrammar(e,t){if("ainmlae"===t)switch(e){case"an Domhnach":e="D\xe9 Domhnaigh";break;case"an Luan":e="D\xe9 Luain";break;case"an Mh\xe1irt":e="D\xe9 Mh\xe1irt";break;case"an Ch\xe9adaoin":e="D\xe9 Ch\xe9adaoin";break;case"an D\xe9ardaoin":e="D\xe9ardaoin";break;case"an Aoine":e="D\xe9 hAoine";break;case"an Satharn":e="D\xe9 Sathairn"}return e}},he:class extends e{convertGrammar(e,t){switch(t){case"prefixed":case"\u05ea\u05d7\u05d9\u05dc\u05d9\u05ea":"\u05d5"===e.slice(0,1)&&"\u05d5\u05d5"!==e.slice(0,2)&&(e="\u05d5"+e),"\u05d4"===e.slice(0,1)&&(e=e.slice(1)),(e.slice(0,1)<"\u05d0"||e.slice(0,1)>"\u05ea")&&(e="\u05be"+e)}return e}},hsb:class extends e{convertGrammar(e,t){switch(t){case"instrumental":e="z "+e;break;case"lokatiw":e="wo "+e}return e}},hu:class extends e{convertGrammar(e,t){switch(t){case"rol":e+="r\xf3l";break;case"ba":e+="ba";break;case"k":e+="k"}return e}},hy:class extends e{convertGrammar(e,t){return"genitive"===t&&("\u0561"===e.slice(-1)?e=e.slice(0,-1)+"\u0561\u0575\u056b":"\u0578"===e.slice(-1)?e=e.slice(0,-1)+"\u0578\u0575\u056b":"\u0563\u056b\u0580\u0584"===e.slice(-4)?e=e.slice(0,-4)+"\u0563\u0580\u0584\u056b":e+="\u056b"),e}},la:class extends e{convertGrammar(e,t){switch(t){case"genitive":e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/u[ms]$/i,"i")).replace(/ommunia$/i,"ommunium")).replace(/a$/i,"ae")).replace(/libri$/i,"librorum")).replace(/nuntii$/i,"nuntiorum")).replace(/tio$/i,"tionis")).replace(/ns$/i,"ntis")).replace(/as$/i,"atis")).replace(/es$/i,"ei");break;case"accusative":e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/u[ms]$/i,"um")).replace(/ommunia$/i,"am")).replace(/a$/i,"ommunia")).replace(/libri$/i,"libros")).replace(/nuntii$/i,"nuntios")).replace(/tio$/i,"tionem")).replace(/ns$/i,"ntem")).replace(/as$/i,"atem")).replace(/es$/i,"em");break;case"ablative":e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/u[ms]$/i,"o")).replace(/ommunia$/i,"ommunibus")).replace(/a$/i,"a")).replace(/libri$/i,"libris")).replace(/nuntii$/i,"nuntiis")).replace(/tio$/i,"tione")).replace(/ns$/i,"nte")).replace(/as$/i,"ate")).replace(/es$/i,"e")}return e}},os:class extends e{convertGrammar(e,t){var a,i,n,r;switch(a="\u043c\xe6",i="",n="",r="",e.match(/\u0442\xe6$/i)?(e=e.slice(0,-1),a="\xe6\u043c"):e.match(/[\u0430\xe6\u0435\u0451\u0438\u043e\u044b\u044d\u044e\u044f]$/i)?i="\u0439":e.match(/\u0443$/i)?e.slice(-2,-1).match(/[\u0430\xe6\u0435\u0451\u0438\u043e\u044b\u044d\u044e\u044f]$/i)||(i="\u0439"):e.match(/[\u0431\u0432\u0433\u0434\u0436\u0437\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0444\u0445\u0446\u0447\u0448\u0449\u044c\u044a]$/i)||(n="-"),t){case"genitive":r=n+i+"\u044b";break;case"dative":r=n+i+"\xe6\u043d";break;case"allative":r=n+a;break;case"ablative":r="\u0439"===i?n+i+"\xe6":n+i+"\xe6\u0439";break;case"superessive":r=n+i+"\u044b\u043b";break;case"equative":r=n+i+"\u0430\u0443";break;case"comitative":r=n+"\u0438\u043c\xe6"}return e+r}},ru:class extends e{convertGrammar(e,t){return"genitive"===t&&("\u044c"===e.slice(-1)?e=e.slice(0,-1)+"\u044f":"\u0438\u044f"===e.slice(-2)?e=e.slice(0,-2)+"\u0438\u0438":"\u043a\u0430"===e.slice(-2)?e=e.slice(0,-2)+"\u043a\u0438":"\u0442\u0438"===e.slice(-2)?e=e.slice(0,-2)+"\u0442\u0435\u0439":"\u0434\u044b"===e.slice(-2)?e=e.slice(0,-2)+"\u0434\u043e\u0432":"\u043d\u0438\u043a"===e.slice(-3)&&(e=e.slice(0,-3)+"\u043d\u0438\u043a\u0430")),e}},sl:class extends e{convertGrammar(e,t){switch(t){case"mestnik":e="o "+e;break;case"orodnik":e="z "+e}return e}},uk:class extends e{convertGrammar(e,t){switch(t){case"genitive":"\u044c"===e.slice(-1)?e=e.slice(0,-1)+"\u044f":"\u0456\u044f"===e.slice(-2)?e=e.slice(0,-2)+"\u0456\u0457":"\u043a\u0430"===e.slice(-2)?e=e.slice(0,-2)+"\u043a\u0438":"\u0442\u0438"===e.slice(-2)?e=e.slice(0,-2)+"\u0442\u0435\u0439":"\u0434\u044b"===e.slice(-2)?e=e.slice(0,-2)+"\u0434\u043e\u0432":"\u043d\u0438\u043a"===e.slice(-3)&&(e=e.slice(0,-3)+"\u043d\u0438\u043a\u0430");break;case"accusative":"\u0456\u044f"===e.slice(-2)&&(e=e.slice(0,-2)+"\u0456\u044e")}return e}}};const a=new RegExp("(?:([A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02b8\u02bb-\u02c1\u02d0\u02d1\u02e0-\u02e4\u02ee\u0370-\u0373\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0482\u048a-\u052f\u0531-\u0556\u0559-\u055f\u0561-\u0587\u0589\u0903-\u0939\u093b\u093d-\u0940\u0949-\u094c\u094e-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd-\u09c0\u09c7\u09c8\u09cb\u09cc\u09ce\u09d7\u09dc\u09dd\u09df-\u09e1\u09e6-\u09f1\u09f4-\u09fa\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3e-\u0a40\u0a59-\u0a5c\u0a5e\u0a66-\u0a6f\u0a72-\u0a74\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd-\u0ac0\u0ac9\u0acb\u0acc\u0ad0\u0ae0\u0ae1\u0ae6-\u0af0\u0af9\u0b02\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b3e\u0b40\u0b47\u0b48\u0b4b\u0b4c\u0b57\u0b5c\u0b5d\u0b5f-\u0b61\u0b66-\u0b77\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe\u0bbf\u0bc1\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd0\u0bd7\u0be6-\u0bf2\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c41-\u0c44\u0c58-\u0c5a\u0c60\u0c61\u0c66-\u0c6f\u0c7f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd-\u0cc4\u0cc6-\u0cc8\u0cca\u0ccb\u0cd5\u0cd6\u0cde\u0ce0\u0ce1\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d4e\u0d57\u0d5f-\u0d61\u0d66-\u0d75\u0d79-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dcf-\u0dd1\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e4f-\u0e5b\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f17\u0f1a-\u0f34\u0f36\u0f38\u0f3e-\u0f47\u0f49-\u0f6c\u0f7f\u0f85\u0f88-\u0f8c\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fda\u1000-\u102c\u1031\u1038\u103b\u103c\u103f-\u1057\u105a-\u105d\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108c\u108e-\u109c\u109e-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1360-\u137c\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u167f\u1681-\u169a\u16a0-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1735\u1736\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17b6\u17be-\u17c5\u17c7\u17c8\u17d4-\u17da\u17dc\u17e0-\u17e9\u1810-\u1819\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1923-\u1926\u1929-\u192b\u1930\u1931\u1933-\u1938\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a16\u1a19\u1a1a\u1a1e-\u1a55\u1a57\u1a61\u1a63\u1a64\u1a6d-\u1a72\u1a80-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1b04-\u1b33\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b4b\u1b50-\u1b6a\u1b74-\u1b7c\u1b82-\u1ba1\u1ba6\u1ba7\u1baa\u1bae-\u1be5\u1be7\u1bea-\u1bec\u1bee\u1bf2\u1bf3\u1bfc-\u1c2b\u1c34\u1c35\u1c3b-\u1c49\u1c4d-\u1c7f\u1cc0-\u1cc7\u1cd3\u1ce1\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200e\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u214f\u2160-\u2188\u2336-\u237a\u2395\u249c-\u24e9\u26ac\u2800-\u28ff\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d70\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u302e\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u3190-\u31ba\u31f0-\u321c\u3220-\u324f\u3260-\u327b\u327f-\u32b0\u32c0-\u32cb\u32d0-\u32fe\u3300-\u3376\u337b-\u33dd\u33e0-\u33fe\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua60c\ua610-\ua62b\ua640-\ua66e\ua680-\ua69d\ua6a0-\ua6ef\ua6f2-\ua6f7\ua722-\ua787\ua789-\ua7ad\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua824\ua827\ua830-\ua837\ua840-\ua873\ua880-\ua8c3\ua8ce-\ua8d9\ua8f2-\ua8fd\ua900-\ua925\ua92e-\ua946\ua952\ua953\ua95f-\ua97c\ua983-\ua9b2\ua9b4\ua9b5\ua9ba\ua9bb\ua9bd-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9e4\ua9e6-\ua9fe\uaa00-\uaa28\uaa2f\uaa30\uaa33\uaa34\uaa40-\uaa42\uaa44-\uaa4b\uaa4d\uaa50-\uaa59\uaa5c-\uaa7b\uaa7d-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaaeb\uaaee-\uaaf5\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab65\uab70-\uabe4\uabe6\uabe7\uabe9-\uabec\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\ue000-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b]|\ud800[\udc0d-\udc26]|\ud800[\udc28-\udc3a]|\u{1003c}|\u{1003d}|\ud800[\udc3f-\udc4d]|\ud800[\udc50-\udc5d]|\ud800[\udc80-\udcfa]|\u{10100}|\u{10102}|\ud800[\udd07-\udd33]|\ud800[\udd37-\udd3f]|\ud800[\uddd0-\uddfc]|\ud800[\ude80-\ude9c]|\ud800[\udea0-\uded0]|\ud800[\udf00-\udf23]|\ud800[\udf30-\udf4a]|\ud800[\udf50-\udf75]|\ud800[\udf80-\udf9d]|\ud800[\udf9f-\udfc3]|\ud800[\udfc8-\udfd5]|\ud801[\udc00-\udc9d]|\ud801[\udca0-\udca9]|\ud801[\udd00-\udd27]|\ud801[\udd30-\udd63]|\u{1056f}|\ud801[\ude00-\udf36]|\ud801[\udf40-\udf55]|\ud801[\udf60-\udf67]|\u{11000}|\ud804[\udc02-\udc37]|\ud804[\udc47-\udc4d]|\ud804[\udc66-\udc6f]|\ud804[\udc82-\udcb2]|\u{110b7}|\u{110b8}|\ud804[\udcbb-\udcc1]|\ud804[\udcd0-\udce8]|\ud804[\udcf0-\udcf9]|\ud804[\udd03-\udd26]|\u{1112c}|\ud804[\udd36-\udd43]|\ud804[\udd50-\udd72]|\ud804[\udd74-\udd76]|\ud804[\udd82-\uddb5]|\ud804[\uddbf-\uddc9]|\u{111cd}|\ud804[\uddd0-\udddf]|\ud804[\udde1-\uddf4]|\ud804[\ude00-\ude11]|\ud804[\ude13-\ude2e]|\u{11232}|\u{11233}|\u{11235}|\ud804[\ude38-\ude3d]|\ud804[\ude80-\ude86]|\u{11288}|\ud804[\ude8a-\ude8d]|\ud804[\ude8f-\ude9d]|\ud804[\ude9f-\udea9]|\ud804[\udeb0-\udede]|\ud804[\udee0-\udee2]|\ud804[\udef0-\udef9]|\u{11302}|\u{11303}|\ud804[\udf05-\udf0c]|\u{1130f}|\u{11310}|\ud804[\udf13-\udf28]|\ud804[\udf2a-\udf30]|\u{11332}|\u{11333}|\ud804[\udf35-\udf39]|\ud804[\udf3d-\udf3f]|\ud804[\udf41-\udf44]|\u{11347}|\u{11348}|\ud804[\udf4b-\udf4d]|\u{11350}|\u{11357}|\ud804[\udf5d-\udf63]|\ud805[\udc80-\udcb2]|\u{114b9}|\ud805[\udcbb-\udcbe]|\u{114c1}|\ud805[\udcc4-\udcc7]|\ud805[\udcd0-\udcd9]|\ud805[\udd80-\uddb1]|\ud805[\uddb8-\uddbb]|\u{115be}|\ud805[\uddc1-\udddb]|\ud805[\ude00-\ude32]|\u{1163b}|\u{1163c}|\u{1163e}|\ud805[\ude41-\ude44]|\ud805[\ude50-\ude59]|\ud805[\ude80-\udeaa]|\u{116ac}|\u{116ae}|\u{116af}|\u{116b6}|\ud805[\udec0-\udec9]|\ud805[\udf00-\udf19]|\u{11720}|\u{11721}|\u{11726}|\ud805[\udf30-\udf3f]|\ud806[\udca0-\udcf2]|\u{118ff}|\ud806[\udec0-\udef8]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e]|\ud809[\udc70-\udc74]|\ud809[\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38]|\ud81a[\ude40-\ude5e]|\ud81a[\ude60-\ude69]|\u{16a6e}|\u{16a6f}|\ud81a[\uded0-\udeed]|\u{16af5}|\ud81a[\udf00-\udf2f]|\ud81a[\udf37-\udf45]|\ud81a[\udf50-\udf59]|\ud81a[\udf5b-\udf61]|\ud81a[\udf63-\udf77]|\ud81a[\udf7d-\udf8f]|\ud81b[\udf00-\udf44]|\ud81b[\udf50-\udf7e]|\ud81b[\udf93-\udf9f]|\u{1b000}|\u{1b001}|\ud82f[\udc00-\udc6a]|\ud82f[\udc70-\udc7c]|\ud82f[\udc80-\udc88]|\ud82f[\udc90-\udc99]|\u{1bc9c}|\u{1bc9f}|\ud834[\udc00-\udcf5]|\ud834[\udd00-\udd26]|\ud834[\udd29-\udd66]|\ud834[\udd6a-\udd72]|\u{1d183}|\u{1d184}|\ud834[\udd8c-\udda9]|\ud834[\uddae-\udde8]|\ud834[\udf60-\udf71]|\ud835[\udc00-\udc54]|\ud835[\udc56-\udc9c]|\u{1d49e}|\u{1d49f}|\u{1d4a2}|\u{1d4a5}|\u{1d4a6}|\ud835[\udca9-\udcac]|\ud835[\udcae-\udcb9]|\u{1d4bb}|\ud835[\udcbd-\udcc3]|\ud835[\udcc5-\udd05]|\ud835[\udd07-\udd0a]|\ud835[\udd0d-\udd14]|\ud835[\udd16-\udd1c]|\ud835[\udd1e-\udd39]|\ud835[\udd3b-\udd3e]|\ud835[\udd40-\udd44]|\u{1d546}|\ud835[\udd4a-\udd50]|\ud835[\udd52-\udea5]|\ud835[\udea8-\udeda]|\ud835[\udedc-\udf14]|\ud835[\udf16-\udf4e]|\ud835[\udf50-\udf88]|\ud835[\udf8a-\udfc2]|\ud835[\udfc4-\udfcb]|\ud836[\udc00-\uddff]|\ud836[\ude37-\ude3a]|\ud836[\ude6d-\ude74]|\ud836[\ude76-\ude83]|\ud836[\ude85-\ude8b]|\ud83c[\udd10-\udd2e]|\ud83c[\udd30-\udd69]|\ud83c[\udd70-\udd9a]|\ud83c[\udde6-\ude02]|\ud83c[\ude10-\ude3a]|\ud83c[\ude40-\ude48]|\u{1f250}|\u{1f251}|[\ud840-\ud868][\udc00-\udfff]|\ud869[\udc00-\uded6]|\ud869[\udf00-\udfff]|[\ud86a-\ud86c][\udc00-\udfff]|\ud86d[\udc00-\udf34]|\ud86d[\udf40-\udfff]|\ud86e[\udc00-\udc1d]|\ud86e[\udc20-\udfff]|[\ud86f-\ud872][\udc00-\udfff]|\ud873[\udc00-\udea1]|\ud87e[\udc00-\ude1d]|[\udb80-\udbbe][\udc00-\udfff]|\udbbf[\udc00-\udffd]|[\udbc0-\udbfe][\udc00-\udfff]|\udbff[\udc00-\udffd])|([\u0590\u05be\u05c0\u05c3\u05c6\u05c8-\u05ff\u07c0-\u07ea\u07f4\u07f5\u07fa-\u0815\u081a\u0824\u0828\u082e-\u0858\u085c-\u089f\u200f\ufb1d\ufb1f-\ufb28\ufb2a-\ufb4f\u0608\u060b\u060d\u061b-\u064a\u066d-\u066f\u0671-\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u0710\u0712-\u072f\u074b-\u07a5\u07b1-\u07bf\u08a0-\u08e2\ufb50-\ufd3d\ufd40-\ufdcf\ufdf0-\ufdfc\ufdfe\ufdff\ufe70-\ufefe]|\ud802[\udc00-\udd1e]|\ud802[\udd20-\ude00]|\u{10a04}|\ud802[\ude07-\ude0b]|\ud802[\ude10-\ude37]|\ud802[\ude3b-\ude3e]|\ud802[\ude40-\udee4]|\ud802[\udee7-\udf38]|\ud802[\udf40-\udfff]|\ud803[\udc00-\ude5f]|\ud803[\ude7f-\udfff]|\ud83a[\udc00-\udccf]|\ud83a[\udcd7-\udfff]|\ud83b[\udc00-\uddff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\udf00-\udfff]|\ud83b[\ude00-\udeef]|\ud83b[\udef2-\udeff]))");class i{constructor(e){this.locale=e,this.language=new(t[e]||t.default)(e)}emit(e,t){let a,i,r;switch(typeof e){case"string":case"number":a=e;break;case"object":i=e.slice(1).map((e=>this.emit(e,t))),r=e[0].toLowerCase(),a="function"==typeof this[r]?this[r](i,t):"{{"+new n(this.locale).simpleParse(e[0],t)+i.map((e=>"|"+e))+"}}";break;case"undefined":a="";break;default:throw new Error("unexpected type in AST: "+typeof e)}return a}concat(e){let t="";return e.forEach((e=>{t+=e})),t}replace(e,t){let a=parseInt(e[0],10);return a<t.length?t[a]:"$"+(a+1)}plural(e){let t=parseFloat(this.language.convertNumber(e[0],10)),a=e.slice(1);return a.length?this.language.convertPlural(t,a):""}gender(e){let t=e[0],a=e.slice(1);return this.language.gender(t,a)}grammar(e){let t=e[0],a=e[1];return a&&t&&this.language.convertGrammar(a,t)}bidi(e){var t=function(e){var t=e.match(a);return t?void 0===t[2]?"ltr":"rtl":null}(e[0]);return"ltr"===t?"\u202a"+e[0]+"\u202c":"rtl"===t?"\u202b"+e[0]+"\u202c":e[0]}formatnum(e){let t=!!e[1]&&"R"===e[1],a=e[0];return"string"==typeof a||"number"==typeof a?this.language.convertNumber(a,t):a}}class n{constructor(e){this.locale=e,this.emitter=new i(this.locale)}parse(e,t){if(e.includes("{{")){const a=function(e){let t,a,i,n,r,o,s,l=0;function d(e){return()=>{for(let t=0;t<e.length;t++){const a=e[t]();if(null!==a)return a}return null}}function c(e){const t=l,a=[];for(let i=0;i<e.length;i++){const n=e[i]();if(null===n)return l=t,null;a.push(n)}return a}function u(e,t){return()=>{const a=l,i=[];let n=t();for(;null!==n;)i.push(n),n=t();return i.length<e?(l=a,null):i}}function p(t){const a=t.length;return()=>{let i=null;return e.slice(l,l+a)===t&&(i=t,l+=a),i}}function m(t){return()=>{const a=e.slice(l).match(t);return null===a?null:(l+=a[0].length,a[0])}}const g=p("|"),f=p(":"),h=p("\\"),b=m(/^./),k=p("$"),w=m(/^\d+/),v=m(/^[^{}$\\]/),y=m(/^[^{}$\\|]/);function $(){const e=c([h,b]);return null===e?null:e[1]}function C(){const e=c([k,w]);return null===e?null:["REPLACE",parseInt(e[1],10)-1]}var A,x;function T(){const e=c([g,u(0,o)]);if(null===e)return null;const t=e[1];return t.length>1?["CONCAT"].concat(t):t[0]}function E(){const e=c([n,f,C]);return null===e?null:[e[0],e[2]]}function N(){const e=c([n,f,o]);return null===e?null:[e[0],e[2]]}t=d([$,y]),a=d([$,v]),A=m(/^[ !"$&'()*,./0-9;=?@A-Z^_`a-z~\x80-\xFF+-]+/),x=function(e){return e.toString()},n=()=>{const e=A();return null===e?null:x(e)},i=d([function(){const e=c([d([E,N]),u(0,T)]);return null===e?null:e[0].concat(e[1])},function(){const e=c([n,u(0,T)]);return null===e?null:[e[0]].concat(e[1])}]);const P=p("{{"),R=p("}}");function I(){const e=c([P,i,R]);return null===e?null:e[1]}if(r=d([I,C,function(){const e=u(1,a)();return null===e?null:e.join("")}]),o=d([I,C,function(){const e=u(1,t)();return null===e?null:e.join("")}]),s=function(){const e=u(0,r)();return null===e?null:["CONCAT"].concat(e)}(),null===s||l!==e.length)throw new Error("Parse error at position "+l.toString()+" in input: "+e);return s}(e);return this.emitter.emit(a,t)}return this.simpleParse(e,t)}simpleParse(e,t){return e.replace(/\$(\d+)/g,((e,a)=>{let i=parseInt(a,10)-1;return void 0!==t[i]?t[i]:"$"+a}))}}class r{constructor(e){this.sourceMap=new Map}load(e,t){if("object"!=typeof e)throw new Error("Invalid message source. Must be an object");if(t){if(!/^[a-zA-Z0-9-]+$/.test(t))throw new Error(`Invalid locale ${t}`);for(let a in e)if(0!==a.indexOf("@")){if("object"==typeof e[a])return this.load(e);if("string"!=typeof e[a])throw new Error(`Invalid message for message ${a} in ${t} locale.`);break}this.sourceMap.has(t)?this.sourceMap.set(t,Object.assign(this.sourceMap.get(t),e)):this.sourceMap.set(t,e)}else for(t in e)this.load(e[t],t)}getMessage(e,t){let a=this.sourceMap.get(t);return a?a[e]:null}hasLocale(e){return this.sourceMap.has(e)}}return class{constructor(e,t){let{finalFallback:a="en",messages:i}=void 0===t?{}:t;this.locale=e,this.parser=new n(this.locale),this.messageStore=new r,i&&this.load(i,this.locale),this.fallbackLocales=[],this.finalFallback=a}load(e,t){return this.messageStore.load(e,t||this.locale)}i18n(e){for(var t=arguments.length,a=new Array(t>1?t-1:0),i=1;i<t;i++)a[i-1]=arguments[i];return this.parser.parse(this.getMessage(e),a)}setLocale(e){this.locale=e,this.parser=new n(this.locale)}getFallbackLocales(){return[...this.fallbackLocales,this.finalFallback]}setFallbackLocales(e){this.fallbackLocales=e}setPluralRules(t,a){e.pluralRules[t]=a}setDigitTransforms(t,a){e.digitTransforms[t]=a}getMessage(e){let t=this.locale,a=0;const i=this.getFallbackLocales();for(;t;){let n=t.split("-"),r=n.length;do{let t=n.slice(0,r).join("-"),a=this.messageStore.getMessage(e,t);if("string"==typeof a)return a;r--}while(r);t=i[a],a++}return e}registerParserPlugin(e,t){i.prototype[e]=t}}}()}},t={};function a(i){var n=t[i];if(void 0!==n)return n.exports;var r=t[i]={exports:{}};return e[i].call(r.exports,r,r.exports,a),r.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};(()=>{"use strict";var e;!function(e){e.scriptName="Twinkle",e.userAgent="Twinkle ("+mw.config.get("wgWikiID")+")",e.changeTags="",e.summaryAd=` (${e.scriptName})`,e.preModuleInitHooks=[],e.preModuleInitHooksWithConfig=[],e.registeredModules=[],e.activeSpecialPages=["Block","Contributions","Recentchanges","Recentchangeslinked"].concat(Morebits.userIsSysop?["DeletedContributions","Prefixindex"]:[]),e.messageOverrides={},e.extraMwMessages=[]}(e||(e={}));let t=mw.config.get("wgNamespaceIds");const n=t[""],r=(t.talk,t.special,t.file,t.template,t.category,t.project);t.user,t.user_talk;var o;!function(e){e.botUsernameRegex=/bot\b/i,e.flaggedRevsNamespaces=[n,r],e.permalinkSpecialPageName="Special:PermanentLink",e.redirectTagAliases=["#REDIRECT"],e.signatureTimestampFormat=null}(o||(o={}));var s=a(193),l=a.n(s);class d extends Error{}function c(e){return Object.values?Object.values(e):Object.keys(e).map((t=>e[t]))}function u(e){return Object.entries?Object.entries(e):Object.keys(e).map((t=>[t,e[t]]))}class p extends Morebits.wiki.api{constructor(t,a,i){super(t,a=$.extend({action:"query",format:"json",formatversion:"2",uselang:b,errorlang:b,errorsuselocal:!0,tags:e.changeTags},a),null,i,null)}post(t){return t||(t={}),t.headers||(t.headers={}),t.headers["Api-User-Agent"]=e.userAgent,super.post(t)}}let m;const g=["colon-separator","semicolon-separator","word-separator","comma-separator","and","parentheses","percent","blanknamespace","protectlogpage","stable-logpage","duration-hours","duration-days","duration-weeks","duration-years","protect-expiry-indefinite","group-autoconfirmed","group-sysop","protectexpiry","restriction-edit","restriction-move","restriction-create","restriction-level-autoconfirmed","restriction-level-sysop","block-expiry","blocklogpage","period-am","period-pm","january","jan","february","feb","march","mar","april","apr","may_long","may","june","jun","july","jul","august","aug","september","sep","october","oct","november","nov","december","dec","sunday","sun","monday","mon","tuesday","tue","wednesday","wed","thursday","thu","friday","fri","saturday","sat","sunday","sun"],f=JSON.parse('{"@metadata":{"authors":["SD0001"]},"tooltip-mark":"?","relative-today":"[Today at] h:mm A","relative-prevday":"[Yesterday at] h:mm A","relative-nextday":"[Tomorrow at] h:mm A","relative-thisweek":"dddd [at] h:mm A","relative-pastweek":"[Last] dddd [at] h:mm A","relative-other":"YYYY-MM-DD","done":"Done","api-error":"$1 \\"$2\\" occurred while contacting the API.","invalid-token-retrying":"Invalid token. Getting a new token and retrying...","getting-token":"Retrieving token...","opening-page":"Opening page \\"$1\\"","retrieving-page":"Retrieving page...","protected-edit-warning":"You are about to make an edit to the fully protected page \\"$1\\" (protection expiring {{date:$1|relative|utc}} (UTC)).\\n\\nClick OK to proceed with the edit, or Cancel to skip this edit.","protected-indef-edit-warning":"You are about to make an edit to the fully protected page \\"$1\\" (protected indefinitely).\\n\\nClick OK to proceed with the edit, or Cancel to skip this edit.","protected-aborted":"Edit to fully protected page was aborted.","saving-page":"Saving page...","getting-creator":"Retrieving page creation information","token-fetch-fail":"Failed to retrieve edit token.","invalid-title":"The page title is invalid: $1","cross-redirect-abort":"$1 is a cross-namespace redirect to $2, aborted","redirected":"Redirected from $1 to $2","redirect-resolution-fail":"Could not resolve redirects for: $1","api-error-unknown":"Unknown error received from API while saving page","editconflict-purging":"Edit conflict detected, purging server cache","editconflict-retrying":"Edit conflict detected, reapplying edit","save-failed-retrying":"Save failed, retrying in $1 seconds ...","moving-page":"moving page...","batch-starting":"Performing batch operation","batch-no-pages":"no pages specified","batch-done-page":"completed ([[$1]])","batch-progress":"Done ($1/$2 actions completed successfully)","submit":"Submit Query","bullet-separator":" \u2022&#32;","revert-mismatch":"The retrieved revision does not match the requested revision.","revert-curid-fail":"Failed to retrieve current revision ID.","revert-user-fail":"Failed to retrieve user who made the revision.","revert-summary":"Restored revision $1 by $2","hidden-user":"an unknown user","querying-user":"Querying user \\"$1\\"","fetching-userinfo":"Retrieving user information...","failed-timestamp":"Failed to retrieve current timestamp.","failed-token":"Failed to retrieve token.","failed-userinfo":"Failed to retrieve user info for $1.","already-blocked-indef":"$1 is already blocked (indefinitely; by $2), would you like to override the block?","already-blocked":"$1 is already blocked (until {{date:$2|relative}}; by $3), would you like to override the block?","reblock-aborted":"Reblock aborted","invalid-block-expiry":"You must provide a valid block expiration.","ip-indef-confirm":"$1 is an IP address, do you really want to block it indefinitely? \\n\\nClick OK to proceed with the block, or Cancel to abort.","ip-indef-aborted":"Indefinite block of IP address was aborted.","admin-block-confirm":"$1 is an administrator, are you sure you want to block them? \\n\\nClick OK to proceed with the block, or Cancel to abort.","admin-block-aborted":"Block of administrator was aborted.","partial-usertalk":"Partial blocks cannot prevent talk page access unless also restricting {{ns:3}} namespace.","blocking":"blocking user...","not-blocked":"User is not blocked.","indirect-block":"User is not directly blocked, but rather $1 is.","unblocking":"unblocking user...","notify-fail-iprange":"Cannot notify IP ranges","notify-self-skip":"You ($1) created this page; skipping user notification","notify-fail-noexist":"Cannot notify the user because the user does not exist.","notify-fail-template":"User talk page transcludes {{$1}}, aborting notification","notify-fail-optout":"User has opted out of this notification, aborting","notify-fail-bot":"User is a bot, aborting notification","notify-fail-blocked":"User is indefinitely blocked, aborting notification","notifying-user":"Notifying $1","watching-user":"Watching user page...","info":"Info","note":"Note","error":"Error","link-rollback":"rollback","link-vandalism":"vandalism","link-goodfaith-rollback":"rollback (AGF)","restore-revision":"restore this version","fetching-data":"Grabbing data of earlier revisions","saving-reverted":"Saving reverted contents","prompt-reason-restore":"Please specify a reason for the revert:                                ","reversion-complete":"Reversion completed","cant-edit-protected":"Unable to edit the page, it\'s probably protected.","no-revisions":"We have less than one additional revision, thus impossible to revert.","bad-revid":"The most recent revision ID received from the server, <strong>$1</strong>, is less than the ID of the displayed revision. This could indicate that the current revision has been deleted, the server is lagging, or that bad data has been received. Stopping revert.","revid-mismatch":"Latest revision <strong>$1</strong> doesn\'t equal our revision <strong>$2</strong>","latest-rev-same-user":"Latest revision was also made by <strong>$1</strong>. As we assume vandalism, we will proceed to revert.","latest-rev-same-64":"Latest revision was made by <strong>$1</strong>, which is on the same /64 subnet. As we assume vandalism, we will proceed to revert.","latest-rev-other-user-goodfaith":"Latest revision was made by <strong>$1</strong>. As we assume good faith, we will stop the revert, as the problem might have been fixed.","latest-rev-other-user":"Latest revision was made by <strong>$1</strong>, but we will stop the revert.","latest-rev-bot":"Latest revision was made by <strong>$1</strong>, a trusted bot, and the revision before was made by our vandal, so we will proceed with the revert.","latest-rev-reverted":"Latest revision was made by <strong>$1</strong>, so it might have already been reverted, we will stop the revert.","bot-revert":"Vandalism revert was chosen on <strong>$1</strong>. As this is a trusted bot, we assume you wanted to revert vandalism made by the previous user instead.","bot-revert-goodfaith":"Good faith revert was chosen on <strong>$1</strong>. This is a trusted bot and thus AGF rollback will not proceed.","bot-revert-prompt":"Normal revert was chosen, but the most recent edit was made by a trusted bot ($1). Do you want to revert the revision before instead?","bot-revert-previous":"Normal revert was chosen on <strong>$1</strong>. This is a trusted bot, and per confirmation, we\'ll revert the previous revision instead.","bot-revert-selected":"Normal revert was chosen on <strong>$1</strong>. This is a trusted bot, but per confirmation, revert on selected revision will proceed.","ipv6-same-user":"Treating consecutive IPv6 addresses in the same /64 as the same user","no-previous-revision":"No previous revision found. Perhaps <strong>$1</strong> is the only contributor, or they have made more than {{formatnum:$2}} edits in a row.","no-edits-revert":"As it is not possible to revert zero revisions, we will stop this revert. It could be that the edit has already been reverted, but the revision ID was still the same.","revert-multiple-prompt":"$1 has made {{formatnum:$2}} edits in a row. Are you sure you want to revert them all?","stopping":"Stopping revert.","revision-age":" revision <strong>$1</strong> that was made <strong>{{formatnum:$2}}</strong> revisions ago by $3","summary-prompt":"An optional comment for the edit summary:                              ","user-aborted":"Aborted by user.","restore-summary":"Restored revision $1 by %USER%","goodfaith-summary":"Reverted good faith edits by %USER%","vandalism-summary":"Reverted {{formatnum:$1}} {{plural:$1|edit|edits}} by %USER% to last revision by $2","normal-summary":"Reverted {{formatnum:$1}} {{plural:$1|edit|edits}} by %USER%","revert-confirm":"Reverting page: are you sure?","revert-complete":"Reversion completed","opening-talk":"Opening user talk page edit form for user <strong>$1</strong>","pcreview-comment":"Automatically reviewing reversion","pcreview-accepting":"Automatically accepting your changes","diff-last":"Last","diff-last-tooltip":"Show most recent diff","diff-since":"Since","diff-since-tooltip":"Show difference between last diff and the revision made by previous user","diff-sincemine":"Since mine","diff-sincemine-tooltip":"Show difference between last diff and my last revision","diff-current":"Current","diff-current-tooltip":"Show difference to current revision","diff-error":"no suitable earlier revision found, or $1 is the only contributor. Aborting.","reason":"Reason:","reason-tooltip":"You can use wikimarkup in your reason. Twinkle will automatically sign your post.","loading":"Loading...","select-all":"Select All","deselect-all":"Deselect All","fetching-list":"Grabbing list of pages","option-delete":"Delete pages","option-talks":"Delete associated talk pages (except user talk pages)","option-redirects":"Delete redirects to deleted pages","option-subpages":"Delete subpages of deleted pages","option-subpage-talks":"Delete talk pages of deleted subpages","option-subpage-redirects":"Delete redirects to deleted subpages","option-subpage-unlink":"Unlink backlinks to each deleted subpage (in Main and Portal namespaces only)","option-unlink":"Unlink backlinks to each page (in Main and Portal namespaces only)","option-unlink-file":"Remove usages of each file (in all namespaces)","pages-label":"Pages to delete","complete":"Batch deletion is now complete","confirm-protected":"You are about to delete {{formatnum:$1}} fully protected page(s). Are you sure?","dbatch-give-reason":"You need to give a reason, you cabal crony!","dbatch-no-pages":"nothing to delete, aborting","deleting":"Deleting pages","starting":"Initiating requested tasks","deleting-page":"Deleting page $1","deleting-subpages":"Deleting subpages","deleting-subpage":"Deleting subpage $1","fetching-backlinks":"Grabbing backlinks","fetching-filelinks":"Grabbing file links","fetching-redirects":"Grabbing redirects","check-talk":"Checking whether talk page exists","deleting-redirects":"Deleting redirects to $1","delete-redirect-summary":"Redirect to deleted page \\"$1\\"","deleting-talk":"Deleting talk page of page $1","delete-talk-summary":"Talk page of deleted page \\"$1\\"","unlink-page":"Unlinking backlinks to $1","unlink-on":"Unlinking on $1","unlink-summary":"Removing link(s) to deleted page $1","unlink-img-on":"Removing file usages on $1","img-comment":"Commented out because image was deleted","unlink-img-summary":"Removing instance of file $1 that has been deleted because \\"$2\\"","undbatch-restore-talks":"Restore talk pages of undeleted pages if they existed","undbatch-pages-label":"Pages to undelete","undbatch-complete":"Batch undeletion is now complete","undbatch-confirm-protected":"You are about to undelete {{formatnum:$1}} fully create protected page(s). Are you sure?","undbatch-no-pages":"nothing to undelete, aborting","undeleting":"Undeleting pages","undeleting-page":"Undeleting page $1","check-talk-deleted":"Checking talk page for deleted revisions","undeleting-talk-status":"Undeleting talk page of $1","undeleting-talk-summary":"Undeleting talk page of \\"$1\\"","create-protected-indef":"(fully create protected indefinitely)","create-protected":"(fully create protected, expires $1 (UTC))","unlink-title":"Unlinking backlinks","unlink-title-file":"Unlinking backlinks and file usages","unlink-intro":"This tool allows you to unlink all incoming links (\\"backlinks\\") that point to this page. For instance, <code>[[$1|link text]]</code> would become <code>link text</code> and <code>[[$1]]</code> would become <code>$1</code>. Use it with caution.","unlink-intro-file":"This tool allows you to unlink all incoming links (\\"backlinks\\") that point to this page  and/or hide all inclusions of this file by wrapping them in &lt;!-- --&gt; comment markup. For instance, <code>[[:$1|link text]]</code> would become <code>link text</code> and <code>[[$1]]</code> would become <code>&lt;!-- [[$1]] --&gt;</code>. Use it with caution.","unlink-give-reason":"You must specify a reason for unlinking.","unlink-select-one":"You must select at least one item to unlink.","unlink-status-links-files":"Unlinking backlinks and instances of file usage","unlink-status-links":"Unlinking backlinks","unlink-status-files":"Unlinking instances of file usage","unlink-in":"Unlinking in page \\"$1\\"","no-file-usage":"No instances of file usage found.","file-usage":"File usage","first-n-files":"First {{formatnum:$1}} file usages shown.","backlinks":"Backlinks","no-backlinks":"No backlinks found.","first-n-links":"First {{formatnum:$1}} backlinks shown.","change-twpref":"You can change this with your Twinkle preferences, linked at the bottom of this Twinkle window","selected-namespaces":"Selected namespaces: {{list:$1}}","commented-out":"Commented out","no-links-files-found":"Didn\'t find any backlinks or file usages on the page.","no-links-found":"Didn\'t find any backlinks on the page.","no-files-found":"Didn\'t find any file usages on the page.","summary-links-files":"Commenting out use(s) of file / Removing link(s) to \\"$1\\"","summary-links":"Removing link(s) to \\"$1\\"","summary-files":"Commenting out use(s) of file to \\"$1\\"","protect-action-type":"Type of action","protect-protect-label":"Protect page","protect-protect-tooltip":"Apply actual protection to the page.","protect-tag-label":"Tag page with protection template","protect-tag-tooltip":"If the protecting admin forgot to apply a protection template, or you have just protected the page without tagging, you can use this to apply the appropriate protection tag.","protect-request-label":"Request page protection","protect-request-tooltip":"If you want to request protection via WP:RPP.","protect-request-sysop-tooltip":"If you want to request protection via WP:RPP instead of doing the protection by yourself.","preset":"Preset","choose-preset":"Choose a preset:","prev-protections":"Previous protections","past-protected":"This page has been protected in the past","sysops-contacted":"Have you attempted to contact the protecting admins ({{list:$1}}) first?","unprotected-time":"unprotected {{date:$1|relative|utc}}","expired-time":"expired {{date:$1|relative|utc}}","expires-time":"expires {{date:$1|relative|utc}}","reset-time":"reset {{date:$1|relative|utc}}","duration-months":"$1 {{plural:$1|month|months}}","protect-options":"Protection options","protect-edit-modify":"Modify edit protection","protect-edit-modify-tooltip":"If this is turned off, the edit protection level, and expiry time, will be left as is.","protect-edit-label":"Edit protection:","protect-move-modify":"Modify move protection","protect-move-modify-tooltip":"If this is turned off, the move protection level, and expiry time, will be left as is.","protect-move-label":"Move protection:","protect-stable-modify":"Modify pending changes protection","protect-stable-modify-tooltip":"If this is turned off, the pending changes level, and expiry time, will be left as is.","protect-stable-label":"Pending changes:","protect-create-label":"Create protection:","protect-reason":"Reason (for protection log):","protect-current-label":"Current protection level","protect-current-none":"<b>no protection</b>","protect-current":"<b>$1: $2</b>","protect-current-cascading":"<b>$1: $2 (cascading)</b>","protect-current-stable":"<b>Pending changes: $1</b>","protect-cascade-from":"<b>Cascading protection</b> from [[$1]]","by-sysop":"by [[{{ns:3}}:$1|$1]]","duration-label":"Duration:","protect-notes-label":"Notes:","note-requested-label":"$1 request","note-requested-tooltip":"Add a note to the protection log that this was requested at $1","note-requested":"requested at $1","request-revid-label":"$1 revision ID","request-revid-tooltip":"Optional revision ID of the $1 page where protection was requested.","protect-select-tag":"Choose protection template:","protect-tag-small-label":"Iconify","protect-tag-small-tooltip":"Will use the |small=yes feature of the template, and only render it as a keylock","protect-tag-noinclude-label":"Wrap protection template with &lt;noinclude&gt;","protect-tag-noinclude-tooltip":"Will wrap the protection template in &lt;noinclude&gt; tags, so that it won\'t transclude","protect-request-preset-label":"Type of protection","protect-request-type-label":"Type and reason:","temporary":"Temporary","custom-expiry-prompt":"Enter a custom expiry time.  \\nYou can use relative times, like \\"1 minute\\" or \\"19 days\\", or absolute timestamps, \\"yyyymmddhhmm\\" (e.g. \\"200602011405\\" is Feb 1, 2006, at 14:05 UTC).","all-users":"All","custom-expiry-label":"Custom...","protect-request-exists":"There is already a protection request for this page at [[$1]], aborting.","protect-tag-adding":"Applying protection template","protect-tag-none-status":"nothing to do","protect-tag-exists-prompt":"{{$1}} was found on the page. \\nClick OK to remove it, or click Cancel to leave it there.","protect-tag-removing":"Removing protection template","protect-tag-abort":"Redirect category shell present","nothing-to-do":"nothing to do","block-window-title":"Block or issue block template to $1","block-self-warn":"You are about to block yourself! Are you sure you want to proceed?","block-action":"Block user","block-action-tooltip":"Block the relevant user with the given options. If partial block is unchecked, this will be a sitewide block.","block-partial":"Partial block","block-partial-tooltip":"Enable partial blocks and partial block templates.","block-tag":"Add block template to user talk page","block-tag-tooltip":"Add block template to user talk page","block-64-field-label":"Convert to /64 rangeblock","block-64-help":"It\'s usually fine, if not better, to block the /64 range ([[Special:Contributions/$1|$1]]).","block-64-label":"Block the /64 instead","block-64-template":"Any template issued will go to the original IP: $1","block-tag-options":"Template options","block-block-options":"Block options","block-expiry-indefinite":"indefinite","unblock-label":"Unblock this user","block-custom-expiry":"Custom expiry","block-custom-expiry-tooltip":"You can use relative times, like \\"1 minute\\" or \\"19 days\\", or absolute timestamps, \\"yyyymmddhhmm\\" (e.g. \\"200602011405\\" is Feb 1, 2006, at 14:05 UTC).","fetching-userinfo-error":"Error fetching user info","block-prior-label":"Prior block settings","block-pages-label":"Specific pages to block from editing","block-pages-tooltip":"10 page max.","block-namespaces-label":"Namespace blocks","block-namespaces-tooltip":"Block from editing these namespaces.","block-nocreate-label":"Block account creation","block-noemail-label":"Block user from sending email","block-disabletalk-label":"Prevent this user from editing their own talk page while blocked","block-partial-disabletalk-tooltip":"If issuing a partial block, this MUST remain unchecked unless you are also preventing them from editing User talk space","block-auto-label":"Autoblock any IP addresses used (hardblock)","block-hard-label":"Block logged-in users from using this IP address (hardblock)","block-watch-label":"Watch user and user talk pages","block-reason-label":"Reason (for block log):","block-reason-tooltip":"Consider adding helpful details to the default message.","block-see-label":"See also:","block-see-tooltip":"Insert a \\"see also\\" message to indicate whether the filter log or deleted contributions played a role in the decision to block.","block-see-filter":"Filter log","block-see-deleted":"Deleted contribs","block-tag-template":"Choose talk page template:","block-linked-label":"Linked page","block-linked-tooltip":"A page can be linked within the notice, perhaps if it was the primary target of disruption. Leave empty for no page to be linked.","block-partial-area-label":"Area blocked from","block-partial-area-tooltip":"Optional explanation of the pages or namespaces the user was blocked from editing.","block-tag-expiry":"Period of blocking:","block-tag-expiry-tooltip":"The period the blocking is due for, for example 24 hours, 2 weeks, indefinite etc...","block-tag-reason-label":"You have been blocked for ...","block-tag-reason-tooltip":"An optional reason, to replace the default generic reason. Only available for the generic block templates.","block-tag-noexpiry-label":"Do not include expiry in template","block-tag-noexpiry-tooltip":"Instead of including the duration, make the block template read \\"You have been blocked temporarily...\\"","block-tag-notalk-label":"Talk page access disabled","block-tag-notalk-tooltip":"Make the block template state that the user\'s talk page access has been removed","block-tag-noemail-label":"User blocked from sending email","block-tag-noemail-tooltip":"If the area is not provided, make the block template state that the user\'s email access has been removed","block-tag-nocreate-label":"User blocked from creating accounts","block-tag-nocreate-tooltip":"If the area is not provided, make the block template state that the user\'s ability to create accounts has been removed","select2-badsearch":"Incomplete or invalid search term","block-namespaces-placeholder":"Select namespaces to block user from","block-pages-placeholder":"Select pages to block user from","block-current-partial":"$1 is partially blocked","block-current":"$1 is blocked sitewide","block-current-range":"$1 is blocked sitewide as a rangeblock","block-current-in-range":"$1 is blocked sitewide within a /$2 rangeblock ($3)","block-current-partial-range":"$1 is partially blocked as a rangeblock","block-current-partial-in-range":"$1 is partially blocked within a /$2 rangeblock ($3)","block-expiry-date":"expires {{date:$1|relative|utc}}","block-current-change":"This form will change the existing block.","block-current-add":"This form will add an additional block.","unblocked-ago":"unblocked {{date:$1|relative|utc}}","block-expired":"$1, expired {{date:$2|relative|utc}}","block-log-current":"Previous blocks","block-log-past":"This user has been blocked in the past","block-partial-blank":"No pages or namespaces were selected, nor were email or account creation restrictions applied; please select at least one option to apply a partial block!","block-warn-noexpiry":"Please provide an expiry!","block-warn-indef-ip":"Can\'t indefinitely block an IP address!","block-warn-noreason":"Please provide a reason for the block!","block-doing":"Executing block","block-warn-partial-usertalk":"Partial blocks cannot prevent talk page access unless also restricting them from editing User talk space!","block-conflict":"The block status of $1 has changed. Last block log entry:","block-conflict-block":"Blocked by $1 with comment \\"$2\\". Expiring {{date:$3|relative|utc}}. Do you want to override with your settings?","block-conflict-unblock":"Unblocked by $1 with comment \\"$2\\". ({{date:$3|relative|utc}}.) Do you want to override with your settings?","block-noop":"Please give Twinkle something to do!","block-complete":"Actions complete, loading user talk page in a few seconds","block-tagging-status":"User talk page modification","block-blank-talk":"Blanking talk page per preferences and creating a new talk page section for this month","block-new-section":"Will create a new talk page section for this month, as none was found","search-tags":"Filter tag list:","summary-added":"Added {{list:$1}} {{plural:$2|tag|tags}}","summary-removed":"Removed {{list:$1}} {{plural:$2|tag|tags}}","summary-added-removed":"Added {{list:$1}}; and removed {{list:$2}} {{plural:$3|tag|tags}}","status-added":"Added $1 {{plural:$1|tag|tags}}","status-removed":"Removed $1 {{plural:$1|tag|tags}}","status-added-removed":"Added $1 {{plural:$1|tag|tags}}; Removed $2 {{plural:$2|tag|tags}}","untag-from-read":"For removal of existing tags, please open Tag menu from the current version of article","tags-present-header":"Tags already present","mark-patrolled":"Mark the page as patrolled/reviewed","tag-complete":"Tagging complete, reloading $1 in a few seconds","select-one":"You must select at least one tag!","getting-redirects":"Getting template redirects","cant-reposition":"Failed to find {{$1}} on the page... skip repositioning","cant-remove":"Failed to find {{$1}} on the page... cannot remove","untagging":"Untagging","removing":"Already present tags: removing de-selected tags","resolved-redirect":"Resolved template redirect {{$1}} to {{$2}}","tagging-status":"Tagging $1","tag-fetching-redirects":"Getting redirects for {{list:$1}}","xfd-venue-label":"Deletion discussion venue:","xfd-venue-tooltip":"When activated, a default choice is made, based on what namespace you are in. This default should be the most appropriate.","notify-creator-label":"Notify page creator if possible","notify-creator-tooltip":"A notification template will be placed on the creator\'s talk page if this is true.","deletion-reason-here":"Your deletion rationale is provided below, which you can copy and paste into a new XFD dialog if you wish to try again:","looking-old-nominations":"Looking for prior nominations of this page","bad-venue":"Unrecognised venue: $1","nomination-complete-redirect":"Nomination complete, now redirecting to the discussion page","protected-no-editreq":"Page protected and nowhere to add an edit request, aborting","protected-editreq":"Page protected, requesting edit","posting-editreq":"Automatically posting edit request on talk page","xfd-editreq-title":"Edit request to complete $1 nomination","xfd-editreq-failed":"Unable to add edit request, the talk page may be protected","fetching-creator":"Finding page creator","notifying-creator":"Notifying initial contributor ($1)","pref-logxfdnominations-label":"Keep a log in userspace of all pages you nominate for a deletion discussion (XfD)","pref-logxfdnominations-tooltip":"The userspace log offers a good way to keep track of all pages you nominate for XfD using Twinkle.","pref-xfdlogpagename-label":"Keep the deletion discussion userspace log at this user subpage","pref-xfdlogpagename-tooltip":"Enter a subpage name in this box. You will find your XfD log at User:<i>username</i>/<i>subpage name</i>. Only works if you turn on the XfD userspace log.","pref-xfdwatchpage-label":"Add the nominated page to watchlist","pref-xfdwatchdiscussion-label":"Add the deletion discussion page to watchlist","pref-xfdwatchlist-label":"Add the daily log or list page to the watchlist","pref-xfdwatchlist-tooltip":"This only applies for venues where the discussion takes place on a newly-created page which is transcluded on to a log or list page.","pref-xfdwatchuser-label":"Add user talk page of initial contributor to watchlist (when notifying)"}');let h,b=(k="uselang",mw.util.getParamValue(k)||mw.config.get("wgContentLanguage"));var k;let w;const v={date(e){let t="function"==typeof e[0].getTime?new Morebits.date(e[0].getTime()):new Morebits.date(e[0]),a=e[1],i="utc"===e[2]?"utc":void 0;return"relative"===a?t.calendar(i):t.format(a,i)},int:e=>C(e[0],...e.slice(1)),ns(e){var t=String(e[0]).trim();return/^\d+$/.test(t)||(t=String(mw.config.get("wgNamespaceIds")[t.replace(/ /g,"_").toLowerCase()])),(t=mw.config.get("wgFormattedNamespaces")[t])||""},ucfirst:e=>Morebits.string.toUpperCaseFirstChar(e[0]),lcfirst:e=>Morebits.string.toLowerCaseFirstChar(e[0]),list(e){let t=e[0],a="";for(let e=0;e<t.length;e++)a+=t[e],t.length-2===e?a+=C("and")+C("word-separator"):t.length-1!==e&&(a+=C("comma-separator"));return a},sysop:e=>Morebits.userIsSysop?e[1]:e[2]};function y(e){h.load(e,b)}function C(e,...t){if(!h)throw new Error("Can't emit messages before initMessaging() has run!");return w?"("+e+")":h.i18n(e,...t)}let A,x=!0;function T(e,t){let a=[];for(let i=0;i<e.length;i+=50)a.push(m.getMessages(e.slice(i,i+50),{amlang:t,maxage:31536e3,smaxage:31536e3,uselang:"content"}).then((e=>{y(e)})));return Promise.all(a)}function E(e){if("en"===e&&x)return Promise.resolve();const t=`tw-i18n-${e}`,a=mw.storage.getObject(t);return a&&new Morebits.date(a["@timestamp"]).add(2,"days").isAfter(new Date)?(N(a),Promise.resolve()):$.get("https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/gadgets/TwinkleCore/+/i18n/build-i18n/"+e+".json?format=text").then((e=>{let a=JSON.parse(decodeURIComponent(window.atob(e).split("").map((e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join("")));a["@timestamp"]=(new Date).toISOString(),mw.storage.setObject(t,a),N(a)}),(e=>{mw.log.warn("[twinkle]: no messages loaded from gerrit.",e)}))}function N(e){h.setFallbackLocales(e["@fallbacks"]),delete e["@fallbacks"],delete e["@timestamp"];for(let[t,a]of u(e))a["@pluralrules"]&&h.setPluralRules(t,a["@pluralrules"]),a["@digittransforms"]&&h.setDigitTransforms(t,a["@digittransforms"]);h.load(e)}const P={optionsVersion:2,userTalkPageMode:"tab",dialogLargeFont:!1,disabledModules:[],disabledSysopModules:[],portletArea:null,portletId:null,portletName:null,portletType:null,portletNext:null,autolevelStaleDays:3,revertMaxRevisions:50,batchMax:5e3,batchChunks:50,summaryAd:" ([[WP:TW|TW]])",deletionSummaryAd:" ([[WP:TW|TW]])",protectionSummaryAd:" ([[WP:TW|TW]])",logXfdNominations:!1,xfdLogPageName:"XfD log",noLogOnXfdNomination:[],xfdWatchDiscussion:"default",xfdWatchList:"no",xfdWatchPage:"default",xfdWatchUser:"default",xfdWatchRelated:"default",markXfdPagesAsPatrolled:!0,autoMenuAfterRollback:!1,openTalkPage:["agf","norm","vand"],openTalkPageOnAutoRevert:!1,rollbackInPlace:!1,markRevertedPagesAsMinor:["vand"],watchRevertedPages:["agf","norm","vand","torev"],watchRevertedExpiry:"1 month",offerReasonOnNormalRevert:!0,confirmOnFluff:!1,confirmOnMobileFluff:!0,showRollbackLinks:["diff","others"],speedySelectionStyle:"buttonClick",watchSpeedyPages:["g3","g5","g10","g11","g12"],watchSpeedyExpiry:"1 month",markSpeedyPagesAsPatrolled:!1,defaultWarningGroup:"1",combinedSingletMenus:!1,showSharedIPNotice:!0,watchWarnings:"1 month",oldSelect:!1,customWarningList:[],spiWatchReport:"yes",topWelcomes:!1,watchWelcomes:"3 months",insertUsername:!0,quickWelcomeMode:"norm",quickWelcomeTemplate:"welcome",customWelcomeList:[],customWelcomeSignature:!0,markSharedIPAsMinor:!0,markTalkbackAsMinor:!0,insertTalkbackSignature:!0,talkbackHeading:"New message from "+mw.config.get("wgUserName"),mailHeading:"You've got mail!"};function R(e){e.forEach((e=>{P[e.name]=e.value}))}function I(e){return"object"==typeof A&&void 0!==A[e]?A[e]:"object"==typeof window.TwinkleConfig&&void 0!==window.TwinkleConfig[e]?window.TwinkleConfig[e]:"object"==typeof window.FriendlyConfig&&void 0!==window.FriendlyConfig[e]?window.FriendlyConfig[e]:P[e]}class M{static addGroup(e,t){M.sections[e]=t}static addPreference(e,t){M.sections[e].preferences.push(t)}static init(){if(mw.config.get("wgNamespaceNumber")===mw.config.get("wgNamespaceIds").project&&"Twinkle/Preferences"===mw.config.get("wgTitle")&&"view"===mw.config.get("wgAction")){if(!document.getElementById("twinkle-config"))return;document.getElementById("twinkle-config-titlebar").style.backgroundImage="url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB%2FqqA%2BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhQTFRFr73ZobTPusjdsMHZp7nVwtDhzNbnwM3fu8jdq7vUt8nbxtDkw9DhpbfSvMrfssPZqLvVztbno7bRrr7W1d%2Fs1N7qydXk0NjpkW7Q%2BgAAADVJREFUeNoMwgESQCAAAMGLkEIi%2FP%2BnbnbpdB59app5Vdg0sXAoMZCpGoFbK6ciuy6FX4ABAEyoAef0BXOXAAAAAElFTkSuQmCC)";var e=document.getElementById("twinkle-config-content");if(e.textContent="",window.TwinkleConfig||window.FriendlyConfig){var t=document.createElement("p");t.innerHTML='<table class="plainlinks ombox ombox-content"><tr><td class="mbox-image"><img alt="" src="https://upload.wikimedia.org/wikipedia/commons/3/38/Imbox_content.png" /></td><td class="mbox-text"><p><big><b>Before modifying your settings here,</b> you must remove your old Twinkle and Friendly settings from your personal skin JavaScript.</big></p><p>To do this, you can <a href="'+mw.util.getUrl("User:"+mw.config.get("wgUserName")+"/"+mw.config.get("skin")+".js",{action:"edit"})+'" target="_blank"><b>edit your personal skin javascript file</b></a> or <a href="'+mw.util.getUrl("User:"+mw.config.get("wgUserName")+"/common.js",{action:"edit"})+'" target="_blank"><b>your common.js file</b></a>, removing all lines of code that refer to <code>TwinkleConfig</code> and <code>FriendlyConfig</code>.</p></td></tr></table>',e.appendChild(t)}var a=document.createElement("div");a.className="toc",a.style.marginLeft="0.4em";var i=document.createElement("div");i.id="toctitle";var n=document.createElement("h2");n.textContent="Contents ",i.appendChild(n);var r=document.createElement("span");r.className="toctoggle",r.appendChild(document.createTextNode("["));var o=document.createElement("a");o.className="internal",o.setAttribute("href","#tw-tocshowhide"),o.textContent="hide",r.appendChild(o),r.appendChild(document.createTextNode("]")),i.appendChild(r),a.appendChild(i);var s=document.createElement("ul");o.addEventListener("click",(function(){var e=$(s);e.toggle(),e.find(":visible").length?o.textContent="hide":o.textContent="show"}),!1),a.appendChild(s),e.appendChild(a);var l=document.createElement("form");l.setAttribute("action","javascript:void(0)"),l.addEventListener("submit",M.save,!0),e.appendChild(l);var d=document.createElement("table");d.style.width="100%",l.appendChild(d),c(M.sections).forEach((e=>{if(e.hidden||e.adminOnly&&!Morebits.userIsSysop)return!0;var t=document.createElement("li");t.className="toclevel-1";var a=document.createElement("a");a.setAttribute("href","#"+e.module),a.appendChild(document.createTextNode(e.title)),t.appendChild(a),s.appendChild(t);var i=document.createElement("tr"),n=document.createElement("td");n.setAttribute("colspan","3");var r=document.createElement("h4");r.style.borderBottom="1px solid gray",r.style.marginTop="0.2em",r.id=e.module,r.appendChild(document.createTextNode(e.title)),n.appendChild(r),i.appendChild(n),d.appendChild(i);var o=1;return e.preferences.forEach((e=>{if(e.adminOnly&&!Morebits.userIsSysop)return!0;(i=document.createElement("tr")).style.marginBottom="0.2em",o++%2==0&&(i.style.backgroundColor="rgba(128, 128, 128, 0.1)"),n=document.createElement("td");var t,a,r=I(e.name);switch(e.type){case"boolean":n.setAttribute("colspan","2"),t=document.createElement("label"),(a=document.createElement("input")).setAttribute("type","checkbox"),a.setAttribute("id",e.name),a.setAttribute("name",e.name),!0===r&&a.setAttribute("checked","checked"),t.appendChild(a),t.appendChild(document.createTextNode(" "+e.label)),n.appendChild(t);break;case"string":case"integer":n.style.textAlign="right",n.style.paddingRight="0.5em",(t=document.createElement("label")).setAttribute("for",e.name),t.appendChild(document.createTextNode(e.label+":")),n.appendChild(t),i.appendChild(n),(n=document.createElement("td")).style.paddingRight="1em",(a=document.createElement("input")).setAttribute("type","text"),a.setAttribute("id",e.name),a.setAttribute("name",e.name),"integer"===e.type&&(a.setAttribute("size",6),a.setAttribute("type","number"),a.setAttribute("step","1")),r&&a.setAttribute("value",r),n.appendChild(a);break;case"enum":n.style.textAlign="right",n.style.paddingRight="0.5em",(t=document.createElement("label")).setAttribute("for",e.name),t.appendChild(document.createTextNode(e.label+":")),n.appendChild(t),i.appendChild(n),(n=document.createElement("td")).style.paddingRight="1em",(a=document.createElement("select")).setAttribute("id",e.name),a.setAttribute("name",e.name),$.each(e.enumValues,(function(e,t){var i=document.createElement("option");i.setAttribute("value",e),(r===e||"boolean"==typeof r&&(r&&"yes"===e||!r&&"no"===e))&&i.setAttribute("selected","selected"),i.appendChild(document.createTextNode(t)),a.appendChild(i)})),n.appendChild(a);break;case"set":n.setAttribute("colspan","2"),(t=document.createElement("label")).appendChild(document.createTextNode(e.label+":")),n.appendChild(t);var s=document.createElement("div");s.style.paddingLeft="1em";var l=function(t,a){var i=document.createElement("label");i.style.marginRight="0.7em",i.style.display="inline-block";var n=document.createElement("input");n.setAttribute("type","checkbox"),n.setAttribute("id",e.name+"_"+t),n.setAttribute("name",e.name+"_"+t),r&&-1!==r.indexOf(t)&&n.setAttribute("checked","checked"),"unlinkNamespaces"===e.name&&r&&-1!==r.indexOf(parseInt(t,10))&&n.setAttribute("checked","checked"),i.appendChild(n),i.appendChild(document.createTextNode(a)),s.appendChild(i)};e.setDisplayOrder?$.each(e.setDisplayOrder,(function(t,a){l(a,e.setValues[a])})):$.each(e.setValues,l),n.appendChild(s);break;case"customList":n.style.textAlign="right",n.style.paddingRight="0.5em",(t=document.createElement("label")).setAttribute("for",e.name),t.appendChild(document.createTextNode(e.label+":")),n.appendChild(t),i.appendChild(n),(n=document.createElement("td")).style.paddingRight="1em";var c=document.createElement("button");c.setAttribute("id",e.name),c.setAttribute("name",e.name),c.setAttribute("type","button"),c.addEventListener("click",S.display,!1),$(c).data({value:r,pref:e}),c.appendChild(document.createTextNode("Edit items")),n.appendChild(c);break;default:alert("twinkleconfig: unknown data type for preference "+e.name)}if(i.appendChild(n),(n=document.createElement("td")).style.fontSize="90%",n.style.color="gray",e.helptip&&(n.innerHTML=e.helptip.replace(/{{(.+?)}}/g,'{{<a href="'+mw.util.getUrl("Template:")+'$1" target="_blank">$1</a>}}')),"customList"!==e.type){var u=document.createElement("a");u.setAttribute("href","#tw-reset"),u.setAttribute("id","twinkle-config-reset-"+e.name),u.addEventListener("click",M.resetPrefLink,!1),u.style.cssFloat="right",u.style.margin="0 0.6em",u.appendChild(document.createTextNode("Reset")),n.appendChild(u)}return i.appendChild(n),d.appendChild(i),!0})),!0}));var u=document.createElement("div");u.setAttribute("id","twinkle-config-buttonpane"),u.style.backgroundColor="#BCCADF",u.style.padding="0.5em";var p=document.createElement("button");p.setAttribute("id","twinkle-config-submit"),p.setAttribute("type","submit"),p.appendChild(document.createTextNode("Save changes")),u.appendChild(p);var m=document.createElement("span");m.className="plainlinks",m.style.marginLeft="2.4em",m.style.fontSize="90%";var g=document.createElement("a");if(g.setAttribute("href","#tw-reset-all"),g.setAttribute("id","twinkle-config-resetall"),g.addEventListener("click",M.resetAllPrefs,!1),g.appendChild(document.createTextNode("Restore defaults")),m.appendChild(g),u.appendChild(m),l.appendChild(u),window.location.hash){var f=window.location.hash;window.location.hash="",window.location.hash=f}}else if(mw.config.get("wgNamespaceNumber")===mw.config.get("wgNamespaceIds").user&&0===mw.config.get("wgTitle").indexOf(mw.config.get("wgUserName"))&&".js"===mw.config.get("wgPageName").slice(-3)){var h=document.createElement("div");h.setAttribute("id","twinkle-config-headerbox");var b,k=mw.config.get("wgPageName").slice(mw.config.get("wgPageName").lastIndexOf("/")+1,mw.config.get("wgPageName").lastIndexOf(".js"));"twinkleoptions"===k?(h.setAttribute("class","config-twopt-box"),mw.config.get("wgArticleId")>0?h.appendChild(document.createTextNode("This page contains your Twinkle preferences. You can change them using the ")):h.appendChild(document.createTextNode("You can customize Twinkle to suit your preferences by using the ")),(b=document.createElement("a")).setAttribute("href",mw.util.getUrl(mw.config.get("wgFormattedNamespaces")[mw.config.get("wgNamespaceIds").project]+":Twinkle/Preferences")),b.appendChild(document.createTextNode("Twinkle preferences panel")),h.appendChild(b),h.appendChild(document.createTextNode(", or by editing this page.")),$(h).insertAfter($("#contentSub"))):-1!==["monobook","vector","cologneblue","modern","timeless","minerva","common"].indexOf(k)&&(h.setAttribute("class","config-userskin-box"),h.appendChild(document.createTextNode("If you want to set Twinkle preferences, you can use the ")),(b=document.createElement("a")).setAttribute("href",mw.util.getUrl(mw.config.get("wgFormattedNamespaces")[mw.config.get("wgNamespaceIds").project]+":Twinkle/Preferences")),b.appendChild(document.createTextNode("Twinkle preferences panel")),h.appendChild(b),h.appendChild(document.createTextNode(".")),$(h).insertAfter($("#contentSub")))}}static resetPrefLink(e){var t=e.target.id.substring(21);return c(M.sections).forEach((function(e){if(e.hidden||e.adminOnly&&!Morebits.userIsSysop)return!0;var a=!1;return e.preferences.forEach((e=>e.name!==t||(M.resetPref(e),a=!0,!1))),!a&&void 0})),!1}static resetPref(e){switch(e.type){case"boolean":document.getElementById(e.name).checked=P[e.name];break;case"string":case"integer":case"enum":document.getElementById(e.name).value=P[e.name];break;case"set":$.each(e.setValues,(function(t){let a=document.getElementById(e.name+"_"+t);a&&(a.checked=-1!==P[e.name].indexOf(t))}));break;case"customList":$(document.getElementById(e.name)).data("value",P[e.name]);break;default:alert("twinkleconfig: unknown data type for preference "+e.name)}}static resetAllPrefs(){return c(M.sections).forEach((function(e){return e.hidden||e.adminOnly&&!Morebits.userIsSysop||e.preferences.forEach((function(e){e.adminOnly&&!Morebits.userIsSysop||M.resetPref(e)})),!0})),!1}static save(e){Morebits.status.init(document.getElementById("twinkle-config-content"));var t=mw.config.get("wgFormattedNamespaces")[mw.config.get("wgNamespaceIds").user]+":"+mw.config.get("wgUserName")+"/twinkleoptions.js",a=new Morebits.wiki.page(t,"Saving preferences to "+t);return a.setCallbackParameters(e.target),a.load(M.writePrefs),!1}static writePrefs(t){var a=t.getCallbackParameters(),i={optionsVersion:2.1};c(M.sections).forEach((function(e){e.adminOnly&&!Morebits.userIsSysop||e.preferences.forEach((function(t){var n;if(!t.adminOnly||Morebits.userIsSysop)if(e.hidden)A&&(n=A[t.name]);else switch(t.type){case"boolean":n=a[t.name].checked;break;case"string":case"enum":n=a[t.name].value;break;case"integer":n=parseInt(a[t.name].value,10),isNaN(n)&&(Morebits.status.warn("Saving","The value you specified for "+t.name+" ("+a[t.name].value+") was invalid.  The save will continue, but the invalid data value will be skipped."),n=null);break;case"set":n=[],t.setDisplayOrder?$.each(t.setDisplayOrder,(function(e,i){a[t.name+"_"+i].checked&&n.push(i)})):$.each(t.setValues,(function(e){a[t.name+"_"+e].checked&&n.push(e)}));break;case"customList":n=$(a[t.name]).data("value");break;default:alert("twinkleconfig: unknown data type for preference "+t.name)}void 0===n||function(e,t){if(Array.isArray(e)){if(e.length!==t.length)return!1;for(var a=e.sort(),i=t.sort(),n=0;a[n];++n){if("object"==typeof a[n]&&(a[n].label!==i[n].label||a[n].value!==i[n].value))return!1;if(a[n].toString()!==i[n].toString())return!1}return!0}return e===t}(n,P[t.name])||(i[t.name]=n)}))}));var n="// twinkleoptions.js: personal Twinkle preferences file\n//\n// NOTE: The easiest way to change your Twinkle preferences is by using the\n// Twinkle preferences panel, at [["+Morebits.pageNameNorm+']].\n//\n// This file is AUTOMATICALLY GENERATED.  Any changes you make (aside from\n// changing the configuration parameters in a valid-JavaScript way) will be\n// overwritten the next time you click "save" in the Twinkle preferences\n// panel.  If modifying this file, make sure to use correct JavaScript.\n// <no"+"wiki>\n\nwindow.Twinkle.prefs = ';n+=JSON.stringify(i,null,2),n+=";\n\n// </no"+"wiki>\n// End of twinkleoptions.js\n",t.setPageText(n),t.setEditSummary("Saving Twinkle preferences: automatic edit from [[:"+Morebits.pageNameNorm+"]]"),t.setChangeTags(e.changeTags),t.setCreateOption("recreate"),t.save(M.saveSuccess)}static saveSuccess(e){e.getStatusElement().info("successful");var t=document.createElement("div");t.className="successbox",t.style.fontSize="100%",t.style.marginTop="2em",t.innerHTML='<p><b>Your Twinkle preferences have been saved.</b></p><p>To see the changes, you will need to <b>clear your browser cache entirely</b> (see <a href="'+mw.util.getUrl("WP:BYPASS")+'" title="WP:BYPASS">WP:BYPASS</a> for instructions).</p>',Morebits.status.root.appendChild(t);var a=document.createElement("br");a.style.clear="both",Morebits.status.root.appendChild(a)}}M.sections={general:{title:"General",module:"general",preferences:[{name:"userTalkPageMode",label:"When opening a user talk page, open it",type:"enum",enumValues:{window:"In a window, replacing other user talks",tab:"In a new tab",blank:"In a totally new window"},default:"tab"},{name:"dialogLargeFont",label:"Use larger text in Twinkle dialogs",type:"boolean",default:!1},{name:"disabledModules",label:"Turn off the selected Twinkle modules",helptip:"Anything you select here will NOT be available for use, so act with care. Uncheck to reactivate.",type:"set",setValues:{arv:"ARV",warn:"Warn",welcome:"Welcome",shared:"Shared IP",talkback:"Talkback",speedy:"CSD",prod:"PROD",xfd:"XfD",image:"Image (DI)",protect:"Protect (RPP)",tag:"Tag",diff:"Diff",unlink:"Unlink",fluff:"Revert and rollback"},default:[]},{name:"disabledSysopModules",label:"Turn off the selected admin-only modules",helptip:"Anything you select here will NOT be available for use, so act with care. Uncheck to reactivate.",adminOnly:!0,type:"set",setValues:{block:"Block",deprod:"DePROD",batchdelete:"D-batch",batchprotect:"P-batch",batchundelete:"Und-batch"},default:[]}]},hidden:{title:"Hidden",hidden:!0,preferences:[{name:"portletArea",type:"string"},{name:"portletId",type:"string"},{name:"portletName",type:"string"},{name:"portletType",type:"string"},{name:"portletNext",type:"string"},{name:"revertMaxRevisions",type:"integer",default:50},{name:"autolevelStaleDays",type:"integer",default:3},{name:"batchMax",type:"integer",adminOnly:!0,default:5e3},{name:"batchChunks",type:"integer",adminOnly:!0,default:50}]}},M.watchlistEnums={yes:"Add to watchlist (indefinitely)",no:"Don't add to watchlist",default:"Follow your site preferences","1 week":"Watch for 1 week","1 month":"Watch for 1 month","3 months":"Watch for 3 months","6 months":"Watch for 6 months"},M.commonSets={csdCriteria:{db:"Custom rationale ({{db}})",g1:"G1",g2:"G2",g3:"G3",g4:"G4",g5:"G5",g6:"G6",g7:"G7",g8:"G8",g10:"G10",g11:"G11",g12:"G12",g13:"G13",g14:"G14",a1:"A1",a2:"A2",a3:"A3",a5:"A5",a7:"A7",a9:"A9",a10:"A10",a11:"A11",u1:"U1",u2:"U2",u3:"U3",u5:"U5",f1:"F1",f2:"F2",f3:"F3",f7:"F7",f8:"F8",f9:"F9",f10:"F10",c1:"C1",r2:"R2",r3:"R3",r4:"R4",p1:"P1",p2:"P2"},csdCriteriaDisplayOrder:["db","g1","g2","g3","g4","g5","g6","g7","g8","g10","g11","g12","g13","g14","a1","a2","a3","a5","a7","a9","a10","a11","u1","u2","u3","u5","f1","f2","f3","f7","f8","f9","f10","c1","r2","r3","r4","p1","p2"],csdCriteriaNotification:{db:"Custom rationale ({{db}})",g1:"G1",g2:"G2",g3:"G3",g4:"G4",g6:'G6 ("copy-paste move" only)',g10:"G10",g11:"G11",g12:"G12",g13:"G13",g14:"G14",a1:"A1",a2:"A2",a3:"A3",a5:"A5",a7:"A7",a9:"A9",a10:"A10",a11:"A11",u3:"U3",u5:"U5",f1:"F1",f2:"F2",f3:"F3",f7:"F7",f9:"F9",f10:"F10",c1:"C1",r2:"R2",r3:"R3",r4:"R4",p1:"P1",p2:"P2"},csdCriteriaNotificationDisplayOrder:["db","g1","g2","g3","g4","g6","g10","g11","g12","g13","g14","a1","a2","a3","a5","a7","a9","a10","a11","u3","u5","f1","f2","f3","f7","f9","f10","c1","r2","r3","r4","p1","p2"],csdAndDICriteria:{db:"Custom rationale ({{db}})",g1:"G1",g2:"G2",g3:"G3",g4:"G4",g5:"G5",g6:"G6",g7:"G7",g8:"G8",g10:"G10",g11:"G11",g12:"G12",g13:"G13",g14:"G14",a1:"A1",a2:"A2",a3:"A3",a5:"A5",a7:"A7",a9:"A9",a10:"A10",a11:"A11",u1:"U1",u2:"U2",u3:"U3",u5:"U5",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",c1:"C1",r2:"R2",r3:"R3",r4:"R4",p1:"P1",p2:"P2"},csdAndDICriteriaDisplayOrder:["db","g1","g2","g3","g4","g5","g6","g7","g8","g10","g11","g12","g13","g14","a1","a2","a3","a5","a7","a9","a10","a11","u1","u2","u3","u5","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","c1","r2","r3","r4","p1","p2"],namespacesNoSpecial:{0:"Article",1:"Talk (article)",2:"User",3:"User talk",4:"Wikipedia",5:"Wikipedia talk",6:"File",7:"File talk",8:"MediaWiki",9:"MediaWiki talk",10:"Template",11:"Template talk",12:"Help",13:"Help talk",14:"Category",15:"Category talk",100:"Portal",101:"Portal talk",108:"Book",109:"Book talk",118:"Draft",119:"Draft talk",710:"TimedText",711:"TimedText talk",828:"Module",829:"Module talk"}};class S{static addRow(e,t,a){var i=document.createElement("tr"),n=document.createElement("td"),r=document.createElement("button");r.setAttribute("type","button"),r.addEventListener("click",(function(){$(i).remove()}),!1),r.textContent="Remove",n.appendChild(r),i.appendChild(n),n=document.createElement("td");var o=document.createElement("input");o.setAttribute("type","text"),o.className="twinkle-config-customlist-value",o.style.width="97%",t&&o.setAttribute("value",t),n.appendChild(o),i.appendChild(n),n=document.createElement("td"),(o=document.createElement("input")).setAttribute("type","text"),o.className="twinkle-config-customlist-label",o.style.width="98%",a&&o.setAttribute("value",a),n.appendChild(o),i.appendChild(n),e.appendChild(i)}static display(e){var t=$(e.target),a=t.data("value"),i=t.data("pref"),n=new Morebits.simpleWindow(720,400);n.setTitle(i.label),n.setScriptName("Twinkle preferences");var r=document.createElement("div"),o=document.createElement("table");o.className="wikitable",o.style.margin="1.4em 1em",o.style.width="auto";var s=document.createElement("tbody"),l=document.createElement("tr"),d=document.createElement("th");d.style.width="5%",l.appendChild(d),(d=document.createElement("th")).style.width="35%",d.textContent=i.customListValueTitle?i.customListValueTitle:"Value",l.appendChild(d),(d=document.createElement("th")).style.width="60%",d.textContent=i.customListLabelTitle?i.customListLabelTitle:"Label",l.appendChild(d),s.appendChild(l);var c=!1;$.each(a,(function(e,t){c=!0,S.addRow(s,t.value,t.label)})),c||S.addRow(s);var u=document.createElement("tfoot");l=document.createElement("tr");var p=document.createElement("td");p.setAttribute("colspan","3");var m=document.createElement("button");m.style.minWidth="8em",m.setAttribute("type","button"),m.addEventListener("click",(function(){S.addRow(s)}),!1),m.textContent="Add",p.appendChild(m),l.appendChild(p),u.appendChild(l),o.appendChild(s),o.appendChild(u),r.appendChild(o);var g=document.createElement("button");g.setAttribute("type","submit"),g.addEventListener("click",(function(){S.save(t,s),n.close()}),!1),g.textContent="Save changes",r.appendChild(g),(g=document.createElement("button")).setAttribute("type","submit"),g.addEventListener("click",(function(){S.reset(t,s)}),!1),g.textContent="Reset",r.appendChild(g),(g=document.createElement("button")).setAttribute("type","submit"),g.addEventListener("click",(function(){n.close()}),!1),g.textContent="Cancel",r.appendChild(g),n.setContent(r),n.display()}static reset(e,t){var a=$(e),i=a.data("pref"),n=a.data("value");M.resetPref(i),$(t).find("tr").slice(1).remove();var r=a.data("value");$.each(r,(function(e,a){S.addRow(t,a.value,a.label)})),a.data("value",n)}static save(e,t){var a=[],i={};$(t).find('input[type="text"]').each((function(e,t){$(t).hasClass("twinkle-config-customlist-value")?i={value:t.value}:(i.label=t.value,(i.value||i.label)&&a.push(i))})),$(e).data("value",a)}}function U(e,t,a,i){null!==I("portletArea")&&function(e,t,a,i,n){let r=document.getElementById(e)||document.querySelector(e);if(!r)return null;let o,s=document.getElementById(t);if(s)return s.parentNode&&s.parentNode===r?s:null;n&&(o=document.getElementById(n));let l,d,c=mw.config.get("skin");("vector"!==c||"left-navigation"!==e&&"right-navigation"!==e)&&(i=null);switch(c){case"vector":"portal"!==e&&"left-navigation"!==e&&"right-navigation"!==e&&(e="mw-panel"),l="mw-portlet vector-menu vector-menu-"+("mw-panel"===e?"portal":"menu"===i?"dropdown vector-menu-dropdown-noicon":"tabs"),d="vector-menu-content";break;case"modern":"mw_portlets"!==e&&"mw_contentwrapper"!==e&&(e="mw_portlets"),l="portlet";break;case"timeless":l="mw-portlet",d="mw-portlet-body";break;default:e="column-one",l="portlet"}let u=document.createElement("nav");u.setAttribute("aria-labelledby",t+"-label"),u.className=l+" emptyPortlet",u.id=t,o&&o.parentNode===r?r.insertBefore(u,o):r.appendChild(u);let p=document.createElement("h3");p.id=t+"-label";let m=document.createElement("ul");if("vector"===c){if(m.className="vector-menu-content-list",-1!==l.indexOf("vector-menu-dropdown")){let e=document.createElement("input");e.className="vector-menu-checkbox",e.setAttribute("type","checkbox"),e.setAttribute("aria-labelledby",t+"-label"),u.appendChild(e);let i=document.createElement("span");i.appendChild(document.createTextNode(a)),p.appendChild(i);let n=document.createElement("a");n.href="#",$(n).click((function(e){e.preventDefault()})),p.appendChild(n)}}else p.appendChild(document.createTextNode(a));if(u.appendChild(p),d){let e=document.createElement("div");e.className=d,e.appendChild(m),u.appendChild(e)}else u.appendChild(m)}(I("portletArea"),I("portletId"),I("portletName"),I("portletType"),I("portletNext"));let n=mw.util.addPortletLink(I("portletId"),"string"==typeof e?e:"#",t,a,i);return $(".client-js .skin-vector #p-cactions").css("margin-right","initial"),"function"==typeof e&&$(n).click((function(t){e(),t.preventDefault()})),$.collapsibleTabs&&$.collapsibleTabs.handleResize(),n}class D{constructor(){}static userPreferences(){}addPreference(e){M.addPreference(this.moduleName,e)}addMenu(){U((()=>this.makeWindow()),this.portletName,this.portletId||"twinkle-"+this.moduleName.toLowerCase(),this.portletTooltip)}makeWindow(){}}function O(t){let a=t.userPreferences();a&&(M.addGroup(t.moduleName,Object.assign(Object.assign({},a),{module:t.moduleName})),R(a.preferences.map((e=>({name:e.name,value:e.default}))))),L.includes(t.moduleName)||(e[t.moduleName.toLowerCase()]=new t)}let L=[];const F=JSON.parse('{"@comment":"This file contains project-specific overrides for twinkle-core messages."}');class B extends D{constructor(){super(),this.moduleName="fluff",this.skipTalk=null,this.rollbackInPlace=null,this.flaggedRevsEnabled=!!mw.loader.moduleRegistry["ext.flaggedRevs.basic"],this.linkBuilder={spanTag:(e,t)=>{var a=document.createElement("span");return a.style.color=e,a.appendChild(document.createTextNode(t)),a},buildLink:(e,t)=>{var a=document.createElement("a");return a.appendChild(this.linkBuilder.spanTag("Black","[")),a.appendChild(this.linkBuilder.spanTag(e,t)),a.appendChild(this.linkBuilder.spanTag("Black","]")),a.href="#",a},rollbackLinks:(e,t=!1,a,i)=>{e=e||null;var n=t?"span":"div",r=document.createElement(n);(a=parseInt(a,10))?r.setAttribute("id","tw-revert"+a):r.setAttribute("id","tw-revert");var o=document.createElement("strong"),s=document.createElement("strong"),l=this.linkBuilder.buildLink("SteelBlue",C("link-rollback")),d=this.linkBuilder.buildLink("Red",C("link-vandalism"));$(l).click((()=>{this.revert("norm",e,a,i),this.disableLinks(r)})),$(d).click((()=>{this.revert("vand",e,a,i),this.disableLinks(r)})),s.appendChild(d),o.appendChild(l);var c=t?" ":" || ";if(!t){var u=document.createElement("strong"),p=this.linkBuilder.buildLink("DarkOliveGreen",C("link-goodfaith-rollback"));$(p).click((()=>{this.revert("agf",e,a,i)})),u.appendChild(p),r.appendChild(u)}return r.appendChild(document.createTextNode(c)),r.appendChild(o),r.appendChild(document.createTextNode(c)),r.appendChild(s),r},restoreThisRevisionLink:(e,t=!1)=>{e="number"==typeof e?e:mw.config.get(e);var a=t?"span":"div",i=document.createElement(a);i.setAttribute("id","tw-revert-to-"+e),i.style.fontWeight="bold";var n=this.linkBuilder.buildLink("SaddleBrown",C("restore-revision"));return $(n).click((()=>{this.revertToRevision(e)})),t&&i.appendChild(document.createTextNode(" ")),i.appendChild(n),i}},this.addLinks={contributions:()=>{var e=!!$("#sp-contributions-footer-anon-range")[0];if(mw.config.exists("wgRelevantUserName")||e){var t=mw.config.get("wgRelevantUserName");if(-1!==I("showRollbackLinks").indexOf("contribs")||mw.config.get("wgUserName")!==t&&-1!==I("showRollbackLinks").indexOf("others")||mw.config.get("wgUserName")===t&&-1!==I("showRollbackLinks").indexOf("mine"))$("#mw-content-text").find("ul li:has(span.mw-uctop):has(.mw-changeslist-diff)").each(((a,i)=>{var n=$(i).find(".mw-contributions-title").text();e&&(t=$(i).find(".mw-userlink:not(.history-deleted)").text()),i.appendChild(this.linkBuilder.rollbackLinks(t,!0,i.dataset.mwRevid,n))}))}},recentchanges:()=>{if(-1!==I("showRollbackLinks").indexOf("recent")){var e=$(".mw-changeslist .mw-changeslist-last.mw-changeslist-src-mw-edit");(e=e.not(".mw-rcfilters-ui-highlights-enhanced-toplevel").find(".mw-changeslist-line-inner, td.mw-enhanced-rc-nested")).each(((e,t)=>{var a=$(t).find(".mw-userlink:not(.history-deleted)").text(),i=$(t).find(".mw-changeslist-diff").attr("href"),n=mw.util.getParamValue("diff",i),r=t.dataset.targetPage;t.appendChild(this.linkBuilder.rollbackLinks(a,!0,n,r))}))}},history:()=>{if(-1!==I("showRollbackLinks").indexOf("history")){var e=$("#pagehistory li").toArray();if(!$(".mw-firstlink").length)for(var t=e.shift(),a=$(t).find(".mw-userlink:not(.history-deleted)").text(),i=0;i<e.length;i++)if($(e[i]).find(".mw-userlink").text()!==a){t.appendChild(this.linkBuilder.rollbackLinks(a,!0));break}e.forEach((e=>{var t=e.querySelector(".mw-changeslist-date").href,a=parseInt(mw.util.getParamValue("oldid",t),10);isNaN(a)||e.appendChild(this.linkBuilder.restoreThisRevisionLink(a,!0))}))}},diff:()=>{var e=e=>{var t=$("#mw-diff-"+e+"2 .mw-usertoollinks a").first();if(t.length){var a="vanarticle="+mw.util.rawurlencode(Morebits.pageNameNorm)+"&noautowarn=true";a+="&vanarticlerevid=",a+="otitle"===e?mw.config.get("wgDiffOldId"):mw.config.get("wgDiffNewId");var i=t.attr("href");-1===i.indexOf("?")?t.attr("href",i+"?"+a):t.attr("href",i+"&"+a)}};if(e("otitle"),mw.config.get("wgDiffOldId")&&mw.config.get("wgDiffOldId")!==mw.config.get("wgDiffNewId")){var t=document.getElementById("mw-diff-otitle1").parentNode;t.insertBefore(this.linkBuilder.restoreThisRevisionLink("wgDiffOldId"),t.firstChild)}if(e("ntitle"),document.getElementById("differences-nextlink")){var a=document.getElementById("mw-diff-ntitle1").parentNode;a.insertBefore(this.linkBuilder.restoreThisRevisionLink("wgDiffNewId"),a.firstChild)}else if(-1!==I("showRollbackLinks").indexOf("diff")&&mw.config.get("wgDiffOldId")&&(mw.config.get("wgDiffOldId")!==mw.config.get("wgDiffNewId")||document.getElementById("differences-prevlink"))){var i=$("#mw-diff-ntitle2").find(".mw-userlink")[0].textContent,n=document.getElementById("mw-diff-ntitle1").parentNode;n.insertBefore(this.linkBuilder.rollbackLinks(i),n.firstChild)}},oldid:()=>{var e=document.getElementById("mw-revision-info").parentNode;e.insertBefore(this.linkBuilder.restoreThisRevisionLink("wgRevisionId"),e.firstChild)}},this.callbacks={toRevision:t=>{var a=prompt(C("prompt-reason-restore"),"");if(null!==a){var i=this.formatSummary(C("restore-summary",t.getRevisionID()),t.getRevisionUser(),a);t.setChangeTags(e.changeTags),t.setEditSummary(i),-1!==I("watchRevertedPages").indexOf("torev")&&t.setWatchlist(I("watchRevertedExpiry")),-1!==I("markRevertedPagesAsMinor").indexOf("torev")&&t.setMinorEdit(!0),Morebits.wiki.actionCompleted.redirect=t.getPageName(),Morebits.wiki.actionCompleted.notice=C("reversion-complete"),t.revert()}else t.getStatusElement().error(C("user-aborted"))},main:t=>{var a=t.getResponse().query.pages[0];if(a.actions.edit){var i=t.statelem,n=t.params,r=parseInt(a.lastrevid,10),o=a.revisions;if(o.length<1)i.error(C("no-revisions"));else{var s=o[0],l=s.user;if(r<n.revid)Morebits.status.error("Error",C("bad-revid",r));else{var d=n.user||C("hidden-user"),c=1;if(n.revid!==r)if(Morebits.status.warn("Warning",C("revid-mismatch",r,n.revid)),l===n.user||mw.util.isIPv6Address(n.user)&&Morebits.ip.get64(l)===Morebits.ip.get64(n.user))switch(n.type){case"vand":l!==n.user?Morebits.status.info("Info",C("latest-rev-same-64",d)):Morebits.status.info("Info",C("latest-rev-same-user",d));break;case"agf":return void Morebits.status.warn("Warning",C("latest-rev-other-user-goodfaith",d));default:return void Morebits.status.warn("Notice",C("latest-rev-other-user",d))}else{if(!("vand"===n.type&&-1!==this.trustedBots.indexOf(s.user)&&o.length>1&&o[1].revid===n.revid))return void Morebits.status.error("Error",C("latest-rev-reverted",l));Morebits.status.info("Info",C("latest-rev-bot",l)),c=2}else n.user=l,d=n.user||C("hidden-user");if(-1!==this.trustedBots.indexOf(n.user))switch(n.type){case"vand":Morebits.status.info("Info",C("bot-revert",d)),c=2,n.user=o[1].user,n.userHidden=!!o[1].userhidden;break;case"agf":return void Morebits.status.warn("Notice",C("bot-revert-goodfaith",d));default:confirm(C("bot-revert-prompt"))?(Morebits.status.info("Info",C("bot-revert-previous",d)),c=2,n.user=o[1].user,n.userHidden=!!o[1].userhidden,d=n.user||C("hidden-user")):Morebits.status.warn("Notice",C("bot-revert-selected",d))}for(var u=!1,p=0,m=!1,g=c;g<o.length;++g)if(++p,o[g].user!==n.user){if(mw.util.isIPv6Address(o[g].user)&&Morebits.ip.get64(o[g].user)===Morebits.ip.get64(n.user)){m||(new Morebits.status("Note",C("ipv6-same-user")),m=!0);continue}u=g;break}if(u)if(p){var f,h,b=o[u],k=!1;if("vand"!==n.type&&p>1){if(!confirm(C("revert-multiple-prompt",d,p)))return void Morebits.status.info("Notice",C("stopping"));k=!0}switch(n.count=p,n.goodid=b.revid,n.gooduser=b.user,n.gooduserHidden=!!b.userhidden,i.status(C("revision-age",n.goodid,p,n.gooduserHidden?C("hidden-user"):n.gooduser)),n.type){case"agf":if(null===(h=prompt(C("summary-prompt"),"")))return void i.error(C("user-aborted"));k=!0,f=this.formatSummary(C("goodfaith-summary"),n.userHidden?null:n.user,h);break;case"vand":f=this.formatSummary(C("vandalism-summary",n.count,n.gooduserHidden?C("hidden-user"):n.gooduser),n.userHidden?null:n.user);break;default:if(I("offerReasonOnNormalRevert")){if(null===(h=prompt(C("summary-prompt"),"")))return void i.error(C("user-aborted"));k=!0}f=this.formatSummary(C("normal-summary",n.count),n.userHidden?null:n.user,h)}if(!(I("confirmOnFluff")||I("confirmOnMobileFluff")&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|Opera Mini/i.test(navigator.userAgent))||k||confirm(C("revert-confirm"))){this.skipTalk||-1===I("openTalkPage").indexOf(n.type)||n.userHidden||mw.config.get("wgUserName")===n.user||(n.notifyUser=!0,n.vantimestamp=s.timestamp),this.flaggedRevsEnabled&&(Morebits.userIsInGroup("reviewer")||Morebits.userIsSysop)&&a.flagged&&a.flagged.stable_revid>=n.goodid&&a.flagged.pending_since&&(n.reviewRevert=!0,n.csrftoken=t.getResponse().query.tokens.csrftoken);var w=new Morebits.wiki.page(n.pagename,C("saving-reverted"));w.setEditSummary(f),w.setChangeTags(e.changeTags),w.setOldID(n.goodid),w.setCallbackParameters(n),-1!==I("watchRevertedPages").indexOf(n.type)&&w.setWatchlist(I("watchRevertedExpiry")),-1!==I("markRevertedPagesAsMinor").indexOf(n.type)&&w.setMinorEdit(!0),this.rollbackInPlace||(Morebits.wiki.actionCompleted.redirect=n.pagename),Morebits.wiki.actionCompleted.notice=C("revert-complete"),w.revert(this.callbacks.complete)}else i.error(C("user-aborted"))}else Morebits.status.error("Error",C("no-edits-revert"));else i.error(C("no-previous-revision",d,I("revertMaxRevisions")))}}}else t.statelem.error(C("cant-edit-protected"))},complete:t=>{var a=t.getCallbackParameters();if(a.notifyUser&&!a.userHidden){Morebits.status.info("Info",C("opening-talk",a.user));var i={title:"User talk:"+a.user,action:"edit",preview:"yes",vanarticle:a.pagename.replace(/_/g," "),vanarticlerevid:a.revid,vantimestamp:a.vantimestamp,vanarticlegoodrevid:a.goodid,type:a.type,count:a.count};switch(I("userTalkPageMode")){case"tab":window.open(mw.util.getUrl("",i),"_blank");break;case"blank":window.open(mw.util.getUrl("",i),"_blank","location=no,toolbar=no,status=no,directories=no,scrollbars=yes,width=1200,height=800");break;default:window.open(mw.util.getUrl("",i),"twinklewarnwindow"===window.name?"_blank":"twinklewarnwindow","location=no,toolbar=no,status=no,directories=no,scrollbars=yes,width=1200,height=800")}}if(a.reviewRevert){var n={action:"review",revid:t.getSaveResponse().edit.newrevid,token:a.csrftoken,comment:C("pcreview-comment")+e.summaryAd};new Morebits.wiki.api(C("pcreview-accepting"),n).post()}}},mw.config.get("wgIsProbablyEditable")?mw.config.get("wgDiffNewId")||mw.config.get("wgDiffOldId")?mw.hook("wikipage.diff").add((()=>{this.addLinks.diff()})):"view"===mw.config.get("wgAction")&&mw.config.get("wgRevisionId")&&mw.config.get("wgCurRevisionId")!==mw.config.get("wgRevisionId")?this.addLinks.oldid():"history"===mw.config.get("wgAction")&&mw.config.get("wgArticleId")&&this.addLinks.history():-1===mw.config.get("wgNamespaceNumber")&&(this.skipTalk=!I("openTalkPageOnAutoRevert"),this.rollbackInPlace=I("rollbackInPlace"),"Contributions"===mw.config.get("wgCanonicalSpecialPageName")?this.addLinks.contributions():"Recentchanges"!==mw.config.get("wgCanonicalSpecialPageName")&&"Recentchangeslinked"!==mw.config.get("wgCanonicalSpecialPageName")||mw.hook("wikipage.content").add((e=>{e.is("div")&&this.addLinks.recentchanges()})))}disableLinks(e){$(e).children().each(((e,t)=>{t.innerHTML=t.textContent,$(t).css("font-weight","normal").css("color","darkgray")}))}revert(e,t,a,i){mw.util.isIPv6Address(t)&&(t=Morebits.ip.sanitizeIPv6(t));var n=i||mw.config.get("wgPageName"),r=a||mw.config.get("wgCurRevisionId");if(this.rollbackInPlace){var o=document.createElement("span");mw.notify(o,{autoHide:!1,title:"Rollback on "+i,tag:"twinklefluff_"+a}),Morebits.status.init(o)}else Morebits.status.init(document.getElementById("mw-content-text")),$("#catlinks").remove();var s={type:e,user:t,userHidden:!t,pagename:n,revid:r},l={action:"query",prop:["info","revisions"].concat(this.flaggedRevsEnabled?"flagged":[]),titles:n,inprop:"watched",intestactions:"edit",rvlimit:I("revertMaxRevisions"),rvprop:["ids","timestamp","user"],curtimestamp:"",meta:"tokens",type:"csrf",format:"json"},d=new Morebits.wiki.api(C("fetching-data"),l);d.params=s,d.post().then((e=>this.callbacks.main(e)))}revertToRevision(e){Morebits.status.init(document.getElementById("mw-content-text"));var t=new Morebits.wiki.page(mw.config.get("wgPageName"),C("saving-reverted"));t.setOldID(e),t.load(this.callbacks.toRevision)}formatSummary(e,t,a){var i=e;if(a&&(i+=": "+Morebits.string.toUpperCaseFirstChar(a)),/%USER%/.test(e))if(t){var n=unescape(encodeURIComponent(i.replace("%USER%",""))).length,r="[[Special:Contributions/"+t+"|"+t+"]]",o=unescape(encodeURIComponent(r)).length;if(n+o<=499){var s=" ([[User talk:"+t+"|talk]])";i=n+o+unescape(encodeURIComponent(s)).length<=499?Morebits.string.safeReplace(i,"%USER%",r+s):Morebits.string.safeReplace(i,"%USER%",r)}else i=Morebits.string.safeReplace(i,"%USER%",t)}else i=Morebits.string.safeReplace(i,"%USER%",C("hidden-user"));return i}}B.moduleName="fluff";class G extends D{constructor(){super(),mw.config.get("wgNamespaceNumber")<0||!mw.config.get("wgArticleId")||(U(mw.util.getUrl(mw.config.get("wgPageName"),{diff:"cur",oldid:"prev"}),C("diff-last"),"twinkle-lastdiff",C("diff-last-tooltip")),mw.util.getParamValue("diff")&&(U((()=>this.evaluate(!1)),C("diff-since"),"tw-since",C("diff-since-tooltip")),U((()=>this.evaluate(!0)),C("diff-sincemine"),"tw-sincemine",C("diff-sincemine-tooltip")),U(mw.util.getUrl(mw.config.get("wgPageName"),{diff:"cur",oldid:/oldid=(.+)/.exec($("#mw-diff-ntitle1").find("strong a").first().attr("href"))[1]}),C("diff-current"),"tw-curdiff",C("diff-current-tooltip"))))}evaluate(e){var t;if(e)t=mw.config.get("wgUserName");else{var a=document.getElementById("mw-diff-ntitle2");if(!a)return;t=$(a).find("a").first().text()}Morebits.status.init(document.getElementById("mw-content-text"));var i=new p("Grabbing data of initial contributor",{prop:"revisions",action:"query",titles:mw.config.get("wgPageName"),rvlimit:1,rvprop:["ids","user"],rvstartid:mw.config.get("wgCurRevisionId")-1,rvuser:t,format:"json"});i.post().then((e=>{var a=e.getResponse().query.pages[0].revisions,i=a&&a[0].revid;i?window.location.href=mw.util.getUrl(mw.config.get("wgPageName"),{diff:mw.config.get("wgCurRevisionId"),oldid:i}):e.getStatusElement().error(C("diff-error",t))})),i.post()}}G.moduleName="Diff";class W extends Morebits.wiki.page{constructor(t,a){if(super(t,a),e.changeTags.length)this.setChangeTags(e.changeTags);else{let t=this.setEditSummary.bind(this);this.setEditSummary=function(a){t(a+e.summaryAd)}}["load","lookupCreation","save","append","prepend","newSection","deletePage","undeletePage","protect","stabilize"].forEach((e=>{let t=this[e].bind(this);this[e]=function(e,a){let i=$.Deferred();return t((t=>{e&&e.call(this,this),i.resolve(t instanceof Morebits.wiki.api?t:this)}),(e=>{if(a&&a.call(this,this),e instanceof Morebits.wiki.api){var t=new d(e.getErrorCode()+": "+e.getErrorText());t.code=e.getErrorCode(),t.info=e.getErrorText(),t.response=e.getResponse(),i.reject(t)}else i.reject(new Error(e))})),i}}))}}if(window.Twinkle=e,$.extend(e,{registerModule:O,msg:C,Page:W,Api:p}),void 0!==i&&(jQuery.Deferred.exceptionHook=function(e){throw e}),!Morebits.userIsInGroup("autoconfirmed")&&!Morebits.userIsInGroup("confirmed"))throw new Error("Twinkle: forbidden!");e.userAgent=`Twinkle (${mw.config.get("wgWikiID")})`,e.summaryAd=" ([[Project:TW|TW]])",e.changeTags="",e.messageOverrides=F,e.extraMwMessages=[],e.registeredModules=[class extends B{constructor(){super(...arguments),this.trustedBots=[],this.hiddenName="an unknown user"}},G],o.permalinkSpecialPageName="Special:PermanentLink",o.botUsernameRegex=/bot\b/i,o.flaggedRevsNamespaces=[],o.redirectTagAliases=["#REDIRECT"],(-1!==mw.config.get("wgNamespaceNumber")||e.activeSpecialPages.includes(mw.config.get("wgCanonicalSpecialPageName")))&&window.top===window.self&&(function(){switch(mw.config.get("skin")){case"vector":R([{name:"portletArea",value:"right-navigation"},{name:"portletId",value:"p-twinkle"},{name:"portletName",value:"TW"},{name:"portletType",value:"menu"},{name:"portletNext",value:"p-search"}]);break;case"timeless":R([{name:"portletArea",value:"#page-tools .sidebar-inner"},{name:"portletId",value:"p-twinkle"},{name:"portletName",value:"Twinkle"},{name:"portletType",value:null},{name:"portletNext",value:"p-userpagetools"}]);break;default:R([{name:"portletArea",value:null},{name:"portletId",value:"p-cactions"},{name:"portletName",value:null},{name:"portletType",value:null},{name:"portletNext",value:null}])}}(),Morebits.l10n.redirectTagAliases=o.redirectTagAliases,"function"==typeof o.signatureTimestampFormat&&(Morebits.l10n.signatureTimestampFormat=o.signatureTimestampFormat),m=new mw.Api({parameters:{action:"query",format:"json",formatversion:"2",uselang:b,errorlang:b,errorsuselocal:!0,tags:e.changeTags},ajax:{headers:{"Api-User-Agent":e.userAgent}}}),e.preModuleInitHooks.push((()=>{!function(){if(h=new(l())(b),u(v).forEach((([e,t])=>{h.registerParserPlugin(e,t)})),Morebits.i18n.setParser({get:C}),w="qqx"===b,w)return Promise.resolve();x&&h.load(f,"en");const t=g.concat(e.extraMwMessages);Promise.all([T(t,b),E(b)]).catch((e=>{mw.notify("Failed to load messages needed for Twinkle",{type:"error"})})).finally((()=>{y(e.messageOverrides)}))}()}),(()=>function(){let e=mw.util.wikiScript("index")+"?title=";return $.ajax({url:e+"User:"+encodeURIComponent(mw.config.get("wgUserName"))+"/twinkleoptions.js&action=raw&ctype=text/javascript&happy=yes",dataType:"text"}).then((function(e){if(""!==e){0===(e=e.replace(/(?:^(?:\/\/[^\n]*\n)*\n*|(?:\/\/[^\n]*(?:\n|$))*$)/g,"")).lastIndexOf("window.Twinkle.prefs = ",0)&&(e=e.replace(/(?:^window.Twinkle.prefs = |;\n*$)/g,""));try{let t=JSON.parse(e);t&&(A=t.twinkle||t.friendly?$.extend(t.twinkle,t.friendly):t,A.optionsVersion=A.optionsVersion||1)}catch(e){mw.notify("Could not parse your Twinkle preferences",{type:"error"})}}})).catch((function(){mw.notify("Could not load your Twinkle preferences",{type:"error"})}))}().then((()=>(I("dialogLargeFont")&&mw.util.addCSS(".morebits-dialog-content, .morebits-dialog-footerlinks { font-size: 100% !important; } .morebits-dialog input, .morebits-dialog select, .morebits-dialog-content button { font-size: inherit !important; }"),L=L.concat(I("disabledModules"),I("disabledSysopModules")),Promise.all(e.preModuleInitHooksWithConfig.map((e=>e())))))))),Promise.all(e.preModuleInitHooks.map((e=>e()))).then((()=>{mw.hook("twinkle.preModuleInit").fire();for(let t of e.registeredModules)O(t);"vector"===mw.config.get("skin")&&"menu"===I("portletType")&&0===$("#p-twinkle").length&&$("#p-cactions").css("margin-right","initial"),M.init()})))})()})();
/* </nowiki> */