diff --git a/action.yaml b/action.yaml index 2397f98..d7c4e86 100644 --- a/action.yaml +++ b/action.yaml @@ -63,7 +63,6 @@ inputs: If `true`, a collapsed "details" section is rendered. It explains the details of the numbers provided and icons. show_no_change: required: false - default: "true" deprecationMessage: | Use the `include_size_comparison` list to show/hide `no-change`. description: | diff --git a/dist/index.mjs b/dist/index.mjs index 7610a85..b8dab2f 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -41,5 +41,5 @@ ${i} `;let i=s.tree.value,{largeNodes:r,hasOther:o}=Rn(s.tree,t);for(let{path:h,value:a}of r){let l=ks(a,i);e+=`| ${h} | ${Fs(l,a)} | `}if(o){let h=i-r[0].value,a=ks(h,i);e+=`| (other) | ${Fs(a,h)} | `}}return e+=` -`,e}function Fs(n,t){return`\${{\\color{Goldenrod}{ ${Fn(n/100)} }}}$ ${n.toFixed(1)}%, ${Ae(t)}`}var _s=["","\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588"],Te=1/(_s.length-1);function Fn(n,t=25,e=0,s=1){let i=n*t,r=Math.floor(i),o=i-r,h=Math.round(Te*Math.floor(o/Te)/Te);return"\u2588".repeat(r)+_s[h]}function Ds(n){return Ae(n.bytes)}function Ns(n,t){if(n.remark==="deleted")return"\u{1F5D1}\uFE0F Deleted";if(n.remark==="added")return"\u{1F195} Added";if(n.remark==="no-change")return"\u2705 No change";let e=n.bytes-n.baseBytes,s=e/n.baseBytes*100;return`${Mn(s,t)}${Ae(e)} (${zs(s)}${s.toFixed(1)}%)`}function zs(n){return n<0?"":"+"}function Mn(n,t){let e;return n>0&&n=t?e="\u203C\uFE0F":e="\u2705 ",`${e} ${zs(n)}`}function _n(){let n=K("metafiles");if(!n)throw new Error("metafiles is not specified");let t=K("name");if(!t)throw new Error("name is not specified");let e=new Set((K("include_size_comparison")||"added, deleted, increased, decreased, no-change").split(",").map(i=>{switch(i.trim()){case"added":case"deleted":case"increased":case"decreased":case"total":case"no-change":return i.trim();default:throw new Error(`Unknown size comparison filter: ${i}`)}}));return K("show_no_change")!==""&&(Ee("show_no_change","true")?(e.delete("no-change"),Ls.log("`show_no_change: true` is deprecated. Instead, remove `no-change` from the `include_size_comparison` list.")):(e.add("no-change"),Ls.log("`show_no_change: false` is deprecated. Instead, add `no-change` to the `include_size_comparison` list."))),{percentExtraAttention:ve("percent_extra_attention",20),showDetails:Ee("show_details","true"),topNLargestPaths:ve("top_n_largest_paths",20),includeExtensions:(K("include_extensions")||".js,.mjs,.cjs").split(","),includeSizeComparison:e,name:t,analyzerDirectory:K("analyze_directory")||".analyzer",metafiles:n.split(",")}}function Dn(n=_n()){Rs(n),Ms(n)}import.meta.url===On(process.argv[1]).href&&Dn();export{Dn as run}; -//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgY29uc29sZSBmcm9tIFwibm9kZTpjb25zb2xlXCI7XG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0LCBTaXplQ29tcGFyaXNvbkZpbHRlciB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRCb29sZWFuSW5wdXQsIGdldE51bWJlcklucHV0LCBnZXRTaW5nbGVJbnB1dCB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmZ1bmN0aW9uIGdldElucHV0KCk6IElucHV0IHtcblx0Y29uc3QgcmF3TWV0YWZpbGVzID0gZ2V0U2luZ2xlSW5wdXQoXCJtZXRhZmlsZXNcIik7XG5cdGlmICghcmF3TWV0YWZpbGVzKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwibWV0YWZpbGVzIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0Y29uc3QgbmFtZSA9IGdldFNpbmdsZUlucHV0KFwibmFtZVwiKTtcblx0aWYgKCFuYW1lKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwibmFtZSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuXHR9XG5cdGNvbnN0IGZpbHRlcnMgPSBuZXcgU2V0PFNpemVDb21wYXJpc29uRmlsdGVyPihcblx0XHQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcImluY2x1ZGVfc2l6ZV9jb21wYXJpc29uXCIpIHx8XG5cdFx0XHRcImFkZGVkLCBkZWxldGVkLCBpbmNyZWFzZWQsIGRlY3JlYXNlZCwgbm8tY2hhbmdlXCJcblx0XHQpXG5cdFx0XHQuc3BsaXQoXCIsXCIpXG5cdFx0XHQubWFwKChzKSA9PiB7XG5cdFx0XHRcdHN3aXRjaCAocy50cmltKCkpIHtcblx0XHRcdFx0XHRjYXNlIFwiYWRkZWRcIjpcblx0XHRcdFx0XHRjYXNlIFwiZGVsZXRlZFwiOlxuXHRcdFx0XHRcdGNhc2UgXCJpbmNyZWFzZWRcIjpcblx0XHRcdFx0XHRjYXNlIFwiZGVjcmVhc2VkXCI6XG5cdFx0XHRcdFx0Y2FzZSBcInRvdGFsXCI6XG5cdFx0XHRcdFx0Y2FzZSBcIm5vLWNoYW5nZVwiOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHMudHJpbSgpIGFzIFNpemVDb21wYXJpc29uRmlsdGVyO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2l6ZSBjb21wYXJpc29uIGZpbHRlcjogJHtzfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0KTtcblx0Y29uc3QgcmF3U2hvd05vQ2hhbmdlID0gZ2V0U2luZ2xlSW5wdXQoXCJzaG93X25vX2NoYW5nZVwiKTtcblx0aWYgKHJhd1Nob3dOb0NoYW5nZSAhPT0gXCJcIikge1xuXHRcdGlmIChnZXRCb29sZWFuSW5wdXQoXCJzaG93X25vX2NoYW5nZVwiLCBcInRydWVcIikpIHtcblx0XHRcdGZpbHRlcnMuZGVsZXRlKFwibm8tY2hhbmdlXCIpO1xuXHRcdFx0Y29uc29sZS5sb2coXG5cdFx0XHRcdFwiYHNob3dfbm9fY2hhbmdlOiB0cnVlYCBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkLCByZW1vdmUgYG5vLWNoYW5nZWAgZnJvbSB0aGUgYGluY2x1ZGVfc2l6ZV9jb21wYXJpc29uYCBsaXN0LlwiLFxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZmlsdGVycy5hZGQoXCJuby1jaGFuZ2VcIik7XG5cdFx0XHRjb25zb2xlLmxvZyhcblx0XHRcdFx0XCJgc2hvd19ub19jaGFuZ2U6IGZhbHNlYCBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkLCBhZGQgYG5vLWNoYW5nZWAgdG8gdGhlIGBpbmNsdWRlX3NpemVfY29tcGFyaXNvbmAgbGlzdC5cIixcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB7XG5cdFx0cGVyY2VudEV4dHJhQXR0ZW50aW9uOiBnZXROdW1iZXJJbnB1dChcInBlcmNlbnRfZXh0cmFfYXR0ZW50aW9uXCIsIDIwKSxcblx0XHRzaG93RGV0YWlsczogZ2V0Qm9vbGVhbklucHV0KFwic2hvd19kZXRhaWxzXCIsIFwidHJ1ZVwiKSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBnZXROdW1iZXJJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIiwgMjApLFxuXHRcdGluY2x1ZGVFeHRlbnNpb25zOiAoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcImluY2x1ZGVfZXh0ZW5zaW9uc1wiKSB8fCBcIi5qcywubWpzLC5janNcIlxuXHRcdCkuc3BsaXQoXCIsXCIpLFxuXHRcdGluY2x1ZGVTaXplQ29tcGFyaXNvbjogZmlsdGVycyxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaW5kTWV0YWZpbGVzIH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbXBhcmVSZXN1bHQsXG5cdElucHV0LFxuXHRSZXBvcnQsXG5cdFNpemVDb21wYXJpc29uRmlsdGVyLFxuXHRUcmVlTWFwTm9kZSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRBbmFseXNpc0pzb24sIGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlKGlucHV0OiBJbnB1dCk6IHZvaWQge1xuXHRsZXQgaGFzQW55Q2hhbmdlID0gZmFsc2U7XG5cdGxldCBvdXRwdXQgPSBgIyMgXHVEODNEXHVEQ0U2IGVzYnVpbGQgQnVuZGxlIEFuYWx5c2lzIGZvciAke2lucHV0Lm5hbWV9XG5cblRoaXMgYW5hbHlzaXMgd2FzIGdlbmVyYXRlZCBieSBbZXNidWlsZC1idW5kbGUtYW5hbHl6ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9leG9lZ28vZXNidWlsZC1idW5kbGUtYW5hbHl6ZXIpLiBcdUQ4M0VcdUREMTZcbmA7XG5cblx0Y29uc3QgY3VycmVudEFuYWx5c2lzUGF0aCA9IHBhdGguam9pbihcblx0XHRwcm9jZXNzLmN3ZCgpLFxuXHRcdGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LFxuXHRcdFwiYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0KTtcblx0Y29uc3QgY3VycmVudCA9IGxvYWRBbmFseXNpc0pzb24oY3VycmVudEFuYWx5c2lzUGF0aCk7XG5cdGNvbnNvbGUubG9nKGBDdXJyZW50IGFuYWx5c2lzIGZvdW5kIGluICR7Y3VycmVudEFuYWx5c2lzUGF0aH1gLCBjdXJyZW50KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cdFx0Y29uc29sZS5sb2coXCJDb21wYXJpbmdcIiwgb3V0ZmlsZSwgY3VycmVudFN0YXRzLCBiYXNlU3RhdHMpO1xuXG5cdFx0aWYgKCFjdXJyZW50U3RhdHMpIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiRGVsZXRlZCBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIk5ldyBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7IC4uLmN1cnJlbnRTdGF0cywgYmFzZUJ5dGVzOiAtMSwgcmVtYXJrOiBcImFkZGVkXCIsIHRyZWUgfTtcblx0XHR9XG5cblx0XHRjb25zdCBkaWZmID0gY3VycmVudFN0YXRzLmJ5dGVzIC0gYmFzZVN0YXRzLmJ5dGVzO1xuXHRcdGlmIChkaWZmICE9PSAwKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIkNoYW5nZWQgZmlsZVwiLCBvdXRmaWxlLCBkaWZmKTtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiTm8gY2hhbmdlXCIsIG91dGZpbGUpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uY3VycmVudFN0YXRzLFxuXHRcdFx0YmFzZUJ5dGVzOiBiYXNlU3RhdHMuYnl0ZXMsXG5cdFx0XHR0cmVlLFxuXHRcdFx0cmVtYXJrOlxuXHRcdFx0XHRkaWZmID09PSAwID8gXCJuby1jaGFuZ2VcIiA6IE1hdGguc2lnbihkaWZmKSA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiLFxuXHRcdH07XG5cdH0pO1xuXHRjb25zb2xlLmxvZyhcIkNvbXBhcmlzb24gZG9uZS5cIiwgY29tcGFyaXNvbik7XG5cblx0aWYgKGhhc0FueUNoYW5nZSkge1xuXHRcdG91dHB1dCArPSBtYXJrZG93blRhYmxlKFxuXHRcdFx0Y29tcGFyaXNvbixcblx0XHRcdGlucHV0LmluY2x1ZGVTaXplQ29tcGFyaXNvbixcblx0XHRcdGlucHV0LnBlcmNlbnRFeHRyYUF0dGVudGlvbixcblx0XHQpO1xuXHRcdG91dHB1dCArPSBoaWRkZW5UYWJsZShcblx0XHRcdGNvbXBhcmlzb24sXG5cdFx0XHRpbnB1dC5pbmNsdWRlU2l6ZUNvbXBhcmlzb24sXG5cdFx0XHRpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24sXG5cdFx0KTtcblx0XHRvdXRwdXQgKz0gZmlsZVNpemVUYWJsZShjb21wYXJpc29uLCBpbnB1dC50b3BOTGFyZ2VzdFBhdGhzKTtcblx0XHRvdXRwdXQgKz0gZGV0YWlsKGlucHV0KTtcblx0fSBlbHNlIHtcblx0XHRvdXRwdXQgKz0gXCJUaGlzIFBSIGludHJvZHVjZWQgbm8gY2hhbmdlcyB0byB0aGUgZXNidWlsZCBidW5kbGUhIFx1RDgzRFx1REU0Q1wiO1xuXHR9XG5cblx0Ly8gd2UgYWRkIHRoaXMgdGFnIHNvIHRoYXQgb3VyIGFjdGlvbiBjYW4gYmUgYWJsZSB0byBlYXNpbHkgYW5kXG5cdC8vIGNvbnNpc3RlbnRseSBmaW5kIHRoZSByaWdodCBjb21tZW50IHRvIGVkaXQgYXMgbW9yZSBjb21taXRzIGFyZSBwdXNoZWQuXG5cdC8vIFRhZyBpcyBhZGRlZCB0byB0aGUgdG9wIG9mIHRoZSBjb21tZW50IHRvIGF2b2lkIHRoZSB0cnVuY2F0aW9uLlxuXHRvdXRwdXQgPSBgPCEtLSBfX0VTQlVJTERfQlVORExFXyR7aW5wdXQubmFtZX0gLS0+XG4ke291dHB1dH1gO1xuXG5cdHdyaXRlQ29tbWVudChpbnB1dCwgb3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gdHJlZUtleShtZXRhZmlsZTogc3RyaW5nLCBvdXRmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7bWV0YWZpbGV9IC0+ICR7b3V0ZmlsZX1gO1xufVxuXG4vLyBXcml0ZSB0aGUgb3V0cHV0IHRvIGEgZmlsZSB3aGljaCBpcyBsYXRlciByZWFkIGluXG4vLyBhcyBjb21tZW50IGNvbnRlbnRzIGJ5IHRoZSBhY3Rpb25zIHdvcmtmbG93LlxuZnVuY3Rpb24gd3JpdGVDb21tZW50KGlucHV0OiBJbnB1dCwgb3V0cHV0OiBzdHJpbmcpOiB2b2lkIHtcblx0Y29uc29sZS5sb2coXCJXcml0aW5nIGNvbW1lbnQgdG8gZmlsZS5cIiwgb3V0cHV0KTtcblx0ZnMubWtkaXJTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSksIHtcblx0XHRyZWN1cnNpdmU6IHRydWUsXG5cdH0pO1xuXHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYnVuZGxlX2FuYWx5c2lzX2NvbW1lbnQudHh0XCIsXG5cdFx0KSxcblx0XHRvdXRwdXQudHJpbSgpLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBkZXRhaWwoaW5wdXQ6IElucHV0KTogc3RyaW5nIHtcblx0aWYgKCFpbnB1dC5zaG93RGV0YWlscykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cdHJldHVybiBgXFxuPGRldGFpbHM+XG48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PlxuPHA+TmV4dCB0byB0aGUgc2l6ZSBpcyBob3cgbXVjaCB0aGUgc2l6ZSBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBjb21wYXJlZCB3aXRoIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGlzIFBSLjwvcD5cbjx1bD5cbjxsaT5cdTIwM0NcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGJ5ICR7aW5wdXQucGVyY2VudEV4dHJhQXR0ZW50aW9ufSUgb3IgbW9yZS4gU3BlY2lhbCBhdHRlbnRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIHRoaXMuPC9saT5cbjxsaT5cdTI2QTBcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGluIGFjY2VwdGFibGUgcmFuZ2UgKGxvd2VyIHRoYW4gJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSkuPC9saT5cbjxsaT5cdTI3MDU6IE5vIGNoYW5nZSBvciBldmVuIGRvd25zaXplZC48L2xpPlxuPGxpPlx1RDgzRFx1REREMVx1RkUwRjogVGhlIG91dCBmaWxlIGlzIGRlbGV0ZWQ6IG5vdCBmb3VuZCBpbiBiYXNlIGJyYW5jaC48L2xpPlxuPGxpPlx1RDgzQ1x1REQ5NTogVGhlIG91dCBmaWxlIGlzIG5ld2x5IGZvdW5kOiB3aWxsIGJlIGFkZGVkIHRvIGJhc2UgYnJhbmNoLjwvbGk+XG48L3VsPlxuPC9kZXRhaWxzPlxcbmA7XG59XG5cbmZ1bmN0aW9uIGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgYmFzZUFuYWx5c2lzUGF0aCA9IHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYmFzZS9idW5kbGUvYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0XHQpO1xuXHRcdGNvbnN0IHJlcG9ydCA9IGxvYWRBbmFseXNpc0pzb24oYmFzZUFuYWx5c2lzUGF0aCk7XG5cdFx0Y29uc29sZS5pbmZvKGBCYXNlIGFuYWx5c2lzIGZvdW5kIGluICR7YmFzZUFuYWx5c2lzUGF0aH1gLCByZXBvcnQpO1xuXHRcdHJldHVybiByZXBvcnQ7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcIk5vIGJhc2UgYW5hbHlzaXMgZm91bmQuIEZpcnN0IHNldHVwIG9yIGFsbCBhcnRpZmFjdHMgYXJlIGV4cGlyZWQuXCIsXG5cdFx0KTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn1cblxuZnVuY3Rpb24gYnVpbGRGaWxlVHJlZShpbnB1dDogSW5wdXQpIHtcblx0ZnVuY3Rpb24gYnVpbGRSb290KFxuXHRcdGlucHV0OiBSZWNvcmQ8c3RyaW5nLCB7IGJ5dGVzSW5PdXRwdXQ6IG51bWJlciB9Pixcblx0KTogVHJlZU1hcE5vZGUge1xuXHRcdGNvbnN0IHJvb3Q6IFRyZWVNYXBOb2RlID0geyBuYW1lOiBcIlwiLCBwYXRoOiBcIlwiLCB2YWx1ZTogMCwgY2hpbGRyZW46IFtdIH07XG5cdFx0Zm9yIChjb25zdCBbZmlsZVBhdGgsIHsgYnl0ZXNJbk91dHB1dCB9XSBvZiBPYmplY3QuZW50cmllcyhpbnB1dCkpIHtcblx0XHRcdGNvbnN0IGRpcmVjdG9yaWVzID0gZmlsZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0YnVpbGROb2RlKHJvb3QsIGRpcmVjdG9yaWVzLCBieXRlc0luT3V0cHV0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3Q7XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZE5vZGUoXG5cdFx0bm9kZTogVHJlZU1hcE5vZGUsXG5cdFx0cGF0aHM6IEFycmF5PHN0cmluZz4sXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgZmlyc3QgPSBwYXRocy5zaGlmdCgpO1xuXHRcdGlmIChmaXJzdCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBsZWFmIG5vZGUgKGZpbGUpXG5cdFx0XHRub2RlLnZhbHVlICs9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRsZXQgY2hpbGQgPSBub2RlLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5uYW1lID09PSBmaXJzdCk7XG5cdFx0aWYgKCFjaGlsZCkge1xuXHRcdFx0Y2hpbGQgPSB7XG5cdFx0XHRcdG5hbWU6IGZpcnN0LFxuXHRcdFx0XHRwYXRoOiBgJHtub2RlLnBhdGh9LyR7Zmlyc3R9YC5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG5cdFx0XHRcdHZhbHVlOiAwLFxuXHRcdFx0XHRjaGlsZHJlbjogW10sXG5cdFx0XHR9O1xuXHRcdFx0bm9kZS5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcblx0XHR9XG5cdFx0bm9kZS52YWx1ZSArPSB2YWx1ZTtcblx0XHRidWlsZE5vZGUoY2hpbGQsIHBhdGhzLCB2YWx1ZSk7XG5cdH1cblxuXHRjb25zdCB0cmVlcyA9IG5ldyBNYXA8c3RyaW5nLCBUcmVlTWFwTm9kZT4oKTtcblx0aWYgKGlucHV0LnRvcE5MYXJnZXN0UGF0aHMgPD0gMCkge1xuXHRcdC8vIFNraXAgYnVpbGRpbmcgdHJlZSBpZiB3ZSBkb24ndCBuZWVkIGl0LlxuXHRcdHJldHVybiB0cmVlcztcblx0fVxuXHRmb3IgKGNvbnN0IHsgcmVsYXRpdmVQYXRoLCBhYnNvbHV0ZVBhdGggfSBvZiBmaW5kTWV0YWZpbGVzKGlucHV0KSkge1xuXHRcdGNvbnN0IG1ldGFmaWxlSnNvbiA9IGxvYWRNZXRhRmlsZShhYnNvbHV0ZVBhdGgpO1xuXHRcdGZvciAoY29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gb2YgT2JqZWN0LmVudHJpZXMobWV0YWZpbGVKc29uLm91dHB1dHMpKSB7XG5cdFx0XHRjb25zdCB0cmVlID0gYnVpbGRSb290KGJ1aWxkTWV0YS5pbnB1dHMpO1xuXHRcdFx0dHJlZXMuc2V0KHRyZWVLZXkocmVsYXRpdmVQYXRoLCBvdXRmaWxlKSwgdHJlZSk7XG5cblx0XHRcdGZzLndyaXRlRmlsZVN5bmMoXG5cdFx0XHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJ0cmVlLmpzb25cIiksXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRyZWUsIG51bGwsIDIpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRyZWVzO1xufVxuXG5jb25zdCBzcGFjZXIgPSBcIlx1MDBBMFwiO1xuXG5mdW5jdGlvbiBmaWxlc2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcblx0Y29uc3Qgc2lnbiA9IGJ5dGVzIDwgMCA/IFwiLVwiIDogXCJcIjtcblx0Y29uc3QgbiA9IE1hdGguYWJzKGJ5dGVzKTtcblx0aWYgKG4gPCAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHtufSR7c3BhY2VyfUJgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCkudG9GaXhlZCgyKX0ke3NwYWNlcn1LQmA7XG5cdH1cblx0aWYgKG4gPCAxMDAwICogMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9TUJgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDAgKiAxMDAwICogMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7KG4gLyAxMDAwIC8gMTAwMCAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9R0JgO1xuXHR9XG5cdHRocm93IG5ldyBFcnJvcihcIlRvbyBsYXJnZSBmaWxlIHNpemUhISBBcmUgeW91IHN1cmU/XCIpO1xufVxuXG5jb25zdCBzaG91bGRTaG93QnVuZGxlID0gKGQ6IENvbXBhcmVSZXN1bHQsIHNob3dOb0NoYW5nZTogYm9vbGVhbikgPT5cblx0c2hvd05vQ2hhbmdlIHx8IGQuYnl0ZXMgLSBkLmJhc2VCeXRlcyAhPT0gMDtcblxuZnVuY3Rpb24gbWFya2Rvd25UYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHNpemVDb21wYXJpc29uRmlsdGVyczogU2V0PFNpemVDb21wYXJpc29uRmlsdGVyPixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRjb25zdCB0b3RhbFJvdyA9IGRhdGEucmVkdWNlKFxuXHRcdChhY2MsIGQpID0+IHtcblx0XHRcdGNvbnN0IHsgYnl0ZXMsIGJhc2VCeXRlcywgLi4ucmVzdCB9ID0gYWNjO1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Li4ucmVzdCxcblx0XHRcdFx0YmFzZUJ5dGVzOiBiYXNlQnl0ZXMgKyBkLmJhc2VCeXRlcyxcblx0XHRcdFx0Ynl0ZXM6IGJ5dGVzICsgZC5ieXRlcyxcblx0XHRcdH07XG5cdFx0fSxcblx0XHR7XG5cdFx0XHRiYXNlQnl0ZXM6IDAsXG5cdFx0XHRieXRlczogMCxcblx0XHRcdG1ldGFmaWxlOiBcIihUb3RhbClcIixcblx0XHRcdG91dGZpbGU6IFwiLVwiLFxuXHRcdFx0cmVtYXJrOiBcImFkZGVkXCIsXG5cdFx0XHR0cmVlOiB1bmRlZmluZWQsXG5cdFx0fSxcblx0KTtcblx0dG90YWxSb3cucmVtYXJrID1cblx0XHR0b3RhbFJvdy5ieXRlcyA+IHRvdGFsUm93LmJhc2VCeXRlcyA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiO1xuXHRjb25zdCB0b3RhbFJvd3M6IEFycmF5PENvbXBhcmVSZXN1bHQ+ID0gc2l6ZUNvbXBhcmlzb25GaWx0ZXJzLmhhcyhcInRvdGFsXCIpXG5cdFx0PyBbdG90YWxSb3ddXG5cdFx0OiBbXTtcblxuXHRjb25zdCBpbmRpdmlkdWFsUm93cyA9IGRhdGEuZmlsdGVyKChkKSA9PlxuXHRcdHNob3VsZFNob3dCdW5kbGUoZCwgc2l6ZUNvbXBhcmlzb25GaWx0ZXJzLmhhcyhkLnJlbWFyaykpLFxuXHQpO1xuXHRjb25zdCByb3dzID0gWy4uLnRvdGFsUm93cywgLi4uaW5kaXZpZHVhbFJvd3NdXG5cdFx0Lm1hcCgoZCkgPT4ge1xuXHRcdFx0cmV0dXJuIGAke2QubWV0YWZpbGV9IHwgJHtkLm91dGZpbGV9IHwgJHtyZW5kZXJTaXplKGQpfSB8ICR7cmVuZGVyTm90ZShcblx0XHRcdFx0ZCxcblx0XHRcdFx0cmVkVGhyZXNob2xkLFxuXHRcdFx0KX1cXG5gO1xuXHRcdH0pXG5cdFx0LmpvaW4oXCJcIik7XG5cblx0cmV0dXJuIGBcbk1ldGEgRmlsZSB8IE91dCBGaWxlICB8IFNpemUgKHJhdykgfCBOb3RlXG4tLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS06fC0tLS0tLVxuJHtyb3dzfWA7XG59XG5cbmZ1bmN0aW9uIGhpZGRlblRhYmxlKFxuXHRkYXRhOiBBcnJheTxDb21wYXJlUmVzdWx0Pixcblx0aW5jbHVkZVNpemVDb21wYXJpc29uOiBTZXQ8U2l6ZUNvbXBhcmlzb25GaWx0ZXI+LFxuXHRyZWRUaHJlc2hvbGQ6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGNvbnN0IGhpZGRlbkJ1bmRsZXMgPSBkYXRhLmZpbHRlcihcblx0XHQoZCkgPT4gIWluY2x1ZGVTaXplQ29tcGFyaXNvbi5oYXMoZC5yZW1hcmspLFxuXHQpO1xuXHRjb25zdCByb3dzID0gaGlkZGVuQnVuZGxlc1xuXHRcdC5tYXAoKGQpID0+IHtcblx0XHRcdHJldHVybiBgJHtkLm1ldGFmaWxlfSB8ICR7ZC5vdXRmaWxlfSB8ICR7cmVuZGVyU2l6ZShkKX0gfCAke3JlbmRlck5vdGUoXG5cdFx0XHRcdGQsXG5cdFx0XHRcdHJlZFRocmVzaG9sZCxcblx0XHRcdCl9XFxuYDtcblx0XHR9KVxuXHRcdC5qb2luKFwiXCIpO1xuXHRpZiAoaGlkZGVuQnVuZGxlcy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRyZXR1cm4gYFxuPGRldGFpbHM+XG48c3VtbWFyeT4ke2hpZGRlbkJ1bmRsZXMubGVuZ3RofSBidW5kbGVzIGFyZSBoaWRkZW4gc2luY2Ugbm90IGxpc3RlZCBpbiBpbmNsdWRlX3NpemVfY29tcGFyaXNvbi48L3N1bW1hcnk+ICAgIFxuXG5NZXRhIEZpbGUgfCBPdXQgRmlsZSAgfCBTaXplIChyYXcpIHwgTm90ZSBcbi0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLTp8LS0tLS0tXG4ke3Jvd3N9XG5cbjwvZGV0YWlscz5cbmA7XG59XG5cbi8qKlxuICogRmluZCB0aGUgdG9wIE4gbGFyZ2VzdCBub2RlcyBpbiByb290IHRyZWUuXG4gKiBEaWcgbm9kZXMgdW50aWwgdGhlIGRlcHRoIG9mIDMuXG4gKi9cbmZ1bmN0aW9uIGZpbmRMYXJnZURpcmVjdG9yaWVzKHJvb3Q6IFRyZWVNYXBOb2RlLCBOOiBudW1iZXIpIHtcblx0Y29uc3Qgbm9kZXM6IFRyZWVNYXBOb2RlW10gPSBbXTtcblx0Y29uc3QgcXVldWU6IEFycmF5PHsgbm9kZTogVHJlZU1hcE5vZGU7IGRlcHRoOiBudW1iZXIgfT4gPSBbXG5cdFx0eyBub2RlOiByb290LCBkZXB0aDogMCB9LFxuXHRdO1xuXHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IHNoaWZ0ID0gcXVldWUuc2hpZnQoKTtcblx0XHRpZiAoIXNoaWZ0KSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgeyBub2RlLCBkZXB0aCB9ID0gc2hpZnQ7XG5cdFx0aWYgKGRlcHRoID09PSAzKSB7XG5cdFx0XHRub2Rlcy5wdXNoKG5vZGUpO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIG5vZGUuY2hpbGRyZW4pIHtcblx0XHRcdFx0cXVldWUucHVzaCh7IG5vZGU6IGl0ZW0sIGRlcHRoOiBkZXB0aCArIDEgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGxhcmdlTm9kZXMgPSBub2Rlcy5zb3J0KChhLCBiKSA9PiBiLnZhbHVlIC0gYS52YWx1ZSkuc2xpY2UoMCwgTik7XG5cdHJldHVybiB7XG5cdFx0bGFyZ2VOb2Rlcyxcblx0XHRoYXNPdGhlcjogbm9kZXMubGVuZ3RoID4gTixcblx0fTtcbn1cblxuZnVuY3Rpb24gZml4ZWRQZXJjZW50KG46IG51bWJlciwgZDogbnVtYmVyKTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KCgobiAvIGQpICogMTAwKS50b0ZpeGVkKDEpKTtcbn1cblxuZnVuY3Rpb24gZmlsZVNpemVUYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHRvcE5MYXJnZXN0UGF0aHM6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGlmIChkYXRhLmxlbmd0aCA9PT0gMCB8fCB0b3BOTGFyZ2VzdFBhdGhzIDw9IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRsZXQgb3V0cHV0ID0gXCJcIjtcblx0b3V0cHV0ICs9IFwiPGRldGFpbHM+XFxuXCI7XG5cdG91dHB1dCArPSBcIjxzdW1tYXJ5Pkxhcmdlc3QgcGF0aHM8L3N1bW1hcnk+XFxuXCI7XG5cdG91dHB1dCArPSBgVGhlc2UgdmlzdWFsaXphdGlvbiBzaG93cyB0b3AgJHt0b3BOTGFyZ2VzdFBhdGhzfSBsYXJnZXN0IHBhdGhzIGluIHRoZSBidW5kbGUuXFxuYDtcblx0Zm9yIChjb25zdCBkIG9mIGRhdGEpIHtcblx0XHRvdXRwdXQgKz0gXCJcXG5cIjtcblx0XHRvdXRwdXQgKz0gYCMjIE1ldGEgZmlsZTogJHtkLm1ldGFmaWxlfSwgT3V0IGZpbGU6ICR7ZC5vdXRmaWxlfVxcbmA7XG5cdFx0aWYgKCFkLnRyZWUpIHtcblx0XHRcdG91dHB1dCArPSBcIlx1RkUwRlx1RkUwRlx1RDgzRFx1REREMVx1RkUwRkRlbGV0ZWRcXG5cIjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRvdXRwdXQgKz0gXCJ8IFBhdGggfCBTaXplIHxcXG5cIjtcblx0XHRvdXRwdXQgKz0gXCJ8LS0tLS0tfC0tLS0tLS18XFxuXCI7XG5cdFx0Y29uc3QgdG90YWxTaXplID0gZC50cmVlLnZhbHVlO1xuXHRcdGNvbnN0IHsgbGFyZ2VOb2RlcywgaGFzT3RoZXIgfSA9IGZpbmRMYXJnZURpcmVjdG9yaWVzKFxuXHRcdFx0ZC50cmVlLFxuXHRcdFx0dG9wTkxhcmdlc3RQYXRocyxcblx0XHQpO1xuXHRcdGZvciAoY29uc3QgeyBwYXRoLCB2YWx1ZSB9IG9mIGxhcmdlTm9kZXMpIHtcblx0XHRcdGNvbnN0IHBlcmNlbnQgPSBmaXhlZFBlcmNlbnQodmFsdWUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgJHtwYXRofSB8ICR7cmVuZGVyQmFyKHBlcmNlbnQsIHZhbHVlKX0gfFxcbmA7XG5cdFx0fVxuXHRcdGlmIChoYXNPdGhlcikge1xuXHRcdFx0Y29uc3Qgb3RoZXJTaXplID0gdG90YWxTaXplIC0gbGFyZ2VOb2Rlc1swXS52YWx1ZTtcblx0XHRcdGNvbnN0IG90aGVyUGVyY2VudCA9IGZpeGVkUGVyY2VudChvdGhlclNpemUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgKG90aGVyKSB8ICR7cmVuZGVyQmFyKG90aGVyUGVyY2VudCwgb3RoZXJTaXplKX0gfFxcbmA7XG5cdFx0fVxuXHR9XG5cdG91dHB1dCArPSBcIjwvZGV0YWlscz5cXG5cIjtcblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQmFyKHBlcmNlbnQ6IG51bWJlciwgYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IGJhciA9IHByb2dyZXNzKHBlcmNlbnQgLyAxMDApO1xuXHRyZXR1cm4gYFxcJHt7XFxcXGNvbG9ye0dvbGRlbnJvZH17ICR7YmFyfSB9fX1cXCQgJHtwZXJjZW50LnRvRml4ZWQoXG5cdFx0MSxcblx0KX0lLCAke2ZpbGVzaXplKGJ5dGVzKX1gO1xufVxuXG4vLyBCbG9jayBwcm9ncmVzc2lvbiBpcyAxLzggPSAwLjEyNVxuY29uc3QgYmxvY2tzID0gW1wiXCIsIFwiXHUyNThGXCIsIFwiXHUyNThFXCIsIFwiXHUyNThEXCIsIFwiXHUyNThDXCIsIFwiXHUyNThCXCIsIFwiXHUyNThBXCIsIFwiXHUyNTg5XCIsIFwiXHUyNTg4XCJdO1xuY29uc3QgcHJvZ3Jlc3Npb24gPSAxIC8gKGJsb2Nrcy5sZW5ndGggLSAxKTtcblxuZnVuY3Rpb24gcHJvZ3Jlc3ModmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMjUsIHZtaW4gPSAwLjAsIHZtYXggPSAxLjApIHtcblx0Y29uc3QgdiA9IHZhbHVlICogbGVuZ3RoO1xuXHRjb25zdCBpbnRlZ2VyUGFydCA9IE1hdGguZmxvb3Iodik7XG5cdGNvbnN0IGZyYWN0aW9uYWxQYXJ0ID0gdiAtIGludGVnZXJQYXJ0O1xuXHRjb25zdCBpID0gTWF0aC5yb3VuZChcblx0XHQocHJvZ3Jlc3Npb24gKiBNYXRoLmZsb29yKGZyYWN0aW9uYWxQYXJ0IC8gcHJvZ3Jlc3Npb24pKSAvIHByb2dyZXNzaW9uLFxuXHQpO1xuXHRyZXR1cm4gXCJcdTI1ODhcIi5yZXBlYXQoaW50ZWdlclBhcnQpICsgYmxvY2tzW2ldO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTaXplKGQ6IENvbXBhcmVSZXN1bHQpOiBzdHJpbmcge1xuXHRyZXR1cm4gZmlsZXNpemUoZC5ieXRlcyk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlck5vdGUoZDogQ29tcGFyZVJlc3VsdCwgcmVkVGhyZXNob2xkOiBudW1iZXIpOiBzdHJpbmcge1xuXHRpZiAoZC5yZW1hcmsgPT09IFwiZGVsZXRlZFwiKSB7XG5cdFx0cmV0dXJuIFwiXHVEODNEXHVEREQxXHVGRTBGIERlbGV0ZWRcIjtcblx0fVxuXHRpZiAoZC5yZW1hcmsgPT09IFwiYWRkZWRcIikge1xuXHRcdHJldHVybiBcIlx1RDgzQ1x1REQ5NSBBZGRlZFwiO1xuXHR9XG5cdGlmIChkLnJlbWFyayA9PT0gXCJuby1jaGFuZ2VcIikge1xuXHRcdHJldHVybiBcIlx1MjcwNSAgTm8gY2hhbmdlXCI7XG5cdH1cblx0Y29uc3QgZGlmZiA9IGQuYnl0ZXMgLSBkLmJhc2VCeXRlcztcblx0Y29uc3QgcGVyY2VudENoYW5nZSA9IChkaWZmIC8gZC5iYXNlQnl0ZXMpICogMTAwO1xuXHRyZXR1cm4gYCR7cmVuZGVyU3RhdHVzSW5kaWNhdG9yKHBlcmNlbnRDaGFuZ2UsIHJlZFRocmVzaG9sZCl9JHtmaWxlc2l6ZShcblx0XHRkaWZmLFxuXHQpfSAoJHtzaWduKHBlcmNlbnRDaGFuZ2UpfSR7cGVyY2VudENoYW5nZS50b0ZpeGVkKDEpfSUpYDtcbn1cblxuZnVuY3Rpb24gc2lnbihudW06IG51bWJlcik6IHN0cmluZyB7XG5cdHJldHVybiBudW0gPCAwID8gXCJcIiA6IFwiK1wiO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTdGF0dXNJbmRpY2F0b3IoXG5cdHBlcmNlbnRDaGFuZ2U6IG51bWJlcixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRsZXQgcmVzOiBzdHJpbmc7XG5cdGlmIChwZXJjZW50Q2hhbmdlID4gMCAmJiBwZXJjZW50Q2hhbmdlIDwgcmVkVGhyZXNob2xkKSB7XG5cdFx0cmVzID0gXCJcdTI2QTBcdUZFMEZcIjtcblx0fSBlbHNlIGlmIChwZXJjZW50Q2hhbmdlID49IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyMDNDXHVGRTBGXCI7XG5cdH0gZWxzZSB7XG5cdFx0cmVzID0gXCJcdTI3MDUgXCI7XG5cdH1cblx0cmV0dXJuIGAke3Jlc30gJHtzaWduKHBlcmNlbnRDaGFuZ2UpfWA7XG59XG4iLCAiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dCwgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnQoaW5wdXQ6IElucHV0KTogdm9pZCB7XG5cdGNvbnN0IGFsbFBhZ2VTaXplcyA9IGdldEFsbFBhZ2VTaXplcyhpbnB1dCk7XG5cdGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnkpLCB7XG5cdFx0cmVjdXJzaXZlOiB0cnVlLFxuXHR9KTtcblx0Y29uc3QgcmVzdWx0SnNvblBhdGggPSBwYXRoLmpvaW4oXG5cdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcImJ1bmRsZV9hbmFseXNpcy5qc29uXCIsXG5cdCk7XG5cdGZzLndyaXRlRmlsZVN5bmMocmVzdWx0SnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGFsbFBhZ2VTaXplcywgbnVsbCwgMikpO1xuXHRjb25zb2xlLmxvZyhgV3JvdGUgJHtyZXN1bHRKc29uUGF0aH1gLCBhbGxQYWdlU2l6ZXMpO1xufVxuXG5pbnRlcmZhY2UgTWV0YWZpbGVQYXRoIHtcblx0cmVhZG9ubHkgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG5cdHJlYWRvbmx5IGFic29sdXRlUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE1ldGFmaWxlcyhpbnB1dDogSW5wdXQpOiBNZXRhZmlsZVBhdGhbXSB7XG5cdHJldHVybiBpbnB1dC5tZXRhZmlsZXMuZmxhdE1hcCgobWV0YWZpbGUpID0+IHtcblx0XHRyZXR1cm4gZ2xvYlN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG1ldGFmaWxlKSwge1xuXHRcdFx0bm9kaXI6IHRydWUsXG5cdFx0fSkubWFwKChtZXRhRmlsZVBhdGgpID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHJlbGF0aXZlUGF0aDogcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBtZXRhRmlsZVBhdGgpLFxuXHRcdFx0XHRhYnNvbHV0ZVBhdGg6IG1ldGFGaWxlUGF0aCxcblx0XHRcdH07XG5cdFx0fSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBnZXRBbGxQYWdlU2l6ZXMoaW5wdXQ6IElucHV0KTogUmVwb3J0IHtcblx0Y29uc3QgYWNjOiBSZXBvcnQgPSB7fTtcblxuXHRjb25zdCBtZXRhZmlsZXMgPSBmaW5kTWV0YWZpbGVzKGlucHV0KTtcblx0Y29uc3QgcmVzdWx0ID0gbWV0YWZpbGVzLnJlZHVjZSgoYWNjLCB7IHJlbGF0aXZlUGF0aCwgYWJzb2x1dGVQYXRoIH0pID0+IHtcblx0XHR0cnkge1xuXHRcdFx0ZnMuYWNjZXNzU3luYyhhYnNvbHV0ZVBhdGgsIGZzLmNvbnN0YW50cy5SX09LKTtcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGBObyBtZXRhIGZpbGUgZm91bmQgYXQgXCIke2Fic29sdXRlUGF0aH1cIiAtIGEgcGF0aCB0byBtZXRhIGZpbGUgbWF5IGJlIHdyb25nLCBvciBlc2J1aWxkIGlzIG5vdCBleGVjdXRlZC5gLFxuXHRcdFx0KTtcblx0XHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0XHR9XG5cblx0XHRjb25zdCBtZXRhRmlsZUpzb24gPSBsb2FkTWV0YUZpbGUoYWJzb2x1dGVQYXRoKTtcblx0XHRPYmplY3QuZW50cmllcyhtZXRhRmlsZUpzb24ub3V0cHV0cykucmVkdWNlKChhY2MsIG91dHB1dCkgPT4ge1xuXHRcdFx0Y29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gPSBvdXRwdXQ7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdCFpbnB1dC5pbmNsdWRlRXh0ZW5zaW9ucy5zb21lKChleHQpID0+XG5cdFx0XHRcdFx0b3V0ZmlsZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGV4dCksXG5cdFx0XHRcdClcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gYWNjO1xuXHRcdFx0fVxuXHRcdFx0YWNjW2Ake3JlbGF0aXZlUGF0aH0gLT4gJHtvdXRmaWxlfWBdID0ge1xuXHRcdFx0XHRieXRlczogYnVpbGRNZXRhLmJ5dGVzLFxuXHRcdFx0XHRtZXRhZmlsZTogcmVsYXRpdmVQYXRoLFxuXHRcdFx0XHRvdXRmaWxlLFxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBhY2M7XG5cdFx0fSwgYWNjKTtcblx0XHRyZXR1cm4gYWNjO1xuXHR9LCBhY2MpO1xuXHRjb25zb2xlLmxvZyhcIkZvdW5kIG1ldGFmaWxlc1wiLCBtZXRhZmlsZXMpO1xuXHRjb25zb2xlLmxvZyhcIkZvdW5kIHJlc3VsdFwiLCByZXN1bHQpO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuXG5pbXBvcnQgdHlwZSB7IE1ldGFmaWxlIH0gZnJvbSBcImVzYnVpbGRcIjtcbmltcG9ydCB0eXBlIHsgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZnVuY3Rpb24gbG9hZEpzb25GaWxlKHBhdGg6IHN0cmluZykge1xuXHRyZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aCkudG9TdHJpbmcoXCJ1dGYtOFwiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkTWV0YUZpbGUocGF0aDogc3RyaW5nKTogTWV0YWZpbGUge1xuXHRyZXR1cm4gbG9hZEpzb25GaWxlKHBhdGgpIGFzIE1ldGFmaWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFuYWx5c2lzSnNvbihwYXRoOiBzdHJpbmcpOiBSZXBvcnQge1xuXHRyZXR1cm4gbG9hZEpzb25GaWxlKHBhdGgpIGFzIFJlcG9ydDtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvdG9vbGtpdC9ibG9iLzgxYTczYWJhOGJlZGQ1MzJmNmVkZGNjNDFlZDNhMGZhZDhiMWNmZWIvcGFja2FnZXMvY29yZS9zcmMvY29yZS50cyNMMTI2XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2luZ2xlSW5wdXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgdmFsID0gcHJvY2Vzcy5lbnZbYElOUFVUXyR7bmFtZS50b1VwcGVyQ2FzZSgpfWBdIHx8IFwiXCI7XG5cdHJldHVybiB2YWwudHJpbSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm9vbGVhbklucHV0KFxuXHRuYW1lOiBzdHJpbmcsXG5cdGZhbGxiYWNrOiBcInRydWVcIiB8IFwiZmFsc2VcIixcbik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKGdldFNpbmdsZUlucHV0KG5hbWUpIHx8IGZhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE51bWJlcklucHV0KG5hbWU6IHN0cmluZywgZmFsbGJhY2s6IG51bWJlcik6IG51bWJlciB7XG5cdGNvbnN0IHJhdyA9IGdldFNpbmdsZUlucHV0KG5hbWUpO1xuXHRyZXR1cm4gcmF3ID09PSBcIlwiID8gZmFsbGJhY2sgOiBOdW1iZXIucGFyc2VJbnQocmF3LCAxMCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAibXNHQUFBLE9BQU9BLE9BQWEsZUFDcEIsT0FBUyxpQkFBQUMsT0FBcUIsV0NEOUIsVUFBWUMsTUFBYSxlQUN6QixPQUFPQyxPQUFRLFVBQ2YsT0FBT0MsT0FBVSxZQ0ZqQixPQUFPQyxPQUFRLFVBQ2YsT0FBT0MsT0FBVSxZQUNqQixPQUFPQyxPQUFhLGVBRXBCLFVBQVlDLE9BQWE7OzRzNURDSnpCLE9BQU9DLE9BQVEsVUFLZixTQUFTQyxHQUFhQyxFQUFjLENBQ25DLE9BQU8sS0FBSyxNQUFNRixHQUFHLGFBQWFFLENBQUksRUFBRSxTQUFTLE9BQU8sQ0FBQyxDQUMxRCxDQUVPLFNBQVNDLEdBQWFELEVBQXdCLENBQ3BELE9BQU9ELEdBQWFDLENBQUksQ0FDekIsQ0FFTyxTQUFTRSxHQUFpQkYsRUFBc0IsQ0FDdEQsT0FBT0QsR0FBYUMsQ0FBSSxDQUN6QixDQUdPLFNBQVNHLEVBQWVDLEVBQXNCLENBRXBELE9BRFksUUFBUSxJQUFJLFNB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RUFDbkUsWUFBYUYsR0FBZ0IsZUFBZ0IsTUFBTSxFQUNuRCxpQkFBa0JFLEdBQWUsc0JBQXVCLEVBQUUsRUFDMUQsbUJBQ0NOLEVBQWUsb0JBQW9CLEdBQUssaUJBQ3ZDLE1BQU0sR0FBRyxFQUNYLHNCQUF1QkUsRUFDdkIsS0FBQUQsRUFDQSxrQkFBbUJELEVBQWUsbUJBQW1CLEdBQUssWUFDMUQsVUFBV0QsRUFBYSxNQUFNLEdBQUcsQ0FDbEMsQ0FDRCxDQUVPLFNBQVNRLEdBQUlDLEVBQWVWLEdBQVMsRUFBUyxDQUNwRFcsR0FBT0QsQ0FBSyxFQUNaRSxHQUFRRixDQUFLLENBQ2QsQ0FFSSxZQUFZLE1BQVFHLEdBQWMsUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQ3RESixHQUFJIiwKICAibmFtZXMiOiBbImNvbnNvbGUiLCAicGF0aFRvRmlsZVVSTCIsICJjb25zb2xlIiwgImZzIiwgInBhdGgiLCAiZnMiLCAicGF0aCIsICJwcm9jZXNzIiwgImNvbnNvbGUiLCAiZnMiLCAibG9hZEpzb25GaWxlIiwgInBhdGgiLCAibG9hZE1ldGFGaWxlIiwgImxvYWRBbmFseXNpc0pzb24iLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJnZXRCb29sZWFuSW5wdXQiLCAiZmFsbGJhY2siLCAiZ2V0TnVtYmVySW5wdXQiLCAicmF3IiwgInJlcG9ydCIsICJpbnB1dCIsICJhbGxQYWdlU2l6ZXMiLCAiZ2V0QWxsUGFnZVNpemVzIiwgImZzIiwgInBhdGgiLCAicHJvY2VzcyIsICJyZXN1bHRKc29uUGF0aCIsICJmaW5kTWV0YWZpbGVzIiwgIm1ldGFmaWxlIiwgImdsb2JTeW5jIiwgIm1ldGFGaWxlUGF0aCIsICJhY2MiLCAibWV0YWZpbGVzIiwgInJlc3VsdCIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgIm1ldGFGaWxlSnNvbiIsICJsb2FkTWV0YUZpbGUiLCAib3V0cHV0IiwgIm91dGZpbGUiLCAiYnVpbGRNZXRhIiwgImV4dCIsICJjb21wYXJlIiwgImlucHV0IiwgImhhc0FueUNoYW5nZSIsICJvdXRwdXQiLCAiY3VycmVudEFuYWx5c2lzUGF0aCIsICJwYXRoIiwgImN1cnJlbnQiLCAibG9hZEFuYWx5c2lzSnNvbiIsICJiYXNlIiwgImxvYWRCYXNlQW5hbHlzaXNKc29uIiwgImZpbGVUcmVlIiwgImJ1aWxkRmlsZVRyZWUiLCAiY29tcGFyaXNvbiIsICJvdXRmaWxlIiwgImN1cnJlbnRTdGF0cyIsICJiYXNlU3RhdHMiLCAidHJlZSIsICJ0cmVlS2V5IiwgImRpZmYiLCAibWFya2Rvd25UYWJsZSIsICJoaWRkZW5UYWJsZSIsICJmaWxlU2l6ZVRhYmxlIiwgImRldGFpbCIsICJ3cml0ZUNvbW1lbnQiLCAibWV0YWZpbGUiLCAiZnMiLCAiYmFzZUFuYWx5c2lzUGF0aCIsICJyZXBvcnQiLCAiYnVpbGRSb290IiwgInJvb3QiLCAiZmlsZVBhdGgiLCAiYnl0ZXNJbk91dHB1dCIsICJkaXJlY3RvcmllcyIsICJidWlsZE5vZGUiLCAibm9kZSIsICJwYXRocyIsICJ2YWx1ZSIsICJmaXJzdCIsICJjaGlsZCIsICJ0cmVlcyIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgImZpbmRNZXRhZmlsZXMiLCAibWV0YWZpbGVKc29uIiwgImxvYWRNZXRhRmlsZSIsICJidWlsZE1ldGEiLCAic3BhY2VyIiwgImZpbGVzaXplIiwgImJ5dGVzIiwgInNpZ24iLCAibiIsICJzaG91bGRTaG93QnVuZGxlIiwgImQiLCAic2hvd05vQ2hhbmdlIiwgImRhdGEiLCAic2l6ZUNvbXBhcmlzb25GaWx0ZXJzIiwgInJlZFRocmVzaG9sZCIsICJ0b3RhbFJvdyIsICJhY2MiLCAiYmFzZUJ5dGVzIiwgInJlc3QiLCAidG90YWxSb3dzIiwgImluZGl2aWR1YWxSb3dzIiwgInJlbmRlclNpemUiLCAicmVuZGVyTm90ZSIsICJpbmNsdWRlU2l6ZUNvbXBhcmlzb24iLCAiaGlkZGVuQnVuZGxlcyIsICJyb3dzIiwgImZpbmRMYXJnZURpcmVjdG9yaWVzIiwgIk4iLCAibm9kZXMiLCAicXVldWUiLCAic2hpZnQiLCAiZGVwdGgiLCAiaXRlbSIsICJhIiwgImIiLCAiZml4ZWRQZXJjZW50IiwgInRvcE5MYXJnZXN0UGF0aHMiLCAidG90YWxTaXplIiwgImxhcmdlTm9kZXMiLCAiaGFzT3RoZXIiLCAicGVyY2VudCIsICJyZW5kZXJCYXIiLCAib3RoZXJTaXplIiwgIm90aGVyUGVyY2VudCIsICJwcm9ncmVzcyIsICJibG9ja3MiLCAicHJvZ3Jlc3Npb24iLCAibGVuZ3RoIiwgInZtaW4iLCAidm1heCIsICJ2IiwgImludGVnZXJQYXJ0IiwgImZyYWN0aW9uYWxQYXJ0IiwgImkiLCAicGVyY2VudENoYW5nZSIsICJyZW5kZXJTdGF0dXNJbmRpY2F0b3IiLCAibnVtIiwgInJlcyIsICJnZXRJbnB1dCIsICJyYXdNZXRhZmlsZXMiLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJmaWx0ZXJzIiwgInMiLCAiZ2V0Qm9vbGVhbklucHV0IiwgImNvbnNvbGUiLCAiZ2V0TnVtYmVySW5wdXQiLCAicnVuIiwgImlucHV0IiwgInJlcG9ydCIsICJjb21wYXJlIiwgInBhdGhUb0ZpbGVVUkwiXQp9Cg== +`,e}function Fs(n,t){return`\${{\\color{Goldenrod}{ ${Fn(n/100)} }}}$ ${n.toFixed(1)}%, ${Ae(t)}`}var _s=["","\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588"],Te=1/(_s.length-1);function Fn(n,t=25,e=0,s=1){let i=n*t,r=Math.floor(i),o=i-r,h=Math.round(Te*Math.floor(o/Te)/Te);return"\u2588".repeat(r)+_s[h]}function Ds(n){return Ae(n.bytes)}function Ns(n,t){if(n.remark==="deleted")return"\u{1F5D1}\uFE0F Deleted";if(n.remark==="added")return"\u{1F195} Added";if(n.remark==="no-change")return"\u2705 No change";let e=n.bytes-n.baseBytes,s=e/n.baseBytes*100;return`${Mn(s,t)}${Ae(e)} (${zs(s)}${s.toFixed(1)}%)`}function zs(n){return n<0?"":"+"}function Mn(n,t){let e;return n>0&&n=t?e="\u203C\uFE0F":e="\u2705 ",`${e} ${zs(n)}`}function _n(){let n=K("metafiles");if(!n)throw new Error("metafiles is not specified");let t=K("name");if(!t)throw new Error("name is not specified");let e=new Set((K("include_size_comparison")||"added, deleted, increased, decreased, no-change").split(",").map(i=>{switch(i.trim()){case"added":case"deleted":case"increased":case"decreased":case"total":case"no-change":return i.trim();default:throw new Error(`Unknown size comparison filter: ${i}`)}}));return K("show_no_change")!==""&&(Ee("show_no_change","true")?(e.add("no-change"),Ls.log("`show_no_change: true` is deprecated. Instead, remove `no-change` from the `include_size_comparison` list.")):(e.delete("no-change"),Ls.log("`show_no_change: false` is deprecated. Instead, add `no-change` to the `include_size_comparison` list."))),{percentExtraAttention:ve("percent_extra_attention",20),showDetails:Ee("show_details","true"),topNLargestPaths:ve("top_n_largest_paths",20),includeExtensions:(K("include_extensions")||".js,.mjs,.cjs").split(","),includeSizeComparison:e,name:t,analyzerDirectory:K("analyze_directory")||".analyzer",metafiles:n.split(",")}}function Dn(n=_n()){Rs(n),Ms(n)}import.meta.url===On(process.argv[1]).href&&Dn();export{Dn as run}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy9jb21wYXJlLnRzIiwgIi4uL3NyYy9yZXBvcnQudHMiLCAiLi4vc3JjL3V0aWxzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgY29uc29sZSBmcm9tIFwibm9kZTpjb25zb2xlXCI7XG5pbXBvcnQgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSBcIm5vZGU6dXJsXCI7XG5pbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBcIi4vY29tcGFyZVwiO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IElucHV0LCBTaXplQ29tcGFyaXNvbkZpbHRlciB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRCb29sZWFuSW5wdXQsIGdldE51bWJlcklucHV0LCBnZXRTaW5nbGVJbnB1dCB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmZ1bmN0aW9uIGdldElucHV0KCk6IElucHV0IHtcblx0Y29uc3QgcmF3TWV0YWZpbGVzID0gZ2V0U2luZ2xlSW5wdXQoXCJtZXRhZmlsZXNcIik7XG5cdGlmICghcmF3TWV0YWZpbGVzKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwibWV0YWZpbGVzIGlzIG5vdCBzcGVjaWZpZWRcIik7XG5cdH1cblx0Y29uc3QgbmFtZSA9IGdldFNpbmdsZUlucHV0KFwibmFtZVwiKTtcblx0aWYgKCFuYW1lKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwibmFtZSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuXHR9XG5cdGNvbnN0IGZpbHRlcnMgPSBuZXcgU2V0PFNpemVDb21wYXJpc29uRmlsdGVyPihcblx0XHQoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcImluY2x1ZGVfc2l6ZV9jb21wYXJpc29uXCIpIHx8XG5cdFx0XHRcImFkZGVkLCBkZWxldGVkLCBpbmNyZWFzZWQsIGRlY3JlYXNlZCwgbm8tY2hhbmdlXCJcblx0XHQpXG5cdFx0XHQuc3BsaXQoXCIsXCIpXG5cdFx0XHQubWFwKChzKSA9PiB7XG5cdFx0XHRcdHN3aXRjaCAocy50cmltKCkpIHtcblx0XHRcdFx0XHRjYXNlIFwiYWRkZWRcIjpcblx0XHRcdFx0XHRjYXNlIFwiZGVsZXRlZFwiOlxuXHRcdFx0XHRcdGNhc2UgXCJpbmNyZWFzZWRcIjpcblx0XHRcdFx0XHRjYXNlIFwiZGVjcmVhc2VkXCI6XG5cdFx0XHRcdFx0Y2FzZSBcInRvdGFsXCI6XG5cdFx0XHRcdFx0Y2FzZSBcIm5vLWNoYW5nZVwiOlxuXHRcdFx0XHRcdFx0cmV0dXJuIHMudHJpbSgpIGFzIFNpemVDb21wYXJpc29uRmlsdGVyO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2l6ZSBjb21wYXJpc29uIGZpbHRlcjogJHtzfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0KTtcblx0Y29uc3QgcmF3U2hvd05vQ2hhbmdlID0gZ2V0U2luZ2xlSW5wdXQoXCJzaG93X25vX2NoYW5nZVwiKTtcblx0aWYgKHJhd1Nob3dOb0NoYW5nZSAhPT0gXCJcIikge1xuXHRcdGlmIChnZXRCb29sZWFuSW5wdXQoXCJzaG93X25vX2NoYW5nZVwiLCBcInRydWVcIikpIHtcblx0XHRcdGZpbHRlcnMuYWRkKFwibm8tY2hhbmdlXCIpO1xuXHRcdFx0Y29uc29sZS5sb2coXG5cdFx0XHRcdFwiYHNob3dfbm9fY2hhbmdlOiB0cnVlYCBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkLCByZW1vdmUgYG5vLWNoYW5nZWAgZnJvbSB0aGUgYGluY2x1ZGVfc2l6ZV9jb21wYXJpc29uYCBsaXN0LlwiLFxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZmlsdGVycy5kZWxldGUoXCJuby1jaGFuZ2VcIik7XG5cdFx0XHRjb25zb2xlLmxvZyhcblx0XHRcdFx0XCJgc2hvd19ub19jaGFuZ2U6IGZhbHNlYCBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkLCBhZGQgYG5vLWNoYW5nZWAgdG8gdGhlIGBpbmNsdWRlX3NpemVfY29tcGFyaXNvbmAgbGlzdC5cIixcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB7XG5cdFx0cGVyY2VudEV4dHJhQXR0ZW50aW9uOiBnZXROdW1iZXJJbnB1dChcInBlcmNlbnRfZXh0cmFfYXR0ZW50aW9uXCIsIDIwKSxcblx0XHRzaG93RGV0YWlsczogZ2V0Qm9vbGVhbklucHV0KFwic2hvd19kZXRhaWxzXCIsIFwidHJ1ZVwiKSxcblx0XHR0b3BOTGFyZ2VzdFBhdGhzOiBnZXROdW1iZXJJbnB1dChcInRvcF9uX2xhcmdlc3RfcGF0aHNcIiwgMjApLFxuXHRcdGluY2x1ZGVFeHRlbnNpb25zOiAoXG5cdFx0XHRnZXRTaW5nbGVJbnB1dChcImluY2x1ZGVfZXh0ZW5zaW9uc1wiKSB8fCBcIi5qcywubWpzLC5janNcIlxuXHRcdCkuc3BsaXQoXCIsXCIpLFxuXHRcdGluY2x1ZGVTaXplQ29tcGFyaXNvbjogZmlsdGVycyxcblx0XHRuYW1lLFxuXHRcdGFuYWx5emVyRGlyZWN0b3J5OiBnZXRTaW5nbGVJbnB1dChcImFuYWx5emVfZGlyZWN0b3J5XCIpIHx8IFwiLmFuYWx5emVyXCIsXG5cdFx0bWV0YWZpbGVzOiByYXdNZXRhZmlsZXMuc3BsaXQoXCIsXCIpLFxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuKGlucHV0OiBJbnB1dCA9IGdldElucHV0KCkpOiB2b2lkIHtcblx0cmVwb3J0KGlucHV0KTtcblx0Y29tcGFyZShpbnB1dCk7XG59XG5cbmlmIChpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwocHJvY2Vzcy5hcmd2WzFdKS5ocmVmKSB7XG5cdHJ1bigpO1xufVxuIiwgImltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBmaW5kTWV0YWZpbGVzIH0gZnJvbSBcIi4vcmVwb3J0XCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbXBhcmVSZXN1bHQsXG5cdElucHV0LFxuXHRSZXBvcnQsXG5cdFNpemVDb21wYXJpc29uRmlsdGVyLFxuXHRUcmVlTWFwTm9kZSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRBbmFseXNpc0pzb24sIGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlKGlucHV0OiBJbnB1dCk6IHZvaWQge1xuXHRsZXQgaGFzQW55Q2hhbmdlID0gZmFsc2U7XG5cdGxldCBvdXRwdXQgPSBgIyMgXHVEODNEXHVEQ0U2IGVzYnVpbGQgQnVuZGxlIEFuYWx5c2lzIGZvciAke2lucHV0Lm5hbWV9XG5cblRoaXMgYW5hbHlzaXMgd2FzIGdlbmVyYXRlZCBieSBbZXNidWlsZC1idW5kbGUtYW5hbHl6ZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9leG9lZ28vZXNidWlsZC1idW5kbGUtYW5hbHl6ZXIpLiBcdUQ4M0VcdUREMTZcbmA7XG5cblx0Y29uc3QgY3VycmVudEFuYWx5c2lzUGF0aCA9IHBhdGguam9pbihcblx0XHRwcm9jZXNzLmN3ZCgpLFxuXHRcdGlucHV0LmFuYWx5emVyRGlyZWN0b3J5LFxuXHRcdFwiYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0KTtcblx0Y29uc3QgY3VycmVudCA9IGxvYWRBbmFseXNpc0pzb24oY3VycmVudEFuYWx5c2lzUGF0aCk7XG5cdGNvbnNvbGUubG9nKGBDdXJyZW50IGFuYWx5c2lzIGZvdW5kIGluICR7Y3VycmVudEFuYWx5c2lzUGF0aH1gLCBjdXJyZW50KTtcblx0Y29uc3QgYmFzZSA9IGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0KTtcblxuXHRjb25zdCBmaWxlVHJlZSA9IGJ1aWxkRmlsZVRyZWUoaW5wdXQpO1xuXG5cdGNvbnN0IGFsbE91dEZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHQuLi5uZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhjdXJyZW50KSwgLi4uT2JqZWN0LmtleXMoYmFzZSldKSxcblx0XS5zb3J0KCk7XG5cblx0Y29uc3QgY29tcGFyaXNvbjogQXJyYXk8Q29tcGFyZVJlc3VsdD4gPSBhbGxPdXRGaWxlcy5tYXAoKG91dGZpbGUpID0+IHtcblx0XHRjb25zdCBjdXJyZW50U3RhdHMgPSBjdXJyZW50W291dGZpbGVdO1xuXHRcdGNvbnN0IGJhc2VTdGF0cyA9IGJhc2Vbb3V0ZmlsZV07XG5cdFx0Y29uc29sZS5sb2coXCJDb21wYXJpbmdcIiwgb3V0ZmlsZSwgY3VycmVudFN0YXRzLCBiYXNlU3RhdHMpO1xuXG5cdFx0aWYgKCFjdXJyZW50U3RhdHMpIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiRGVsZXRlZCBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdC4uLmJhc2VTdGF0cyxcblx0XHRcdFx0YmFzZUJ5dGVzOiAtMSxcblx0XHRcdFx0cmVtYXJrOiBcImRlbGV0ZWRcIixcblx0XHRcdFx0dHJlZTogdW5kZWZpbmVkLFxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCB0cmVlID0gZmlsZVRyZWUuZ2V0KFxuXHRcdFx0dHJlZUtleShjdXJyZW50U3RhdHMubWV0YWZpbGUsIGN1cnJlbnRTdGF0cy5vdXRmaWxlKSxcblx0XHQpO1xuXHRcdGlmICghYmFzZVN0YXRzKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIk5ldyBmaWxlXCIsIG91dGZpbGUpO1xuXHRcdFx0aGFzQW55Q2hhbmdlID0gdHJ1ZTtcblx0XHRcdHJldHVybiB7IC4uLmN1cnJlbnRTdGF0cywgYmFzZUJ5dGVzOiAtMSwgcmVtYXJrOiBcImFkZGVkXCIsIHRyZWUgfTtcblx0XHR9XG5cblx0XHRjb25zdCBkaWZmID0gY3VycmVudFN0YXRzLmJ5dGVzIC0gYmFzZVN0YXRzLmJ5dGVzO1xuXHRcdGlmIChkaWZmICE9PSAwKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIkNoYW5nZWQgZmlsZVwiLCBvdXRmaWxlLCBkaWZmKTtcblx0XHRcdGhhc0FueUNoYW5nZSA9IHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnNvbGUubG9nKFwiTm8gY2hhbmdlXCIsIG91dGZpbGUpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uY3VycmVudFN0YXRzLFxuXHRcdFx0YmFzZUJ5dGVzOiBiYXNlU3RhdHMuYnl0ZXMsXG5cdFx0XHR0cmVlLFxuXHRcdFx0cmVtYXJrOlxuXHRcdFx0XHRkaWZmID09PSAwID8gXCJuby1jaGFuZ2VcIiA6IE1hdGguc2lnbihkaWZmKSA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiLFxuXHRcdH07XG5cdH0pO1xuXHRjb25zb2xlLmxvZyhcIkNvbXBhcmlzb24gZG9uZS5cIiwgY29tcGFyaXNvbik7XG5cblx0aWYgKGhhc0FueUNoYW5nZSkge1xuXHRcdG91dHB1dCArPSBtYXJrZG93blRhYmxlKFxuXHRcdFx0Y29tcGFyaXNvbixcblx0XHRcdGlucHV0LmluY2x1ZGVTaXplQ29tcGFyaXNvbixcblx0XHRcdGlucHV0LnBlcmNlbnRFeHRyYUF0dGVudGlvbixcblx0XHQpO1xuXHRcdG91dHB1dCArPSBoaWRkZW5UYWJsZShcblx0XHRcdGNvbXBhcmlzb24sXG5cdFx0XHRpbnB1dC5pbmNsdWRlU2l6ZUNvbXBhcmlzb24sXG5cdFx0XHRpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb24sXG5cdFx0KTtcblx0XHRvdXRwdXQgKz0gZmlsZVNpemVUYWJsZShjb21wYXJpc29uLCBpbnB1dC50b3BOTGFyZ2VzdFBhdGhzKTtcblx0XHRvdXRwdXQgKz0gZGV0YWlsKGlucHV0KTtcblx0fSBlbHNlIHtcblx0XHRvdXRwdXQgKz0gXCJUaGlzIFBSIGludHJvZHVjZWQgbm8gY2hhbmdlcyB0byB0aGUgZXNidWlsZCBidW5kbGUhIFx1RDgzRFx1REU0Q1wiO1xuXHR9XG5cblx0Ly8gd2UgYWRkIHRoaXMgdGFnIHNvIHRoYXQgb3VyIGFjdGlvbiBjYW4gYmUgYWJsZSB0byBlYXNpbHkgYW5kXG5cdC8vIGNvbnNpc3RlbnRseSBmaW5kIHRoZSByaWdodCBjb21tZW50IHRvIGVkaXQgYXMgbW9yZSBjb21taXRzIGFyZSBwdXNoZWQuXG5cdC8vIFRhZyBpcyBhZGRlZCB0byB0aGUgdG9wIG9mIHRoZSBjb21tZW50IHRvIGF2b2lkIHRoZSB0cnVuY2F0aW9uLlxuXHRvdXRwdXQgPSBgPCEtLSBfX0VTQlVJTERfQlVORExFXyR7aW5wdXQubmFtZX0gLS0+XG4ke291dHB1dH1gO1xuXG5cdHdyaXRlQ29tbWVudChpbnB1dCwgb3V0cHV0KTtcbn1cblxuZnVuY3Rpb24gdHJlZUtleShtZXRhZmlsZTogc3RyaW5nLCBvdXRmaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRyZXR1cm4gYCR7bWV0YWZpbGV9IC0+ICR7b3V0ZmlsZX1gO1xufVxuXG4vLyBXcml0ZSB0aGUgb3V0cHV0IHRvIGEgZmlsZSB3aGljaCBpcyBsYXRlciByZWFkIGluXG4vLyBhcyBjb21tZW50IGNvbnRlbnRzIGJ5IHRoZSBhY3Rpb25zIHdvcmtmbG93LlxuZnVuY3Rpb24gd3JpdGVDb21tZW50KGlucHV0OiBJbnB1dCwgb3V0cHV0OiBzdHJpbmcpOiB2b2lkIHtcblx0Y29uc29sZS5sb2coXCJXcml0aW5nIGNvbW1lbnQgdG8gZmlsZS5cIiwgb3V0cHV0KTtcblx0ZnMubWtkaXJTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSksIHtcblx0XHRyZWN1cnNpdmU6IHRydWUsXG5cdH0pO1xuXHRmcy53cml0ZUZpbGVTeW5jKFxuXHRcdHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYnVuZGxlX2FuYWx5c2lzX2NvbW1lbnQudHh0XCIsXG5cdFx0KSxcblx0XHRvdXRwdXQudHJpbSgpLFxuXHQpO1xufVxuXG5mdW5jdGlvbiBkZXRhaWwoaW5wdXQ6IElucHV0KTogc3RyaW5nIHtcblx0aWYgKCFpbnB1dC5zaG93RGV0YWlscykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cdHJldHVybiBgXFxuPGRldGFpbHM+XG48c3VtbWFyeT5EZXRhaWxzPC9zdW1tYXJ5PlxuPHA+TmV4dCB0byB0aGUgc2l6ZSBpcyBob3cgbXVjaCB0aGUgc2l6ZSBoYXMgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBjb21wYXJlZCB3aXRoIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGlzIFBSLjwvcD5cbjx1bD5cbjxsaT5cdTIwM0NcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGJ5ICR7aW5wdXQucGVyY2VudEV4dHJhQXR0ZW50aW9ufSUgb3IgbW9yZS4gU3BlY2lhbCBhdHRlbnRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIHRoaXMuPC9saT5cbjxsaT5cdTI2QTBcdUZFMEY6IFNpemUgaW5jcmVhc2VkIGluIGFjY2VwdGFibGUgcmFuZ2UgKGxvd2VyIHRoYW4gJHtpbnB1dC5wZXJjZW50RXh0cmFBdHRlbnRpb259JSkuPC9saT5cbjxsaT5cdTI3MDU6IE5vIGNoYW5nZSBvciBldmVuIGRvd25zaXplZC48L2xpPlxuPGxpPlx1RDgzRFx1REREMVx1RkUwRjogVGhlIG91dCBmaWxlIGlzIGRlbGV0ZWQ6IG5vdCBmb3VuZCBpbiBiYXNlIGJyYW5jaC48L2xpPlxuPGxpPlx1RDgzQ1x1REQ5NTogVGhlIG91dCBmaWxlIGlzIG5ld2x5IGZvdW5kOiB3aWxsIGJlIGFkZGVkIHRvIGJhc2UgYnJhbmNoLjwvbGk+XG48L3VsPlxuPC9kZXRhaWxzPlxcbmA7XG59XG5cbmZ1bmN0aW9uIGxvYWRCYXNlQW5hbHlzaXNKc29uKGlucHV0OiBJbnB1dCk6IFJlcG9ydCB7XG5cdHRyeSB7XG5cdFx0Y29uc3QgYmFzZUFuYWx5c2lzUGF0aCA9IHBhdGguam9pbihcblx0XHRcdHByb2Nlc3MuY3dkKCksXG5cdFx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcdFwiYmFzZS9idW5kbGUvYnVuZGxlX2FuYWx5c2lzLmpzb25cIixcblx0XHQpO1xuXHRcdGNvbnN0IHJlcG9ydCA9IGxvYWRBbmFseXNpc0pzb24oYmFzZUFuYWx5c2lzUGF0aCk7XG5cdFx0Y29uc29sZS5pbmZvKGBCYXNlIGFuYWx5c2lzIGZvdW5kIGluICR7YmFzZUFuYWx5c2lzUGF0aH1gLCByZXBvcnQpO1xuXHRcdHJldHVybiByZXBvcnQ7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcIk5vIGJhc2UgYW5hbHlzaXMgZm91bmQuIEZpcnN0IHNldHVwIG9yIGFsbCBhcnRpZmFjdHMgYXJlIGV4cGlyZWQuXCIsXG5cdFx0KTtcblx0XHRyZXR1cm4ge307XG5cdH1cbn1cblxuZnVuY3Rpb24gYnVpbGRGaWxlVHJlZShpbnB1dDogSW5wdXQpIHtcblx0ZnVuY3Rpb24gYnVpbGRSb290KFxuXHRcdGlucHV0OiBSZWNvcmQ8c3RyaW5nLCB7IGJ5dGVzSW5PdXRwdXQ6IG51bWJlciB9Pixcblx0KTogVHJlZU1hcE5vZGUge1xuXHRcdGNvbnN0IHJvb3Q6IFRyZWVNYXBOb2RlID0geyBuYW1lOiBcIlwiLCBwYXRoOiBcIlwiLCB2YWx1ZTogMCwgY2hpbGRyZW46IFtdIH07XG5cdFx0Zm9yIChjb25zdCBbZmlsZVBhdGgsIHsgYnl0ZXNJbk91dHB1dCB9XSBvZiBPYmplY3QuZW50cmllcyhpbnB1dCkpIHtcblx0XHRcdGNvbnN0IGRpcmVjdG9yaWVzID0gZmlsZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdFx0YnVpbGROb2RlKHJvb3QsIGRpcmVjdG9yaWVzLCBieXRlc0luT3V0cHV0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHJvb3Q7XG5cdH1cblxuXHRmdW5jdGlvbiBidWlsZE5vZGUoXG5cdFx0bm9kZTogVHJlZU1hcE5vZGUsXG5cdFx0cGF0aHM6IEFycmF5PHN0cmluZz4sXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgZmlyc3QgPSBwYXRocy5zaGlmdCgpO1xuXHRcdGlmIChmaXJzdCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHQvLyBsZWFmIG5vZGUgKGZpbGUpXG5cdFx0XHRub2RlLnZhbHVlICs9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRsZXQgY2hpbGQgPSBub2RlLmNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiBjaGlsZC5uYW1lID09PSBmaXJzdCk7XG5cdFx0aWYgKCFjaGlsZCkge1xuXHRcdFx0Y2hpbGQgPSB7XG5cdFx0XHRcdG5hbWU6IGZpcnN0LFxuXHRcdFx0XHRwYXRoOiBgJHtub2RlLnBhdGh9LyR7Zmlyc3R9YC5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG5cdFx0XHRcdHZhbHVlOiAwLFxuXHRcdFx0XHRjaGlsZHJlbjogW10sXG5cdFx0XHR9O1xuXHRcdFx0bm9kZS5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcblx0XHR9XG5cdFx0bm9kZS52YWx1ZSArPSB2YWx1ZTtcblx0XHRidWlsZE5vZGUoY2hpbGQsIHBhdGhzLCB2YWx1ZSk7XG5cdH1cblxuXHRjb25zdCB0cmVlcyA9IG5ldyBNYXA8c3RyaW5nLCBUcmVlTWFwTm9kZT4oKTtcblx0aWYgKGlucHV0LnRvcE5MYXJnZXN0UGF0aHMgPD0gMCkge1xuXHRcdC8vIFNraXAgYnVpbGRpbmcgdHJlZSBpZiB3ZSBkb24ndCBuZWVkIGl0LlxuXHRcdHJldHVybiB0cmVlcztcblx0fVxuXHRmb3IgKGNvbnN0IHsgcmVsYXRpdmVQYXRoLCBhYnNvbHV0ZVBhdGggfSBvZiBmaW5kTWV0YWZpbGVzKGlucHV0KSkge1xuXHRcdGNvbnN0IG1ldGFmaWxlSnNvbiA9IGxvYWRNZXRhRmlsZShhYnNvbHV0ZVBhdGgpO1xuXHRcdGZvciAoY29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gb2YgT2JqZWN0LmVudHJpZXMobWV0YWZpbGVKc29uLm91dHB1dHMpKSB7XG5cdFx0XHRjb25zdCB0cmVlID0gYnVpbGRSb290KGJ1aWxkTWV0YS5pbnB1dHMpO1xuXHRcdFx0dHJlZXMuc2V0KHRyZWVLZXkocmVsYXRpdmVQYXRoLCBvdXRmaWxlKSwgdHJlZSk7XG5cblx0XHRcdGZzLndyaXRlRmlsZVN5bmMoXG5cdFx0XHRcdHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dC5hbmFseXplckRpcmVjdG9yeSwgXCJ0cmVlLmpzb25cIiksXG5cdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRyZWUsIG51bGwsIDIpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRyZWVzO1xufVxuXG5jb25zdCBzcGFjZXIgPSBcIlx1MDBBMFwiO1xuXG5mdW5jdGlvbiBmaWxlc2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcblx0Y29uc3Qgc2lnbiA9IGJ5dGVzIDwgMCA/IFwiLVwiIDogXCJcIjtcblx0Y29uc3QgbiA9IE1hdGguYWJzKGJ5dGVzKTtcblx0aWYgKG4gPCAxMDAwKSB7XG5cdFx0cmV0dXJuIGAke3NpZ259JHtufSR7c3BhY2VyfUJgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCkudG9GaXhlZCgyKX0ke3NwYWNlcn1LQmA7XG5cdH1cblx0aWYgKG4gPCAxMDAwICogMTAwMCAqIDEwMDApIHtcblx0XHRyZXR1cm4gYCR7c2lnbn0keyhuIC8gMTAwMCAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9TUJgO1xuXHR9XG5cdGlmIChuIDwgMTAwMCAqIDEwMDAgKiAxMDAwICogMTAwMCkge1xuXHRcdHJldHVybiBgJHtzaWdufSR7KG4gLyAxMDAwIC8gMTAwMCAvIDEwMDApLnRvRml4ZWQoMil9JHtzcGFjZXJ9R0JgO1xuXHR9XG5cdHRocm93IG5ldyBFcnJvcihcIlRvbyBsYXJnZSBmaWxlIHNpemUhISBBcmUgeW91IHN1cmU/XCIpO1xufVxuXG5jb25zdCBzaG91bGRTaG93QnVuZGxlID0gKGQ6IENvbXBhcmVSZXN1bHQsIHNob3dOb0NoYW5nZTogYm9vbGVhbikgPT5cblx0c2hvd05vQ2hhbmdlIHx8IGQuYnl0ZXMgLSBkLmJhc2VCeXRlcyAhPT0gMDtcblxuZnVuY3Rpb24gbWFya2Rvd25UYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHNpemVDb21wYXJpc29uRmlsdGVyczogU2V0PFNpemVDb21wYXJpc29uRmlsdGVyPixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRjb25zdCB0b3RhbFJvdyA9IGRhdGEucmVkdWNlKFxuXHRcdChhY2MsIGQpID0+IHtcblx0XHRcdGNvbnN0IHsgYnl0ZXMsIGJhc2VCeXRlcywgLi4ucmVzdCB9ID0gYWNjO1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Li4ucmVzdCxcblx0XHRcdFx0YmFzZUJ5dGVzOiBiYXNlQnl0ZXMgKyBkLmJhc2VCeXRlcyxcblx0XHRcdFx0Ynl0ZXM6IGJ5dGVzICsgZC5ieXRlcyxcblx0XHRcdH07XG5cdFx0fSxcblx0XHR7XG5cdFx0XHRiYXNlQnl0ZXM6IDAsXG5cdFx0XHRieXRlczogMCxcblx0XHRcdG1ldGFmaWxlOiBcIihUb3RhbClcIixcblx0XHRcdG91dGZpbGU6IFwiLVwiLFxuXHRcdFx0cmVtYXJrOiBcImFkZGVkXCIsXG5cdFx0XHR0cmVlOiB1bmRlZmluZWQsXG5cdFx0fSxcblx0KTtcblx0dG90YWxSb3cucmVtYXJrID1cblx0XHR0b3RhbFJvdy5ieXRlcyA+IHRvdGFsUm93LmJhc2VCeXRlcyA/IFwiaW5jcmVhc2VkXCIgOiBcImRlY3JlYXNlZFwiO1xuXHRjb25zdCB0b3RhbFJvd3M6IEFycmF5PENvbXBhcmVSZXN1bHQ+ID0gc2l6ZUNvbXBhcmlzb25GaWx0ZXJzLmhhcyhcInRvdGFsXCIpXG5cdFx0PyBbdG90YWxSb3ddXG5cdFx0OiBbXTtcblxuXHRjb25zdCBpbmRpdmlkdWFsUm93cyA9IGRhdGEuZmlsdGVyKChkKSA9PlxuXHRcdHNob3VsZFNob3dCdW5kbGUoZCwgc2l6ZUNvbXBhcmlzb25GaWx0ZXJzLmhhcyhkLnJlbWFyaykpLFxuXHQpO1xuXHRjb25zdCByb3dzID0gWy4uLnRvdGFsUm93cywgLi4uaW5kaXZpZHVhbFJvd3NdXG5cdFx0Lm1hcCgoZCkgPT4ge1xuXHRcdFx0cmV0dXJuIGAke2QubWV0YWZpbGV9IHwgJHtkLm91dGZpbGV9IHwgJHtyZW5kZXJTaXplKGQpfSB8ICR7cmVuZGVyTm90ZShcblx0XHRcdFx0ZCxcblx0XHRcdFx0cmVkVGhyZXNob2xkLFxuXHRcdFx0KX1cXG5gO1xuXHRcdH0pXG5cdFx0LmpvaW4oXCJcIik7XG5cblx0cmV0dXJuIGBcbk1ldGEgRmlsZSB8IE91dCBGaWxlICB8IFNpemUgKHJhdykgfCBOb3RlXG4tLS0tLS0tLS0tfC0tLS0tLS0tLS18LS0tLS0tLS0tLS06fC0tLS0tLVxuJHtyb3dzfWA7XG59XG5cbmZ1bmN0aW9uIGhpZGRlblRhYmxlKFxuXHRkYXRhOiBBcnJheTxDb21wYXJlUmVzdWx0Pixcblx0aW5jbHVkZVNpemVDb21wYXJpc29uOiBTZXQ8U2l6ZUNvbXBhcmlzb25GaWx0ZXI+LFxuXHRyZWRUaHJlc2hvbGQ6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGNvbnN0IGhpZGRlbkJ1bmRsZXMgPSBkYXRhLmZpbHRlcihcblx0XHQoZCkgPT4gIWluY2x1ZGVTaXplQ29tcGFyaXNvbi5oYXMoZC5yZW1hcmspLFxuXHQpO1xuXHRjb25zdCByb3dzID0gaGlkZGVuQnVuZGxlc1xuXHRcdC5tYXAoKGQpID0+IHtcblx0XHRcdHJldHVybiBgJHtkLm1ldGFmaWxlfSB8ICR7ZC5vdXRmaWxlfSB8ICR7cmVuZGVyU2l6ZShkKX0gfCAke3JlbmRlck5vdGUoXG5cdFx0XHRcdGQsXG5cdFx0XHRcdHJlZFRocmVzaG9sZCxcblx0XHRcdCl9XFxuYDtcblx0XHR9KVxuXHRcdC5qb2luKFwiXCIpO1xuXHRpZiAoaGlkZGVuQnVuZGxlcy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRyZXR1cm4gYFxuPGRldGFpbHM+XG48c3VtbWFyeT4ke2hpZGRlbkJ1bmRsZXMubGVuZ3RofSBidW5kbGVzIGFyZSBoaWRkZW4gc2luY2Ugbm90IGxpc3RlZCBpbiBpbmNsdWRlX3NpemVfY29tcGFyaXNvbi48L3N1bW1hcnk+ICAgIFxuXG5NZXRhIEZpbGUgfCBPdXQgRmlsZSAgfCBTaXplIChyYXcpIHwgTm90ZSBcbi0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLTp8LS0tLS0tXG4ke3Jvd3N9XG5cbjwvZGV0YWlscz5cbmA7XG59XG5cbi8qKlxuICogRmluZCB0aGUgdG9wIE4gbGFyZ2VzdCBub2RlcyBpbiByb290IHRyZWUuXG4gKiBEaWcgbm9kZXMgdW50aWwgdGhlIGRlcHRoIG9mIDMuXG4gKi9cbmZ1bmN0aW9uIGZpbmRMYXJnZURpcmVjdG9yaWVzKHJvb3Q6IFRyZWVNYXBOb2RlLCBOOiBudW1iZXIpIHtcblx0Y29uc3Qgbm9kZXM6IFRyZWVNYXBOb2RlW10gPSBbXTtcblx0Y29uc3QgcXVldWU6IEFycmF5PHsgbm9kZTogVHJlZU1hcE5vZGU7IGRlcHRoOiBudW1iZXIgfT4gPSBbXG5cdFx0eyBub2RlOiByb290LCBkZXB0aDogMCB9LFxuXHRdO1xuXHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IHNoaWZ0ID0gcXVldWUuc2hpZnQoKTtcblx0XHRpZiAoIXNoaWZ0KSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgeyBub2RlLCBkZXB0aCB9ID0gc2hpZnQ7XG5cdFx0aWYgKGRlcHRoID09PSAzKSB7XG5cdFx0XHRub2Rlcy5wdXNoKG5vZGUpO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0bm9kZXMucHVzaChub2RlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIG5vZGUuY2hpbGRyZW4pIHtcblx0XHRcdFx0cXVldWUucHVzaCh7IG5vZGU6IGl0ZW0sIGRlcHRoOiBkZXB0aCArIDEgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdGNvbnN0IGxhcmdlTm9kZXMgPSBub2Rlcy5zb3J0KChhLCBiKSA9PiBiLnZhbHVlIC0gYS52YWx1ZSkuc2xpY2UoMCwgTik7XG5cdHJldHVybiB7XG5cdFx0bGFyZ2VOb2Rlcyxcblx0XHRoYXNPdGhlcjogbm9kZXMubGVuZ3RoID4gTixcblx0fTtcbn1cblxuZnVuY3Rpb24gZml4ZWRQZXJjZW50KG46IG51bWJlciwgZDogbnVtYmVyKTogbnVtYmVyIHtcblx0cmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KCgobiAvIGQpICogMTAwKS50b0ZpeGVkKDEpKTtcbn1cblxuZnVuY3Rpb24gZmlsZVNpemVUYWJsZShcblx0ZGF0YTogQXJyYXk8Q29tcGFyZVJlc3VsdD4sXG5cdHRvcE5MYXJnZXN0UGF0aHM6IG51bWJlcixcbik6IHN0cmluZyB7XG5cdGlmIChkYXRhLmxlbmd0aCA9PT0gMCB8fCB0b3BOTGFyZ2VzdFBhdGhzIDw9IDApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRsZXQgb3V0cHV0ID0gXCJcIjtcblx0b3V0cHV0ICs9IFwiPGRldGFpbHM+XFxuXCI7XG5cdG91dHB1dCArPSBcIjxzdW1tYXJ5Pkxhcmdlc3QgcGF0aHM8L3N1bW1hcnk+XFxuXCI7XG5cdG91dHB1dCArPSBgVGhlc2UgdmlzdWFsaXphdGlvbiBzaG93cyB0b3AgJHt0b3BOTGFyZ2VzdFBhdGhzfSBsYXJnZXN0IHBhdGhzIGluIHRoZSBidW5kbGUuXFxuYDtcblx0Zm9yIChjb25zdCBkIG9mIGRhdGEpIHtcblx0XHRvdXRwdXQgKz0gXCJcXG5cIjtcblx0XHRvdXRwdXQgKz0gYCMjIE1ldGEgZmlsZTogJHtkLm1ldGFmaWxlfSwgT3V0IGZpbGU6ICR7ZC5vdXRmaWxlfVxcbmA7XG5cdFx0aWYgKCFkLnRyZWUpIHtcblx0XHRcdG91dHB1dCArPSBcIlx1RkUwRlx1RkUwRlx1RDgzRFx1REREMVx1RkUwRkRlbGV0ZWRcXG5cIjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblx0XHRvdXRwdXQgKz0gXCJ8IFBhdGggfCBTaXplIHxcXG5cIjtcblx0XHRvdXRwdXQgKz0gXCJ8LS0tLS0tfC0tLS0tLS18XFxuXCI7XG5cdFx0Y29uc3QgdG90YWxTaXplID0gZC50cmVlLnZhbHVlO1xuXHRcdGNvbnN0IHsgbGFyZ2VOb2RlcywgaGFzT3RoZXIgfSA9IGZpbmRMYXJnZURpcmVjdG9yaWVzKFxuXHRcdFx0ZC50cmVlLFxuXHRcdFx0dG9wTkxhcmdlc3RQYXRocyxcblx0XHQpO1xuXHRcdGZvciAoY29uc3QgeyBwYXRoLCB2YWx1ZSB9IG9mIGxhcmdlTm9kZXMpIHtcblx0XHRcdGNvbnN0IHBlcmNlbnQgPSBmaXhlZFBlcmNlbnQodmFsdWUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgJHtwYXRofSB8ICR7cmVuZGVyQmFyKHBlcmNlbnQsIHZhbHVlKX0gfFxcbmA7XG5cdFx0fVxuXHRcdGlmIChoYXNPdGhlcikge1xuXHRcdFx0Y29uc3Qgb3RoZXJTaXplID0gdG90YWxTaXplIC0gbGFyZ2VOb2Rlc1swXS52YWx1ZTtcblx0XHRcdGNvbnN0IG90aGVyUGVyY2VudCA9IGZpeGVkUGVyY2VudChvdGhlclNpemUsIHRvdGFsU2l6ZSk7XG5cdFx0XHRvdXRwdXQgKz0gYHwgKG90aGVyKSB8ICR7cmVuZGVyQmFyKG90aGVyUGVyY2VudCwgb3RoZXJTaXplKX0gfFxcbmA7XG5cdFx0fVxuXHR9XG5cdG91dHB1dCArPSBcIjwvZGV0YWlscz5cXG5cIjtcblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQmFyKHBlcmNlbnQ6IG51bWJlciwgYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG5cdGNvbnN0IGJhciA9IHByb2dyZXNzKHBlcmNlbnQgLyAxMDApO1xuXHRyZXR1cm4gYFxcJHt7XFxcXGNvbG9ye0dvbGRlbnJvZH17ICR7YmFyfSB9fX1cXCQgJHtwZXJjZW50LnRvRml4ZWQoXG5cdFx0MSxcblx0KX0lLCAke2ZpbGVzaXplKGJ5dGVzKX1gO1xufVxuXG4vLyBCbG9jayBwcm9ncmVzc2lvbiBpcyAxLzggPSAwLjEyNVxuY29uc3QgYmxvY2tzID0gW1wiXCIsIFwiXHUyNThGXCIsIFwiXHUyNThFXCIsIFwiXHUyNThEXCIsIFwiXHUyNThDXCIsIFwiXHUyNThCXCIsIFwiXHUyNThBXCIsIFwiXHUyNTg5XCIsIFwiXHUyNTg4XCJdO1xuY29uc3QgcHJvZ3Jlc3Npb24gPSAxIC8gKGJsb2Nrcy5sZW5ndGggLSAxKTtcblxuZnVuY3Rpb24gcHJvZ3Jlc3ModmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMjUsIHZtaW4gPSAwLjAsIHZtYXggPSAxLjApIHtcblx0Y29uc3QgdiA9IHZhbHVlICogbGVuZ3RoO1xuXHRjb25zdCBpbnRlZ2VyUGFydCA9IE1hdGguZmxvb3Iodik7XG5cdGNvbnN0IGZyYWN0aW9uYWxQYXJ0ID0gdiAtIGludGVnZXJQYXJ0O1xuXHRjb25zdCBpID0gTWF0aC5yb3VuZChcblx0XHQocHJvZ3Jlc3Npb24gKiBNYXRoLmZsb29yKGZyYWN0aW9uYWxQYXJ0IC8gcHJvZ3Jlc3Npb24pKSAvIHByb2dyZXNzaW9uLFxuXHQpO1xuXHRyZXR1cm4gXCJcdTI1ODhcIi5yZXBlYXQoaW50ZWdlclBhcnQpICsgYmxvY2tzW2ldO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTaXplKGQ6IENvbXBhcmVSZXN1bHQpOiBzdHJpbmcge1xuXHRyZXR1cm4gZmlsZXNpemUoZC5ieXRlcyk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlck5vdGUoZDogQ29tcGFyZVJlc3VsdCwgcmVkVGhyZXNob2xkOiBudW1iZXIpOiBzdHJpbmcge1xuXHRpZiAoZC5yZW1hcmsgPT09IFwiZGVsZXRlZFwiKSB7XG5cdFx0cmV0dXJuIFwiXHVEODNEXHVEREQxXHVGRTBGIERlbGV0ZWRcIjtcblx0fVxuXHRpZiAoZC5yZW1hcmsgPT09IFwiYWRkZWRcIikge1xuXHRcdHJldHVybiBcIlx1RDgzQ1x1REQ5NSBBZGRlZFwiO1xuXHR9XG5cdGlmIChkLnJlbWFyayA9PT0gXCJuby1jaGFuZ2VcIikge1xuXHRcdHJldHVybiBcIlx1MjcwNSAgTm8gY2hhbmdlXCI7XG5cdH1cblx0Y29uc3QgZGlmZiA9IGQuYnl0ZXMgLSBkLmJhc2VCeXRlcztcblx0Y29uc3QgcGVyY2VudENoYW5nZSA9IChkaWZmIC8gZC5iYXNlQnl0ZXMpICogMTAwO1xuXHRyZXR1cm4gYCR7cmVuZGVyU3RhdHVzSW5kaWNhdG9yKHBlcmNlbnRDaGFuZ2UsIHJlZFRocmVzaG9sZCl9JHtmaWxlc2l6ZShcblx0XHRkaWZmLFxuXHQpfSAoJHtzaWduKHBlcmNlbnRDaGFuZ2UpfSR7cGVyY2VudENoYW5nZS50b0ZpeGVkKDEpfSUpYDtcbn1cblxuZnVuY3Rpb24gc2lnbihudW06IG51bWJlcik6IHN0cmluZyB7XG5cdHJldHVybiBudW0gPCAwID8gXCJcIiA6IFwiK1wiO1xufVxuXG5mdW5jdGlvbiByZW5kZXJTdGF0dXNJbmRpY2F0b3IoXG5cdHBlcmNlbnRDaGFuZ2U6IG51bWJlcixcblx0cmVkVGhyZXNob2xkOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuXHRsZXQgcmVzOiBzdHJpbmc7XG5cdGlmIChwZXJjZW50Q2hhbmdlID4gMCAmJiBwZXJjZW50Q2hhbmdlIDwgcmVkVGhyZXNob2xkKSB7XG5cdFx0cmVzID0gXCJcdTI2QTBcdUZFMEZcIjtcblx0fSBlbHNlIGlmIChwZXJjZW50Q2hhbmdlID49IHJlZFRocmVzaG9sZCkge1xuXHRcdHJlcyA9IFwiXHUyMDNDXHVGRTBGXCI7XG5cdH0gZWxzZSB7XG5cdFx0cmVzID0gXCJcdTI3MDUgXCI7XG5cdH1cblx0cmV0dXJuIGAke3Jlc30gJHtzaWduKHBlcmNlbnRDaGFuZ2UpfWA7XG59XG4iLCAiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgcHJvY2VzcyBmcm9tIFwibm9kZTpwcm9jZXNzXCI7XG5cbmltcG9ydCAqIGFzIGNvbnNvbGUgZnJvbSBcIm5vZGU6Y29uc29sZVwiO1xuaW1wb3J0IHsgZ2xvYlN5bmMgfSBmcm9tIFwiZ2xvYlwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dCwgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxvYWRNZXRhRmlsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBvcnQoaW5wdXQ6IElucHV0KTogdm9pZCB7XG5cdGNvbnN0IGFsbFBhZ2VTaXplcyA9IGdldEFsbFBhZ2VTaXplcyhpbnB1dCk7XG5cdGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQuYW5hbHl6ZXJEaXJlY3RvcnkpLCB7XG5cdFx0cmVjdXJzaXZlOiB0cnVlLFxuXHR9KTtcblx0Y29uc3QgcmVzdWx0SnNvblBhdGggPSBwYXRoLmpvaW4oXG5cdFx0cHJvY2Vzcy5jd2QoKSxcblx0XHRpbnB1dC5hbmFseXplckRpcmVjdG9yeSxcblx0XHRcImJ1bmRsZV9hbmFseXNpcy5qc29uXCIsXG5cdCk7XG5cdGZzLndyaXRlRmlsZVN5bmMocmVzdWx0SnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGFsbFBhZ2VTaXplcywgbnVsbCwgMikpO1xuXHRjb25zb2xlLmxvZyhgV3JvdGUgJHtyZXN1bHRKc29uUGF0aH1gLCBhbGxQYWdlU2l6ZXMpO1xufVxuXG5pbnRlcmZhY2UgTWV0YWZpbGVQYXRoIHtcblx0cmVhZG9ubHkgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG5cdHJlYWRvbmx5IGFic29sdXRlUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE1ldGFmaWxlcyhpbnB1dDogSW5wdXQpOiBNZXRhZmlsZVBhdGhbXSB7XG5cdHJldHVybiBpbnB1dC5tZXRhZmlsZXMuZmxhdE1hcCgobWV0YWZpbGUpID0+IHtcblx0XHRyZXR1cm4gZ2xvYlN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIG1ldGFmaWxlKSwge1xuXHRcdFx0bm9kaXI6IHRydWUsXG5cdFx0fSkubWFwKChtZXRhRmlsZVBhdGgpID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHJlbGF0aXZlUGF0aDogcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBtZXRhRmlsZVBhdGgpLFxuXHRcdFx0XHRhYnNvbHV0ZVBhdGg6IG1ldGFGaWxlUGF0aCxcblx0XHRcdH07XG5cdFx0fSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBnZXRBbGxQYWdlU2l6ZXMoaW5wdXQ6IElucHV0KTogUmVwb3J0IHtcblx0Y29uc3QgYWNjOiBSZXBvcnQgPSB7fTtcblxuXHRjb25zdCBtZXRhZmlsZXMgPSBmaW5kTWV0YWZpbGVzKGlucHV0KTtcblx0Y29uc3QgcmVzdWx0ID0gbWV0YWZpbGVzLnJlZHVjZSgoYWNjLCB7IHJlbGF0aXZlUGF0aCwgYWJzb2x1dGVQYXRoIH0pID0+IHtcblx0XHR0cnkge1xuXHRcdFx0ZnMuYWNjZXNzU3luYyhhYnNvbHV0ZVBhdGgsIGZzLmNvbnN0YW50cy5SX09LKTtcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoXG5cdFx0XHRcdGBObyBtZXRhIGZpbGUgZm91bmQgYXQgXCIke2Fic29sdXRlUGF0aH1cIiAtIGEgcGF0aCB0byBtZXRhIGZpbGUgbWF5IGJlIHdyb25nLCBvciBlc2J1aWxkIGlzIG5vdCBleGVjdXRlZC5gLFxuXHRcdFx0KTtcblx0XHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0XHR9XG5cblx0XHRjb25zdCBtZXRhRmlsZUpzb24gPSBsb2FkTWV0YUZpbGUoYWJzb2x1dGVQYXRoKTtcblx0XHRPYmplY3QuZW50cmllcyhtZXRhRmlsZUpzb24ub3V0cHV0cykucmVkdWNlKChhY2MsIG91dHB1dCkgPT4ge1xuXHRcdFx0Y29uc3QgW291dGZpbGUsIGJ1aWxkTWV0YV0gPSBvdXRwdXQ7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdCFpbnB1dC5pbmNsdWRlRXh0ZW5zaW9ucy5zb21lKChleHQpID0+XG5cdFx0XHRcdFx0b3V0ZmlsZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGV4dCksXG5cdFx0XHRcdClcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm4gYWNjO1xuXHRcdFx0fVxuXHRcdFx0YWNjW2Ake3JlbGF0aXZlUGF0aH0gLT4gJHtvdXRmaWxlfWBdID0ge1xuXHRcdFx0XHRieXRlczogYnVpbGRNZXRhLmJ5dGVzLFxuXHRcdFx0XHRtZXRhZmlsZTogcmVsYXRpdmVQYXRoLFxuXHRcdFx0XHRvdXRmaWxlLFxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBhY2M7XG5cdFx0fSwgYWNjKTtcblx0XHRyZXR1cm4gYWNjO1xuXHR9LCBhY2MpO1xuXHRjb25zb2xlLmxvZyhcIkZvdW5kIG1ldGFmaWxlc1wiLCBtZXRhZmlsZXMpO1xuXHRjb25zb2xlLmxvZyhcIkZvdW5kIHJlc3VsdFwiLCByZXN1bHQpO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxuIiwgImltcG9ydCBmcyBmcm9tIFwibm9kZTpmc1wiO1xuXG5pbXBvcnQgdHlwZSB7IE1ldGFmaWxlIH0gZnJvbSBcImVzYnVpbGRcIjtcbmltcG9ydCB0eXBlIHsgUmVwb3J0IH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZnVuY3Rpb24gbG9hZEpzb25GaWxlKHBhdGg6IHN0cmluZykge1xuXHRyZXR1cm4gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aCkudG9TdHJpbmcoXCJ1dGYtOFwiKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkTWV0YUZpbGUocGF0aDogc3RyaW5nKTogTWV0YWZpbGUge1xuXHRyZXR1cm4gbG9hZEpzb25GaWxlKHBhdGgpIGFzIE1ldGFmaWxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFuYWx5c2lzSnNvbihwYXRoOiBzdHJpbmcpOiBSZXBvcnQge1xuXHRyZXR1cm4gbG9hZEpzb25GaWxlKHBhdGgpIGFzIFJlcG9ydDtcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvdG9vbGtpdC9ibG9iLzgxYTczYWJhOGJlZGQ1MzJmNmVkZGNjNDFlZDNhMGZhZDhiMWNmZWIvcGFja2FnZXMvY29yZS9zcmMvY29yZS50cyNMMTI2XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2luZ2xlSW5wdXQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgdmFsID0gcHJvY2Vzcy5lbnZbYElOUFVUXyR7bmFtZS50b1VwcGVyQ2FzZSgpfWBdIHx8IFwiXCI7XG5cdHJldHVybiB2YWwudHJpbSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm9vbGVhbklucHV0KFxuXHRuYW1lOiBzdHJpbmcsXG5cdGZhbGxiYWNrOiBcInRydWVcIiB8IFwiZmFsc2VcIixcbik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gW1widHJ1ZVwiLCBcIlRydWVcIiwgXCJUUlVFXCJdLmluY2x1ZGVzKGdldFNpbmdsZUlucHV0KG5hbWUpIHx8IGZhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE51bWJlcklucHV0KG5hbWU6IHN0cmluZywgZmFsbGJhY2s6IG51bWJlcik6IG51bWJlciB7XG5cdGNvbnN0IHJhdyA9IGdldFNpbmdsZUlucHV0KG5hbWUpO1xuXHRyZXR1cm4gcmF3ID09PSBcIlwiID8gZmFsbGJhY2sgOiBOdW1iZXIucGFyc2VJbnQocmF3LCAxMCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAibXNHQUFBLE9BQU9BLE9BQWEsZUFDcEIsT0FBUyxpQkFBQUMsT0FBcUIsV0NEOUIsVUFBWUMsTUFBYSxlQUN6QixPQUFPQyxPQUFRLFVBQ2YsT0FBT0MsT0FBVSxZQ0ZqQixPQUFPQyxPQUFRLFVBQ2YsT0FBT0MsT0FBVSxZQUNqQixPQUFPQyxPQUFhLGVBRXBCLFVBQVlDLE9BQWE7OzRzNURDSnpCLE9BQU9DLE9BQVEsVUFLZixTQUFTQyxHQUFhQyxFQUFjLENBQ25DLE9BQU8sS0FBSyxNQUFNRixHQUFHLGFBQWFFLENBQUksRUFBRSxTQUFTLE9BQU8sQ0FBQyxDQUMxRCxDQUVPLFNBQVNDLEdBQWFELEVBQXdCLENBQ3BELE9BQU9ELEdBQWFDLENBQUksQ0FDekIsQ0FFTyxTQUFTRSxHQUFpQkYsRUFBc0IsQ0FDdEQsT0FBT0QsR0FBYUMsQ0FBSSxDQUN6QixDQUdPLFNBQVNHLEVBQWVDLEVBQXNCLENBRXBELE9BRFksUUFBUSxJQUFJLFNB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RUFDbkUsWUFBYUYsR0FBZ0IsZUFBZ0IsTUFBTSxFQUNuRCxpQkFBa0JFLEdBQWUsc0JBQXVCLEVBQUUsRUFDMUQsbUJBQ0NOLEVBQWUsb0JBQW9CLEdBQUssaUJBQ3ZDLE1BQU0sR0FBRyxFQUNYLHNCQUF1QkUsRUFDdkIsS0FBQUQsRUFDQSxrQkFBbUJELEVBQWUsbUJBQW1CLEdBQUssWUFDMUQsVUFBV0QsRUFBYSxNQUFNLEdBQUcsQ0FDbEMsQ0FDRCxDQUVPLFNBQVNRLEdBQUlDLEVBQWVWLEdBQVMsRUFBUyxDQUNwRFcsR0FBT0QsQ0FBSyxFQUNaRSxHQUFRRixDQUFLLENBQ2QsQ0FFSSxZQUFZLE1BQVFHLEdBQWMsUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQ3RESixHQUFJIiwKICAibmFtZXMiOiBbImNvbnNvbGUiLCAicGF0aFRvRmlsZVVSTCIsICJjb25zb2xlIiwgImZzIiwgInBhdGgiLCAiZnMiLCAicGF0aCIsICJwcm9jZXNzIiwgImNvbnNvbGUiLCAiZnMiLCAibG9hZEpzb25GaWxlIiwgInBhdGgiLCAibG9hZE1ldGFGaWxlIiwgImxvYWRBbmFseXNpc0pzb24iLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJnZXRCb29sZWFuSW5wdXQiLCAiZmFsbGJhY2siLCAiZ2V0TnVtYmVySW5wdXQiLCAicmF3IiwgInJlcG9ydCIsICJpbnB1dCIsICJhbGxQYWdlU2l6ZXMiLCAiZ2V0QWxsUGFnZVNpemVzIiwgImZzIiwgInBhdGgiLCAicHJvY2VzcyIsICJyZXN1bHRKc29uUGF0aCIsICJmaW5kTWV0YWZpbGVzIiwgIm1ldGFmaWxlIiwgImdsb2JTeW5jIiwgIm1ldGFGaWxlUGF0aCIsICJhY2MiLCAibWV0YWZpbGVzIiwgInJlc3VsdCIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgIm1ldGFGaWxlSnNvbiIsICJsb2FkTWV0YUZpbGUiLCAib3V0cHV0IiwgIm91dGZpbGUiLCAiYnVpbGRNZXRhIiwgImV4dCIsICJjb21wYXJlIiwgImlucHV0IiwgImhhc0FueUNoYW5nZSIsICJvdXRwdXQiLCAiY3VycmVudEFuYWx5c2lzUGF0aCIsICJwYXRoIiwgImN1cnJlbnQiLCAibG9hZEFuYWx5c2lzSnNvbiIsICJiYXNlIiwgImxvYWRCYXNlQW5hbHlzaXNKc29uIiwgImZpbGVUcmVlIiwgImJ1aWxkRmlsZVRyZWUiLCAiY29tcGFyaXNvbiIsICJvdXRmaWxlIiwgImN1cnJlbnRTdGF0cyIsICJiYXNlU3RhdHMiLCAidHJlZSIsICJ0cmVlS2V5IiwgImRpZmYiLCAibWFya2Rvd25UYWJsZSIsICJoaWRkZW5UYWJsZSIsICJmaWxlU2l6ZVRhYmxlIiwgImRldGFpbCIsICJ3cml0ZUNvbW1lbnQiLCAibWV0YWZpbGUiLCAiZnMiLCAiYmFzZUFuYWx5c2lzUGF0aCIsICJyZXBvcnQiLCAiYnVpbGRSb290IiwgInJvb3QiLCAiZmlsZVBhdGgiLCAiYnl0ZXNJbk91dHB1dCIsICJkaXJlY3RvcmllcyIsICJidWlsZE5vZGUiLCAibm9kZSIsICJwYXRocyIsICJ2YWx1ZSIsICJmaXJzdCIsICJjaGlsZCIsICJ0cmVlcyIsICJyZWxhdGl2ZVBhdGgiLCAiYWJzb2x1dGVQYXRoIiwgImZpbmRNZXRhZmlsZXMiLCAibWV0YWZpbGVKc29uIiwgImxvYWRNZXRhRmlsZSIsICJidWlsZE1ldGEiLCAic3BhY2VyIiwgImZpbGVzaXplIiwgImJ5dGVzIiwgInNpZ24iLCAibiIsICJzaG91bGRTaG93QnVuZGxlIiwgImQiLCAic2hvd05vQ2hhbmdlIiwgImRhdGEiLCAic2l6ZUNvbXBhcmlzb25GaWx0ZXJzIiwgInJlZFRocmVzaG9sZCIsICJ0b3RhbFJvdyIsICJhY2MiLCAiYmFzZUJ5dGVzIiwgInJlc3QiLCAidG90YWxSb3dzIiwgImluZGl2aWR1YWxSb3dzIiwgInJlbmRlclNpemUiLCAicmVuZGVyTm90ZSIsICJpbmNsdWRlU2l6ZUNvbXBhcmlzb24iLCAiaGlkZGVuQnVuZGxlcyIsICJyb3dzIiwgImZpbmRMYXJnZURpcmVjdG9yaWVzIiwgIk4iLCAibm9kZXMiLCAicXVldWUiLCAic2hpZnQiLCAiZGVwdGgiLCAiaXRlbSIsICJhIiwgImIiLCAiZml4ZWRQZXJjZW50IiwgInRvcE5MYXJnZXN0UGF0aHMiLCAidG90YWxTaXplIiwgImxhcmdlTm9kZXMiLCAiaGFzT3RoZXIiLCAicGVyY2VudCIsICJyZW5kZXJCYXIiLCAib3RoZXJTaXplIiwgIm90aGVyUGVyY2VudCIsICJwcm9ncmVzcyIsICJibG9ja3MiLCAicHJvZ3Jlc3Npb24iLCAibGVuZ3RoIiwgInZtaW4iLCAidm1heCIsICJ2IiwgImludGVnZXJQYXJ0IiwgImZyYWN0aW9uYWxQYXJ0IiwgImkiLCAicGVyY2VudENoYW5nZSIsICJyZW5kZXJTdGF0dXNJbmRpY2F0b3IiLCAibnVtIiwgInJlcyIsICJnZXRJbnB1dCIsICJyYXdNZXRhZmlsZXMiLCAiZ2V0U2luZ2xlSW5wdXQiLCAibmFtZSIsICJmaWx0ZXJzIiwgInMiLCAiZ2V0Qm9vbGVhbklucHV0IiwgImNvbnNvbGUiLCAiZ2V0TnVtYmVySW5wdXQiLCAicnVuIiwgImlucHV0IiwgInJlcG9ydCIsICJjb21wYXJlIiwgInBhdGhUb0ZpbGVVUkwiXQp9Cg== diff --git a/src/index.ts b/src/index.ts index 2d35802..94cae87 100644 --- a/src/index.ts +++ b/src/index.ts @@ -37,12 +37,12 @@ function getInput(): Input { const rawShowNoChange = getSingleInput("show_no_change"); if (rawShowNoChange !== "") { if (getBooleanInput("show_no_change", "true")) { - filters.delete("no-change"); + filters.add("no-change"); console.log( "`show_no_change: true` is deprecated. Instead, remove `no-change` from the `include_size_comparison` list.", ); } else { - filters.add("no-change"); + filters.delete("no-change"); console.log( "`show_no_change: false` is deprecated. Instead, add `no-change` to the `include_size_comparison` list.", );