User:Eejit43/scripts/sync-redirect.js
Appearance
< User:Eejit43 | scripts
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
![]() | This user script seems to have a documentation page at User:Eejit43/scripts/sync-redirect. |
// <nowiki>
// Note: This script was compiled and minified from TypeScript. For a more readable version, see https://github.com/Eejit43/wikipedia-scripts/blob/main/scripts/sync-redirect.ts
"use strict";(()=>{mw.loader.using(["mediawiki.util"],async()=>{if(!mw.Title.isTalkNamespace(mw.config.get("wgNamespaceNumber")))return;let r=await new mw.Api().get({action:"query",formatversion:"2",prop:["info","revisions"],rvprop:"content",rvslots:"main",titles:`${mw.config.get("wgFormattedNamespaces")[mw.config.get("wgNamespaceNumber")-1]}:${mw.config.get("wgTitle")}`});if(!r.query.pages[0].redirect)return;mw.util.addPortletLink(mw.config.get("skin")==="minerva"?"p-tb":"p-cactions","#","Sync with main page redirect","sync-redirect").addEventListener("click",async g=>{g.preventDefault(),mw.notify("Editing...",{tag:"sync-redirect-notification"});let a=r.query.pages[0].revisions[0].slots.main.content,n=/#redirect:? *\[\[(.+)]]/i.exec(a)?.[1].replaceAll("_"," ").split("|")[0].split("#")[0].trim();if(!n)return mw.notify("Failed to parse redirect target!",{type:"error",tag:"sync-redirect-notification"});let o=new DOMParser().parseFromString(n,"text/html").documentElement.textContent;if(!o)return mw.notify("Failed to parse redirect target!",{type:"error",tag:"sync-redirect-notification"});let i=mw.Title.newFromText(o);if(!i)return mw.notify("Failed to parse redirect target!",{type:"error",tag:"sync-redirect-notification"});let e=i.getMainText(),s=/{{ *r(edirect)?( from)?(( a)? page)? (move|rename|pm) *}}/i.test(a),t=mw.config.get("wgFormattedNamespaces")[i.getNamespaceId()+1];await new mw.Api().edit(mw.config.get("wgPageName"),()=>({text:`#REDIRECT [[${t}:${e}]]${s?`
{{Redirect category shell|
{{R from move}}
}}`:""}`,summary:`Sync redirect with main page, to [[${t}:${e}]] (via [[User:Eejit43/scripts/sync-redirect|script]])`,minor:!0})).catch(async(m,p)=>{m==="nocreate-missing"?await new mw.Api().create(mw.config.get("wgPageName"),{summary:`Create redirect matching main page, to [[${t}:${e}]] (via [[User:Eejit43/scripts/sync-redirect|script]])`},`#REDIRECT [[${t}:${e}]]${s?`
{{Redirect category shell|
{{R from move}}
}}`:""}`).catch((d,w)=>{mw.notify(`Failed to redirect page: ${w?.error.info??"Unknown error"} (${d})`,{type:"error",tag:"sync-redirect-notification"})}):mw.notify(`Failed to redirect page: ${p?.error.info??"Unknown error"} (${m})`,{type:"error",tag:"sync-redirect-notification"})}),mw.notify("Successfully redirected page, reloading...",{type:"success",tag:"sync-redirect-notification"});let c=new URL(window.location.href);c.searchParams.set("redirect","no"),window.location.href=c.href})});})();
// </nowiki>
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc2NyaXB0cy9zeW5jLXJlZGlyZWN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IEFwaVF1ZXJ5SW5mb1BhcmFtcywgQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMgfSBmcm9tICd0eXBlcy1tZWRpYXdpa2kvYXBpX3BhcmFtcyc7XG5pbXBvcnQgdHlwZSB7IE1lZGlhV2lraURhdGFFcnJvciwgUGFnZVJldmlzaW9uc1Jlc3VsdCB9IGZyb20gJy4uL2dsb2JhbC10eXBlcyc7XG5cbm13LmxvYWRlci51c2luZyhbJ21lZGlhd2lraS51dGlsJ10sIGFzeW5jICgpID0+IHtcbiAgICBpZiAoIW13LlRpdGxlLmlzVGFsa05hbWVzcGFjZShtdy5jb25maWcuZ2V0KCd3Z05hbWVzcGFjZU51bWJlcicpKSkgcmV0dXJuO1xuICAgIGNvbnN0IG1haW5QYWdlSW5mb1JldmlzaW9ucyA9IChhd2FpdCBuZXcgbXcuQXBpKCkuZ2V0KHtcbiAgICAgICAgYWN0aW9uOiAncXVlcnknLFxuICAgICAgICBmb3JtYXR2ZXJzaW9uOiAnMicsXG4gICAgICAgIHByb3A6IFsnaW5mbycsICdyZXZpc2lvbnMnXSxcbiAgICAgICAgcnZwcm9wOiAnY29udGVudCcsXG4gICAgICAgIHJ2c2xvdHM6ICdtYWluJyxcbiAgICAgICAgdGl0bGVzOiBgJHttdy5jb25maWcuZ2V0KCd3Z0Zvcm1hdHRlZE5hbWVzcGFjZXMnKVttdy5jb25maWcuZ2V0KCd3Z05hbWVzcGFjZU51bWJlcicpIC0gMV19OiR7bXcuY29uZmlnLmdldCgnd2dUaXRsZScpfWAsXG4gICAgfSBzYXRpc2ZpZXMgQXBpUXVlcnlJbmZvUGFyYW1zICYgQXBpUXVlcnlSZXZpc2lvbnNQYXJhbXMpKSBhcyBQYWdlUmV2aXNpb25zUmVzdWx0ICYgeyBxdWVyeTogeyBwYWdlczogeyByZWRpcmVjdD86IGJvb2xlYW4gfVtdIH0gfTtcbiAgICBpZiAoIW1haW5QYWdlSW5mb1JldmlzaW9ucy5xdWVyeS5wYWdlc1swXS5yZWRpcmVjdCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbGluayA9IG13LnV0aWwuYWRkUG9ydGxldExpbmsoXG4gICAgICAgIG13LmNvbmZpZy5nZXQoJ3NraW4nKSA9PT0gJ21pbmVydmEnID8gJ3AtdGInIDogJ3AtY2FjdGlvbnMnLFxuICAgICAgICAnIycsXG4gICAgICAgICdTeW5jIHdpdGggbWFpbiBwYWdlIHJlZGlyZWN0JyxcbiAgICAgICAgJ3N5bmMtcmVkaXJlY3QnLFxuICAgICkhO1xuXG4gICAgbGluay5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIG13Lm5vdGlmeSgnRWRpdGluZy4uLicsIHsgdGFnOiAnc3luYy1yZWRpcmVjdC1ub3RpZmljYXRpb24nIH0pO1xuXG4gICAgICAgIGNvbnN0IG1haW5QYWdlQ29udGVudDogc3RyaW5nID0gbWFpblBhZ2VJbmZvUmV2aXNpb25zLnF1ZXJ5LnBhZ2VzWzBdLnJldmlzaW9uc1swXS5zbG90cy5tYWluLmNvbnRlbnQ7XG5cbiAgICAgICAgY29uc3QgcmVkaXJlY3RUYXJnZXQgPSAvI3JlZGlyZWN0Oj8gKlxcW1xcWyguKyldXS9pXG4gICAgICAgICAgICAuZXhlYyhtYWluUGFnZUNvbnRlbnQpPy5bMV1cbiAgICAgICAgICAgIC5yZXBsYWNlQWxsKCdfJywgJyAnKVxuICAgICAgICAgICAgLnNwbGl0KCd8JylbMF1cbiAgICAgICAgICAgIC5zcGxpdCgnIycpWzBdXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgICAgICBpZiAoIXJlZGlyZWN0VGFyZ2V0KSByZXR1cm4gbXcubm90aWZ5KCdGYWlsZWQgdG8gcGFyc2UgcmVkaXJlY3QgdGFyZ2V0IScsIHsgdHlwZTogJ2Vycm9yJywgdGFnOiAnc3luYy1yZWRpcmVjdC1ub3RpZmljYXRpb24nIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlZGlyZWN0VGFyZ2V0UGFyc2VkID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhyZWRpcmVjdFRhcmdldCwgJ3RleHQvaHRtbCcpLmRvY3VtZW50RWxlbWVudC50ZXh0Q29udGVudDtcbiAgICAgICAgaWYgKCFyZWRpcmVjdFRhcmdldFBhcnNlZClcbiAgICAgICAgICAgIHJldHVybiBtdy5ub3RpZnkoJ0ZhaWxlZCB0byBwYXJzZSByZWRpcmVjdCB0YXJnZXQhJywgeyB0eXBlOiAnZXJyb3InLCB0YWc6ICdzeW5jLXJlZGlyZWN0LW5vdGlmaWNhdGlvbicgfSk7XG5cbiAgICAgICAgY29uc3QgbXdSZWRpcmVjdFRhcmdldCA9IG13LlRpdGxlLm5ld0Zyb21UZXh0KHJlZGlyZWN0VGFyZ2V0UGFyc2VkKTtcbiAgICAgICAgaWYgKCFtd1JlZGlyZWN0VGFyZ2V0KSByZXR1cm4gbXcubm90aWZ5KCdGYWlsZWQgdG8gcGFyc2UgcmVkaXJlY3QgdGFyZ2V0IScsIHsgdHlwZTogJ2Vycm9yJywgdGFnOiAnc3luYy1yZWRpcmVjdC1ub3RpZmljYXRpb24nIH0pO1xuXG4gICAgICAgIGNvbnN0IG1haW5UYXJnZXRUZXh0ID0gbXdSZWRpcmVjdFRhcmdldC5nZXRNYWluVGV4dCgpO1xuXG4gICAgICAgIGNvbnN0IHBhZ2VNb3ZlID0gL3t7ICpyKGVkaXJlY3QpPyggZnJvbSk/KCggYSk/IHBhZ2UpPyAobW92ZXxyZW5hbWV8cG0pICp9fS9pLnRlc3QobWFpblBhZ2VDb250ZW50KTtcbiAgICAgICAgY29uc3QgZGVzdGluYXRpb25UYWxrTmFtZXNwYWNlTmFtZSA9IG13LmNvbmZpZy5nZXQoJ3dnRm9ybWF0dGVkTmFtZXNwYWNlcycpW213UmVkaXJlY3RUYXJnZXQuZ2V0TmFtZXNwYWNlSWQoKSArIDFdO1xuICAgICAgICBhd2FpdCBuZXcgbXcuQXBpKClcbiAgICAgICAgICAgIC5lZGl0KG13LmNvbmZpZy5nZXQoJ3dnUGFnZU5hbWUnKSwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBgI1JFRElSRUNUIFtbJHtkZXN0aW5hdGlvblRhbGtOYW1lc3BhY2VOYW1lfToke21haW5UYXJnZXRUZXh0fV1dJHtwYWdlTW92ZSA/ICdcXG5cXG57e1JlZGlyZWN0IGNhdGVnb3J5IHNoZWxsfFxcbnt7UiBmcm9tIG1vdmV9fVxcbn19JyA6ICcnfWAsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogYFN5bmMgcmVkaXJlY3Qgd2l0aCBtYWluIHBhZ2UsIHRvIFtbJHtkZXN0aW5hdGlvblRhbGtOYW1lc3BhY2VOYW1lfToke21haW5UYXJnZXRUZXh0fV1dICh2aWEgW1tVc2VyOkVlaml0NDMvc2NyaXB0cy9zeW5jLXJlZGlyZWN0fHNjcmlwdF1dKWAsXG4gICAgICAgICAgICAgICAgbWlub3I6IHRydWUsXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIC5jYXRjaChhc3luYyAoZXJyb3JDb2RlLCBlcnJvckluZm8pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb2RlID09PSAnbm9jcmVhdGUtbWlzc2luZycpXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBtdy5BcGkoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmNyZWF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdy5jb25maWcuZ2V0KCd3Z1BhZ2VOYW1lJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiBgQ3JlYXRlIHJlZGlyZWN0IG1hdGNoaW5nIG1haW4gcGFnZSwgdG8gW1ske2Rlc3RpbmF0aW9uVGFsa05hbWVzcGFjZU5hbWV9OiR7bWFpblRhcmdldFRleHR9XV0gKHZpYSBbW1VzZXI6RWVqaXQ0My9zY3JpcHRzL3N5bmMtcmVkaXJlY3R8c2NyaXB0XV0pYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAjUkVESVJFQ1QgW1ske2Rlc3RpbmF0aW9uVGFsa05hbWVzcGFjZU5hbWV9OiR7bWFpblRhcmdldFRleHR9XV0ke3BhZ2VNb3ZlID8gJ1xcblxcbnt7UmVkaXJlY3QgY2F0ZWdvcnkgc2hlbGx8XFxue3tSIGZyb20gbW92ZX19XFxufX0nIDogJyd9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3JDb2RlLCBlcnJvckluZm8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdy5ub3RpZnkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gcmVkaXJlY3QgcGFnZTogJHsoZXJyb3JJbmZvIGFzIE1lZGlhV2lraURhdGFFcnJvcik/LmVycm9yLmluZm8gPz8gJ1Vua25vd24gZXJyb3InfSAoJHtlcnJvckNvZGV9KWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWc6ICdzeW5jLXJlZGlyZWN0LW5vdGlmaWNhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgbXcubm90aWZ5KFxuICAgICAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCB0byByZWRpcmVjdCBwYWdlOiAkeyhlcnJvckluZm8gYXMgTWVkaWFXaWtpRGF0YUVycm9yKT8uZXJyb3IuaW5mbyA/PyAnVW5rbm93biBlcnJvcid9ICgke2Vycm9yQ29kZX0pYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZzogJ3N5bmMtcmVkaXJlY3Qtbm90aWZpY2F0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBtdy5ub3RpZnkoJ1N1Y2Nlc3NmdWxseSByZWRpcmVjdGVkIHBhZ2UsIHJlbG9hZGluZy4uLicsIHsgdHlwZTogJ3N1Y2Nlc3MnLCB0YWc6ICdzeW5jLXJlZGlyZWN0LW5vdGlmaWNhdGlvbicgfSk7XG5cbiAgICAgICAgY29uc3QgbmV3VXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIG5ld1VybC5zZWFyY2hQYXJhbXMuc2V0KCdyZWRpcmVjdCcsICdubycpO1xuXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbmV3VXJsLmhyZWY7XG4gICAgfSk7XG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7OzttQkFHQSxHQUFHLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixFQUFHLFNBQVksQ0FDNUMsR0FBSSxDQUFDLEdBQUcsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLElBQUksbUJBQW1CLENBQUMsRUFBRyxPQUNuRSxJQUFNQSxFQUF5QixNQUFNLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUNsRCxPQUFRLFFBQ1IsY0FBZSxJQUNmLEtBQU0sQ0FBQyxPQUFRLFdBQVcsRUFDMUIsT0FBUSxVQUNSLFFBQVMsT0FDVCxPQUFRLEdBQUcsR0FBRyxPQUFPLElBQUksdUJBQXVCLEVBQUUsR0FBRyxPQUFPLElBQUksbUJBQW1CLEVBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxPQUFPLElBQUksU0FBUyxDQUFDLEVBQ3pILENBQXdELEVBQ3hELEdBQUksQ0FBQ0EsRUFBc0IsTUFBTSxNQUFNLENBQUMsRUFBRSxTQUFVLE9BRXZDLEdBQUcsS0FBSyxlQUNqQixHQUFHLE9BQU8sSUFBSSxNQUFNLElBQU0sVUFBWSxPQUFTLGFBQy9DLElBQ0EsK0JBQ0EsZUFDSixFQUVLLGlCQUFpQixRQUFTLE1BQU9DLEdBQVUsQ0FDNUNBLEVBQU0sZUFBZSxFQUVyQixHQUFHLE9BQU8sYUFBYyxDQUFFLElBQUssNEJBQTZCLENBQUMsRUFFN0QsSUFBTUMsRUFBMEJGLEVBQXNCLE1BQU0sTUFBTSxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsTUFBTSxLQUFLLFFBRXZGRyxFQUFpQiwyQkFDbEIsS0FBS0QsQ0FBZSxJQUFJLENBQUMsRUFDekIsV0FBVyxJQUFLLEdBQUcsRUFDbkIsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUNaLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFDWixLQUFLLEVBQ1YsR0FBSSxDQUFDQyxFQUFnQixPQUFPLEdBQUcsT0FBTyxtQ0FBb0MsQ0FBRSxLQUFNLFFBQVMsSUFBSyw0QkFBNkIsQ0FBQyxFQUU5SCxJQUFNQyxFQUF1QixJQUFJLFVBQVUsRUFBRSxnQkFBZ0JELEVBQWdCLFdBQVcsRUFBRSxnQkFBZ0IsWUFDMUcsR0FBSSxDQUFDQyxFQUNELE9BQU8sR0FBRyxPQUFPLG1DQUFvQyxDQUFFLEtBQU0sUUFBUyxJQUFLLDRCQUE2QixDQUFDLEVBRTdHLElBQU1DLEVBQW1CLEdBQUcsTUFBTSxZQUFZRCxDQUFvQixFQUNsRSxHQUFJLENBQUNDLEVBQWtCLE9BQU8sR0FBRyxPQUFPLG1DQUFvQyxDQUFFLEtBQU0sUUFBUyxJQUFLLDRCQUE2QixDQUFDLEVBRWhJLElBQU1DLEVBQWlCRCxFQUFpQixZQUFZLEVBRTlDRSxFQUFXLDZEQUE2RCxLQUFLTCxDQUFlLEVBQzVGTSxFQUErQixHQUFHLE9BQU8sSUFBSSx1QkFBdUIsRUFBRUgsRUFBaUIsZUFBZSxFQUFJLENBQUMsRUFDakgsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUNaLEtBQUssR0FBRyxPQUFPLElBQUksWUFBWSxFQUFHLEtBQU8sQ0FDdEMsS0FBTSxlQUFlRyxDQUE0QixJQUFJRixDQUFjLEtBQUtDLEVBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUF3RCxFQUFFLEdBQzdJLFFBQVMsc0NBQXNDQyxDQUE0QixJQUFJRixDQUFjLHlEQUM3RixNQUFPLEVBQ1gsRUFBRSxFQUNELE1BQU0sTUFBT0csRUFBV0MsSUFBYyxDQUMvQkQsSUFBYyxtQkFDZCxNQUFNLElBQUksR0FBRyxJQUFJLEVBQ1osT0FDRyxHQUFHLE9BQU8sSUFBSSxZQUFZLEVBQzFCLENBQ0ksUUFBUyw0Q0FBNENELENBQTRCLElBQUlGLENBQWMsd0RBQ3ZHLEVBQ0EsZUFBZUUsQ0FBNEIsSUFBSUYsQ0FBYyxLQUFLQyxFQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFBd0QsRUFBRSxFQUMzSSxFQUNDLE1BQU0sQ0FBQ0UsRUFBV0MsSUFBYyxDQUM3QixHQUFHLE9BQ0MsNEJBQTZCQSxHQUFrQyxNQUFNLE1BQVEsZUFBZSxLQUFLRCxDQUFTLElBQzFHLENBQ0ksS0FBTSxRQUNOLElBQUssNEJBQ1QsQ0FDSixDQUNKLENBQUMsRUFFTCxHQUFHLE9BQ0MsNEJBQTZCQyxHQUFrQyxNQUFNLE1BQVEsZUFBZSxLQUFLRCxDQUFTLElBQzFHLENBQ0ksS0FBTSxRQUNOLElBQUssNEJBQ1QsQ0FDSixDQUNSLENBQUMsRUFFTCxHQUFHLE9BQU8sNkNBQThDLENBQUUsS0FBTSxVQUFXLElBQUssNEJBQTZCLENBQUMsRUFFOUcsSUFBTUUsRUFBUyxJQUFJLElBQUksT0FBTyxTQUFTLElBQUksRUFDM0NBLEVBQU8sYUFBYSxJQUFJLFdBQVksSUFBSSxFQUV4QyxPQUFPLFNBQVMsS0FBT0EsRUFBTyxJQUNsQyxDQUFDLENBQ0wsQ0FBQyIsCiAgIm5hbWVzIjogWyJtYWluUGFnZUluZm9SZXZpc2lvbnMiLCAiZXZlbnQiLCAibWFpblBhZ2VDb250ZW50IiwgInJlZGlyZWN0VGFyZ2V0IiwgInJlZGlyZWN0VGFyZ2V0UGFyc2VkIiwgIm13UmVkaXJlY3RUYXJnZXQiLCAibWFpblRhcmdldFRleHQiLCAicGFnZU1vdmUiLCAiZGVzdGluYXRpb25UYWxrTmFtZXNwYWNlTmFtZSIsICJlcnJvckNvZGUiLCAiZXJyb3JJbmZvIiwgIm5ld1VybCJdCn0K