diff --git a/action/dist/index.js b/action/dist/index.js index 736e15fb..68838958 100644 --- a/action/dist/index.js +++ b/action/dist/index.js @@ -1,4 +1,4 @@ -module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math.tan,_Mathasin=Math.asin,_Mathsin=Math.sin,_Mathcos=Math.cos,_MathPI=Math.PI,_Mathsqrt=Math.sqrt,_NumberisInteger=Number.isInteger,_NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_NumberNEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,_Stringprototype=String.prototype,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_StringfromCharCode=String.fromCharCode,_Mathabs=Math.abs,_Mathpow=Math.pow,_Mathround=Math.round,_Mathfloor=Math.floor,_Mathceil=Math.ceil,_Mathmax=Math.max,_Mathmin=Math.min;function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={exports:{}},r=!0;try{__webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),r=!1}finally{r&&delete __webpack_module_cache__[e]}return t.exports}var __webpack_modules__={45274:(e,t,r)=>{"use strict";async function n({log:e=!0}={}){const t=e?console.debug:()=>null;t(`metrics/setup > setup`);const n="src/templates",a={templates:{},settings:{},statics:r.ab+"html",node_modules:b.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),y.existsSync(r.ab+"settings.json")?(a.settings=JSON.parse(`${await y.promises.readFile(b.resolve("settings.json"))}`),t(`metrics/setup > load settings.json > success`)):t(`metrics/setup > load settings.json > (missing)`),a.settings.templates||(a.settings.templates={default:"classic",enabled:[]}),a.settings.plugins||(a.settings.plugins={}),a.settings.plugins.base={parts:["header","activity","community","repositories","metadata"]},a.settings.debug&&t(S.inspect(a.settings,{depth:1/0,maxStringLength:256})),t(`metrics/setup > load package.json`),y.existsSync(r.ab+"package.json")?(a.package=JSON.parse(`${await y.promises.readFile(b.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),a.package={version:"2.9.0",author:"lowlighter"}),y.existsSync(r.ab+"templates"))for(const e of await y.promises.readdir(n)){if(/.*[.]mjs$/.test(e))continue;t(`metrics/setup > load template [${e}]`);const r=[`${n}/${e}/query.graphql`,`${n}/${e}/image.svg`,`${n}/${e}/style.css`,`${n}/${e}/fonts.css`],[o,i,s,l]=await Promise.all(r.map(async e=>`${await y.promises.readFile(b.resolve(e))}`));a.templates[e]={query:o,image:i,style:s,fonts:l},t(`metrics/setup > load template [${e}] > success`),a.settings.debug&&Object.defineProperty(a.templates,e,{get(){t(`metrics/setup > reload template [${e}]`);const[n,a,o,i]=r.map(e=>`${y.readFileSync(b.resolve(e))}`);return t(`metrics/setup > reload template [${e}] > success`),{query:n,image:a,style:o,fonts:i}}})}else t(`metrics/setup > load templates from build`),a.templates=JSON.parse(Buffer.from(`eyJjbGFzc2ljIjp7InF1ZXJ5IjoicXVlcnkgTWV0cmljcyB7XHJcbiAgdXNlcihsb2dpbjogJGxvZ2luKSB7XHJcbiAgICBkYXRhYmFzZUlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dpblxyXG4gICAgY3JlYXRlZEF0XHJcbiAgICBhdmF0YXJVcmxcclxuICAgIHdlYnNpdGVVcmxcclxuICAgIGlzSGlyZWFibGVcclxuICAgIHR3aXR0ZXJVc2VybmFtZVxyXG4gICAgZ2lzdHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXMobGFzdDogJHJlcG9zaXRvcmllcywgaXNGb3JrOiBmYWxzZSwgb3duZXJBZmZpbGlhdGlvbnM6IE9XTkVSKSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgdG90YWxEaXNrVXNhZ2VcclxuICAgICAgbm9kZXMge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB3YXRjaGVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXJnYXplcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBsYW5ndWFnZXMoZmlyc3Q6IDQpIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgc2l6ZVxyXG4gICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfb3BlbjogaXNzdWVzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfY2xvc2VkOiBpc3N1ZXMoc3RhdGVzOiBDTE9TRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfb3BlbjogcHVsbFJlcXVlc3RzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9tZXJnZWQ6IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE1FUkdFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICByZWxlYXNlcyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcmtDb3VudFxyXG4gICAgICAgIGxpY2Vuc2VJbmZvIHtcclxuICAgICAgICAgIHNwZHhJZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcGFja2FnZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzdGFycmVkUmVwb3NpdG9yaWVzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgd2F0Y2hpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc1Nwb25zb3Ige1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc01haW50YWluZXIge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBjb250cmlidXRpb25zQ29sbGVjdGlvbiB7XHJcbiAgICAgIHRvdGFsUmVwb3NpdG9yaWVzV2l0aENvbnRyaWJ1dGVkQ29tbWl0c1xyXG4gICAgICB0b3RhbENvbW1pdENvbnRyaWJ1dGlvbnNcclxuICAgICAgcmVzdHJpY3RlZENvbnRyaWJ1dGlvbnNDb3VudFxyXG4gICAgICB0b3RhbElzc3VlQ29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9uc1xyXG4gICAgfVxyXG4gICAgY2FsZW5kYXI6Y29udHJpYnV0aW9uc0NvbGxlY3Rpb24oZnJvbTogJGNhbGVuZGFyLmZyb20sIHRvOiAkY2FsZW5kYXIudG8pIHtcclxuICAgICAgY29udHJpYnV0aW9uQ2FsZW5kYXIge1xyXG4gICAgICAgIHdlZWtzIHtcclxuICAgICAgICAgIGNvbnRyaWJ1dGlvbkRheXMge1xyXG4gICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUbyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2VycyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2luZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGlzc3VlQ29tbWVudHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBvcmdhbml6YXRpb25zIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbWFnZSI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDgwXCIgaGVpZ2h0PVwiPCU9IDEyXHJcbiAgKyAoISFiYXNlLmhlYWRlcikqODAgKyAodXNlci5pc0hpcmVhYmxlKSoxNlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMzhcclxuICArICgoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSoxMjhcclxuICArICghIWJhc2UucmVwb3NpdG9yaWVzKSoxMDhcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCghIXBsdWdpbnMudHJhZmZpYyl8fCghIXBsdWdpbnMubGluZXMpKSkqMTZcclxuICArICghIXBsdWdpbnMuZm9sbG93dXApKjY4XHJcbiAgKyAoISFwbHVnaW5zLnBhZ2VzcGVlZCkqMTI2ICsgKHBsdWdpbnMucGFnZXNwZWVkPy5kZXRhaWxlZCA/PyAwKSo2KjIwXHJcbiAgKyAoISFwbHVnaW5zLmhhYml0cykqMjggKyAoISFwbHVnaW5zLmhhYml0cz8uZmFjdHMpKjU4ICsgKCEhcGx1Z2lucy5oYWJpdHM/LmNoYXJ0cykqMjI2XHJcbiAgKyAoISFwbHVnaW5zLmxhbmd1YWdlcykqOTZcclxuICArICghIXBsdWdpbnMubXVzaWMpKjY0ICsgKHBsdWdpbnMubXVzaWM/LnRyYWNrcz8ubGVuZ3RoID8gMTQrTWF0aC5tYXgoMCwgcGx1Z2lucy5tdXNpYy50cmFja3MubGVuZ3RoLTEpKjM2IDogMClcclxuICArICghIXBsdWdpbnMucG9zdHMpKjY0ICsgKHBsdWdpbnMucG9zdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo0MFxyXG4gICsgKCEhcGx1Z2lucy5pc29jYWxlbmRhcikqMTkyICsgKHBsdWdpbnMuaXNvY2FsZW5kYXI/LmR1cmF0aW9uID09PSAnZnVsbC15ZWFyJykqMTAwXHJcbiAgKyAoISFwbHVnaW5zLmdpc3RzKSo2OFxyXG4gICsgKCEhcGx1Z2lucy50b3BpY3MpKjE2MFxyXG4gICsgKCEhcGx1Z2lucy5wcm9qZWN0cykqMjIgKyAocGx1Z2lucy5wcm9qZWN0cz8ubGlzdD8ubGVuZ3RoID8/IDApKjYwICsgKCEhcGx1Z2lucy5wcm9qZWN0cz8uZXJyb3IpKjIyXHJcbiAgKyAoISFwbHVnaW5zLnR3ZWV0cykqNjQgKyAocGx1Z2lucy50d2VldHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo5MFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoKCEhcGx1Z2lucy5oYWJpdHMpKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKyghIXBsdWdpbnMubXVzaWMpKyghIXBsdWdpbnMucG9zdHMpKyghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKyghIXBsdWdpbnMuZ2lzdHMpKyghIXBsdWdpbnMudG9waWNzKSsoISFwbHVnaW5zLnByb2plY3RzKSktMSkpKjRcclxuJT5cIj5cclxuXHJcbiAgPGRlZnM+PHN0eWxlPjwlPSBmb250cyAlPjwvc3R5bGU+PC9kZWZzPlxyXG5cclxuICA8c3R5bGU+XHJcbiAgICA8JT0gc3R5bGUgJT5cclxuICA8L3N0eWxlPlxyXG5cclxuICA8Zm9yZWlnbk9iamVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgPGRpdiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhclwiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gY29tcHV0ZWQuYXZhdGFyICU+XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9zcGFuPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBjb21wdXRlZC5jYWtlZGF5ID8gJ2Nha2VkYXknIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5jYWtlZGF5KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDEuNWExLjI1IDEuMjUgMCAxMDAgMi41aDIuMzA5Yy0uMjMzLS44MTgtLjU0Mi0xLjQwMS0uODc4LTEuNzkzLS40My0uNTAyLS45MTUtLjcwNy0xLjQzMS0uNzA3ek0yIDIuNzVjMCAuNDUuMTA4Ljg3NS4zIDEuMjVoLS41NUExLjc1IDEuNzUgMCAwMDAgNS43NXYyYzAgLjY5OC40MDkgMS4zIDEgMS41ODJ2NC45MThjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgxMC41QTEuNzUgMS43NSAwIDAwMTUgMTQuMjVWOS4zMzJjLjU5MS0uMjgxIDEtLjg4NCAxLTEuNTgydi0yQTEuNzUgMS43NSAwIDAwMTQuMjUgNGgtLjU1YTIuNzUgMi43NSAwIDAwLTIuNDUtNGMtLjk4NCAwLTEuODc0LjQyLTIuNTcgMS4yM0E1LjA4NiA1LjA4NiAwIDAwOCAyLjI3NGE1LjA4NiA1LjA4NiAwIDAwLS42OC0xLjA0MkM2LjYyMy40MiA1LjczMyAwIDQuNzUgMEEyLjc1IDIuNzUgMCAwMDIgMi43NXpNOC45NDEgNGgyLjMwOWExLjI1IDEuMjUgMCAxMDAtMi41Yy0uNTE2IDAtMSAuMjA1LTEuNDMuNzA3LS4zMzcuMzkyLS42NDYuOTc1LS44NzkgMS43OTN6bS0xLjg0IDEuNUgxLjc1YS4yNS4yNSAwIDAwLS4yNS4yNXYyYzAgLjEzOC4xMTIuMjUuMjUuMjVoNS41VjUuNWgtLjE0OXptMS42NDkgMFY4aDUuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTJhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNS41em0wIDRoNC43NXY0Ljc1YS4yNS4yNSAwIDAxLS4yNS4yNWgtNC41di01em0tMS41IDB2NWgtNC41YS4yNS4yNSAwIDAxLS4yNS0uMjVWOS41aDQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBKb2luZWQgR2l0SHViIDwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0uNSA0Ljc1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMC40NzEuNjk2bDIuNSAxYS43NS43NSAwIDAwLjU1Ny0xLjM5Mkw4LjUgNy43NDJWNC43NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEpvaW5lZCBHaXRIdWIgPCU9IGNvbXB1dGVkLnJlZ2lzdHJhdGlvbiAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuNSAzLjVhMiAyIDAgMTAwIDQgMiAyIDAgMDAwLTR6TTIgNS41YTMuNSAzLjUgMCAxMTUuODk4IDIuNTQ5IDUuNTA3IDUuNTA3IDAgMDEzLjAzNCA0LjA4NC43NS43NSAwIDExLTEuNDgyLjIzNSA0LjAwMSA0LjAwMSAwIDAwLTcuOSAwIC43NS43NSAwIDAxLTEuNDgyLS4yMzZBNS41MDcgNS41MDcgMCAwMTMuMTAyIDguMDUgMy40OSAzLjQ5IDAgMDEyIDUuNXpNMTEgNGEuNzUuNzUgMCAxMDAgMS41IDEuNSAxLjUgMCAwMS42NjYgMi44NDQuNzUuNzUgMCAwMC0uNDE2LjY3MnYuMzUyYS43NS43NSAwIDAwLjU3NC43M2MxLjIuMjg5IDIuMTYyIDEuMiAyLjUyMiAyLjM3MmEuNzUuNzUgMCAxMDEuNDM0LS40NCA1LjAxIDUuMDEgMCAwMC0yLjU2LTMuMDEyQTMgMyAwIDAwMTEgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBGb2xsb3dlZCBieSA8JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAodXNlci5pc0hpcmVhYmxlKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGlyZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNi43NSAwQTEuNzUgMS43NSAwIDAwNSAxLjc1VjNIMS43NUExLjc1IDEuNzUgMCAwMDAgNC43NXY4LjVDMCAxNC4yMTYuNzg0IDE1IDEuNzUgMTVoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDEzLjI1di04LjVBMS43NSAxLjc1IDAgMDAxNC4yNSAzSDExVjEuNzVBMS43NSAxLjc1IDAgMDA5LjI1IDBoLTIuNXpNOS41IDNWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0yLjVhLjI1LjI1IDAgMDAtLjI1LjI1VjNoM3pNNSA0LjVIMS43NWEuMjUuMjUgMCAwMC0uMjUuMjVWNmEyIDIgMCAwMDIgMmg5YTIgMiAwIDAwMi0yVjQuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUg1em0tMS41IDVhMy40ODQgMy40ODQgMCAwMS0yLS42Mjd2NC4zNzdjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVY4Ljg3M2EzLjQ4NCAzLjQ4NCAwIDAxLTIgLjYyN2gtOXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBmb3IgaGlyZSAhXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNhbGVuZGFyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT4gMTFcIiB3aWR0aD1cIjwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT5cIiBoZWlnaHQ9XCIxNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IFt4LCB7Y29sb3J9XSBvZiBPYmplY3QuZW50cmllcyhjb21wdXRlZC5jYWxlbmRhcikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPVwiZGF5XCIgeD1cIjwlPSB4KjE1ICU+XCIgeT1cIjBcIiB3aWR0aD1cIjExXCIgaGVpZ2h0PVwiMTFcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIgcng9XCIyXCIgcnk9XCIyXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEgMi41QTIuNSAyLjUgMCAwMTMuNSAwaDguNzVhLjc1Ljc1IDAgMDEuNzUuNzV2My41YS43NS43NSAwIDAxLTEuNSAwVjEuNWgtOGExIDEgMCAwMC0xIDF2Ni43MDhBMi40OTIgMi40OTIgMCAwMTMuNSA5aDMuMjVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVhMSAxIDAgMTAwIDJoNS43NWEuNzUuNzUgMCAwMTAgMS41SDMuNUEyLjUgMi41IDAgMDExIDExLjV2LTl6bTEzLjIzIDcuNzlhLjc1Ljc1IDAgMDAxLjA2LTEuMDZsLTIuNTA1LTIuNTA1YS43NS43NSAwIDAwLTEuMDYgMEw5LjIyIDkuMjI5YS43NS43NSAwIDAwMS4wNiAxLjA2MWwxLjIyNS0xLjIyNHY2LjE4NGEuNzUuNzUgMCAwMDEuNSAwVjkuMDY2bDEuMjI0IDEuMjI0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIENvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmFjdGl2aXR5KSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgQWN0aXZpdHlcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEwLjUgNy43NWEyLjUgMi41IDAgMTEtNSAwIDIuNSAyLjUgMCAwMTUgMHptMS40My43NWE0LjAwMiA0LjAwMiAwIDAxLTcuODYgMEguNzVhLjc1Ljc1IDAgMTEwLTEuNWgzLjMyYTQuMDAxIDQuMDAxIDAgMDE3Ljg2IDBoMy4zMmEuNzUuNzUgMCAxMTAgMS41aC0zLjMyelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQuY29tbWl0cyAlPiBDb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zICU+IElzc3VlPCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDQuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDIuNzV6TTEgMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDEwLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExMy4yNSAxMkg5LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxNCAxMy41NDNWMTJIMi43NUExLjc1IDEuNzUgMCAwMTEgMTAuMjV2LTcuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50ICU+IGlzc3VlIGNvbW1lbnQ8JT0gcyh1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmNvbW11bml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuMzI2IDEuOTczYTEuMiAxLjIgMCAwMTEuNDktLjgzMmMuMzg3LjExMi45NzcuMzA3IDEuNTc1LjYwMi41ODYuMjkxIDEuMjQzLjcxIDEuNyAxLjI5Ni4wMjIuMDI3LjA0Mi4wNTYuMDYxLjA4NEExMy4yMiAxMy4yMiAwIDAxOCAzYy42NyAwIDEuMjg5LjAzNyAxLjg2MS4xMDhsLjA1MS0uMDdjLjQ1Ny0uNTg2IDEuMTE0LTEuMDA0IDEuNy0xLjI5NWE5LjY1NCA5LjY1NCAwIDAxMS41NzYtLjYwMiAxLjIgMS4yIDAgMDExLjQ5LjgzMmMuMTQuNDkzLjM1NiAxLjM0Ny40NzkgMi4yOS4wNzkuNjA0LjEyMyAxLjI4LjA3IDEuOTM2LjU0MS45NzcuNzczIDIuMTEuNzczIDMuMzAxQzE2IDEzIDE0LjUgMTUgOCAxNXMtOC0yLTgtNS41YzAtMS4wMzQuMjM4LTIuMTI4Ljc5NS0zLjExNy0uMDgtLjcxMi0uMDM0LTEuNDYuMDUyLTIuMTIuMTIyLS45NDMuMzQtMS43OTcuNDc5LTIuMjl6TTggMTMuMDY1YzYgMCA2LjUtMiA2LTQuMjdDMTMuMzYzIDUuOTA1IDExLjI1IDUgOCA1cy01LjM2My45MDQtNiAzLjc5NmMtLjUgMi4yNyAwIDQuMjcgNiA0LjI3elwiPjwvcGF0aD48cGF0aCBkPVwiTTQgOGExIDEgMCAwMTIgMHYxYTEgMSAwIDAxLTIgMFY4em0yLjA3OCAyLjQ5MmMtLjA4My0uMjY0LjE0Ni0uNDkyLjQyMi0uNDkyaDNjLjI3NiAwIC41MDUuMjI4LjQyMi40OTJDOS42NyAxMS4zMDQgOC44MzQgMTIgOCAxMmMtLjgzNCAwLTEuNjY5LS42OTYtMS45MjItMS41MDh6TTEwIDhhMSAxIDAgMTEyIDB2MWExIDEgMCAxMS0yIDBWOHpcIj48L3BhdGg+PC9zdmc+ICAgICAgICAgICAgICBDb21tdW5pdHkgc3RhdHNcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxNC4yNWMwIC4xMzguMTEyLjI1LjI1LjI1SDR2LTEuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMS43NS43NXYxLjI1aDIuMjVhLjI1LjI1IDAgMDAuMjUtLjI1VjEuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtOC41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41ek0xLjc1IDE2QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoOC41QzExLjIxNiAwIDEyIC43ODQgMTIgMS43NXYxMi41YzAgLjA4NS0uMDA2LjE2OC0uMDE4LjI1aDIuMjY4YS4yNS4yNSAwIDAwLjI1LS4yNVY4LjI4NWEuMjUuMjUgMCAwMC0uMTExLS4yMDhsLTEuMDU1LS43MDNhLjc1Ljc1IDAgMTEuODMyLTEuMjQ4bDEuMDU1LjcwM2MuNDg3LjMyNS43NzkuODcxLjc3OSAxLjQ1NnY1Ljk2NUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2aC0zLjVhLjc1Ljc1IDAgMDEtLjE5Ny0uMDI2Yy0uMDk5LjAxNy0uMi4wMjYtLjMwMy4wMjZoLTNhLjc1Ljc1IDAgMDEtLjc1LS43NVYxNGgtMXYxLjI1YS43NS43NSAwIDAxLS43NS43NWgtM3pNMyAzLjc1QS43NS43NSAwIDAxMy43NSAzaC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyAzLjc1ek0zLjc1IDZhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNMyA5Ljc1QS43NS43NSAwIDAxMy43NSA5aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyA5Ljc1ek03Ljc1IDlhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNNyA2Ljc1QS43NS43NSAwIDAxNy43NSA2aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxNyA2Ljc1ek03Ljc1IDNhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgTWVtYmVyIG9mIDwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPiBvcmdhbml6YXRpb248JT0gcyh1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01LjUgMy41YTIgMiAwIDEwMCA0IDIgMiAwIDAwMC00ek0yIDUuNWEzLjUgMy41IDAgMTE1Ljg5OCAyLjU0OSA1LjUwNyA1LjUwNyAwIDAxMy4wMzQgNC4wODQuNzUuNzUgMCAxMS0xLjQ4Mi4yMzUgNC4wMDEgNC4wMDEgMCAwMC03LjkgMCAuNzUuNzUgMCAwMS0xLjQ4Mi0uMjM2QTUuNTA3IDUuNTA3IDAgMDEzLjEwMiA4LjA1IDMuNDkgMy40OSAwIDAxMiA1LjV6TTExIDRhLjc1Ljc1IDAgMTAwIDEuNSAxLjUgMS41IDAgMDEuNjY2IDIuODQ0Ljc1Ljc1IDAgMDAtLjQxNi42NzJ2LjM1MmEuNzUuNzUgMCAwMC41NzQuNzNjMS4yLjI4OSAyLjE2MiAxLjIgMi41MjIgMi4zNzJhLjc1Ljc1IDAgMTAxLjQzNC0uNDQgNS4wMSA1LjAxIDAgMDAtMi41Ni0zLjAxMkEzIDMgMCAwMDExIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEZvbGxvd2luZyA8JT0gdXNlci5mb2xsb3dpbmcudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBTcG9uc29yaW5nIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3RhcnJlZCA8JT0gdXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBXYXRjaGluZyA8JT0gdXNlci53YXRjaGluZy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yIDIuNUEyLjUgMi41IDAgMDE0LjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djEyLjVhLjc1Ljc1IDAgMDEtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMTEwLTEuNWgxLjc1di0yaC04YTEgMSAwIDAwLS43MTQgMS43Ljc1Ljc1IDAgMDEtMS4wNzIgMS4wNUEyLjQ5NSAyLjQ5NSAwIDAxMiAxMS41di05em0xMC41LTFWOWgtOGMtLjM1NiAwLS42OTQuMDc0LTEgLjIwOFYyLjVhMSAxIDAgMDExLTFoOHpNNSAxMi4yNXYzLjI1YS4yNS4yNSAwIDAwLjQuMmwxLjQ1LTEuMDg3YS4yNS4yNSAwIDAxLjMgMEw4LjYgMTUuN2EuMjUuMjUgMCAwMC40LS4ydi0zLjI1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTMuNWEuMjUuMjUgMCAwMC0uMjUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gdXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCAlPiBSZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguNzUuNzVhLjc1Ljc1IDAgMDAtMS41IDBWMmgtLjk4NGMtLjMwNSAwLS42MDQuMDgtLjg2OS4yM2wtMS4yODguNzM3QS4yNS4yNSAwIDAxMy45ODQgM0gxLjc1YS43NS43NSAwIDAwMCAxLjVoLjQyOEwuMDY2IDkuMTkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTQgMy41MTQgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTUgMy41MTUgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxNi0uMDE1LjAwNi0uMDA2LjAwMi0uMDAyLjAwMS0uMDAyTDUuMjUgOS41bC41My41M2EuNzUuNzUgMCAwMC4xNTQtLjgzOEwzLjgyMiA0LjVoLjE2MmMuMzA1IDAgLjYwNC0uMDguODY5LS4yM2wxLjI4OS0uNzM3YS4yNS4yNSAwIDAxLjEyNC0uMDMzaC45ODRWMTNoLTIuNWEuNzUuNzUgMCAwMDAgMS41aDYuNWEuNzUuNzUgMCAwMDAtMS41aC0yLjVWMy41aC45ODRhLjI1LjI1IDAgMDEuMTI0LjAzM2wxLjI5LjczNmMuMjY0LjE1Mi41NjMuMjMxLjg2OC4yMzFoLjE2MmwtMi4xMTIgNC42OTJhLjc1Ljc1IDAgMDAuMTU0LjgzOGwuNTMtLjUzLS41My41M3YuMDAxbC4wMDIuMDAyLjAwMi4wMDIuMDA2LjAwNi4wMTYuMDE1LjA0NS4wNGEzLjUxNyAzLjUxNyAwIDAwLjY4Ni40NUE0LjQ5MiA0LjQ5MiAwIDAwMTMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTIgMy41MTIgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxLS4wMS4wMDYtLjAwNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMi0uNTI5LS41MzEuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMTMuODIzIDQuNWguNDI3YS43NS43NSAwIDAwMC0xLjVoLTIuMjM0YS4yNS4yNSAwIDAxLS4xMjQtLjAzM2wtMS4yOS0uNzM2QTEuNzUgMS43NSAwIDAwOS43MzUgMkg4Ljc1Vi43NXpNMS42OTUgOS4yMjdjLjI4NS4xMzUuNzE4LjI3MyAxLjMwNS4yNzNzMS4wMi0uMTM4IDEuMzA1LS4yNzNMMyA2LjMyN2wtMS4zMDUgMi45em0xMCAwYy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDEzIDYuMzI3bC0xLjMwNSAyLjl6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBQcmVmZXIgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+IGxpY2Vuc2VcclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIE5vIGxpY2Vuc2UgcHJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSA3Ljc3NVYyLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg1LjAyNWEuMjUuMjUgMCAwMS4xNzcuMDczbDYuMjUgNi4yNWEuMjUuMjUgMCAwMTAgLjM1NGwtNS4wMjUgNS4wMjVhLjI1LjI1IDAgMDEtLjM1NCAwbC02LjI1LTYuMjVhLjI1LjI1IDAgMDEtLjA3My0uMTc3em0tMS41IDBWMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDUuMDI1Yy40NjQgMCAuOTEuMTg0IDEuMjM4LjUxM2w2LjI1IDYuMjVhMS43NSAxLjc1IDAgMDEwIDIuNDc0bC01LjAyNiA1LjAyNmExLjc1IDEuNzUgMCAwMS0yLjQ3NCAwbC02LjI1LTYuMjVBMS43NSAxLjc1IDAgMDExIDcuNzc1ek02IDVhMSAxIDAgMTAwIDIgMSAxIDAgMDAwLTJ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcyAlPiBSZWxlYXNlPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnJlbGVhc2VzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguODc4LjM5MmExLjc1IDEuNzUgMCAwMC0xLjc1NiAwbC01LjI1IDMuMDQ1QTEuNzUgMS43NSAwIDAwMSA0Ljk1MXY2LjA5OGMwIC42MjQuMzMyIDEuMi44NzIgMS41MTRsNS4yNSAzLjA0NWExLjc1IDEuNzUgMCAwMDEuNzU2IDBsNS4yNS0zLjA0NWMuNTQtLjMxMy44NzItLjg5Ljg3Mi0xLjUxNFY0Ljk1MWMwLS42MjQtLjMzMi0xLjItLjg3Mi0xLjUxNEw4Ljg3OC4zOTJ6TTcuODc1IDEuNjlhLjI1LjI1IDAgMDEuMjUgMGw0LjYzIDIuNjg1TDggNy4xMzMgMy4yNDUgNC4zNzVsNC42My0yLjY4NXpNMi41IDUuNjc3djUuMzcyYzAgLjA5LjA0Ny4xNzEuMTI1LjIxNmw0LjYyNSAyLjY4M1Y4LjQzMkwyLjUgNS42Nzd6bTYuMjUgOC4yNzFsNC42MjUtMi42ODNhLjI1LjI1IDAgMDAuMTI1LS4yMTZWNS42NzdMOC43NSA4LjQzMnY1LjUxNnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5wYWNrYWdlcy50b3RhbENvdW50ICU+IFBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAzLjVjMC0uMTMzLjA1OC0uMzE4LjI4Mi0uNTUuMjI3LS4yMzcuNTkyLS40ODQgMS4xLS43MDhDNC44OTkgMS43OTUgNi4zNTQgMS41IDggMS41YzEuNjQ3IDAgMy4xMDIuMjk1IDQuMTE3Ljc0Mi41MS4yMjQuODc0LjQ3IDEuMTAxLjcwNy4yMjQuMjMzLjI4Mi40MTguMjgyLjU1MSAwIC4xMzMtLjA1OC4zMTgtLjI4Mi41NS0uMjI3LjIzNy0uNTkyLjQ4NC0xLjEuNzA4QzExLjEwMSA1LjIwNSA5LjY0NiA1LjUgOCA1LjVjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDctLjIyNC0uMjMzLS4yODItLjQxOC0uMjgyLS41NTF6TTEgMy41YzAtLjYyNi4yOTItMS4xNjUuNy0xLjU5LjQwNi0uNDIyLjk1Ni0uNzY3IDEuNTc5LTEuMDQxQzQuNTI1LjMyIDYuMTk1IDAgOCAwYzEuODA1IDAgMy40NzUuMzIgNC43MjIuODY5LjYyMi4yNzQgMS4xNzIuNjIgMS41NzggMS4wNC40MDguNDI2LjcuOTY1LjcgMS41OTF2OWMwIC42MjYtLjI5MiAxLjE2NS0uNyAxLjU5LS40MDYuNDIyLS45NTYuNzY3LTEuNTc5IDEuMDQxQzExLjQ3NiAxNS42OCA5LjgwNiAxNiA4IDE2Yy0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5LS42MjMtLjI3NC0xLjE3My0uNjItMS41NzktMS4wNC0uNDA4LS40MjYtLjctLjk2NS0uNy0xLjU5MXYtOXpNMi41IDhWNS43MjRjLjI0MS4xNS41MDMuMjg2Ljc3OS40MDdDNC41MjUgNi42OCA2LjE5NSA3IDggN2MxLjgwNSAwIDMuNDc1LS4zMiA0LjcyMi0uODY5LjI3NS0uMTIxLjUzNy0uMjU3Ljc3OC0uNDA3VjhjMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgOS43MDUgOS42NDYgMTAgOCAxMGMtMS42NDcgMC0zLjEwMi0uMjk1LTQuMTE3LS43NDItLjUxLS4yMjQtLjg3NC0uNDctMS4xMDEtLjcwN0MyLjU1OCA4LjMxOCAyLjUgOC4xMzMgMi41IDh6bTAgMi4yMjVWMTIuNWMwIC4xMzMuMDU4LjMxOC4yODIuNTUuMjI3LjIzNy41OTIuNDg0IDEuMS43MDggMS4wMTYuNDQ3IDIuNDcxLjc0MiA0LjExOC43NDIgMS42NDcgMCAzLjEwMi0uMjk1IDQuMTE3LS43NDIuNTEtLjIyNC44NzQtLjQ3IDEuMTAxLS43MDcuMjI0LS4yMzMuMjgyLS40MTguMjgyLS41NTF2LTIuMjc1Yy0uMjQxLjE1LS41MDMuMjg1LS43NzguNDA2LTEuMjQ3LjU0OS0yLjkxNy44NjktNC43MjIuODY5LTEuODA1IDAtMy40NzUtLjMyLTQuNzIxLS44NjlhNi4yMzYgNi4yMzYgMCAwMS0uNzc5LS40MDZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPiB1c2VkXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGluZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNC42NjRhLjI1LjI1IDAgMDAtLjA3My0uMTc3bC0yLjkxNC0yLjkxNGEuMjUuMjUgMCAwMC0uMTc3LS4wNzNIMi43NXpNMSAxLjc1QzEgLjc4NCAxLjc4NCAwIDIuNzUgMGg3LjU4NmMuNDY0IDAgLjkwOS4xODQgMS4yMzcuNTEzbDIuOTE0IDIuOTE0Yy4zMjkuMzI4LjUxMy43NzMuNTEzIDEuMjM3djkuNTg2QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMS43NXptNyAxLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS41aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjV2MS41YS43NS43NSAwIDAxLTEuNSAwVjdoLTEuNWEuNzUuNzUgMCAwMTAtMS41aDEuNVY0QS43NS43NSAwIDAxOCAzLjI1em0tMyA4YS43NS43NSAwIDAxLjc1LS43NWg0LjVhLjc1Ljc1IDAgMDEwIDEuNWgtNC41YS43NS43NSAwIDAxLS43NS0uNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IGFkZGVkLCA8JT0gcGx1Z2lucy5saW5lcy5kZWxldGVkICU+IHJlbW92ZWRcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50ICU+IFNwb25zb3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTAgMi4xMjJhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OEEyLjI1IDIuMjUgMCAwMDUuNzUgOC41aDEuNXYyLjEyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWOC41aDEuNWEyLjI1IDIuMjUgMCAwMDIuMjUtMi4yNXYtLjg3OGEyLjI1IDIuMjUgMCAxMC0xLjUgMHYuODc4YS43NS43NSAwIDAxLS43NS43NWgtNC41QS43NS43NSAwIDAxNSA2LjI1di0uODc4em0zLjc1IDcuMzc4YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTMtOC43NWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzICU+IEZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS42NzkgNy45MzJjLjQxMi0uNjIxIDEuMjQyLTEuNzUgMi4zNjYtMi43MTdDNS4xNzUgNC4yNDIgNi41MjcgMy41IDggMy41YzEuNDczIDAgMi44MjQuNzQyIDMuOTU1IDEuNzE1IDEuMTI0Ljk2NyAxLjk1NCAyLjA5NiAyLjM2NiAyLjcxN2EuMTE5LjExOSAwIDAxMCAuMTM2Yy0uNDEyLjYyMS0xLjI0MiAxLjc1LTIuMzY2IDIuNzE3QzEwLjgyNSAxMS43NTggOS40NzMgMTIuNSA4IDEyLjVjLTEuNDczIDAtMi44MjQtLjc0Mi0zLjk1NS0xLjcxNUMyLjkyIDkuODE4IDIuMDkgOC42OSAxLjY3OSA4LjA2OGEuMTE5LjExOSAwIDAxMC0uMTM2ek04IDJjLTEuOTgxIDAtMy42Ny45OTItNC45MzMgMi4wNzhDMS43OTcgNS4xNjkuODggNi40MjMuNDMgNy4xYTEuNjE5IDEuNjE5IDAgMDAwIDEuNzk4Yy40NS42NzggMS4zNjcgMS45MzIgMi42MzcgMy4wMjRDNC4zMjkgMTMuMDA4IDYuMDE5IDE0IDggMTRjMS45ODEgMCAzLjY3LS45OTIgNC45MzMtMi4wNzggMS4yNy0xLjA5MSAyLjE4Ny0yLjM0NSAyLjYzNy0zLjAyM2ExLjYxOSAxLjYxOSAwIDAwMC0xLjc5OGMtLjQ1LS42NzgtMS4zNjctMS45MzItMi42MzctMy4wMjNDMTEuNjcxIDIuOTkyIDkuOTgxIDIgOCAyem0wIDhhMiAyIDAgMTAwLTQgMiAyIDAgMDAwIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycyAlPiBXYXRjaGVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLndhdGNoZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IgPyAnZXJyb3InIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMCAxLjc1QS43NS43NSAwIDAxLjc1IDFoNC4yNTNjMS4yMjcgMCAyLjMxNy41OSAzIDEuNTAxQTMuNzQ0IDMuNzQ0IDAgMDExMS4wMDYgMWg0LjI0NWEuNzUuNzUgMCAwMS43NS43NXYxMC41YS43NS43NSAwIDAxLS43NS43NWgtNC41MDdhMi4yNSAyLjI1IDAgMDAtMS41OTEuNjU5bC0uNjIyLjYyMWEuNzUuNzUgMCAwMS0xLjA2IDBsLS42MjItLjYyMUEyLjI1IDIuMjUgMCAwMDUuMjU4IDEzSC43NWEuNzUuNzUgMCAwMS0uNzUtLjc1VjEuNzV6bTguNzU1IDNhMi4yNSAyLjI1IDAgMDEyLjI1LTIuMjVIMTQuNXY5aC0zLjc1N2MtLjcxIDAtMS40LjIwMS0xLjk5Mi41NzJsLjAwNC03LjMyMnptLTEuNTA0IDcuMzI0bC4wMDQtNS4wNzMtLjAwMi0yLjI1M0EyLjI1IDIuMjUgMCAwMDUuMDAzIDIuNUgxLjV2OWgzLjc1N2EzLjc1IDMuNzUgMCAwMTEuOTk0LjU3NHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHJhZmZpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudHJhZmZpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQgJT4gdmlldzwlPSBzKHBsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudCkgJT4gaW4gbGFzdCB0d28gd2Vla3NcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cCkgeyAlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+SXNzdWVzPC9oMz5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZm9sbG93dXAuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICA8bWFzayBpZD1cImlzc3Vlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50ID8gMCA6IDIyMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDczYTQ5XCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjaXNzdWVzLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAoMS1wbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjZDczYTQ5XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDAxMTAuNjUtNS4wMDMuNzUuNzUgMCAwMC45NTktMS4xNTMgOCA4IDAgMTAyLjU5MiA4LjMzLjc1Ljc1IDAgMTAtMS40NDQtLjQwN0E2LjUgNi41IDAgMDExLjUgOHpNOCAxMmExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnptMC04YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAxMS0xLjUgMHYtMy41QS43NS43NSAwIDAxOCA0em00Ljc4IDQuMjhsMy0zYS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMi40NyAyLjQ3LS45Ny0uOTdhLjc0OS43NDkgMCAxMC0xLjA2IDEuMDZsMS41IDEuNWEuNzUuNzUgMCAwMDEuMDYgMHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQgJT4gQ2xvc2VkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiIzI4YTc0NVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMub3BlbiAlPiBPcGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+UHVsbCByZXF1ZXN0czwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJwci1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZmNDJjMVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiMyOGE3NDVcIi8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhvcml6b250YWwgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiM2ZjQyYzFcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01IDMuMjU0VjMuMjV2LjAwNWEuNzUuNzUgMCAxMTAtLjAwNXYuMDA0em0uNDUgMS45YTIuMjUgMi4yNSAwIDEwLTEuOTUuMjE4djUuMjU2YTIuMjUgMi4yNSAwIDEwMS41IDBWNy4xMjNBNS43MzUgNS43MzUgMCAwMDkuMjUgOWgxLjM3OGEyLjI1MSAyLjI1MSAwIDEwMC0xLjVIOS4yNWE0LjI1IDQuMjUgMCAwMS0zLjgtMi4zNDZ6TTEyLjc1IDlhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6bS04LjUgNC41YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkICU+IE1lcmdlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03LjE3NyAzLjA3M0w5LjU3My42NzdBLjI1LjI1IDAgMDExMCAuODU0djQuNzkyYS4yNS4yNSAwIDAxLS40MjcuMTc3TDcuMTc3IDMuNDI3YS4yNS4yNSAwIDAxMC0uMzU0ek0zLjc1IDIuNWEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXptLTIuMjUuNzVhMi4yNSAyLjI1IDAgMTEzIDIuMTIydjUuMjU2YTIuMjUxIDIuMjUxIDAgMTEtMS41IDBWNS4zNzJBMi4yNSAyLjI1IDAgMDExLjUgMy4yNXpNMTEgMi41aC0xVjRoMWExIDEgMCAwMTEgMXY1LjYyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWNUEyLjUgMi41IDAgMDAxMSAyLjV6bTEgMTAuMjVhLjc1Ljc1IDAgMTExLjUgMCAuNzUuNzUgMCAwMS0xLjUgMHpNMy43NSAxMmEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5sYW5ndWFnZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgPGgzPk1vc3QgdXNlZCBsYW5ndWFnZXM8L2gzPlxyXG4gICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxtYXNrIGlkPVwibGFuZ3VhZ2VzLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjbGFuZ3VhZ2VzLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzLmxlbmd0aCA/IDAgOiA0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgdmFsdWUsIGNvbG9yLCB4fSBvZiBwbHVnaW5zLmxhbmd1YWdlcy5mYXZvcml0ZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjwlPSB4KjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gdmFsdWUqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCI8JT0gY29sb3IgJT5cIi8+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvcn0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIG5vLXdyYXAgbGFuZ3VhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCI8JT0gY29sb3IgJT5cIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDRhNCA0IDAgMTAwIDggNCA0IDAgMDAwLTh6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gbmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAwQTEuNzUgMS43NSAwIDAwMCAxLjc1djEyLjVDMCAxNS4yMTYuNzg0IDE2IDEuNzUgMTZoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDE0LjI1VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwSDEuNzV6TTEuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgxMi41YS4yNS4yNSAwIDAxLjI1LjI1djEyLjVhLjI1LjI1IDAgMDEtLjI1LjI1SDEuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek0xMS43NSAzYS43NS43NSAwIDAwLS43NS43NXY3LjVhLjc1Ljc1IDAgMDAxLjUgMHYtNy41YS43NS43NSAwIDAwLS43NS0uNzV6bS04LjI1Ljc1YS43NS43NSAwIDAxMS41IDB2NS41YS43NS43NSAwIDAxLTEuNSAwdi01LjV6TTggM2EuNzUuNzUgMCAwMC0uNzUuNzV2My41YS43NS43NSAwIDAwMS41IDB2LTMuNUEuNzUuNzUgMCAwMDggM3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQgJT4gUHJvamVjdDwlPSBzKHBsdWdpbnMucHJvamVjdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHVwZGF0ZWQsIHByb2dyZXNzfSBvZiBwbHVnaW5zLnByb2plY3RzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMy43NUMwIDIuNzg0Ljc4NCAyIDEuNzUgMmgxMi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRIMS43NUExLjc1IDEuNzUgMCAwMTAgMTIuMjV2LTguNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djguNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEyLjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0zLjUgNi4yNWEuNzUuNzUgMCAwMS43NS0uNzVoN2EuNzUuNzUgMCAwMTAgMS41aC03YS43NS43NSAwIDAxLS43NS0uNzV6bS43NSAyLjI1YS43NS43NSAwIDAwMCAxLjVoNGEuNzUuNzUgMCAwMDAtMS41aC00elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHptLjUgNC43NWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAuNDcxLjY5NmwyLjUgMWEuNzUuNzUgMCAwMC41NTctMS4zOTJMOC41IDcuNzQyVjQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVkIDwlPSB1cGRhdGVkICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi41IDEuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDguNWEuMjUuMjUgMCAwMS4yNS4yNXY3LjczNmEuNzUuNzUgMCAxMDEuNSAwVjEuNzVBMS43NSAxLjc1IDAgMDAxMS4yNSAwaC04LjVBMS43NSAxLjc1IDAgMDAxIDEuNzV2MTEuNWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDMuMTdhLjc1Ljc1IDAgMDAwLTEuNUgyLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNNC43NSA0YS43NS43NSAwIDAwMCAxLjVoNC41YS43NS43NSAwIDAwMC0xLjVoLTQuNXpNNCA3Ljc1QS43NS43NSAwIDAxNC43NSA3aDJhLjc1Ljc1IDAgMDEwIDEuNWgtMkEuNzUuNzUgMCAwMTQgNy43NXptMTEuNzc0IDMuNTM3YS43NS43NSAwIDAwLTEuMDQ4LTEuMDc0TDEwLjcgMTQuMTQ1IDkuMjgxIDEyLjcyYS43NS43NSAwIDAwLTEuMDYyIDEuMDU4bDEuOTQzIDEuOTVhLjc1Ljc1IDAgMDAxLjA1NS4wMDhsNC41NTctNC40NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCU9IFtwcm9ncmVzcy5kb25lID8gYCR7cHJvZ3Jlc3MuZG9uZX0gZG9uZWAgOiBcIlwiLCBwcm9ncmVzcy5kb2luZyA/IGAke3Byb2dyZXNzLmRvaW5nfSBkb2luZ2AgOiBcIlwiLCBwcm9ncmVzcy50b2RvID8gYCR7cHJvZ3Jlc3MudG9kb30gdG9kb2AgOiBcIlwiXS5maWx0ZXIoc3RyID0+IHN0cikuam9pbihcIiDCtyBcIikgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIGhvcml6b250YWwtd3JhcCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHJvamVjdC1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIndoaXRlXCIgcng9XCI1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3Byb2plY3QtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhBNzQ1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9IChwcm9ncmVzcy5kb25lL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy5kb2luZy9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjNkY0MkMxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9ICgocHJvZ3Jlc3MuZG9uZStwcm9ncmVzcy5kb2luZykvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLnRvZG8vcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djEyLjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2MTIuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2SDEuNzVBMS43NSAxLjc1IDAgMDEwIDE0LjI1VjEuNzV6bTkuMjIgMy43MmEuNzUuNzUgMCAwMDAgMS4wNkwxMC42OSA4IDkuMjIgOS40N2EuNzUuNzUgMCAxMDEuMDYgMS4wNmwyLTJhLjc1Ljc1IDAgMDAwLTEuMDZsLTItMmEuNzUuNzUgMCAwMC0xLjA2IDB6TTYuNzggNi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIgMmEuNzUuNzUgMCAwMDAgMS4wNmwyIDJhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMNS4zMSA4bDEuNDctMS40N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQgJT4gR2lzdDwlPSBzKHBsdWdpbnMuZ2lzdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAuMjVhLjc1Ljc1IDAgMDEuNjczLjQxOGwxLjg4MiAzLjgxNSA0LjIxLjYxMmEuNzUuNzUgMCAwMS40MTYgMS4yNzlsLTMuMDQ2IDIuOTcuNzE5IDQuMTkyYS43NS43NSAwIDAxLTEuMDg4Ljc5MUw4IDEyLjM0N2wtMy43NjYgMS45OGEuNzUuNzUgMCAwMS0xLjA4OC0uNzlsLjcyLTQuMTk0TC44MTggNi4zNzRhLjc1Ljc1IDAgMDEuNDE2LTEuMjhsNC4yMS0uNjExTDcuMzI3LjY2OEEuNzUuNzUgMCAwMTggLjI1em0wIDIuNDQ1TDYuNjE1IDUuNWEuNzUuNzUgMCAwMS0uNTY0LjQxbC0zLjA5Ny40NSAyLjI0IDIuMTg0YS43NS43NSAwIDAxLjIxNi42NjRsLS41MjggMy4wODQgMi43NjktMS40NTZhLjc1Ljc1IDAgMDEuNjk4IDBsMi43NyAxLjQ1Ni0uNTMtMy4wODRhLjc1Ljc1IDAgMDEuMjE2LS42NjRsMi4yNC0yLjE4My0zLjA5Ni0uNDVhLjc1Ljc1IDAgMDEtLjU2NC0uNDFMOCAyLjY5NHYuMDAxelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZ2lzdHMuc3RhcmdhemVycyAlPiBTdGFyZ2F6ZXI8JT0gcyhwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNWEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0wIDIuMTIyYTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhBMi4yNSAyLjI1IDAgMDA1Ljc1IDguNWgxLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjguNWgxLjVhMi4yNSAyLjI1IDAgMDAyLjI1LTIuMjV2LS44NzhhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OGEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNUEuNzUuNzUgMCAwMTUgNi4yNXYtLjg3OHptMy43NSA3LjM3OGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0zLTguNzVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5mb3JrcyAlPiBGb3JrPCU9IHMocGx1Z2lucy5naXN0cy5mb3JrcykgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQuMDY0IDBhOC43NSA4Ljc1IDAgMDAtNi4xODcgMi41NjNsLS40NTkuNDU4Yy0uMzE0LjMxNC0uNjE2LjY0MS0uOTA0Ljk3OUgzLjMxYTEuNzUgMS43NSAwIDAwLTEuNDkuODMzTC4xMSA3LjYwN2EuNzUuNzUgMCAwMC40MTggMS4xMWwzLjEwMi45NTRjLjAzNy4wNTEuMDc5LjEuMTI0LjE0NWwyLjQyOSAyLjQyOGMuMDQ2LjA0Ni4wOTQuMDg4LjE0NS4xMjVsLjk1NCAzLjEwMmEuNzUuNzUgMCAwMDEuMTEuNDE4bDIuNzc0LTEuNzA3YTEuNzUgMS43NSAwIDAwLjgzMy0xLjQ5VjkuNDg1Yy4zMzgtLjI4OC42NjUtLjU5Ljk3OS0uOTA0bC40NTgtLjQ1OUE4Ljc1IDguNzUgMCAwMDE2IDEuOTM2VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwaC0uMTg2ek0xMC41IDEwLjYyNWMtLjA4OC4wNi0uMTc3LjExOC0uMjY2LjE3NWwtMi4zNSAxLjUyMS41NDggMS43ODMgMS45NDktMS4yYS4yNS4yNSAwIDAwLjExOS0uMjEzdi0yLjA2NnpNMy42NzggOC4xMTZMNS4yIDUuNzY2Yy4wNTgtLjA5LjExNy0uMTc4LjE3Ni0uMjY2SDMuMzA5YS4yNS4yNSAwIDAwLS4yMTMuMTE5bC0xLjIgMS45NSAxLjc4Mi41NDd6bTUuMjYtNC40OTNBNy4yNSA3LjI1IDAgMDExNC4wNjMgMS41aC4xODZhLjI1LjI1IDAgMDEuMjUuMjV2LjE4NmE3LjI1IDcuMjUgMCAwMS0yLjEyMyA1LjEyN2wtLjQ1OS40NThhMTUuMjEgMTUuMjEgMCAwMS0yLjQ5OSAyLjAybC0yLjMxNyAxLjUtMi4xNDMtMi4xNDMgMS41LTIuMzE3YTE1LjI1IDE1LjI1IDAgMDEyLjAyLTIuNWwuNDU4LS40NThoLjAwMnpNMTIgNWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS04LjQ0IDkuNTZhMS41IDEuNSAwIDEwLTIuMTItMi4xMmMtLjczNC43My0xLjA0NyAyLjMzMi0xLjE1IDMuMDAzYS4yMy4yMyAwIDAwLjI2NS4yNjVjLjY3MS0uMTAzIDIuMjczLS40MTYgMy4wMDUtMS4xNDh6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIFBhZ2VTcGVlZCBJbnNpZ2h0c1xyXG4gICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy43NzUgMy4yNzVhLjc1Ljc1IDAgMDAxLjA2IDEuMDZsMS4yNS0xLjI1YTIgMiAwIDExMi44MyAyLjgzbC0yLjUgMi41YTIgMiAwIDAxLTIuODMgMCAuNzUuNzUgMCAwMC0xLjA2IDEuMDYgMy41IDMuNSAwIDAwNC45NSAwbDIuNS0yLjVhMy41IDMuNSAwIDAwLTQuOTUtNC45NWwtMS4yNSAxLjI1em0tNC42OSA5LjY0YTIgMiAwIDAxMC0yLjgzbDIuNS0yLjVhMiAyIDAgMDEyLjgzIDAgLjc1Ljc1IDAgMDAxLjA2LTEuMDYgMy41IDMuNSAwIDAwLTQuOTUgMGwtMi41IDIuNWEzLjUgMy41IDAgMDA0Ljk1IDQuOTVsMS4yNS0xLjI1YS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMS4yNSAxLjI1YTIgMiAwIDAxLTIuODMgMHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IHVzZXIud2Vic2l0ZVVybCAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQuZXJyb3IpIHsgJT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtzY29yZSwgdGl0bGV9IG9mIHBsdWdpbnMucGFnZXNwZWVkLnNjb3JlcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllIGNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTIwIDEyMFwiIHdpZHRoPVwiNTBcIiBoZWlnaHQ9XCI1MFwiIGNsYXNzPVwiZ2F1Z2UgPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gKHNjb3JlID49IDAuOSA/ICdoaWdoJyA6IHNjb3JlID49IDAuNSA/ICdhdmVyYWdlJyA6ICdsb3cnKSA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiZ2F1Z2UtYmFzZVwiIHI9XCI1M1wiIGN4PVwiNjBcIiBjeT1cIjYwXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImdhdWdlLWFyY1wiIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgNjAgNjApXCIgcj1cIjUzXCIgY3g9XCI2MFwiIGN5PVwiNjBcIiBzdHJva2UtZGFzaGFycmF5PVwiPCU9IHNjb3JlICogMzI5ICU+IDMyOVwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCB4PVwiNjBcIiB5PVwiNjBcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiA+PCU9IE1hdGgucm91bmQoc2NvcmUqMTAwKSAlPjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9XCI2MFwiIHk9XCI2MFwiIGRvbWluYW50LWJhc2VsaW5lPVwiY2VudHJhbFwiID4tPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48JT0gdGl0bGUgJT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQuZGV0YWlsZWQpIHsgJT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1ZGl0cyByb3dcIj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuNzUuNzVBLjc1Ljc1IDAgMDE2LjUgMGgzYS43NS43NSAwIDAxMCAxLjVoLS43NXYxbC0uMDAxLjA0MWE2LjcxOCA2LjcxOCAwIDAxMy40NjQgMS40MzVsLjAwNy0uMDA2Ljc1LS43NWEuNzUuNzUgMCAxMTEuMDYgMS4wNmwtLjc1Ljc1LS4wMDYuMDA3YTYuNzUgNi43NSAwIDExLTEwLjU0OCAwTDIuNzIgNS4wM2wtLjc1LS43NWEuNzUuNzUgMCAwMTEuMDYtMS4wNmwuNzUuNzUuMDA3LjAwNkE2LjcxOCA2LjcxOCAwIDAxNy4yNSAyLjU0MWEuNzU2Ljc1NiAwIDAxMC0uMDQxdi0xSDYuNWEuNzUuNzUgMCAwMS0uNzUtLjc1ek04IDE0LjVBNS4yNSA1LjI1IDAgMTA4IDRhNS4yNSA1LjI1IDAgMDAwIDEwLjV6bS4zODktNi43bDEuMzMtMS4zM2EuNzUuNzUgMCAxMTEuMDYxIDEuMDZMOS40NSA4Ljg2MUExLjUwMiAxLjUwMiAwIDAxOCAxMC43NWExLjUgMS41IDAgMTEuMzg5LTIuOTV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFRpbWUgdG8gaW50ZXJhY3RpdmVcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTA2LjAxNiA0LjAzNS43NS43NSAwIDAxMS4zODgtLjU3IDggOCAwIDExLTQuMzctNC4zNy43NS43NSAwIDAxLS41NjkgMS4zODlBNi40NzkgNi40NzkgMCAwMDggMS41em02LjI4LjIyYS43NS43NSAwIDAxMCAxLjA2bC00LjA2MyA0LjA2NGEyLjUgMi41IDAgMTEtMS4wNi0xLjA2TDEzLjIyIDEuNzJhLjc1Ljc1IDAgMDExLjA2IDB6TTcgOGExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFNwZWVkIEluZGV4XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS42NDMgMy4xNDNMLjQyNyAxLjkyN0EuMjUuMjUgMCAwMDAgMi4xMDRWNS43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDMuNjQ2YS4yNS4yNSAwIDAwLjE3Ny0uNDI3TDIuNzE1IDQuMjE1YTYuNSA2LjUgMCAxMS0xLjE4IDQuNDU4Ljc1Ljc1IDAgMTAtMS40OTMuMTU0IDguMDAxIDguMDAxIDAgMTAxLjYtNS42ODR6TTcuNzUgNGEuNzUuNzUgMCAwMS43NS43NXYyLjk5MmwyLjAyOC44MTJhLjc1Ljc1IDAgMDEtLjU1NyAxLjM5MmwtMi41LTFBLjc1Ljc1IDAgMDE3IDguMjV2LTMuNUEuNzUuNzUgMCAwMTcuNzUgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgVG90YWwgQmxvY2tpbmcgVGltZVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTExLjEzNCAxLjUzNUM5LjcyMiAyLjU2MiA4LjE2IDQuMDU3IDYuODg5IDUuMzEyIDUuOCA2LjM4NyA1LjA0MSA3LjQwMSA0LjU3NSA4LjI5NGEzLjc0NSAzLjc0NSAwIDAwLTMuMjI3IDEuMDU0Yy0uNDMuNDMxLS42OSAxLjA2Ni0uODYgMS42NTdhMTEuOTgyIDExLjk4MiAwIDAwLS4zNTggMS45MTRBMjEuMjYzIDIxLjI2MyAwIDAwMCAxNS4yMDN2LjA1NGwuNzUtLjAwNy0uMDA3Ljc1aC4wNTRhMTQuNDA0IDE0LjQwNCAwIDAwLjY1NC0uMDEyIDIxLjI0MyAyMS4yNDMgMCAwMDEuNjMtLjExOGMuNjItLjA3IDEuMy0uMTggMS45MTQtLjM1Ny41OTItLjE3IDEuMjI2LS40MyAxLjY1Ny0uODYxYTMuNzQ1IDMuNzQ1IDAgMDAxLjA1NS0zLjIxN2MuOTA4LS40NjEgMS45NDItMS4yMTYgMy4wNC0yLjMgMS4yNzktMS4yNjIgMi43NjQtMi44MjUgMy43NzUtNC4yNDkuNTAxLS43MDYuOTIzLTEuNDI4IDEuMTI1LTIuMDk2LjItLjY1OS4yMzUtMS40NjktLjM2OC0yLjA3LS42MDYtLjYwNy0xLjQyLS41NS0yLjA2OS0uMzQtLjY2LjIxMy0xLjM3Ni42NDYtMi4wNzYgMS4xNTV6bS0zLjk1IDguNDhhMy43NiAzLjc2IDAgMDAtMS4xOS0xLjE5MiA5Ljc1OCA5Ljc1OCAwIDAxMS4xNjEtMS42MDdsMS42NTggMS42NThhOS44NTMgOS44NTMgMCAwMS0xLjYzIDEuMTQyek0uNzQyIDE2bC4wMDctLjc1LS43NS4wMDhBLjc1Ljc1IDAgMDAuNzQzIDE2ek0xMi4wMTYgMi43NDljLTEuMjI0Ljg5LTIuNjA1IDIuMTg5LTMuODIyIDMuMzg0bDEuNzE4IDEuNzE4YzEuMjEtMS4yMDUgMi41MS0yLjU5NyAzLjM4Ny0zLjgzMy40Ny0uNjYyLjc4LTEuMjI3LjkxMi0xLjY2Mi4xMzQtLjQ0NC4wMzItLjU1MS4wMDktLjU3NWgtLjAwMVYxLjc4Yy0uMDE0LS4wMTQtLjExMi0uMTEzLS41NDguMDI3LS40MzIuMTQtLjk5NS40NjItMS42NTUuOTQyek0xLjYyIDEzLjA4OWExOS41NiAxOS41NiAwIDAwLS4xMDQgMS4zOTUgMTkuNTUgMTkuNTUgMCAwMDEuMzk2LS4xMDQgMTAuNTI4IDEwLjUyOCAwIDAwMS42NjgtLjMwOWMuNTI2LS4xNTEuODU2LS4zMjUgMS4wMTEtLjQ4YTIuMjUgMi4yNSAwIDAwLTMuMTgyLTMuMTgyYy0uMTU1LjE1NS0uMzI5LjQ4NS0uNDggMS4wMWExMC41MTUgMTAuNTE1IDAgMDAtLjMwOSAxLjY3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBGaXJzdCBDb250ZW50ZnVsIFBhaW50XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djEwLjVjMCAuMTM4LjExMi4yNS4yNS4yNWguOTRhLjc2Ljc2IDAgMDEuMDMtLjAzbDYuMDc3LTYuMDc4YTEuNzUgMS43NSAwIDAxMi40MTItLjA2TDE0LjUgMTAuMzFWMi43NWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6bTEyLjUgMTFINC44MWw1LjA0OC01LjA0N2EuMjUuMjUgMCAwMS4zNDQtLjAwOWw0LjI5OCAzLjg4OXYuOTE3YS4yNS4yNSAwIDAxLS4yNS4yNXptMS43NS0uMjVWMi43NUExLjc1IDEuNzUgMCAwMDE0LjI1IDFIMS43NUExLjc1IDEuNzUgMCAwMDAgMi43NXYxMC41QzAgMTQuMjE2Ljc4NCAxNSAxLjc1IDE1aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxMy4yNXpNNS41IDZhLjUuNSAwIDExLTEgMCAuNS41IDAgMDExIDB6TTcgNmEyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIExhcmdlc3QgQ29udGVudGZ1bCBQYWludFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuNzUgMTRBMS43NSAxLjc1IDAgMDE2IDEyLjI1di04LjVDNiAyLjc4NCA2Ljc4NCAyIDcuNzUgMmg2LjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY4LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNGgtNi41em0tLjI1LTEuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWg2LjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNi41YS4yNS4yNSAwIDAwLS4yNS4yNXY4LjV6TTQuOSAzLjUwOGEuNzUuNzUgMCAwMS0uMjc0IDEuMDI1LjI1LjI1IDAgMDAtLjEyNi4yMTd2Ni41YS4yNS4yNSAwIDAwLjEyNi4yMTcuNzUuNzUgMCAwMS0uNzUyIDEuMjk4QTEuNzUgMS43NSAwIDAxMyAxMS4yNXYtNi41YzAtLjY0OS4zNTMtMS4yMTQuODc0LTEuNTE2YS43NS43NSAwIDAxMS4wMjUuMjc0ek0xLjYyNSA1LjUzM2EuNzUuNzUgMCAxMC0uNzUyLTEuMjk5QTEuNzUgMS43NSAwIDAwMCA1Ljc1djQuNWMwIC42NDkuMzUzIDEuMjE0Ljg3NCAxLjUxNWEuNzUuNzUgMCAxMC43NTItMS4yOTguMjUuMjUgMCAwMS0uMTI2LS4yMTd2LTQuNWEuMjUuMjUgMCAwMS4xMjYtLjIxN3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VtdWxhdGl2ZSBMYXlvdXQgU2hpZnRcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7c2NvcmUsIHN1ZmZpeCA9IFwiXCIsIHRocmVzaG9sZH0gb2YgW1xyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5pbnRlcmFjdGl2ZS8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy43ODUsIDcuM119LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5zcGVlZEluZGV4LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlszLjM4NywgNS44XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLnRvdGFsQmxvY2tpbmdUaW1lLzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsuMjg3LCAuNl19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5maXJzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi4zMzYsIDRdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MubGFyZ2VzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi41LCA0XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTorcGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5jdW11bGF0aXZlTGF5b3V0U2hpZnQsIHRocmVzaG9sZDpbLjEsIC4yNV19XHJcbiAgICAgICAgICAgICAgICBdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1ZGl0IHRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBzY29yZS50b0ZpeGVkKDIpLnJlcGxhY2UoL1suXTArJC8sIFwiXCIpICU+IDwlPSBzdWZmaXggJT5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTi9BXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKE51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImF1ZGl0XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bTMuMjggNS43OGEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTUuNSA1LjVhLjc1Ljc1IDAgMTAxLjA2IDEuMDZsNS41LTUuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzBdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBoaWdoXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTExLjc4LTEuNzJhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDYuNzUgOS4xOSA1LjI4IDcuNzJhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2bDIgMmEuNzUuNzUgMCAwMDEuMDYgMGw0LjUtNC41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIGlmIChzY29yZSA8PSB0aHJlc2hvbGRbMV0pIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImF1ZGl0IGF2ZXJhZ2VcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVhNi41IDYuNSAwIDEwMCAxMyA2LjUgNi41IDAgMDAwLTEzek0wIDhhOCA4IDAgMTExNiAwQTggOCAwIDAxMCA4em05IDNhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTYuMjVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwMS41IDB2LTMuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBsb3dcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC40Ny4yMkEuNzUuNzUgMCAwMTUgMGg2YS43NS43NSAwIDAxLjUzLjIybDQuMjUgNC4yNWMuMTQxLjE0LjIyLjMzMS4yMi41M3Y2YS43NS43NSAwIDAxLS4yMi41M2wtNC4yNSA0LjI1QS43NS43NSAwIDAxMTEgMTZINWEuNzUuNzUgMCAwMS0uNTMtLjIyTC4yMiAxMS41M0EuNzUuNzUgMCAwMTAgMTFWNWEuNzUuNzUgMCAwMS4yMi0uNTNMNC40Ny4yMnptLjg0IDEuMjhMMS41IDUuMzF2NS4zOGwzLjgxIDMuODFoNS4zOGwzLjgxLTMuODFWNS4zMUwxMC42OSAxLjVINS4zMXpNOCA0YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAwMS0xLjUgMHYtMy41QS43NS43NSAwIDAxOCA0em0wIDhhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVjLTIuMzYzIDAtNCAxLjY5LTQgMy43NSAwIC45ODQuNDI0IDEuNjI1Ljk4NCAyLjMwNGwuMjE0LjI1M2MuMjIzLjI2NC40Ny41NTYuNjczLjg0OC4yODQuNDExLjUzNy44OTYuNjIxIDEuNDlhLjc1Ljc1IDAgMDEtMS40ODQuMjExYy0uMDQtLjI4Mi0uMTYzLS41NDctLjM3LS44NDdhOC42OTUgOC42OTUgMCAwMC0uNTQyLS42OGMtLjA4NC0uMS0uMTczLS4yMDUtLjI2OC0uMzJDMy4yMDEgNy43NSAyLjUgNi43NjYgMi41IDUuMjUgMi41IDIuMzEgNC44NjMgMCA4IDBzNS41IDIuMzEgNS41IDUuMjVjMCAxLjUxNi0uNzAxIDIuNS0xLjMyOCAzLjI1OS0uMDk1LjExNS0uMTg0LjIyLS4yNjguMzE5LS4yMDcuMjQ1LS4zODMuNDUzLS41NDEuNjgxLS4yMDguMy0uMzMuNTY1LS4zNy44NDdhLjc1Ljc1IDAgMDEtMS40ODUtLjIxMmMuMDg0LS41OTMuMzM3LTEuMDc4LjYyMS0xLjQ4OS4yMDMtLjI5Mi40NS0uNTg0LjY3My0uODQ4LjA3NS0uMDg4LjE0Ny0uMTczLjIxMy0uMjUzLjU2MS0uNjc5Ljk4NS0xLjMyLjk4NS0yLjMwNCAwLTIuMDYtMS42MzctMy43NS00LTMuNzV6TTYgMTUuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMTAgMS41aC0yLjVhLjc1Ljc1IDAgMDEtLjc1LS43NXpNNS43NSAxMmEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb2RpbmcgaGFiaXRzIGFuZCByZWNlbnQgYWN0aXZpdHlcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuZmFjdHMpIHsgJT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJoYWJpdHNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmluZGVudHMuc3R5bGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT5Nb3N0bHkgYWN0aXZlIG9uIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheS50b0xvY2FsZUxvd2VyQ2FzZSgpICU+PC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmNoYXJ0cykgeyAlPlxyXG4gICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4ocGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3VyKSkgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgIDxoMz5Db21taXQgYWN0aXZpdHkgcGVyIHRpbWUgb2YgdGhlIGRheTwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAobGV0IGggPSAwOyBoIDwgMjQ7IGgrKykgeyBjb25zdCBwID0gKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cnNbaF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXJzLm1heD8/MSk7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3Vyc1toXSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCIgc3R5bGU9XCJoZWlnaHQ6IDwlPSBwKjUwICU+cHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBgJHtofWAucGFkU3RhcnQoMiwgMCkgJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuZGF5KSkgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY29sdW1uIGNoYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICA8aDM+Q29tbWl0IGFjdGl2aXR5IHBlciBkYXk8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChsZXQgZCA9IDA7IGQgPCA3OyBkKyspIHsgY29uc3QgcCA9IChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXNbZF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXMubWF4Pz8xKTsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5kYXlzW2RdICU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhclwiIHN0eWxlPVwiaGVpZ2h0OiA8JT0gcCo1MCAlPnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDwlPSBNYXRoLmNlaWwocC8wLjI1KSAlPi1iZylcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl1bZF0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5saW5ndWlzdC5hdmFpbGFibGUpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPkxhbmd1YWdlIGFjdGl2aXR5PC9oMz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1iYXJzIGhvcml6b250YWxcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbbGFuZ3VhZ2UsIHBdIG9mIHBsdWdpbnMuaGFiaXRzLmxpbmd1aXN0Lm9yZGVyZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPjwlPSBsYW5ndWFnZSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIiBzdHlsZT1cIndpZHRoOiA8JT0gcCo4MCAlPiU7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPjwlPSBNYXRoLnJvdW5kKDEwMCpwKSAlPiU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy50b3BpY3MpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNC4xODQgMS4xNDNhMS43NSAxLjc1IDAgMDAtMi41MDItLjU3TC45MTIgNy45MTZhMS43NSAxLjc1IDAgMDAtLjUzIDIuMzJsLjQ0Ny43NzVhMS43NSAxLjc1IDAgMDAyLjI3NS43MDJsMTEuNzQ1LTUuNjU2YTEuNzUgMS43NSAwIDAwLjc1Ny0yLjQ1MWwtMS40MjItMi40NjR6bS0xLjY1Ny42NjlhLjI1LjI1IDAgMDEuMzU4LjA4MWwxLjQyMiAyLjQ2NGEuMjUuMjUgMCAwMS0uMTA4LjM1bC0yLjAxNi45Ny0xLjUwNS0yLjYwNSAxLjg1LTEuMjZ6TTkuNDM2IDMuOTJsMS4zOTEgMi40MS01LjQyIDIuNjEtLjk0Mi0xLjYzIDQuOTctMy4zOXpNMy4yMjIgOC4xNTdsLTEuNDY2IDFhLjI1LjI1IDAgMDAtLjA3NS4zM2wuNDQ3Ljc3NWEuMjUuMjUgMCAwMC4zMjUuMWwxLjU5OC0uNzY5LS44My0xLjQzNnptNi4yNTMgMi4zMDZhLjc1Ljc1IDAgMDAtLjk0NC0uMjUybC0xLjgwOS44N2EuNzUuNzUgMCAwMC0uMjkzLjI1M0w0LjM4IDE0LjMyNmEuNzUuNzUgMCAxMDEuMjM4Ljg0OGwxLjg4MS0yLjc1djIuODI2YS43NS43NSAwIDAwMS41IDB2LTIuODI2bDEuODgxIDIuNzVhLjc1Ljc1IDAgMDAxLjIzOC0uODQ4bC0yLjY0NC0zLjg2M3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIFN0YXJyZWQgdG9waWNzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50b3BpY3MuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudG9waWNzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BpY3MgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCBkZXNjcmlwdGlvbn0gb2YgcGx1Z2lucy50b3BpY3MubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRpdGxlPVwiPCU9IGRlc2NyaXB0aW9uICU+XCI+PCU9IG5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwek02LjM3OSA1LjIyN0EuMjUuMjUgMCAwMDYgNS40NDJ2NS4xMTdhLjI1LjI1IDAgMDAuMzc5LjIxNGw0LjI2NC0yLjU1OWEuMjUuMjUgMCAwMDAtLjQyOEw2LjM3OSA1LjIyN3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLm11c2ljLm1vZGUgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMucHJvdmlkZXIpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4wMDIgMi43MjVhLjc1Ljc1IDAgMDEuNzk3LS42OTlDOC43OSAyLjQyIDEzLjU4IDcuMjEgMTMuOTc0IDEzLjIwMWEuNzUuNzUgMCAxMS0xLjQ5Ny4wOTggMTAuNTAyIDEwLjUwMiAwIDAwLTkuNzc2LTkuNzc2Ljc1Ljc1IDAgMDEtLjctLjc5OHpNMiAxM2ExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6bS44NC01Ljk1YS43NS43NSAwIDAwLS4xNzkgMS40ODljMi41MDkuMyA0LjUgMi4yOTEgNC44IDQuOGEuNzUuNzUgMCAxMDEuNDktLjE3OEE3LjAwMyA3LjAwMyAwIDAwMi44MzggNy4wNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEZyb20gPCU9IHBsdWdpbnMubXVzaWMucHJvdmlkZXIgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5tdXNpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMudHJhY2tzLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhY2tsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSA9IFwiXCIsIGFydGlzdCA9IFwiXCIsIGFydHdvcmsgPSBcIlwifSBvZiBwbHVnaW5zLm11c2ljLnRyYWNrcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LDwlPSBhcnR3b3JrICU+XCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgYWx0PVwiXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPjwlPSBuYW1lICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFydGlzdFwiPjwlPSBhcnRpc3QgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY5LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg2LjVhLjI1LjI1IDAgMDAuMjUtLjI1di05LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0wIDEuNzVDMCAuNzg0Ljc4NCAwIDEuNzUgMGgxMi41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY5LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxM0g4LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxMyAxNC41NDNWMTNIMS43NUExLjc1IDEuNzUgMCAwMTAgMTEuMjV2LTkuNXpNOSA5YTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS01LjI1YS43NS43NSAwIDAwLTEuNSAwdjIuNWEuNzUuNzUgMCAwMDEuNSAwdi0yLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIE5vIG11c2ljIHJlY2VudGx5IGxpc3RlbmVkXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNDU2LjczNGExLjc1IDEuNzUgMCAwMTIuODI2LjUwNGwuNjEzIDEuMzI3YTMuMDgxIDMuMDgxIDAgMDAyLjA4NCAxLjcwN2wyLjQ1NC41ODRjMS4zMzIuMzE3IDEuOCAxLjk3Mi44MzIgMi45NEwxMS4wNiAxMGwzLjcyIDMuNzJhLjc1Ljc1IDAgMTEtMS4wNjEgMS4wNkwxMCAxMS4wNmwtMi4yMDQgMi4yMDVjLS45NjguOTY4LTIuNjIzLjUtMi45NC0uODMybC0uNTg0LTIuNDU0YTMuMDgxIDMuMDgxIDAgMDAtMS43MDctMi4wODRsLTEuMzI3LS42MTNhMS43NSAxLjc1IDAgMDEtLjUwNC0yLjgyNkw0LjQ1Ni43MzR6TTUuOTIgMS44NjZhLjI1LjI1IDAgMDAtLjQwNC0uMDcyTDEuNzk0IDUuNTE2YS4yNS4yNSAwIDAwLjA3Mi40MDRsMS4zMjguNjEzQTQuNTgyIDQuNTgyIDAgMDE1LjczIDkuNjNsLjU4NCAyLjQ1NGEuMjUuMjUgMCAwMC40Mi4xMmw1LjQ3LTUuNDdhLjI1LjI1IDAgMDAtLjEyLS40Mkw5LjYzIDUuNzNhNC41ODEgNC41ODEgMCAwMS0zLjA5OC0yLjUzN0w1LjkyIDEuODY2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgUmVjZW50IGFydGljbGVzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnBvc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnBvc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLnBvc3RzLnNvdXJjZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5saXN0Lmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHt0aXRsZSwgZGF0ZX0gb2YgcGx1Z2lucy5wb3N0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHBvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDBhLjc1Ljc1IDAgMDEuNzUuNzVWMmg1Vi43NWEuNzUuNzUgMCAwMTEuNSAwVjJoMS4yNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djEwLjVBMS43NSAxLjc1IDAgMDExMy4yNSAxNkgyLjc1QTEuNzUgMS43NSAwIDAxMSAxNC4yNVYzLjc1QzEgMi43ODQgMS43ODQgMiAyLjc1IDJINFYuNzVBLjc1Ljc1IDAgMDE0Ljc1IDB6bTAgMy41aDguNWEuMjUuMjUgMCAwMS4yNS4yNVY2aC0xMVYzLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgyem0tMi4yNSA0djYuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMC41YS4yNS4yNSAwIDAwLjI1LS4yNVY3LjVoLTExelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPjwlPSBkYXRlICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPjwlPSB0aXRsZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyByZWNlbnQgcG9zdHNcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnR3ZWV0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNzMuNSAyMjIuM1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGQ9XCJNMjczLjUgMjYuM2ExMDkuNzcgMTA5Ljc3IDAgMCAxLTMyLjIgOC44IDU2LjA3IDU2LjA3IDAgMCAwIDI0LjctMzEgMTEzLjM5IDExMy4zOSAwIDAgMS0zNS43IDEzLjYgNTYuMSA1Ni4xIDAgMCAwLTk3IDM4LjQgNTQgNTQgMCAwIDAgMS41IDEyLjhBMTU5LjY4IDE1OS42OCAwIDAgMSAxOS4xIDEwLjNhNTYuMTIgNTYuMTIgMCAwIDAgMTcuNCA3NC45IDU2LjA2IDU2LjA2IDAgMCAxLTI1LjQtN3YuN2E1Ni4xMSA1Ni4xMSAwIDAgMCA0NSA1NSA1NS42NSA1NS42NSAwIDAgMS0xNC44IDIgNjIuMzkgNjIuMzkgMCAwIDEtMTAuNi0xIDU2LjI0IDU2LjI0IDAgMCAwIDUyLjQgMzkgMTEyLjg3IDExMi44NyAwIDAgMS02OS43IDI0IDExOSAxMTkgMCAwIDEtMTMuNC0uOCAxNTguODMgMTU4LjgzIDAgMCAwIDg2IDI1LjJjMTAzLjIgMCAxNTkuNi04NS41IDE1OS42LTE1OS42IDAtMi40LS4xLTQuOS0uMi03LjNhMTE0LjI1IDExNC4yNSAwIDAgMCAyOC4xLTI5LjFcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIExhdGVzdCB0d2VldHNcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSAhcGx1Z2lucy50d2VldHMucHJvZmlsZSA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50d2VldHMucHJvZmlsZT8udmVyaWZpZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOS41ODUuNTJhMi42NzggMi42NzggMCAwMC0zLjE3IDBsLS45MjguNjhhMS4xNzggMS4xNzggMCAwMS0uNTE4LjIxNUwzLjgzIDEuNTlhMi42NzggMi42NzggMCAwMC0yLjI0IDIuMjRsLS4xNzUgMS4xNGExLjE3OCAxLjE3OCAwIDAxLS4yMTUuNTE4bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAwIDMuMTdsLjY4LjkyOGMuMTEzLjE1My4xODYuMzMuMjE1LjUxOGwuMTc1IDEuMTM4YTIuNjc4IDIuNjc4IDAgMDAyLjI0IDIuMjRsMS4xMzguMTc1Yy4xODcuMDI5LjM2NS4xMDIuNTE4LjIxNWwuOTI4LjY4YTIuNjc4IDIuNjc4IDAgMDAzLjE3IDBsLjkyOC0uNjhhMS4xNyAxLjE3IDAgMDEuNTE4LS4yMTVsMS4xMzgtLjE3NWEyLjY3OCAyLjY3OCAwIDAwMi4yNDEtMi4yNDFsLjE3NS0xLjEzOGMuMDI5LS4xODcuMTAyLS4zNjUuMjE1LS41MThsLjY4LS45MjhhMi42NzggMi42NzggMCAwMDAtMy4xN2wtLjY4LS45MjhhMS4xNzkgMS4xNzkgMCAwMS0uMjE1LS41MThMMTQuNDEgMy44M2EyLjY3OCAyLjY3OCAwIDAwLTIuMjQtMi4yNGwtMS4xMzgtLjE3NWExLjE3OSAxLjE3OSAwIDAxLS41MTgtLjIxNUw5LjU4NS41MnpNNy4zMDMgMS43MjhjLjQxNS0uMzA1Ljk4LS4zMDUgMS4zOTQgMGwuOTI4LjY4Yy4zNDguMjU2Ljc1Mi40MjMgMS4xOC40ODlsMS4xMzYuMTc0Yy41MS4wNzguOTA5LjQ3OC45ODcuOTg3bC4xNzQgMS4xMzdjLjA2Ni40MjcuMjMzLjgzMS40ODkgMS4xOGwuNjguOTI3Yy4zMDUuNDE1LjMwNS45OCAwIDEuMzk0bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OSAxLjE4bC0uMTc0IDEuMTM2YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny45ODdsLTEuMTM3LjE3NGEyLjY3OCAyLjY3OCAwIDAwLTEuMTguNDg5bC0uOTI3LjY4Yy0uNDE1LjMwNS0uOTguMzA1LTEuMzk0IDBsLS45MjgtLjY4YTIuNjc4IDIuNjc4IDAgMDAtMS4xOC0uNDg5bC0xLjEzNi0uMTc0YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny0uOTg3bC0uMTc0LTEuMTM3YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OS0xLjE4bC0uNjgtLjkyN2ExLjE3OCAxLjE3OCAwIDAxMC0xLjM5NGwuNjgtLjkyOGMuMjU2LS4zNDguNDIzLS43NTIuNDg5LTEuMThsLjE3NC0xLjEzNmMuMDc4LS41MS40NzgtLjkwOS45ODctLjk4N2wxLjEzNy0uMTc0YTIuNjc4IDIuNjc4IDAgMDAxLjE4LS40ODlsLjkyNy0uNjh6TTExLjI4IDYuNzhhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDcgOC45NCA1Ljc4IDcuNzJhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2bDEuNzUgMS43NWEuNzUuNzUgMCAwMDEuMDYgMGwzLjc1LTMuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDIuMzdhNi41IDYuNSAwIDAwNi41IDExLjI2Ljc1Ljc1IDAgMDEuNzUgMS4yOTggOCA4IDAgMTEzLjk5NC03LjI3My43NTQuNzU0IDAgMDEuMDA2LjA5NXYxLjVhMi43NSAyLjc1IDAgMDEtNS4wNzIgMS40NzVBNCA0IDAgMTExMiA4djEuMjVhMS4yNSAxLjI1IDAgMDAyLjUgMFY3Ljg2N2E2LjUgNi41IDAgMDAtOS43NS01LjQ5NlYyLjM3ek0xMC41IDhhMi41IDIuNSAwIDEwLTUgMCAyLjUgMi41IDAgMDA1IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy51c2VybmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIXBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA6IHR3aXR0ZXIgdXNlcm5hbWUgbm90IGZvdW5kXHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmxpc3QubGVuZ3RoKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGV4dCwgY3JlYXRlZF9hdH0gb2YgcGx1Z2lucy50d2VldHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlLSB0ZXh0ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+PCU9IG5ldyBEYXRlKGNyZWF0ZWRfYXQpLnRvR01UU3RyaW5nKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIE5vIHJlY2VudCB0d2VldHNcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNzUgMGEuNzUuNzUgMCAwMS43NS43NVYyaDVWLjc1YS43NS43NSAwIDAxMS41IDBWMmgxLjI1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTAuNUExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjMuNzVDMSAyLjc4NCAxLjc4NCAyIDIuNzUgMkg0Vi43NUEuNzUuNzUgMCAwMTQuNzUgMHptMCAzLjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1VjZoLTExVjMuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDJ6bS0yLjI1IDR2Ni43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjcuNWgtMTF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb250cmlidXRpb25zIGNhbGVuZGFyXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLmlzb2NhbGVuZGFyLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuOTk4IDE0LjVjMi44MzIgMCA1LTEuOTggNS00LjUgMC0xLjQ2My0uNjgtMi4xOS0xLjg3OS0zLjM4M2wtLjAzNi0uMDM3Yy0xLjAxMy0xLjAwOC0yLjMtMi4yOS0yLjgzNC00LjQzNC0uMzIyLjI1Ni0uNjMuNTc5LS44NjQuOTUzLS40MzIuNjk2LS42MjEgMS41OC0uMDQ2IDIuNzMuNDczLjk0Ny42NyAyLjI4NC0uMjc4IDMuMjMyLS42MS42MS0xLjU0NS44NC0yLjQwMy42MzNhMi43ODggMi43ODggMCAwMS0xLjQzNi0uODc0QTMuMjEgMy4yMSAwIDAwMyAxMGMwIDIuNTMgMi4xNjQgNC41IDQuOTk4IDQuNXpNOS41MzMuNzUzQzkuNDk2LjM0IDkuMTYuMDA5IDguNzcuMTQ2IDcuMDM1Ljc1IDQuMzQgMy4xODcgNS45OTcgNi41Yy4zNDQuNjg5LjI4NSAxLjIxOC4wMDMgMS41LS40MTkuNDE5LTEuNTQuNDg3LTIuMDQtLjgzMi0uMTczLS40NTQtLjY1OS0uNzYyLTEuMDM1LS40NTRDMi4wMzYgNy40NCAxLjUgOC43MDIgMS41IDEwYzAgMy41MTIgMi45OTggNiA2LjQ5OCA2czYuNS0yLjUgNi41LTZjMC0yLjEzNy0xLjEyOC0zLjI2LTIuMzEyLTQuNDM4LTEuMTktMS4xODQtMi40MzYtMi40MjUtMi42NTMtNC44MXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgc3RyZWFrIDwlPSBwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50ICU+IGRheTwlPSBzKHBsdWdpbnMuaXNvY2FsZW5kYXIuc3RyZWFrLmN1cnJlbnQpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIH48JT0gcGx1Z2lucy5pc29jYWxlbmRhci5hdmVyYWdlICU+IGNvbW1pdHMgcGVyIGRheVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmlzb2NhbGVuZGFyLnN2ZykgeyAlPlxyXG4gICAgICAgICAgICA8JS0gcGx1Z2lucy5pc29jYWxlbmRhci5zdmcgJT5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbiAgICAgICAgPGZvb3Rlcj5cclxuICAgICAgICAgIDxzcGFuPlRoZXNlIG1ldHJpY3MgPCU9ICFjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCJkb2VzIG5vdCBpbmNsdWRlIGFsbFwiIDogXCJpbmNsdWRlc1wiICU+IHByaXZhdGUgY29udHJpYnV0aW9uczwlIGlmICgoY29uZmlnLnRpbWV6b25lPy5uYW1lKSYmKCFjb25maWcudGltZXpvbmU/LmVycm9yKSkgeyAlPiwgdGltZXpvbmUgPCU9IGNvbmZpZy50aW1lem9uZS5uYW1lICU+PCUgfSAlPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPkxhc3QgdXBkYXRlZCA8JT0gbmV3IERhdGUoKS50b0dNVFN0cmluZygpICU+IHdpdGggbG93bGlnaHRlci9tZXRyaWNzQDwlPSBtZXRhLnZlcnNpb24gJT48L3NwYW4+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2ZvcmVpZ25PYmplY3Q+XHJcbjwvc3ZnPiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBBcHBsZSBDb2xvciBFbW9qaSwgU2Vnb2UgVUkgRW1vamk7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBIZWFkZXJzICovXHJcbiAgaDEsIGgyLCBoMyB7XHJcbiAgICBtYXJnaW46IDhweCAwIDJweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBjb2xvcjogIzAzNjZkNjtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgfVxyXG4gIGgxIHN2ZywgaDIgc3ZnLCBoMyBzdmcge1xyXG4gICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gIH1cclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgaDIge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gIH1cclxuICBoMyB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuLyogRmllbGRzICovXHJcbiAgc2VjdGlvbiA+IC5maWVsZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG4gIC5maWVsZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDJweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfVxyXG4gIC5maWVsZCBzdmcge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZpbGw6ICM5NTlkYTU7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHtcclxuICAgIGNvbG9yOiAjY2IyNDMxO1xyXG4gIH1cclxuICAuZmllbGQuZXJyb3Igc3ZnIHtcclxuICAgIGZpbGw6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogRGlzcGxheXMgKi9cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG4gIC5yb3cgc2VjdGlvbiB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLmNvbHVtbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5jZW50ZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbC13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcbiAgLmhvcml6b250YWwgLmZpZWxkIHtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuICAubm8td3JhcCB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmlsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4vKiBVc2VyIGF2YXRhciAqL1xyXG4gIC5hdmF0YXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogQ29tbWl0IGNhbGVuZGFyICovXHJcbiAgLmNhbGVuZGFyLmZpZWxkIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xyXG4gIH1cclxuICAuY2FsZW5kYXIgLmRheSB7XHJcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNywzMSwzNSwuMDQpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XHJcbiAgfVxyXG5cclxuLyogUHJvZ3Jlc3MgYmFycyAqL1xyXG4gIHN2Zy5iYXIge1xyXG4gICAgbWFyZ2luOiA0cHggMDtcclxuICB9XHJcblxyXG4vKiBMYW5ndWFnZSAqL1xyXG4gIC5maWVsZC5sYW5ndWFnZSB7XHJcbiAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgZmxleC1ncm93OiAwO1xyXG4gIH1cclxuXHJcbiAgLmZpZWxkLmxhbmd1YWdlIHNtYWxsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4vKiBMYWJlbHMgKi9cclxuICAubGFiZWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YxRjhGRjtcclxuICAgIGNvbG9yOiAjMDM2NkQ2O1xyXG4gICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgbWFyZ2luOiAycHggNXB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxuICAubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RERUVGRjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4vKiBIYWJpdHMgKi9cclxuICAuaGFiaXRzIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMzdweDtcclxuICB9XHJcblxyXG4vKiBGb290ZXIgKi9cclxuICBmb290ZXIge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgY29sb3I6ICM2NjY2NjY7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcblxyXG4vKiBTcGVlZCB0ZXN0IGNhdGVnb3JpZXMgKi9cclxuICAuY2F0ZWdvcmllcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gIH1cclxuICAuY2F0ZWdvcmllIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuXHJcbi8qIEdhdWdlcyAqL1xyXG4gIC5nYXVnZSB7XHJcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XHJcbiAgICBmaWxsOiBub25lO1xyXG4gIH1cclxuICAuZ2F1Z2UuaGlnaCB7XHJcbiAgICBjb2xvcjogIzE4YjY2MztcclxuICB9XHJcbiAgLmdhdWdlLmF2ZXJhZ2Uge1xyXG4gICAgY29sb3I6ICNmYjhjMDA7XHJcbiAgfVxyXG4gIC5nYXVnZS5sb3cge1xyXG4gICAgY29sb3I6ICNlNTM5MzU7XHJcbiAgfVxyXG4gIC5nYXVnZS1iYXNlLCAuZ2F1Z2UtYXJjIHtcclxuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAxMDtcclxuICB9XHJcbiAgLmdhdWdlLWJhc2Uge1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC4yO1xyXG4gIH1cclxuICAuZ2F1Z2UtYXJjIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcclxuICAgIGFuaW1hdGlvbi1kZWxheTogMjUwbXM7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1nYXVnZSAxcyBlYXNlIGZvcndhcmRzXHJcbiAgfVxyXG4gIC5nYXVnZSB0ZXh0IHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHJcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcbiAgLmdhdWdlIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZ2F1Z2Uge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAgMzI5O1xyXG4gICAgfVxyXG4gIH1cclxuICAuYXVkaXRzIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICB9XHJcbiAgLmF1ZGl0LnRleHQge1xyXG4gICAgbWluLXdpZHRoOiA0MnB4O1xyXG4gIH1cclxuICAuYXVkaXQgc3ZnIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgLmF1ZGl0LmhpZ2gge1xyXG4gICAgZmlsbDogIzE4YjY2MztcclxuICB9XHJcbiAgLmF1ZGl0LmF2ZXJhZ2Uge1xyXG4gICAgZmlsbDogI2ZiOGMwMDtcclxuICB9XHJcbiAgLmF1ZGl0LmxvdyB7XHJcbiAgICBmaWxsOiAjZTUzOTM1O1xyXG4gIH1cclxuXHJcbi8qIE11c2ljIHBsdWdpbiAqL1xyXG4gIC50cmFja2xpc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyOHB4O1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIC50cmFjayB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAudHJhY2sgaW1nIHtcclxuICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xyXG4gIH1cclxuICAudHJhY2sgLm5hbWUge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgfVxyXG4gIC50cmFjayAuYXJ0aXN0IHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIFBvc3RzIHBsdWdpbiAqL1xyXG4gIC5wb3N0IHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB3aWR0aDogNDAwcHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgbWF4LWhlaWdodDogNDBweDs7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyAuZGF0ZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMXB4O1xyXG4gIH1cclxuXHJcbi8qIFRvcGljcyAqL1xyXG4gIC50b3BpY3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcblxyXG4vKiBUd2VldHMgKi9cclxuICAudHdlZXQge1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgbWFyZ2luLXRvcDogNnB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjNzc3Nzc3QjI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICB9XHJcblxyXG4gIC50d2VldCAubWVudGlvbiwgLnR3ZWV0IC5saW5rLCAudHdlZXQgLmhhc2h0YWcge1xyXG4gICAgY29sb3I6ICMwMzY2ZDY7XHJcbiAgfVxyXG5cclxuICAudHdlZXQgLmRhdGUge1xyXG4gICAgbWFyZ2luOiA2cHggMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIENoYXJ0cyBhbmQgZ3JhcGhzICovXHJcbiAgLmNoYXJ0IHtcclxuICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gIH1cclxuXHJcbiAgLmNoYXJ0LWJhcnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiA4cHggMCA0cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuZW50cnkge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzIC5lbnRyeSAudmFsdWUge1xyXG4gICAgZm9udC1zaXplOiA5cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuYmFyIHtcclxuICAgIHdpZHRoOiA3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmcpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogc3BhY2UtYmV0d2VlbjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzLmhvcml6b250YWwgLmVudHJ5IHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5lbnRyeSAubmFtZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgbWluLXdpZHRoOiAzMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5iYXIge1xyXG4gICAgaGVpZ2h0OiA3cHg7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogRmFkZSBhbmltYXRpb24gKi9cclxuICAuYWYge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uLWZhZGUgMXMgZWFzZSBmb3J3YXJkcztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZmFkZSB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4vKiBDYWtlIGRheSAqL1xyXG4gIC5jYWtlZGF5LCAuY2FrZWRheSBzdmcge1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tcmFpbmJvdyAxLjJzO1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwcygxKTtcclxuICB9XHJcblxyXG4vKiBSYWluYm93IGFuaW1hdGlvbiAqL1xyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLXJhaW5ib3cge1xyXG4gICAgMCUsIDEwMCV7IGNvbG9yOiAjN0YwMEZGOyBmaWxsOiAjN0YwMEZGOyB9XHJcbiAgICAxNCUgeyBjb2xvcjogI0E5MzNGRjsgZmlsbDogI0E5MzNGRjsgfVxyXG4gICAgMjkleyBjb2xvcjogIzAwN0ZGRjsgZmlsbDogIzAwN0ZGRjsgfVxyXG4gICAgNDMleyBjb2xvcjogIzAwRkY3RjsgZmlsbDogIzAwRkY3RjsgfVxyXG5cdFx0NTcleyBjb2xvcjogI0ZGRkYwMDsgZmlsbDogI0ZGRkYwMDsgfVxyXG5cdFx0NzEleyBjb2xvcjogI0ZGN0YwMDsgZmlsbDogI0ZGN0YwMDsgfVxyXG5cdFx0ODYleyBjb2xvcjogI0ZGMDAwMDsgZmlsbDogI0ZGMDAwMDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiIifSwidGVybWluYWwiOnsicXVlcnkiOiJxdWVyeSBNZXRyaWNzIHtcclxuICB1c2VyKGxvZ2luOiAkbG9naW4pIHtcclxuICAgIGRhdGFiYXNlSWRcclxuICAgIG5hbWVcclxuICAgIGxvZ2luXHJcbiAgICBjcmVhdGVkQXRcclxuICAgIGF2YXRhclVybFxyXG4gICAgd2Vic2l0ZVVybFxyXG4gICAgaXNIaXJlYWJsZVxyXG4gICAgdHdpdHRlclVzZXJuYW1lXHJcbiAgICBnaXN0cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllcyhsYXN0OiAkcmVwb3NpdG9yaWVzLCBpc0Zvcms6IGZhbHNlLCBvd25lckFmZmlsaWF0aW9uczogT1dORVIpIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgICB0b3RhbERpc2tVc2FnZVxyXG4gICAgICBub2RlcyB7XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHdhdGNoZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhcmdhemVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhbmd1YWdlcyhmaXJzdDogNCkge1xyXG4gICAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgICBzaXplXHJcbiAgICAgICAgICAgIG5vZGUge1xyXG4gICAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19vcGVuOiBpc3N1ZXMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19jbG9zZWQ6IGlzc3VlcyhzdGF0ZXM6IENMT1NFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9vcGVuOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX21lcmdlZDogcHVsbFJlcXVlc3RzKHN0YXRlczogTUVSR0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlbGVhc2VzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9ya0NvdW50XHJcbiAgICAgICAgbGljZW5zZUluZm8ge1xyXG4gICAgICAgICAgc3BkeElkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBwYWNrYWdlcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHN0YXJyZWRSZXBvc2l0b3JpZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICB3YXRjaGluZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzU3BvbnNvciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzTWFpbnRhaW5lciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uIHtcclxuICAgICAgdG90YWxSZXBvc2l0b3JpZXNXaXRoQ29udHJpYnV0ZWRDb21taXRzXHJcbiAgICAgIHRvdGFsQ29tbWl0Q29udHJpYnV0aW9uc1xyXG4gICAgICByZXN0cmljdGVkQ29udHJpYnV0aW9uc0NvdW50XHJcbiAgICAgIHRvdGFsSXNzdWVDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zXHJcbiAgICB9XHJcbiAgICBjYWxlbmRhcjpjb250cmlidXRpb25zQ29sbGVjdGlvbihmcm9tOiAkY2FsZW5kYXIuZnJvbSwgdG86ICRjYWxlbmRhci50bykge1xyXG4gICAgICBjb250cmlidXRpb25DYWxlbmRhciB7XHJcbiAgICAgICAgd2Vla3Mge1xyXG4gICAgICAgICAgY29udHJpYnV0aW9uRGF5cyB7XHJcbiAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXNDb250cmlidXRlZFRvIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93ZXJzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93aW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgaXNzdWVDb21tZW50cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIG9yZ2FuaXphdGlvbnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImltYWdlIjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0ODBcIiBoZWlnaHQ9XCI8JT0gNDhcclxuICArICghIWJhc2UuaGVhZGVyKSo2MlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMTA4XHJcbiAgKyAoISFiYXNlLmFjdGl2aXR5KSoxMDhcclxuICArICghIWJhc2UuY29tbXVuaXR5KSo5NFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjE0MlxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLnRyYWZmaWMpKSoxOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLmZvbGxvd3VwKSkqMTAyXHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKighIXBsdWdpbnMubGluZXMpKSozNFxyXG4gICsgKCEhcGx1Z2lucy5wYWdlc3BlZWQpKjExMCArIChwbHVnaW5zLnBhZ2VzcGVlZD8uZGV0YWlsZWQgPz8gMCkqNioxNlxyXG4gICsgKCEhcGx1Z2lucy5sYW5ndWFnZXMpKjEyNFxyXG4gICsgKCEhcGx1Z2lucy5naXN0cykqNThcclxuICArIE1hdGgubWF4KDAsICgoKCEhYmFzZS5tZXRhZGF0YSkrKCEhYmFzZS5oZWFkZXIpKygoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSsoISFiYXNlLnJlcG9zaXRvcmllcykrKCEhcGx1Z2lucy5wYWdlc3BlZWQpKyghIXBsdWdpbnMubGFuZ3VhZ2VzKSsoISFwbHVnaW5zLmdpc3RzKSktMSkpKjIwXHJcbiU+XCI+XHJcbiAgPCVcclxuICAgIG1ldGEuJCA9IGA8c3BhbiBjbGFzcz1cInBzMS1wYXRoXCI+JHtgJHt1c2VyLmxvZ2lufWAudG9Mb2NhbGVMb3dlckNhc2UoKX1AbWV0cmljczwvc3Bhbj46PHNwYW4gY2xhc3M9XCJwczEtbG9jYXRpb25cIj5+PC9zcGFuPiR7Y29tcHV0ZWQudG9rZW4uc2NvcGVzLmluY2x1ZGVzKFwicmVwb1wiKSA/IFwiI1wiIDogXCIkXCJ9YFxyXG4gICAgbWV0YS5hbmltYXRpb25zID0gIW1ldGEucGxhY2Vob2xkZXIgPyB7c3RkaW46LjE2LCBzdGRvdXQ6LjI4LCBsZW5ndGg6KDIrT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoK09iamVjdC5rZXlzKHBsdWdpbnMpLmxlbmd0aCl9IDoge3N0ZGluOjAsIHN0ZG91dDowLCBsZW5ndGg6MH1cclxuICAlPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gICAgICAuc3RkaW4sIC5zdGRvdXQge1xyXG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogPCU9IG1ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgLnN0ZG91dCB7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA8JT0gbWV0YS5hbmltYXRpb25zLnN0ZG91dCAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgPCUgZm9yIChsZXQgaSA9IDAsIGQgPSAwOyBpIDwgbWV0YS5hbmltYXRpb25zLmxlbmd0aDsgaSsrLCBkKz1tZXRhLmFuaW1hdGlvbnMuc3RkaW4rbWV0YS5hbmltYXRpb25zLnN0ZG91dCkgeyAlPlxyXG4gICAgICAgIC5zdGRpbjpudGgtb2YtdHlwZSg8JT0gaSsxICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkICU+cztcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN0ZG91dDpudGgtb2YtdHlwZSg8JT0gaSsyICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkK21ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwlIGlmIChpID09PSBtZXRhLmFuaW1hdGlvbnMubGVuZ3RoLTEpIHsgJT5cclxuICAgICAgICAgIGZvb3RlciB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogPCU9IGQgJT5zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilIA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilqE8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gZXhpdFwiPuKclTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbjxwcmU+PCUjIC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAlPlxyXG48ZGl2IGNsYXNzPVwiYmFubmVyXCI+PCUjIC0lPlxyXG5HaXRIdWIgbWV0cmljcyBnZW5lcmF0b3IgPCU9IG1ldGEudmVyc2lvbiAlPlxyXG5UaGVzZSBnZW5lcmF0ZWQgbWV0cmljcyBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk9cclxuV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LlxyXG5cclxuTGFzdCBnZW5lcmF0ZWQ6IDwlPSBuZXcgRGF0ZSgpLnRvR01UU3RyaW5nKCkgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IHdob2FtaTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPGI+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9iPiByZWdpc3RlcmVkPTwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24ubWF0Y2goL14uKz8gW3ltXS8pWzBdLnJlcGxhY2UoLyAvZywgXCJcIikgJT4sIHVpZD08JT0gYCR7dXNlci5kYXRhYmFzZUlkfWAuc3Vic3RyKC00KSAlPiwgZ2lkPTwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPlxyXG4gIGNvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+IDxiPjwlIGZvciAoY29uc3QgW3gsIHtjb2xvcn1dIG9mIE9iamVjdC5lbnRyaWVzKGNvbXB1dGVkLmNhbGVuZGFyKSkgeyAtJT48c3BhbiBzdHlsZT1cImNvbG9yOjwlPSBjb2xvciAlPlwiPiM8L3NwYW4+PCUgfSAlPjwvYj5cclxuICBmb2xsb3dlZCBieSA8Yj48JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPjwvYj4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpfHwoYmFzZS5jb21tdW5pdHkpKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gZ2l0IHN0YXR1czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKGJhc2UuYWN0aXZpdHkpIHsgLSU+XHJcbjxiPlJlY2VudCBhY3Rpdml0eTwvYj5cclxuICA8Yj48JT0gYCR7Y29tcHV0ZWQuY29tbWl0c31gLnBhZFN0YXJ0KDUpICU+PC9iPiBjb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zfWAucGFkU3RhcnQoNSkgJT48L2I+IHB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gcHVsbCByZXF1ZXN0PCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWU8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICA8Yj48JT0gYCR7dXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWUgY29tbWVudDwlPSBzKHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50KSAlPlxyXG48JSB9IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpJiYoYmFzZS5jb21tdW5pdHkpKSB7IC0lPlxyXG5cclxuPCUgfSAtJT5cclxuPCUgaWYgKGJhc2UuY29tbXVuaXR5KSB7IC0lPlxyXG48Yj5UcmFja2VkIGFjdGl2aXR5PC9iPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmZvbGxvd2luZy50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHVzZXI8JT0gcyh1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50KSAlPiBmb2xsb3dlZFxyXG4gIDxiPjwlPSBgJHt1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzcG9uc29yZWRcclxuICA8Yj48JT0gYCR7dXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzdGFycmVkXHJcbiAgPGI+PCU9IGAke3VzZXIud2F0Y2hpbmcudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPiB3YXRjaGVkXHJcbjwlIH0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBscyAtbGggZ2l0aHViL3JlcG9zaXRvcmllczwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+IC0gPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPlxyXG48JSBpZiAocGx1Z2lucy50cmFmZmljKSB7IGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgLSU+XHJcbi0tLS0gIDxiPiAgICAgPC9iPiAgdmlld3MgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgdmlld3NcclxuPCUgfX0gLSU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuc3RhcmdhemVyc31gLnBhZFN0YXJ0KDUpICU+PC9iPiAgc3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3N9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHdhdGNoZXI8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMpICU+XHJcbmRyLXggIDxiPjwlPSBgJHt1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbjwlIGlmIChwbHVnaW5zLmZvbGxvd3VwKSB7IGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7IC0lPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIElTU1VFUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIFBVTExfUkVRVUVTVFMgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+KTwvc3Bhbj5cclxuPCUgfSBlbHNlIHsgLSU+XHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgSVNTVUVTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkfWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJTilIDilIAgY2xvc2VkXHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgUFVMTF9SRVFVRVNUU1xyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBtZXJnZWRcclxuPCUgfX0gLSU+XHJcbjwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgLSU+XHJcbmRyLXggICAgICAgICBMSUNFTlNFXHJcbi1yLS0gICAgICAgICDilJTilIDilIAgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+XHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxpbmVzKSB7IGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbjxzcGFuIGNsYXNzPVwiZGlmZiBlcnJvclwiPkBAIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yLm1lc3NhZ2UgJT4gQEA8L3NwYW4+PCUgfSBlbHNlIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmXCI+QEAgLTwlPSBwbHVnaW5zLmxpbmVzLmRlbGV0ZWQgJT4gKzwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IEBAPC9zcGFuPlxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmdpc3RzKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gbHMgLWxoIGdpdGh1Yi9naXN0czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHBsdWdpbnMuZ2lzdHMudG90YWxDb3VudCAlPiBnaXN0PCU9IHMocGx1Z2lucy5naXN0cy50b3RhbENvdW50KSAlPlxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzfWAucGFkU3RhcnQoNSkgJT48L2I+ICBzdGFyZ2F6ZXI8JT0gcyhwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmdpc3RzLmZvcmtzfWAucGFkU3RhcnQoNSkgJT48L2I+ICBmb3JrPCU9IHMocGx1Z2lucy5naXN0cy5mb3JrcykgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcykgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGxvY2FsZTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUjIC0lPlxyXG48JSB9IGVsc2UgeyBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZX0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7IC0lPlxyXG48Yj48JT0gbmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpLnBhZEVuZCgxMikgJT48L2I+IFs8JT0gXCIjXCIucmVwZWF0KE1hdGguY2VpbCgxMDAqdmFsdWUvNSkpLnBhZEVuZCgyMCkgJT5dIDwlPSAoMTAwKnZhbHVlKS50b0ZpeGVkKDIpLnBhZEVuZCg1KSAlPiVcclxuPCUgfX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBjdXJsIC08JT0gcGx1Z2lucy5wYWdlc3BlZWQuZGV0YWlsZWQgPyBcInZcIiA6IFwiXCIgJT5JIDwlPSB1c2VyLndlYnNpdGVVcmwgJT48L2Rpdj48JSMgLSU+XHJcbjxkaXYgY2xhc3M9XCJzdGRvdXRcIj48JSMgLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvcikgeyAtJT5cclxuPHNwYW4gY2xhc3M9XCJlcnJvclwiPjwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+PC9zcGFuPjwlIH0gZWxzZSB7IC0lPlxyXG48Yj5Vc2VyLUFnZW50PC9iPjogR29vZ2xlIFBhZ2VTcGVlZCBBUElcclxuPGI+TG9jYXRpb248L2I+OiA8JT0gdXNlci53ZWJzaXRlVXJsICU+XHJcbjwlIGZvciAoY29uc3Qge3Njb3JlLCB0aXRsZX0gb2YgcGx1Z2lucy5wYWdlc3BlZWQuc2NvcmVzKSB7IC0lPlxyXG48Yj48JT0gYFgtJHt0aXRsZS5yZXBsYWNlKC8gL2csIFwiLVwiKX1gICU+PC9iPjogPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gTWF0aC5yb3VuZChzY29yZSoxMDApIDogXCItXCIgJT4lXHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5kZXRhaWxlZCkgeyBmb3IgKGNvbnN0IHtuYW1lLCBzY29yZSwgc3VmZml4ID0gXCJcIiwgdGhyZXNob2xkfSBvZiBbXHJcbiAge25hbWU6XCJUaW1lIHRvIGludGVyYWN0aXZlXCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuaW50ZXJhY3RpdmUvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzMuNzg1LCA3LjNdfSxcclxuICB7bmFtZTpcIlNwZWVkIEluZGV4XCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3Muc3BlZWRJbmRleC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy4zODcsIDUuOF19LFxyXG4gIHtuYW1lOlwiVG90YWwgQmxvY2tpbmcgVGltZVwiLCBzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLnRvdGFsQmxvY2tpbmdUaW1lLzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsuMjg3LCAuNl19LFxyXG4gIHtuYW1lOlwiRmlyc3QgQ29udGVudGZ1bCBQYWludFwiLCBzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLmZpcnN0Q29udGVudGZ1bFBhaW50LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsyLjMzNiwgNF19LFxyXG4gIHtuYW1lOlwiTGFyZ2VzdCBDb250ZW50ZnVsIFBhaW50XCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MubGFyZ2VzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi41LCA0XX0sXHJcbiAge25hbWU6XCJDdW11bGF0aXZlIExheW91dCBTaGlmdFwiLCBzY29yZTorcGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5jdW11bGF0aXZlTGF5b3V0U2hpZnQsIHRocmVzaG9sZDpbLjEsIC4yNV19XHJcbl0pIHsgLSU+XHJcbjxiPiZndDsgPCU9IG5hbWUgJT48L2I+OiA8JT0gIU51bWJlci5pc05hTihzY29yZSkgPyBzY29yZSA6IFwiLVwiICU+PCU9IHN1ZmZpeCAlPiA8JSBpZiAoTnVtYmVyLmlzTmFOKHNjb3JlKSkgeyAlPjwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzBdKSB7ICU+KG9rICspPCUgfSBlbHNlIGlmIChzY29yZSA8PSB0aHJlc2hvbGRbMV0pIHsgJT4ob2spPCUgfSBlbHNlIHsgJT4oYmFkKTwlIH0gJT5cclxuPCUgfX19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKGJhc2UubWV0YWRhdGEpIHsgLSU+XHJcblxyXG48Zm9vdGVyPkNvbm5lY3Rpb24gcmVzZXQgYnkgPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+PC9mb290ZXI+PCUjIC0lPlxyXG48JSB9IC0lPjwvcHJlPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9yZWlnbk9iamVjdD5cclxuPC9zdmc+XHJcblxyXG4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogVGl0bGUgYmFyICovXHJcbiAgLmhlYWRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCA4cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjNTA0YjQ1IDAlLCMzYzNiMzcgMTAwJSk7XHJcbiAgfVxyXG5cclxuICAudGl0bGUge1xyXG4gICAgY29sb3I6ICNkNWQwY2U7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICBmb250LXNpemU6IDhweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjN2Q3ODcxIDAlLCAjNTk1OTUzIDEwMCUpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcclxuICB9XHJcblxyXG4gIC5idXR0b24uZXhpdCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2YzNzQ1OCAwJSwgI2RlNGMxMiAxMDAlKTtcclxuICB9XHJcblxyXG4vKiBUZXJtaW5hbCAqL1xyXG4gIHByZSwgLmJhbm5lciwgZm9vdGVyIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBjb2xvcjogI0RERERERDtcclxuICB9XHJcbiAgcHJlIHtcclxuICAgIGJhY2tncm91bmQ6ICM0MjA5MkI7XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIH1cclxuICAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgY29sb3I6ICNBRTlEQTc7XHJcbiAgfVxyXG5cclxuLyogUHJvbXB0ICovXHJcbiAgLnBzMS1wYXRoIHtcclxuICAgIGNvbG9yOiAjN0VEQTI5O1xyXG4gIH1cclxuXHJcbiAgLnBzMS1sb2NhdGlvbiB7XHJcbiAgICBjb2xvcjogIzQ4NzhjMDtcclxuICB9XHJcblxyXG4vKiBEaWZmICovXHJcbiAgLmRpZmYge1xyXG4gICAgY29sb3I6ICMzQTk2REQ7XHJcbiAgfVxyXG5cclxuLyogRXJyb3IgKi9cclxuICAuZXJyb3Ige1xyXG4gICAgY29sb3I6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogQW5pbWF0aW9ucyAqL1xyXG4gIC5zdGRpbiwgZm9vdGVyIHtcclxuICAgIHdpZHRoOiAwJTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZGluLWFuaW1hdGlvbjtcclxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbiAgfVxyXG5cclxuICAuc3Rkb3V0IHtcclxuICAgIG1heC1oZWlnaHQ6IDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBzdGRvdXQtYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3RkaW4tYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgd2lkdGg6IDAlOyB9XHJcbiAgICAxMDAlIHsgd2lkdGg6IDEwMCU7IH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3Rkb3V0LWFuaW1hdGlvbiB7XHJcbiAgICAwJSB7IG1heC1oZWlnaHQ6IDA7IH1cclxuICAgIDEwMCUgeyBtYXgtaGVpZ2h0OiAzNjBweDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiJAZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRCtrQUJJQUFBQUFjYkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBL2lBQUFBQndBQUFBY2lUdjBNVWRFUlVZQUFENjBBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFQMVFBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUErM0FBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCdzFvL1dZMjFoY0FBQUF5QUFBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxhQUFBQUVNQUFBQnNKdUVRaFdad1oyMEFBQVBRQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUHF3QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWdBQUFMM3dBQUZkUWcrSEVybWhsWVdRQUFBR1VBQUFBTmdBQUFEWVhtUnFzYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWZsb2JYUjRBQUFDWEFBQUFNRUFBQURZTDNRZHcyeHZZMkVBQUF1c0FBQUEwZ0FBQU5JdkJCbCtiV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSFJBZ1p1WVcxbEFBQTcvQUFBQWNRQUFBT1RBVnl1cG5CdmMzUUFBRDNBQUFBQTdBQUFBVWxrWDhUeWNISmxjQUFBQ3NRQUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW0xT3V3elJmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NVZi81UDVsQk9nRmh3QUFBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K1QvMDlZWGpBQVJWQUFDd0NwRkFjUUFBRUFBQUJvQUhBQUJRQXZBQUlBQWdBc0FGb0FqUUFBQUtZQkNnQUNBQUY0Mm1OZ1lUbkRPSUdCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobllPVmtnQUZtQmlRUUdCcm95SENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCbi9ReWlBSGphWXpuRE1KVUJDRmpPUUREalM0Yi9ERFlNbXhtTUdDWXpQbVhVWk14bTJNK3dpckVFaU84ekhHUFl3M0NIWVRkUVpES1FkWkxoS2NNNWhnT005eGs3R0dvWlZqR3NaL2dIMU1YRkVNQlFCc1FnbUFURUp4aUt3V3c1QmplR0NDQU53dk1ZcW9BOHJ2L2ZnT3B0R0pZemVqR21NYno0LzRUUmtxR2RRWldoSGdnbkFXMnBaL0FGa3ZzWW5CazIvdjhEWkxlQTVTWUQzVmJLNE1GZ0JOVHRCdFMvaVdFamt6VERPNFpwRE4vKy8vNy9tMEdFWVI4VE84TnVBQkZVUGtrQUFBQjQybU5nWUdCbWdHQVpCa1lHRVBBQjhoakJmQllHQXlETkFZUk1RRHFhb1k1aHcvLy9RSllDUXl5STlmL3gvMGYvTjBKMWdRRWpHd09jeXdqU3c4U0FDb0NTekN5c2JPd2NuRnpjUEx4OC9BS0NRc0lpb21MaUVwSlMwakt5Y3ZJS2lrcktLcXBxNmhxYVd0bzZ1bnI2Qm9aR3hpYW1adVlXbGxiV05yWjJEUFlPams3T0xxNXU3aDZlWHQ0K3ZuNytBWUZCd1NHaFllRVJrVkhSTWJGeDhRa01CRUVpQTAwQkFCVk5INWdBQUhqYXJWZHJXeHZIRlo3VkRZd0JBNUt3bTNYZFVjYWlManVTU2VzNHhGWWNzc3VpT0VwU2dYRzc2elR0TGhMdS9aTDBScS9wL2FMOG1iT2lmZXA4eTAvTGUyWldDampnUG4yZThrSG5uWmwzNWx6bnpFSkNTeElQb3pDV3N2ZEVMTzcycVBMZ1VVUzNYTG9SSjQvbDZHRkVoV2I2MGF5WUZZT0JPbkFiRFJJeGlVQnRqNFVqZ3NSdmthTkpKbzliVk5DcW9Sb3RLbW81UEM3VzZzSVBxQnJJSlBHelFpM3dzMll4b0VLd2Z5UnBYZ0VFNlpCSy9hTnhvVkRBTWRRNHZOcmcyZkZpM2ZHdlNrRGxqNnRPRld1S1JEODZqTWVyVHNFb0xHa3FlbFFQSXRaSHEwR1FFMXc1bFBSeG4wcHJqOFkzbklVZ0hJUlVDYU1HRlp2eDNqc1J5TzRva3RUdlkyb0xiTnBrdEJuSE1yTnNXSFFEVS9sSTBnYXZiekR6NDM0a0VZMVJLbW11SHlXWWtidzJ4K2cybzl1Sm04Ung3Q0phTkI4TVNPeEZKSHBNYm1Eczl1Z2FvMnU5OU1tU0dERGpTVmtjeFBFd2pjbng0amozSUpaRCtLUDh1RVZsTFdGQnFabkNwNW1nSDlHTThtbFcrY2dBdGlRdHFwaHdJeEp5bU0wYytKSVgyVjNYbXMrL1ZFekNBWlhYRzFnTTVFaU9vQ3ZiS0RjUm9kMG82YnZwWGh5cHVCRkwybm9RWWMzbHVPU210R2hHMDRYQUc0dUNUZk1zaHNwWEtCZmxwMVE0ZUV6T0FJYlF6SHFMTG1qSjFpN0NyWkk0a0h3Q2JTVXhVNUp0WSsyY0hsOVlGRUhvcnplbWhYTlJueTZrZVh1SzQ4R0VBSzRuTWh5cGxKTnFnaTFjVGdoSkYwWk9yRVJxVmJwdFZTeWNzNTJ1WTVkd1AzWHQ1S1pGYlJ3NlhwZ1h4UkJhWE5XSTExSEVsM1JXS0lRMFRMZGJ0S1JCbFpJdUJXL3dBUURJRUMzeGFBK2pKWk92WlJ5MFpJSWlFWU1CTk5OeWtNaFJJbWtaWVd2Uml1N3RSMWxwdUIxZnA0VkRkZFNpcXU3dFJyMEhkdEp0WUw1cTVtczZFeXZCd3loYldRbklTWDFhOXZqS29iVDg3QkwvTE9HSG5GWGtvdGpzUnhtSEQvNzZJMlFZYXBmV0d3cmJKdGkxNjd3Rk41bG5ZbmpTaGYxZHpKNU8xamtweklTb0tzUXJJSEZ2N0RpT3lWWmRpMHdVd3YySVZwUXZRMXBFK1Mwb2xCeEtzWWFaQkRiODU4b1ZSeXlMcXZCOW55TlJneUZZeTJxekhuM291YzhqYnF0d3R1NjE2TExPSEpaWEVIaVduOU5aa2VWek9pdXhkSFZXWm5sVlp4V1duOWZaRE10ck9wdGwrUVdkWFdEcGFUVkpCRlVTaEZ6Sk5qbnY4clZwa1Q2eHVEcGRmTTh1dGs0c3JrMFgzN2VMVWd1NjVKM25NUHY2Yitzck8zclN2d2I4azdEcmVmakhVc0UvbHRmaEg4c20vR081QnY5WWZoSCtzYndCLzFoK0NmNnhYSWQvTE50YWRremwzdFJRZXlXUjZINU9FcGpjNGphMnVYZzNOTjMwNkNZdTVndTRFMTE1VGxwVnVxbTR3eitUNGJMM1g1N2tPbHVzaEZ4NjlNSjZWbmJxWVlUdXlGNSs1VVI0enVQYzB2SkZZL21MT00xeXdzL3F4UDA5MHhhZUY2di9FdnkzZlU5dFpyZWNPdnQ2Ry9HQUEyZmJqMXVUYnJib0pkMiszR25SNW4ram9zSUhvTCtNRkluVnBtekxMdmNHaFBiK2FOUlZYVFNUQ0M4ZzJpK2VwazNIcWRjUTRUdG9ZcXQwR2JRUyttclQwTEo1NGRQRndEc2N0WldVblJIT3ZIdWFKdHYyUEtyZ051UnNTUWszbDYzZDZMZ2t5OUk5THEyVm40dDlicmx6Nk43SzdGQTdDVldDcCs5dHdtM1BQaytsSUJrcUt1TjF4WElwU0YzZ2hGdmUwM3RTbUlhSFFPMGd4d29hZHZqcG1ndU1GcHgzaGhKbG0yc0ZseGpKS0tQZ3lwODVGU2V5RVUwMm9vamZ2S1YrcWd1RjBKbkVRbUsydkpiSFFuVVFwbGVtU3pSbjFuZFVsNVZ5RnU5TlE4ak8yRWlUMkkvYXNvT1huYTNQSnlYYmxhZUNLazJNN3AvOGlMRkpQS3ZhODJ3cEx2bFhUMWdTVE5LVjhKZk8weTVQVXJ5Ri90SG1LTzdRNVNEcXUzaGNaU2R1Wnh0T0RmZjJ0Vk9yZTI3LzFLcC81dDVuN1FnMDNmR2VwWEJiMDExdkJOdTR4dURVdVZRa3RFMGIyQkVhbDdrKzEyemtVM3lwK2RaMUxsQ0Y2OVBHemJQbjcraHNEby9PWk12L1dOTGQvMWNWczAvY3h6b0tyZXBFdlRUaTNNNHVHdkFkYnhLVjF6RzY2elZVSHBmY20ya0k3aU1FZFh2dDhWbUNHMTV0MDIzYzhqZk9tZS9oT0tkV3BaZUEzOVQwTXNSYkhNVVE0Wlk3ZUlFbjBYcGJjMEhUVzRCZjFXTWhkZ0Q2QUE2RFhUMTJ6TXdlZ0psNXdKd3V3RDV6R0R4a0RvT3ZNWWZCMS9VeGVtRUFGQUU1QnNYNjJMRnpqNERzM0R2TWN4aDlnM2tHdmNzOGc3N0pQSU8reFRwRGdJUjFNa2haSjRNRDFzbGd3SnpYQVliTVlYRElIQWFQbWNQZzI4YXViYUR2R0xzWWZkZll4ZWg3eGk1RzN6ZDJNZnFCc1l2UkQ0MWRqSDVrN0dMMFk4UzRNMDNnVDh5SXRnRGZzL0Exd1BjNTZHYmtZL1JUdkxVNTUyY1dNdWZuaHVQa25GOWc4eXZUVTM5cFJtYkhrWVc4NDFjV012M1hPQ2NuL01aQ0p2eldRaWI4RHR4NzAvTitiMGFHL29HRlRQK0RoVXovSTNibWhEOVp5SVEvVzhpRXY0RDc2dlM4djVxUm9mL05RcWIvM1VLbS93TTdjOEkvTFdUQ3lFSW1mS2pIRjgwbkxsWGNjYWxRRFBIZkU5cGc3SHMwZTBqRjYvMmp5V1BkK2dUMW9BUDZBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkdGpCb1N6TXphSUdZMncxWUZEaUUySm01SUR3VEpnMDJTVll3ajh0cEQ0OERod1BMQVFabUJtNGduOWRwRDRNREdJTDRPNEVrZzh0R0ZjYU93SWdORGgwUklINkt5MFlORUg4SEJ3TkVnTUVsVW5xak9raG9GMGNEQXlPTFEwZHlDRXdDQkxZYk1TbXhpYkF5ODJudFlQemZ1b0dsZHlNVGc4dG0xaFEyQmhjWEFIMlZMZ2NBQUhqYVkyQWdBSXdna0dVbkF3UHpuUC9mL2hVaFdBenpnSEFLd3hTV3hRd01yQXJNY3hnWS90V3c3UHovaWpXWWVkUC9WLy9TWUhwWnpSZ2ZBL0ZGQU1tRUdZZ0FBQUFBaUFDSUFJZ0FpQURpQVBBQmtBSmlBd3dENmdRZ0JHUUVxZ1VvQlhBRm5nWElCZTRHTEFaMkJzQUhQQWU0Q0JJSWhBanFDVUFKdWdvZUNtQUtwZ3JrQ3lvTGFBdnlESjROQmcxc0RkZ09KZzdBRDB3UHhoQkNFSWdRM0JGMkVjWVNSQkxBRXdvVFloUXFGS3dWUUJXWUZlNFdRaGJDRjBRWHFoZ0FHRHdZZUJqQUdPb1pHQm5lR3B3YkJodkVIQ0ljcGgyRUhnd2VHQjRrSHJnZkNCL09JSElndWlGbUloSWlraU1tSTRRa0VpUm1KTllsVmlXNEpqb213aWIwSjNvbjJpZ29LTllwMkNyd0t6d3JhQ3VvQUFCNDJyVjhCM3djMWJYM3ZWTzNhRmZhMVJaSjI3UmR2YTU2VzNmWjZ1NnliRXR5bDhGTjJJQndFemJHZ0ttMkFadGdJTlFrTkdPRFFYVDRDQ1dVSkE4ZTVGRkNQZ0lFeUV2Z3ZjU0VJbzIrYysvTTdLNktiWDd2L1Q3L3JOblptVHV6OS9UL3VlZk1JQmJkS0gzR05mRTVLQm1sb2lxMEtEcS9QTitmemdrY2J1WXh4d2dNSnd6cVJFWmc0Zjh1RGNhSTRUQ3pWb3RaaE5oRjhNR2lidGhEYlJaTFNncENsaXBMWmFRa0srUnhwNlNtcEpwTmNGZERtVjZ3NXlLYmxiVUlmcTh2VkpZYUtTLzFzcWxldGp4VUZxbElaV0ZiWGxwaXN6dHdQWVpQcTBWa1UyRXIrSDFoUFJiOFhJR0xkZm1HWC9lUkQ3WXNueG5KWkE0RjJIZmZaWHhXY3pwLzU1MTh1dG5xWTk1OWx3MVlROW83NzlTRytCeFA4SWRwUVk4bnlEOFQ5UHpnNVFkKzJQK3R5Y0FKK0JaOGhCV05acjFPT29sYmRIcXpVV1NsZGRJYWdUT1lVbkdMZERJVk1makwwVytaUDNPbmtSRTUwWUxIZFN6RElveWJtNDdiMnhkSDdRZ2gzTXRoakFNdFBORE85Q0tHOFRPdGpxZ1ZEZ0lmTU9wTFBONFpOU2NuSTVUc1RIYllMSERIcEtDZ0lid1FXU1AyKzBKaE5sUmVnODAyRnliVWh1b3dNSUo1MXNJVU02Nk1EQTh1WWl6MlBiaW1adXBVK09OT3AyV00xTm5UMCszTS84bElHMDUzK1c3eHVlaG1kQlNOTXEremIzS25VL3hJTjVxQlVBcUxkT2h6UlA0eHFIYjBLKzU2YmdnMW9UYTBPTHBnVmkyajFYbHRETXN3elNrR1BhczFhaGlFdFdpZEtWbGtzY0F4REF2eVRjSTZYUllsTVp0dGJXNUdxTG10dWEyMUJXNHlaOGEwYUVOMVpWbXBOeEQwVy8wQmI4Q3M4UkR4V29SY0xGTDV3WTVNSHhHdk43NUxQNERnQ25Vbk5TWndiM3kzRkZkNFJlNENvTzNGNk5PRXhFL21jWjVVWng3VEpQMmc3dDFCanY4NitoejUrTFJEUHRpSWVYWHZtRFFRbFg2TXNyM2VjTmg3bW15azUxSk03alJXaHozeHZkaEpYQ0Vma3Y0YTM1TzJuejVOK01laWs2Tjd1UXcrRTgxQzdhZ1QzUk4xOEN5alFSYU1OWXZicXEwY2o2dXdsczhLTVl5V0J5M0pCQzNKMDJNTlJwcE9BVFFDOHdqM0lWN0w4SjFKV0F1bXcycVpQc1N5WXE4T2kyS0FCZFVwZ1QzRWlwM251b3Bjd1BiQ1NMYWpNK3JzNkdoc1JLaWpzNk96c2IyeEhXWTMweDNNOGp1RFdRYU5DOFRod2phN2JGZXljb1ZEWWF2TjdzWldpeEdMVmtYZDRGaGM4VXJJYWJzcEZDN0FaUkdRQnJtYUVhd1dteDN1WkM0dmk0VGdIaVptbjdlN3c1ZWQ3Zk5sKzR5MTErMXVidTljZE4rRjNtRFF1Mk9CZk5pYXBuVnU2ZHd6YzNaSDE4L1hlSU4zcmMzTzhyZi9jMk5lZHQ0Q1B0UGpleWh0ZHI3ZjdmWS82M2RuYkhYOHkraDBiVnl5ZUY4emM4TG44ZmllU1Y5UVNVNSs0M2VuMnBvV0ptTjdpc3UxZHQ2aW5kR2YrenpTZ1JtMW1WbUdKUDNYSTkzenB2cnlqTWs2NmIrSWpIaFVBanArQytoNE12S2lZalFGZGFBVjBXNndaUjR6L0NCaU5ZS0dGUVlSaDVESW9iNGtMQnF3VmlOcSsvU1k1ekVJQXVPc0ZxVFJDTDFJRUxLRjFxbFRTMHA4UG9TbWRreHRuOU5ZTXFVa1dsM3BLL1lWNVdRNTBzMHA4Q1BHa0pHWXNjeE52MDloR0ZkYVlpY2FqQ203UWVGeHdBZ2ozS0RZOVRDaUFQdkhYMkZreHB6RzErNmFNMGY5enp4anowaExUeHUreVVZLzJmVWpKVlBEWWZVL2t6ZzBuSENDRzVxVGNHYlE0YkRaN2NNdjJ1QXp6Y2JXV3hLSGpyeVhPSFJQNGluaU53NEJUemNBVCt0UkkvcDcwL0ZpVU93MFBVYTRFak9vRWJQTUxMK1Y1ZGhDekhOOHMyUHlVeG80MVNsN3ppeFFhZ2FDeHlEY21lVVl0ZytjcXRpckJaWE9hdEZnanVON0JSQ0duMjkxeUQ5VmNzN3hDSWJUWFZWc2ptalJXUzVDc1dzU0pOMEpEaHFobWRPQnlEcC94QitvRG9SMHhIenNjWmNjOHZ1SUZHMTJYRjRCTGt2eGI0Sm9WMTJkcjVBSW5FaTB2Q0pFeFVxc2hvaTFBak9mM213bFZ0RzhvYUlqSnpzSEI3TXlrN0tPRWErMUxGQ3lZVDdaNlM5eUw5cjdVTi9SampYTFZzNDdzdXFkdW9LNVpSZDJTVDl5USt1U3c3dUpNU3dwTEdndGpIUVdTcWNXYjRESUZ2UmMwbjBKK2ZEMkhsbHljOWZxMjZac3Zicno0UHlSM1BPbVJlWVhiY1loSVBvejVuWG1MeEREa2xDNXpQNGtFcmk2R1JLNEVEREt6SkJvaFJlUkE2Z1g5c0NSUkhVd0pnbnBBaXpSN1hpRXFzSE1YNFFLMXU5MkJkZ0tvZkJ1N25TSlZKL2hkR2JnRjRtUWNMYjBTN2FYWDQwOHlITVM3amFIL3VCamNLOHcvTkpKK0x5dzgxR2JCV3RzdVlqNEdHSWhBdWk5bWU2Ukh3R0h3NVJGek9VVnJGR1g0dEtiREE5KzllVkRCcFBlbGFMVFgvTGVsVmYrWVlCZmJUTzcwaTNhZnVucTBWSHArbjZ0SmQxbHRnbXovNEhudnZvcW5uOTZOcG5IZVRDUHU1UjVhREdhVFgweG1VZE9mQjV1SjUySHpXeTFNSUpJQkV3TnRkeHNTbUhvSG9sQ2RtYnFINjY4OHIxTDlQSnNIdnJ5cXdlVjJmQzIwOUlEcjc0cVBmU1AyWUl5STd3WlFmakZXOVU1RVgrRTBYUDRLczRBdGxPRzVrZVRpekRpQ3NQKzlHUVdYRHNETVNJSEJKSktKSUF2QjRqRlpiVUFiRUM1UkM1VzJPTXdoL0Fna2N4bDlDd0hLTUlBZHkxREVYZWdBQUJFQmdVUXdYS0ZtNExJeTB6MWd5YUtpdTlwd0VHaWtUSTl2QXl4bU1QNWZBQWp1eWt0cUJOOG1kSlhMNlhudUROeTB2ZnZUOC9KY09la3Z5ajlaNlpQMEFYVFRIYU1BamcvaHhzcXlwRytHTkI1UGFsbVowZ28rMTI2SytpMkZwdytYV0IxQjEzcHZ5c1RRazV6cXNlckc4QnB2TTZmSmRQK0szUVY1K01Za0VOK05BZU1Ha0VRNHpCQUkzQU9lQzJ4Y29LT2VLWURSbnVRTytEM0IveWl4a0VnaE1sTGJjcnZOVkhqS3pONUtWQW85WnJJOUE5NGNCV3hHT2tWb3YzU0syUWZWM21DSERQeFdKQ09KZlBCVzZYM21iK0JWYVFnZDlRQmlnRmdEbEhsUnpIZEQ0VVlUUnJGTUNJTFAweXdTajBHdmYvQUxMNWpudDdJTE9jYzFoZHhLRFhabUN3NXMwdTRKUHhKcXBYU3lqQ2NqN2tLR1pBbjZreTBxVzV5dGcxKzM0RDBFV3BRTW1FS1BSd1A4eHdSeUd5Wkg1aXJ5SHpKSDUzdng0QS8vNGJ6NE1yMHFFMDFVT1JIcmZSdVNVSDVibU1nNDBNTkRZMk44SWZ6WEw0bnlFMmZrR2xITDB2SE9JSHZSeVpVZmtyUE1ES1FKUkFsaWR3NHAwV3gwcWlPYXVNK2FpVFVENWhRU2xpZHRvaFZCRWNBT3Z0dkVYYWtSL1Ric3lJc2N3ZDg4djF1dTBiNy9ZMHBGdklwbkpkaWtYSG4weEEvVW1oTTlxQzhhRGJCa2pKMEJsOE1VeUZFWmFOV2tqU2tlRkxjYVRZYVYyVjRUTTBUZnBLNmhmRlJrdm44aGI2KzV5Kzk5UG0rdmhjRzJ3YW1UeDlvazdmYzBGSHB5eWVla0w0NmVoVGJubmdDMjQ4ZTN2VDJ3WU52Yjl4SXRwc0lQejVFQ096eWFaaFJVVFRmQ0xBS2RBRTJMSU1CSmJBQWVEbkNpSjRZdjBFL3cvNUFoTmhjWUl3QVRhcWhWVkE3Qk0xbHZ5RWlYVTRWMFBDOXlaaHBOM3J3Z01WaWM2SFJLMVFCczB0K3BzdE9zL25NWHlTNU1vWlpLcU9uQUdSK0RYd3FST2MvNXNNY1MwUmtCQkVGRU95ekhNeU1xTlZtbUo4Y0k3T0kxSmdlTmZFSUpnd0Q3N0ZyOG5HZFVTTjhLMFFGZ1p3eXY1MmFHOEVpZ29pOUNTalJxMG9ad0o3ZkY0T0oxSTB3VHp6Y3Mvbzg2VGcrUVFJYWtEckg1MHJHVHl4dHVtakR4bDV5eUQ3N1YwdTRvWG0zYlZoei93YnAvbDBrY3IxSXFBNmw0R2VYNzJ4Y3RxRnlJemwyS0p4U1ZrTjk1T2hYN0g5VGZORVViU3pHQWk4QUdVd3pFZ0JRQ0J5UXc1Sk1oS0EyRnJnQ2FKZ1hlelZ5S0krckQyd2hkQWNDa1VqQW5xY2xvVnNtU3dWYWluOEhKMGcwaUlCWUNOaHk4a0cvSlZJSjhiMlVlZUdCNWUyenUxYjNQbm5waWxmYjNLYU16QlR6MUZ0YWQrelplK0ZzSXRxSy9nc3ZQSDhyQmNBRzQzWEh1YUdPRzFjdDNCa01IVnl6NGQ2bDA2dHRUb3NyeDFCY3RXM04ydk9Jdkh1V0x1Z05UeU5rYjdCbGFCZFR1emdFT2dnd0RRVlJGaXFQbG1aaEpPQm1FU05lZHBBYUxBaFpMUUQ1R2JZSFpPbG5nY1p3Q0VaRHBoWHhCbnhhalRNWFdVMHErckNXbGlRb1pnMHVpOG13Rkh0VDJabDNrbG5mZVJuMW0zUEo5ckRrODdsMCtGTmJTVWc2RHkvVWNFT3RJL3ZJWFAra0tpbnNlSTNNenozdWtRcjhqZXpUbjZheXVndEYwTXpvTkJGZ05TWnlZbm1CQmJ2aGVKYmJCWU5BZ0h3ZkRCZTdpWmg4QkhIUlBEaWJJV0tLb0JKL0tHQVArUUpVVFBLa1daRE01S0pTak4wblIybmlqMHU5N00yRWlnTERxZ3N1UHI1czNmTzdlbDVzODZRUUNVMDUwdFJ4Y1VQTnBqblR6eTlOOGVYNEdRdVRtYzNZdUx0b1VIaXVjczFqMjdZTnJZOVdXTjIyakZ4RFFmbVViYTF6K3FQK2dNN3R4Ly8wdTJWLzlScjRxeVR1U2NqNjgxQnR0RW9qVTRtQldrNm1pd1d6SWs0aWdTNFh1RmxYbmlzMzZJZkxIS0ZBUUtOSmwya1RJY3Nnd1hjTWRlWkFCUnFYRXJESEliaEszMHFmT0NOSEZtNThaUFdhcHdZMlBGN1pjZ2hQK1U0NnZIVkt3d1hOemYzMWRWdGF1U2REcFI0SE52N3JuZWx6bGordytmejdlMVoxWC9iYkIzSGtUZjNJdFJXOURUTTMxbGV1blQ1alhSV1YxMmRBQ3cveWNxQzVqd0V3WjRoUFNTSUFIbllCSXZkRElHQzdPYURHMXlMYmtTT2FMcDlDZ3hQT2RWTDA2RURwZm11WVYraExpQW5laEJ6U3kzN2hFcVNGMnJBamtNL2ptNldRN0N1WU80a28wbEorL0w5MnV5dk5xR2YvZkpEWXhMc1E4VmowRnVpV0JQYmdBQWhVZzZaSHAxZ0VRQWZFTVlNSU9JYnZFMm5rRU9USXdYR3E2ZWZsT1owSTVkWGtWVWRLbkxuT25JQVBicEVCVHNBKzNnbkkySHp5bklzWkp3L21yVi8yTEoyemJQUDZKN2R1ZlhMOTVxVnp1bnArdWE2K3Q3SnlaVzN0eXNySzN2clpteHNhTnMrV3Q5elFvaU5kSFlOWk9UZXRXSHZQOHVYM3JGMXhVMDdXWUVmWGtVV0g4K2RYbHM0dktwcGZXamsvWCtMTGUrdnJWMVJVcktpdjd5MG51dmI4NkpjY0N6UXJ1bWJDREFjRWN5QUNqZ0Y2ZVQ2bWEwcjRCM3JINmxvZ0VKWjFqV0EvaGhNRll2NFZlYmppek9rbDh3cFJMT201N3h5Z2NsaUgzWEdWazNWc050VTNib2hxbHZUR20zbzhYdWNPeXpvbTZ4dk1sbUlWOWw3QUpRNFM0emtWclFTSmo0YXNBRk1IWm9UWVkzUVlNNnlwRk1EUUdLK3VPZEM0dzR6OTVsYmdqUHJIYkk3RG1wSEx4MEFjbU1NVjB2c1FBTWtjM0NnbkdyYkxVWjJGdU02c2prOElndzl5TzIwV09nTit3Z3pNRTdDZk9va3JFekZnNGt5a1V4UHg0RTYwblhOeHFTaWQ0RUc5aGxoVU04RjBxSk11SE1JSTNPSE1wR0JUV1N6UVlnVzdoN0dzcHBoOXplUzFKV1dQOURCM1pDZlpBQW9QL3l2ZFprdG50VnhxYnByWmE1R2VsWjYxZU0xcHVUcThNeWt6UFQwekNlOGtPdlVyWE0zNTJMbFVGb0J1MVBYSXRTQUVrTVVpdWl6WlRialNwc2dqM1dxbThGU1lBRS9OWndhcnZvUjlkcTRhTXFUTkNSQVdxSHdZK05DbThzR2N6TVJBZDJjY2REdkRLdWdXNGtzbVdxd0dBY3hWQWRYRC83SlFiakIzalBUSTNHQzF6Q0NsV3Rxcm8vekFVL0ZVbVIvU1hzSUhhZlJiOW1YSWZjT1FNVjBjMVdWZ0JodkFCVExLRW00bzV1Y2c0aUorRjNGMzFOZ0NMY1R3dUY1d01YNE9IR0pnM0VBWWc0aHU5U1VPNjR4YXNpRHZ5U3JMaWhUbXcwK0dBbm5aMUM1bDM1T01hVllXS20vQTljd2tjR1BjMHUrN3grYk4yTC9Cd05jMXNBWW0yVFNqZlZuKzZxVzdGeE1ubW1TNCtXbFRlWGxkSGZ4eHA5dXVXYlp3ZTFmKzlVVkZMMXZTUktlM3VyRzRhVW13a3pqVjNWYUhwdXZILzNMNSt1bnFBckVTQnBXTXJ1VU9jdVZvRGxxTXVxS0xNK3lNanRGaFZrZmdGdUlobEEvcXNRWnhqSWJyUTB3UzFyR01yaytMSVdWREFvc0Flb2tpMzBrQkdCSjVzYU9wQ2FHbXhVMkw1cmJERFdlSFMwTEJnbEFnWk5DNDQwdGlvWENDSHlxeEsyRWRMTXhxc1ZFY1JtTzc0cC9LNldsMU9ZQmNaQTZVVXNkc2s1MVh5TS9tLzJYWHpNRjVVNWJaSThzYmlqc0tGaDVjc0RESEk2UW1wMXJzWEl1WTVXOWEyUFBJd0JVZjdWenkwUFlaKzhvMHJOUEFwNVhmM0hINzU5dHZ4N1lIYXhkVUJkekZpeUpaQWE3OHdIZDNiRDI1Y21yRHRHbmxxMmQyL1diL3FnYTlLS1licFg5enBPY1VIaHJZODl6YUd5WHA5c0ZuMWxoTVRMNVo1OUNsT2ZmKzg3NFhjYzJqMHRMT0E3TUtDN3F1bWxwUUttTUdTSlc0RnlITzVxTmlWQmt0UTFyd08xcDJMUkpGVGJjT2F6UytGb0ZqV0xMMEFtQUMrNGtUS2lxRTBia0V5NWtDRWIrZU1NMW14K05RWE5ncmpqc2lSMXV3UnBIMXNzd3ZpcE53YngwRmRiZVI3ZjY1a21QZUFQMStnbXdyY2ROVE5CUFpGSHdLWC9Fa1JGL2ZjRWcxMGIvL1BaYU9IQ0xiSzBiK3pMamt0ZTUyb0djbTBPTUdWUzVFZGRGcUFZdHlaQkl4SjRJckFVOEM2STVnQTBGSmMrVk1xVEEvSnlzYzlFSytoSnplUUsxV05ZRllFRmJwTUtsMHNDb2NoNlFmZHZ4ZTV2dTc1ODJJcnQreTVJRkxSbDRqazcva0VrckM2YzkrZThHRlc3ZjlGbXUzNy90UkFoVGFma052ODdhZzcrWk5mVWZteHFtUWhKN0ZTNWNQYjFqZis1YnNneTRFRERRRFltd0ptaGFORm1DQWN6UXFJSlloRUlmdkZRRm15RWxTZkIvU2VXTFkyUnhCckNXb09CVDJoNEpCRFlIY2tPUEppeEpVZFZYVU1GWjFsWVMxUkY1NjUxSjh4SExyZGkwNy83NWxpKzg4ZitXampTYklrYzJlWlI5c3ZmWEwzWHYrZXZQeWd5VytiRzdJN1pkT0VkT2R2bmxhL3p2WFh2dDJmM1dGTWV5MnUyMVRwcEpNOW5Gc3Z5VmFVNjNpVkNLanJTQ2pOT0I4YmpSTGxvbEFaY0tOa1luZjYwaUhVVFp2b0Z5a1VFRk9xeWVUaEl3UWN1RW1mOSs3OSsvSHBHekMrYzJiS2YvZisvMlRGeDN2NlRsK0VhalJkZEkvVHAyUy9ubGRuTzAvZnRiMzVxRkRiNjZYZVU3bTFneHpxMEVIbTQ3cndOdVdJNEFtRE5lZmhQVmFEZGIzZzd2UjZnVXRXQWlDSkVIVEo4OGVrY21UWlhnMTlYWkVLOG1GSWljTTBpdTFlczNnVDd5ME0ycURuUnBVWFFGYUZmU2JVb09RTlpVWjVCcVZ5VElKL1NWeEordzFLZW13SXV6WUVTNEhZT3p3SHNLUU5XdklsbDBQQjBDNkkxOWl4cE9WNVNGL2tzVGsrckx4UXlEUDl4SU56Qk9VaUhpZmxLN3BJcC9TaTJUYkphMzdERVFxODJ3aDhLd2NYU3J6ckJBc0VVSlBQOGlhNE4rMW9MV2N3SExna0RIV2RldXhUdWRySVZtaTJBMSt4aS9LNjk2a1RFblh2WC9TSlJDMmdFbmxLRkpVQUk0b2xiSXBLYzRpbWZEU2NhendtOGI1cEJnSHVTcUZGMUtNRlY5UW9DQ1I3V1UwKzJTdklEbUE5QjJoL1NWcFlBd25kb3gxU0xJdXJWRHFsclZvVG5SV0pjWWlRWFlRc0RnQ2FEaDFiVi9EMEJVQnlEcGord3lqTHUvRDRWcFVFd29HSWo0d1l4MzF0Wk9hY1VWWlhCbG9XbTJhMUtBNWF0QlRkaTNhZEg5UDEzMGJIOTd4TDJvaEQ1SnRabUR1dTl0dS9YcnYvcStQTEwraFdESHJQeEw2YXBlWHlXWmQ5ZWNZWGpwZGJDa3NQb3J0ajUvQ2FiZlVWQlJUNDVaMVlRZm93alRpczVBZWNWalByVTNTYVNDRWFMdU5Ca2FyOWJXSVBFdldVc0hrNmNvT1hEY05UYW1ycWE2cUxDOHBWT0tLTjVBY0w4cE9FSnYzaklKVXFmZkdSZHNOdERVMjB0RHlNdGt1bFl4TDQ5L2tNN2lhbnNIL3ZWVCtKaWZld3h0VWN2RVJhZDFZRVZNbVhJTXZvT0xHNkZXZ213TzZQU2c3R3VJQUtQTGRaQW5MMXdLVVlvSmFGVW85eUVWWFFaVDFZcnBVN0MwWnV6S243ckJ2dzF4R0ViWlFUWnhLWjJZWlJSUzYzalIraGpIRncrZ0MwTHZMWVM1QnNqcGpKMnVEelNScUFISWVUSndaSWtrcEtYK1FvQTZEL2Y1QTJCK2ZHRkVocGI1Z1VzeUlBcC9ZOUxnK21NaHJiN3pVUHhSTklWbzEvK0RlQzZYNzZld2VsV2MzVXZMd294MHpVek94aTlyS2QwMWJCNWpqY2ZzZ3VuSTN6SE1lc1k4NW1JT1pNR1Q5REFPT3cxeWZYdEVhUTVLaU5Rekp5QVNzTENuQlpSMHRUYk5uVFlzQ1F3TlprY3JpZ0RHdU1sakdhK1MvTFZieklqWGtBaHlteUMwWm4xT0hZb2lGVWxvbkxkT2s3RzMxRkRvNWIwcTQxRWtJbmJ0NlZyclBIcktuelM3SWFYVzc2VktWdERnaDlLeVExZXFVckdUVGxmV2M4L0NxckZWTnVnV3VSdkwxUU1taXV2bGVYOER0Y2tudlRLSms4L0NEWTNsRzRsTUFsWUNiaGJRRU1QNGdvSHNrZEVNT0lzZ1JOTDd1QnVOOEVEejhwb0FDQVJUamlQdkZDZFF6SDhCVS94dC9MUzk4eUJIalRrb1prNk1xSFo1TkJYckJSSjhIWG9CN0NPWVhKZlpmNjdHekhLTG9pMVNGQmpXWXlGT3ZPNE1YaUtMNnFuSWl6QUN4a0tTNE1GUEhTVW92cjkyRTllTlJaNnhCZ3piandDZnR3aWpKS0kvYit5YmJHNGJjUUNEWDhLWjFVL3hvZVhveCtYZzd6U244OFNOOTBkc1RyS3QwNUdWQ01sTTkvT1pZRWFXWVJtNW5lcjJFOXBtSzNaV2gzbE81QmxLc1VESTJCK2d1a1JENGQxbEVESU43aVdNQTAzTkVQUlBQVWxUZ2I1R05zek5xb3NXelVvSURJZ0YvUUFrRE1STU5uekd3VVViZ1V0TVlSYTRLaHNvOEk5OXoxOFRSOTdRV3N2MlR6YUhCNzNNRGlibzZySE5rVnJDM0Q3ODZsbXFqY2ZnNDh5a1ZPNE1XQTkxYi96L1VTVmptNjcxN3Y3NzFWcnJkZUY4WEJDeDV5dzNkSW4zNStPUFNsMGRKQUNMbzhyQWNuL3JmdnZiYWQvcFZqTGtZWk9GRk9hZ3NXZ0xRQzJFQnJSVko0UjN3LzBUUG5KTVY4TUZvRC9IT0lhMWFYakRpM0RQN2lWZ0N3Rlk4dTNMbHMvdisrZzExMUg5SXNCai9YOTg5Y1BEUVZlOXlkeTEvWU11V1h5NlQzaHZMeDVHYmRtMjVnSUNleGRJM2xJZFZhRFlhaXFhV1lDVGFBQklXWXNpK21uV1l3VTFOeHdPZ1NtRmlTU3dtV1M1QkVleHFrcVFKdlZxNjVnN1FTQzIxT1pxT2gyQjRFTEFtd2lKa3dHZStUQU02bUlONGxyOTg0bURFOGd6Yk4yWndaMmZVWGwyTlVQWHM2c2FwVVpod1pYRXczKzhQNmFtRFVRUWFGdVhpcnBKZjJCSnlZK3ArNDFYZXM0cmVtWFpwUjF0bVZlNk1jRlpMcmxhWDdFa3kyYXJYbG1iVUJEV1JHVm5uYnhNMVhuK0c5dEZiSG9heG0rN3Q2cnAzazd6bGhtNlEvbm5paEhUNkJtWi9wa2Fibk9FUjBpd3VXMFpLYmtBak1ucGRNVnZnU3pmcTM2akcvdCtld0VrM0hGNy82cFZYdnRyWFI3YnJZemtLaVUyMWFEcHFpTmFDazlLQUg5UEFHUTNUcDZWQVZFZHJCRHpMcUIxMU5EdWVQcldoRHE2cUpucVVIYW5YeHlzNnREdkpsaGlPUW1vOE9xdVNaY282SnB4Y2R2alN5cUFueitGTVZzSlBZKzI4c0MzVEhjeHd6Nis1Z2pwcWFXTkMzdm5EVjY5ajR4VTcvcDI3YS82UjFmMjN1V3pGMlIwMWRVNGFkQnFhOHhxbnpnN2s1RXI3eG1ua0Y2LzA5TW0rL0RhdzYyemFkOWNSYloyRnNlREZERS9pTXhaNmdZMVU0OEJ4eGZaSlZZRUY3NVhkZ2tpSm5PNVN4MDU3N2txSzhuTkRBWS9MSDlUU1ZUT2xxNHNHWTlLZElnZnIrUEtMVmFtZ1J4SnJYeks3MUFZdkJkV3lmd0JVR3pJV1BiUnA0MEJPMkwrOGJlSHE0bFZiVmp4MythcjdHK1NPcnR6azdKTjdCNjlzcUEwdGFaMjdxYkM5YytVald4YmZYUzFqM00vOTdveXU3alVMc3lzdFpudXl5VzdKUHJSejNiSEZzMmUyRW8rUDgvenVuSzA3Tm5ZMXRHV1lyQ2twVG10Zys2cTFSenFtVjlmSitTeEdsNEN1ekFWZHlVYVJhTEdBbFE0ZXNsNmlGcExpUHAwRzVXd1U5cHRvMnFKVWttTGRBcE1nM1RnYnZGd1p6VktrMC85SkhjMUJzdjFQNmJRY3Fka2xORDNaVHlkZGxnZ01wZGZwc1FFMVJxdHhLcC8yTjlEbEhiWWJoRWdMSnFTZkxBWUs4MUV1b01JSS9NVktYaW9zTEpzQWwrUjFzYkd4cHY2RFYxLzlvRjRPS0JRVzdUbHdZTS9teEFBenN2SDNiNzMxZSthZ090MlJQVWN2di93b3MwdkIxVHFZSzFtZkNwTzV1a21OdjVsWFpneHBPWjJ4T3Rrd0N2cm9YQk9namdJVThMaTVhdVBRN2g2WVM0dDAxRkNhbDF1YUpOM2FUT2QySWRsZWcwdHcyU3I2dlZVSmhpbCt0OGZIZnFQT2RmaHFkcXM4ejlGdllaN3YwdnBpNytPNUFRT0xCUkw4MCtYZ3o4SjhPUkxmSWY5cWdjUXUyTUtvd2Q4TmtZblVUd2ZIalZJR3lMRS9na29DUkF4all6L3RiNklOeHFUTGFSeUZEcXgwSk1jSUhTSXc1eW8rTzJ1dVplZ3A2N3h3TnJlUFloNU04ZXJCVlU4YnF6UDl3bFByZG93Si95a0IxeFJteHNoVFU5eitCTG8vWnBvTExaYVJCMW12alB3d0tvRzUzMEx6dm1pMHJqbzdUZVNJcUhSYUVZalNkQ2ZwR1hrcFVZWjgvTmpFcjZvaUFvS2ovdzF4MEtjZEQrN1k4UWUwZUFMUlk1SytLZExyZUVsMUhPVnNHSlYrbkVlLzBxN2NlcnhNZW5WR25BV2RILzJ4bG40clVtQjZxK1NKNVg4YnBCZ2d4My9HeDJQZy9DVmNHOHU3YW9FSDF3TVBTbEJGTkFJc1lBa0xSQ0NhNUZ3ZzEwblN3UkpVcEpLZUlObUowZUFzbEJLRU8xMjYreFBxRXU2bDdjYlN2VE5sdGFWOWVqOE1UMGtrYStUMzBxMHhVbFl4aFRGUzF1S2pjUngvSDlEaVYzUElTUm8wMUJ3eTNxQ2g1SkRXTXI5VnpTRkZQQ0hUaUZWYlpZL0dqcmgwSTMyTVJlbklZSHd1STNOSTBpbEYxeitSR2FjYmg5dXhnZVliRDVPWjJxenNBOTlUaDFhbjlCdk5rVTZ5YS9pbHlFNXliNUlSa2Y1dlR1N3Y1K0w5L1REV2pteUJzZ2dwQVhNeC9wcGliQ1dwT0R1YjZBZE4yekJWR21rSXozcUc5Rmg3Z29JM1NGdXVmN2lJOGdpdmdkL2RRMzgzS3hva3Y4Y0F0Rm9iYjgyS3RWRFprUldTTUtYeWJKbzAxVjhkLzlsWjBwRDg4L3hTVC9EN2orWGY1SzhrVzFrMlgrQnYyVThoTHJ0UTFpUENxdWxSbHhFU0NFanlnV3pFN0NOVnN3dGhuQXM1dytrY2hOcEhCTUF3a0FiUU9wVWc1MDFLMTZMU1o4SHNjZXR3UkhEYXpQWlVsL0MzdndtdVZMdlo1aFJ3Uk9kMmNrUG0xSkZIZEhxVFF4UU5TZmhQVW1hU1FSUWRKa2pqMmxMTk1KL1JUNlVkM0JlakhES2dURG9mNjNnV0JBT01NZzl1YkYzdUk3MCs2Y2VjSk5oeTd3NW41T1Jra0QvSzJ5ck95T2J5KzVFSnBkTjdHcEhhM3BWbVVXK0dsTHBqTUZaeFkzUFRiR2xHczNTVnplMzFwWnJ4VW01amFyb2pYZmVCSWNNVnpqYU15dXZQKzBuOFkwK2dBbFNOUG0wNjdnSW5uZXpFR3JhaUhOQmRDc3lhYlhhTU9TTENFYVVMT0J2eEhPa1hHVVFzb0dMRWF2b1E2ZDhsaURDM1JTUjA5ekl5RkhUSWR5NDk5d1ZBcnAvdXFrMFpqbWp4MmE1Q3NZc0E4S3ZYRUZoZVdJaFFZWFZoVlZrcDBKYnZEd1FEa1loZVhmcFBoSjJ4bmdKZ0dpM3FDYkZ1TUtYNzEwYVdGQWtRRHowOTFVL1VNVHBsbVhIdWMrZXQvdG5pVDA3ZWZzT0dnYVk3WjV1TVhwcytPUCtGM3VmM3JlNTY1WTdwdDdheEozNXhqOVRmUnR6SWxJYkcxaG1YZGQxMmMrbUMzcTZjb0xZb0xjV2ZtbGNvY1cwTFozZmNzOEZtbDJVUkJGbTA4Sm5nT3NyUUo2ZFNJRFVSMWF6Wmo5UmNMZEJDT3FCcGFwUGJJdEQwVWcyZ2NqTmcvcG1IeXM1V3VRcXBGNUVHN1Z3WWp6aGdkTjlQdUNTYVBkbG9GQnNNVVYwZDJ3bWlzSVZDQ0lYS1FwR0NQT0lWd2ZwRDRPRGxGdEV4SFVPS1JNWW03ZU5iYlBBMDE2VlA3M2hwOCthWGRxeTR0OEhsdTUydVBkRlYvR2R3K29HMnRnT2RuWVBUcGcxMjhwbUFBSXZ2MmZiQjRjTWZiRnM4dDEzMjdGd0s5ZnRTKzVGMTY0NjBMeml5Y3VXUkJjUXVkd1B2WFdBSFo2MHY1U2JVbDNMLzEvV2xjY0Q5WDNRNU9ycTdzK2ZJd281RFBVc2ZuR1UxdTlLVE05dmY3Ny91ZzRzditlQ2F6aHNqdm16MmhMb1FYYmM4c3ZDV250NmpDNnZLVTdMVDdYNTc3ZlJkSDE1MTFZZTdwdFRXRWpUT1VKb094ZlRKbWN5Z00rb1RlUktGSlJJZmE3U1Q2VlBpMEc1cWVVS2l1U2JxRTh0emEzL0NKWW8ralJ1TllvTkJuK0tXUFVHZmZLRmd4Sy9xVTZ5TlAxU0h4OVNzejZoUDdHY3Uya2tIZXRSdzd3cFpzWjYrbEs1WWZDKzVxQ1oxVXEwaSt2VGpBekpDYUorN1dOYXJlL0FCV1o5a1RaSzFpdkQrSVBCK0d1aFRKa0J4eUpuVjFVbkV3MGtlMGI1QXJwZXN3T1MyMEo0RlJKL044a0pVODRhOW9ZQWZMdlNFL1Q1SWlqSkl6bXdua2VLTUttVEVvcGVRZ3Q3Y3FBSGtrQ2ZlZGVQU1I2ZWJqSDZiTnEvbDM5YmYvTzdtUy81d1lQdlAwNW1WMXB2M3NDZTIvWGEvejNuajBjS3d0c3hxeXJLRmk3YStmOU4xSHc3Y3NIUFRCUU5LRHl1M2hBK2lVblRSWTREUnRHcWJjYmI2UUlZR015SnA3MlFod0dOdHJ3NXJ0UUVRS2RFVEpELzJFUTJyWStFazNGS0wrK0lYSlk2a2oyekFMNVVvRFpGK201N0FYclVIUGd6KzJJWGprT1FNSzN2VWdPNjlySWcxQnZTRzNSdC9nNWRRdUhLdi9FbWFXMTIrbCtuaTVzdEQ5L0hCVW5PUlBybUtMLzZQalZSNEw2bXdqNkg0ZGZzOVE3SS8zaTJ0NFE2QkRBdFJBOVpGOVVFR0NFaWp5L0t5RWVVaVVGbWU1UVoxR3RKbzNLc1ZHTm9zSllycXN5bEtiMkUrdFlzQXJhQW1YcUlHTWZuNmJuUzJxNGxWUmRTcmtZaDRWdVQ3em55WGhHc2hnSTYvTExhR1JiVnY0alhFek94RlJRZ1ZOUlRWVjViVFZ1T0FQUkFva3lPb1hWbE9WWExkU1ZwejY5U25hQ1pwWExzaDdyWlhQNysvNTZVRllZMDVyTmUzUHRCMjFkVTdYcEF0c0MzQjhOZ1RNZTg5L05aRjl5L3hlb3pobExRS3pwbTV0LysxV3pmOTd1cXJmN2ZwY05zMVhWM1h0TTI1cHFmbm1qbEVoOEY5Y1B2Qjk5V2dEVVNIT1ZXSEEwaWowWGJMR3F1MkgrYU9YMzkzUkgxRWJUVklTN0hHNUlOa3phMUJWZkpDZENRUTFDczFWNlZUZEVMaUVwR2ZQanJqK2pUdWRVMjVmMlhYNVkxejQ0blowcm50Q3c0dFhoby9NSmZ1bjZUUnpkaTd0dTN3U3NrWlMySCt2WFBkaWdmV1M1K29CK1JvaDBaSHFVM1A1dWVsK05CYWhGSVl0SWFEeWNQeFo2VTE3SDU2ZkRWOTBuUU5lcEhpNm1rSy94clF0cWkyTGkvWnlHRlI1V0VRMUZQb0JxOHNCd1JOTi9BMDJLTFhjUXhwVStzbXo3L1FxcitmdENOcEJMN3ZMS1BrMm5VRHFxK3RqaEFIQUlsOWhGUTdBbVBUWGRGNjVrVjlxMm5pa2tZcHR6N0dzY1lmVDgyT045TnMya3UyNzROWDJUa3JuaGpXU08vajl1cFlaei9PdWVPcXNUejBCSWUvd08yeC9IQkVrdk1lOUFqd3FRSDQ1RUN6Wk9iWXdaTnozZVJabjBBTEV3dDRCRFZaNFNBcDViTnJFNC9MandNNVVEcWhYWDRjeUhyR0tpaHpwd3ZUQkhiNEcvblpHT2xyK3JrdU1UakZ4RTd5a1dHWTMrZmd3OXJSS2VwRFRqVk9aY0JOTkR2b2pnYXJXTjZqSVE5TGFIdHBRU3JZWWtnU2VZNWhVTGRBbG5UbE5YVGlnWExvTUYwdmFVTEliWkd2NlVhVFh4RU5rNFZnZFN5MXU4bEhnck5KZzhtMm83YW0yVE9uTjlRU2d3cVMvMFpWRVNnc0hHYy9reDJiVEQxYzhvUG85bkxGS0xuWGdHTTMrbHo1SllYdGhmUVJwT3VWTHhHcUpaOVNLNk1tQ0tOeUw1NDVmWTI1ODVxYVpSWDFpbm93N1RObUxQclpTdW01U2I5Q0ZMbGEzbHU1dkh0cDUyTTFBNHRIUHBGMWhmaWtHMEFXTmVodXlzM0hLc2thUXJPRGZJb3hTVGhKaDdTbVY2ZGxpTDJNNnpoVHhCQWlZK1RBU3hJbkdDOWIxL2pSNE83aTQxRE1DTWNONjFSZFdYVkU5V1hVbGYxUGZKakNiN2JrSEY2TUF2YVRQdGZVUjlhd0o4N3V4RlIrWHJ6bWZEa3VYd2JZcWhINE9LSEdsbnV1R3R2Wm45aGx2djV3NTg0UHI3eVNibnNQdGJjZjZwVzM3SWtkSHgwNDhORU9lWHQ0d2RFVks0NHVrTGMwYjRPY3Z3WG1rNDJxMEdPblFscEc1RlNjRFlrT1F4NVYxWktVSVJnclNtWEgxNzdDc2VoZVNNY21SSE1GSlozeHNtamVtRUIranVFa3BPZmtJSlJUbFZOWlVnU1R6U0xTOXNtMUtwVXg0WE1KZG54dEtsMEJ6QS9FeS8xckV2RDB5b1NFRElDbmpKbWxiZU45SytEcHcyTXpNaGwvN2VEdWkvSFZRK0JYSWw4bmdWelo4ZXBDbUUzazY5bXgxcmpMeHZIMUhNTW44dFZIQXRta1VHazhjMzhTU0ZvVForMERhdXA3Qm56MFkyeFpHaDlRTXQvRFl6TVQ0b2ZJTTB0emdhOUY2TUtvRGxSRXlDT0xaUXBudlNpaFpxUFVzNEpqaWpZT0FMNkpkUjM2SEZkdUN4M2ZqY2FQN295Q0hjSlBGY3EreGFhVm44aU93M3NqamdQOFNaV09LV1UvbjU2bHRRYVREY1dWUzA1dHd4MFUxTk8xK1dPN3lmWU5uNnZvaWx1YTJCTlphU0Z6V3BYR3NmTjMyMTRjN3o1K3MvaXlScG4raytBL01vRCtabExMYTV5a2xwZWJVTXZMUFVzdHJ4azF6WnhlV3Z3L3FlWEZYOUp3dG1MZWIraUxHWEx2M3RXN0lUdkx1MmhHNzBWbDdaMWREMTl5L3QxMXNkY3pCSDV4OWRZZGVkbitycG5MZDVYUjF6VDAvcnhhWGlnZ2IyV1lPMjFHZldhV1FaOGs2bE5UWFJ1WExOay9wN1l1L2xxR25zWHpaL3J5alBwa1VXZXp5aTlucUk3a2svVURqTFlSUDhzTm9YeTY3ZzFrWTVZWkZPaXpiU3g5dGsxcDBFdFlCY2xIZVFGL21Ed0VyRmJ6NGc4QjJ5WTAySmJGQkUwV252RS9mUGhuVk5kWHQ2MllkbmlHMGVSTE0zaGJuNS8zcTJPdms4T3ZLMjE0dEM5SU90eS92anhmVjVDUm1ta3BibmprT0I2Z1dwK24xaUViWWU0WHM3ZENabm50WThrMHpNcnFuVUZXc2poUzRlTzRZQXMvYnIyRHVJdkF4Qkh5TWdRL1pzM0NOMlpZd21LRi9FUzBzZ3laUXBQYllobk94SGd5eVNyRkdEeXJkTXJIanJHL2lhMVJRTHhVRTRSZitsdzByRjVMdm56RzN1b0pqaFFSSnJpREEydk9oNUNLUDVVVmYrUXZOS0JpZDZ3K1JkNnZBYnc1VXgweCtMK3RJKzZFQ1RWSXp4Z3Jpb3ZLa3FYbjYrUHRYNFBZaEMyTDVMNUNscFplUnV6a1ZTSE1sN0dhNTFiWllOVTZJc3l6SEZWSEsvSkRSbHBJbkxSR0dDc2l5bjJ3L2dETU9UU3hRS2l1OWs5V0lxU3JST05LaEdtLzFvVkR1Y1ZKUjMrV1ZKb2JDbWxmTU5PWmg4aDIrL1gzaVNGUGcvSGV3NnZwUWJOS1RzRGw4ZUVUVXF2UDR3b2trUFVrL3AwMUkwdktabWJHYW1RellmNlhBMzFucVJNRy81ZDFRdjA1NjRUMmluRjF3dmZ3bEZKcWhiOGcyNTV2dm02THQ0YVY0Qm5TKzdQaVpjTG1kLzY5UXE2bnlkUkxyMGdQeGlJUUkwbXgvUVc0UXQzLy9QT1lIa3FycVI0V2tGNkJvSVUyaVFtS1dGVzdJdDFob0kzNVZMUUZLTTlIQVdwaUNSNGJHZnE4WEVVOVUzRU9uYXlYMWs3WjhiTk4vbEJaejVidUdkTEJoa1RGek1DR3prVEZISDV5MzVGWkhBNFdUbUg1OHIwSG1MZGlvbnlMS1luSjhBUk1OZ05vQ0tJYjVINXZ2MXdnN0k4LzUwM0xnOEV4ejNuTHoyOEc0a1BIbEJLRDUzNG1mT0s0VHZtaDhFbktqaE1mQ1IvN2tPYy9YTWtqdCtIUGxMS2pqWlFkVjBwVlN0bnhEY0lNbDJsaytRTTBaQkFPdUpPWnUyNGszLzVENGNFajBrbjJqL3hTU0NEV1JYWGxrT1FhNkxQZmNqN3NpRDN5VFJaQW1kVjBCWjNNbnJ6SUkrb2xyNVJBSEkvNjRzTkE1T1RCTXVKRk1kTVJ5MDJLQzNPek05MFphUUV4OW9RYllBY1B0Z21pbFVUWFpDeVhhbXhLVFRYU2dPVm53dVUza3NGK0lhYTc3QXNnNWZVRHhSekxiOXE5YXd2VzRMM1VoYjcyTWFObkxyK2U3QjY0RFBQTVI2L3pTMG1oc1hyN3FzYUxqMFYwd2VzMjJ2UURodlRkVzhuUlJ4LzFtN2M3azdac0lWOTJiYlhvNXJnTlEyVGhFRE1PNlJqekNOK1BES2pncDcyZklmNGlDR3RDaXd0em5VOE84bnkvMi8vOWc0VGp3ancxdnYxZE9zazVLTTlYUjNWNWNEOHJoZ0FkNHprTVljbExwK1FISjVINlJwNGNUdVU1cmQ3RWh3RmU2MFR5bTg1WXd2TmttZWZsa1VCMklGdVVWeVhHY1JqMlBUakc3RVFPazJJWk1MOUFOVDc4M1VjTWp5ODdRSFB0eTRISkg5TW5ncTdkQzZ6ZnNtdjNKcDdsaWdmV2swUDgwcUVoZzN1T3pySjFGMkhybGkxSnp1MW0vNk9Qa2k5YmQ2Y2JCdlMyamRjRmRaRmpGemV1Mmw0dFY0RXh1Z2sveUpVekg0UHVOOVA2NkJRRHNEY1RsSWxnT3A0ODd6Y0lKc1NBVGc2U1J5dFFKMkVBcVNnU0JoQ1NFWDE5U1JBRmZJR3dqM1o5SzNWaStqVEJHTWd5cG1PUEZBanhoNnVqMVkzaEJUTlRiRFpycGxoNFJXdjFxcW1WYzBJSkI1aVBjN0o4bWZOVFRXbE9vNzY1S3lmTDY0MTlJWG5PdDh5VmJFanBHYTJnRk9SeHBBTEZBdUFpZlllSTZWVHlXZ1oxVEpMVzBzbWVJN1ZkY21sVDA2WE56WFFibmhhTy9lZUdZb2RodXoveEZMQ0VHLzF4MU1mOUhuVFpoUXBSSytwQW0rajhWbm1BdysyWTAwN0ZnbzV0dG1vWlpnNTVDOHcrWURhL0QzRmFuWmJURFpJbkRwRVdvN1ZJeTRuYVRzQ2dyRTZEQlZFbjlDR3RWbHlCUkswNHQ2MnRxS2l0bzYyanFMV29aVTZqM3g5S1M4L3orNHJKMGcrbGl6aXRzZ2dneEhpYnBOeEZRVGFCTVMvb0lvSXlLeTlTVUo5N29ScFlvYnlMMEZUcVQyVVprOFVxVGN2SitkVTF4aVI3c3NIK285YVFiTG5UYW1HYWpjUHJSYTNkYWpTeU41SFBqUmFMcFN2RDdYWklMMXZTQlEydVMvWllYZmxkYi9BZk1TK2xsMFh3RzNORXB6WFpvdC9ObTAwanYwNTMxRnRTTlNPLzVad1dzMW5MRkhQT0VXZWEwNWwrRk81aU9lck5URTdWNDRGVXM4TWlYWTExMHJlZ2lNRGJMTzUxaGJmTDBDamxiTElISkQ4ZGN5SWpjMVZHclRWeDVtcmduRjdrOU9SUktwMU92em1CeVVqa3RHSWYwZ21DYmhIUzZZUWVKT2lFZGdYVzFwN2hGcUpldCt2Yzk0aE9UUlN2cUJFNXpTRFM2RVdOZnRkUHZna3AzUlVWRlMwcld0cEpFdGJzY2xuU2h2K3hwQ0drMFVzcWdzbzdUb1N4THptaGppcFpEb0EvV2Vvck1ySWxmMVlHdGhYbFRxMFB6SFNCQW1TWWluZlhiZG85ZGVZcjJKRGhubHo0bThjSmYvZ1dxM1ZuZm0ybS9jdXM2ZG5GVmFia2hUYXIxWFpKbXQ0YjJMb2l1cjdxbmlsV0s5Z1hzbEQ3dWdDY2JRczZIMjFDMzFFdHlDakFBZzhPZ0pzQ1NWY0tCTTVOV0d0Y0RZd1d3TU9uZ2pSYjFSZXJhTEQ2WmhXdFVXZlU2Z1pKaHdZdmlIdzhvSUlETVRLb3o0U04yaVJqWnpMV0diQStTYWNuQjR4SksxQ1NNV211SXpvLzlxWVdEWUFORFFFYjVMYTdKcjJ0NWlmZXRqTWFhQVhjdG5GRDYvbXQ1NjNzWGI2MGM5RzhqbGt6Nit0SWJBa0VTaU1CZTQ0WmtGek1nZEhuUzRVenZPaGw4dmU4RUVHakNlL3FNeWRrV1pQNEFyWTBGUy9kVkx1OG91Nkt5K3AyRktlS1JvZW96ZW5KYjVyYk5pY3ZZRFo3WnpiT21US3Rrc3ErNk9JYVZrY1ZKSzRveHZ3dXl5VGVZZlFQUEg5QlNWZjFxdExVZWZVcnR6Z2RPcHNoTmN6YTBpdEtLdklqYWE2aXN1S1N0RElyL0Z1YW9YVzVSdjdzTkk5Ukcra1ljUStUZUExcEdkYkpjWi9XYXdCdlpoTE1yTWNNZlJSZjBRQzE4QkNNTFlQbTAzZnFaQ0szUDJBUHFzV0Z5UmdjYjc1YTd6cjJxM25QdDNvTmFUNlRjY2JoYVN2YUpCa1dTd1FKRG04Ni9raERzU1V6TmFOQWwxKyt2cCtOeXJrYUkzSnR6Sy81ZVFCbHdsU0RsZmRuZFNhOGt5NEI2TWpoZGN6VDhzZXlzaW9xNEkrZjV3cnNDYmpvUnFsRnp3WjZIU2hNRjdOVkNoTkxLT2V1bjhTZTUzbGdYUDFraEg3TWp5ZlA4UlVqdU92L0EyQStoZng0Mm8yU1VXdmJNQlNGajl5MFl3OE5nMjB2ZlprZTAwR3RwRjJoTkt3UUFuMVpvYzFvQzN0TU0yRzdKSkVqeVErRi9xbjFSNHl4dC8yZ3dZNVVyVXZET21aajY3dlg5eHhkU3dMd0FsOGhjSDk5eHZmRUFwdmlRK0lNejBTVmVBMXZ4SmZFTGJ3V1B4T3ZZek5UaVRmd0tpc1N0N0dWM1ZFbFdzOFpmWXNPZ1FXMmhFcWNvUzArSlY3RGtWZ2tidUd0K0pGNG5UNHZFMitnazcxUDNNYTc3QlpER05TNGdVV0ZBaVU4SkhiUlJRLzdwSE5tTk1kUTFjUWF6YmZFV2VSWi9CYlk0Sm84aWVvQkt6MTFobm5IdUJOZFBXZHhPSVRpWFZBYktocGNJYWZLMEVsaHdkZ3dyem5PbDZJeGxVR3JWcnI0MDhNMlhUQTA5WTJ0aXRMTDNXNXZYNTZYV2c1Tll5dHQ1Wm10WnBwdmM2MG5YZzRhWHhyclpLZjB2bmFIU2hXVkw1dXJmR0ptYXRFWXI1dDVITVoxN1ZTeWlBN2JZWlluRndLUFpnTStNbGV3ZHNvZnNBeDEwVXpIaEQwMkc1YjNBSDJNY01GblFIcnExM1pXZmZieWJ1K2dQN29ZRGZyTHZlMDgrUDlycTFhOEhxL1BnOE5sVkRxcUREZENMbldNUzIxZFplWXlkb0gvNy9ydnJmNCtGL2Vud3ZFa0JJT2FPY2NwUXdOVGp1RWNGZngraW1PY1VNUmQ0NmE1aWExcTczSlhUWE5qQzNWNmZJSmYzMkt6S0hqYVpZclhUc0pnQUViUFgwWVJuQXpGTFc1UnNjVlpWMXdvdUFVbnFLVXhZQzhJTlFWanZOVm44N1dNcG9reDBYTnp2cHg4U0RoOGZ2RDJMY0ZmVEtkS3VIRGp3WXVNandiOEJHaWtpV1phYUtXTklDSENSR2luZ3lpZGRORk5ENzMwMGM4QU1RWVpZcGdSUmhsam5BbmlURExGTkFsbVVGQkpNc3NjOHl5d3lCSWF5Nnl3eWhycmJMREpGdHZza0dLWFBkSmsyT2VBUTQ0NDVvUlR6c2lTNDV3TExybmltaHZ5RkxqbGpudDBpaGk4QzBtNGhGdDRoRmZJSWF0YTBtc1ZvMmJxWmV2WlRwUnQ0eUg0MitvdmxwTWlkZE11L1R2S2o1WFhKMVBUZkk1VlJma1o2aGNOUnpWUUFBRUFBZi8vQUE5NDJtTmdaR0JnNEFGaUpTQm1ZbUFHd2tRR1JvWWtoaFFnTDVVaEhjaG1BY3N3QUFBbjFBSTFlTnBqWUdSZ1lPQmlDR0ZJWW1CMmNmTUpZUkJKTDByTlpsRElTU3pKWTlCaFlBSEtNdnovendCU2hjd1dZMkIyZGd4UllCRHo5ZmNCa2tIK3ZrQVNMc3VZVnBTWXpNQUJZb0V4QzFndkkxQ0VFV2dtRTlBK0JTREp4c0RIa016QXpDREVJQXF5SFVpTGc5V213TmxNRENJTVlnQzF0aE1aZU5wallHUmdZT0Jpc0dHd1kyQjJjZk1KWVJCSkwwck5acERMU1N6Slk5QmdZQUhLTXZ6L0R5U3dzWUFBQUZzYUMyc0FBQUFBQUFFQUFBQUExYVFuQ0FBQUFBRFpuSVBoQUFBQUFObjdTVWM9JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRUNvQUJJQUFBQUFkUFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFCQWpBQUFBQndBQUFBY2lUdjBIa2RFUlVZQUFEKzRBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFRRmdBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUEvNEFBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCeUFwSzJZMjFoY0FBQUF4Z0FBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxZQUFBQUQ0QUFBQnNKN0VSVm1ad1oyMEFBQVBJQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUDdBQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWRBQUFNSWtBQUZxNGlLNXhPR2hsWVdRQUFBR1VBQUFBTmdBQUFEWVhtaHBRYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWU5b2JYUjRBQUFDWEFBQUFMb0FBQURZS3VjWlBteHZZMkVBQUF1Z0FBQUEwZ0FBQU5KWWVrSk9iV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSEhBaEZ1WVcxbEFBQTlBQUFBQWNJQUFBTnYreDlxZ25CdmMzUUFBRDdFQUFBQTdBQUFBVWxrZmNUeWNISmxjQUFBQ3J3QUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW13aWJpUWhmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NUVC8ydjMvQlBJRnBBQUJBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K3QvN2RZUGpFQVJWQUFDd0NvR2djR0FBRUFBQUJvQUc0QUJRQXhBQUlBQWdBc0FGb0FqUUFBQUp3QkZRQUNBQUY0Mm1OZ1lUbkR0SWVCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobjRPQmtnQUZtQmlRUUdCcm95TENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCMGx3eXlBSGphSlk2aGl3SnhFSVcvQVpQWkpnZ0tna1VGbXlCY0Uvd3pWb05CT0pOZ0V4R0w4V0J0NXhvVVlTMmFCRkZrMndXRFdjd0hCeWJEMXA5UGJ4N3ZHOTdBREpNNDQ2TktuUDl0UDJ5cHNKQTdkakt6SWtkQzgrU0lnREY3WnV6b3MySE9nVFZUaTZ5bkhQTEZoYXlMcWRPbTlsWkRWMEphWW8yaytLSCtzaytUaW92ZG5Rd0ZKcGF6RXBHN1dvcFAwZ3p3R0xFU3kySkFsVy8zRUx2a05Sdm9OMCszQ3RxdXY3WloyaCsvRExtNXV4UVRLSytlTjhrOU1RQUFlTnBqWUdCZ1pvQmdHUVpHQmhEd0FmSVl3WHdXQmdNZ3pRR0VURUE2bXFHT1ljUC8vMENXQWtNc2lQWC84ZjlIL3pkQ2RZRUJJeHNEbk1zSTBzUEVnQXFBa3N3c3JHenNISnhjM0R5OGZQd0Nna0xDSXFKaTRoS1NVdEl5c25MeUNvcEt5aXFxYXVvYW1scmFPcnA2K2dhR1JzWW1wbWJtRnBaVzFqYTJkZ3oyRG81T3ppNnVidTRlbmw3ZVByNSsvZ0dCUWNFaG9XSGhFWkZSMFRHeGNmRUpEQVJCSWdOTkFRQVZUUitZQUFCNDJxMVhhMXNieHhXZTFRMk1BUU9Tc0p0MTNWSEdvaTQ3a2tuck9NUldITExMb2poS1VvRnh1K3MwN1M0Uzd2MlM5RWF2NmYyaS9KbXpvbjNxZk10UHkzdG1WZ280NEQ1OW52SkI1NTJaZCtaYzU4eENRa3NTRDZNd2xyTDNSQ3p1OXFqeTRGRkV0MXk2RVNlUDVlaGhSSVZtK3RHc21CV0RnVHB3R3cwU01ZbEFiWStGSTRMRWI1R2pTU2FQVzFUUXFxRWFMU3BxT1R3dTF1ckNENmdheUNUeHMwSXQ4TE5tTWFCQ3NIOGthVjRCQk9tUVN2MmpjYUZRd0RIVU9MemE0Tm54WXQzeHIwcEE1WStyVGhWcmlrUS9Pb3pIcTA3QktDeHBLbnBVRHlMV1I2dEJrQk5jT1pUMGNaOUthNC9HTjV5RklCeUVWQW1qQmhXYjhkNDdFY2p1S0pMVTcyTnFDMnphWkxRWnh6S3piRmgwQTFQNVNOSUdyMjh3OCtOK0pCR05VU3Bwcmg4bG1KRzhOc2ZvTnFQYmladkVjZXdpV2pRZkRFanNSU1I2VEc1ZzdQYm9HcU5ydmZUSmtoZ3c0MGxaSE1UeE1JM0o4ZUk0OXlDV1EvaWovTGhGWlMxaFFhbVp3cWVab0IvUmpQSnBWdm5JQUxZa0xhcVljQ01TY3BqTkhQaVNGOWxkMTVyUHYxUk13Z0dWMXh0WURPUklqcUFyMnlnM0VhSGRLT203NlY0Y3FiZ1JTOXA2RUdITjViamtwclJvUnRPRndCdUxnazN6TEliS1Z5Z1g1YWRVT0hoTXpnQ0cwTXg2aXk1b3lkWXV3cTJTT0pCOEFtMGxNVk9TYldQdG5CNWZXQlJCNks4M3BvVnpVWjh1cEhsN2l1UEJoQUN1SnpJY3FaU1Rhb0l0WEU0SVNSZEdUcXhFYWxXNmJWVXNuTE9kcm1PWGNEOTE3ZVNtUlcwY09sNllGOFVRV2x6VmlOZFJ4SmQwVmlpRU5FeTNXN1NrUVpXU0xnVnY4QUVBeUJBdDhXZ1BveVdUcjJVY3RHU0NJaEdEQVRUVGNwRElVU0pwR1dGcjBZcnU3VWRaYWJnZFg2ZUZRM1hVb3FydTdVYTlCM2JTYldDK2F1WnJPaE1yd2NNb1cxa0p5RWw5V3ZiNHlxRzAvT3dTL3l6aGg1eFY1S0xZN0VjWmh3LysraU5rR0dxWDFoc0syeWJZdGV1OEJUZVpaMko0MG9YOVhjeWVUdFk1S2N5RXFDckVLeUJ4Yit3NGpzbFdYWXRNRk1MOWlGYVVMME5hUlBrdEtKUWNTckdHbVFRMi9PZktGVWNzaTZyd2ZaOGpVWU1oV010cXN4NTk2TG5QSTI2cmNMYnV0ZWl5emh5V1Z4QjRscC9UV1pIbGN6b3JzWFIxVm1aNVZXY1ZscC9YMlF6TGF6cWJaZmtGblYxZzZXazFTUVJWRW9SY3lUWTU3L0sxYVpFK3NiZzZYWHpQTHJaT0xLNU5GOSszaTFJTHV1U2Q1ekQ3K20vckt6dDYwcjhHL0pPdzYzbjR4MUxCUDViWDRSL0xKdnhqdVFiL1dINFIvckc4QWY5WWZnbitzVnlIZnl6YlduWk01ZDdVVUhzbGtlaCtUaEtZM09JMnRybDROelRkOU9nbUx1WUx1Qk5kZVU1YVZicXB1TU0vaytHeTkxK2U1RHBicklSY2V2VENlbFoyNm1HRTdzaGVmdVZFZU03ajNOTHlSV1A1aXpqTmNzTFA2c1Q5UGRNV25oZXIveEw4dDMxUGJXYTNuRHI3ZWh2eGdBTm4yNDliazI2MjZDWGR2dHhwMGVaL282TENCNkMvakJTSjFhWnN5eTczQm9UMi9talVWVjAwa3dndklOb3ZucVpOeDZuWEVPRTdhR0tyZEJtMEV2cHEwOUN5ZWVIVHhjQTdITFdWbEowUnpyeDdtaWJiOWp5cTREYmtiRWtKTjVldDNlaTRKTXZTUFM2dGxaK0xmVzY1YytqZXl1eFFPd2xWZ3FmdmJjSnR6ejVQcFNBWktpcmpkY1Z5S1VoZDRJUmIzdE43VXBpR2gwRHRJTWNLR25iNDZab0xqQmFjZDRZU1padHJCWmNZeVNpajRNcWZPUlVuc2hGTk5xS0kzN3lsZnFvTGhkQ1p4RUppdHJ5V3gwSjFFS1pYcGtzMFo5WjNWSmVWY2hidlRVUEl6dGhJazlpUDJyS0RsNTJ0enljbDI1V25naXBOak82Zi9JaXhTVHlyMnZOc0tTNzVWMDlZRWt6U2xmQ1h6dE11VDFLOGhmN1I1aWp1ME9VZzZydDRYR1VuYm1jYlRnMzM5clZUcTN0dS85U3FmK2JlWiswSU5OM3hucVZ3VzlOZGJ3VGJ1TWJnMUxsVUpMUk5HOWdSR3BlNVB0ZHM1Rk44cWZuV2RTNVFoZXZUeHMyejUrL29iQTZQem1UTC8xalMzZjlYRmJOUDNNYzZDcTNxUkwwMDR0ek9MaHJ3SFc4U2xkY3h1dXMxVkI2WDNKdHBDTzRqQkhWNzdmRlpnaHRlYmROdDNQSTN6cG52NFRpblZxV1hnTi9VOURMRVd4ekZFT0dXTzNpQko5RjZXM05CMDF1QVg5VmpJWFlBK2dBT2cxMDlkc3pNSG9DWmVjQ2NMc0ErY3hnOFpBNkRyekdId2RmMU1YcGhBQlFCT1FiRit0aXhjNCtBN053N3pITVlmWU41QnIzTFBJTyt5VHlEdnNVNlE0Q0VkVEpJV1NlREE5YkpZTUNjMXdHR3pHRnd5QndHajVuRDROdkdybTJnN3hpN0dIM1gyTVhvZThZdVJ0ODNkakg2Z2JHTDBRK05YWXgrWk94aTlHUEV1RE5ONEUvTWlMWUEzN1B3TmNEM09laG01R1AwVTd5MU9lZG5GakxuNTRiajVKeGZZUE1yMDFOL2FVWm14NUdGdk9OWEZqTDkxemduSi96R1FpYjgxa0ltL0E3Y2U5UHpmbTlHaHY2QmhVei9nNFZNL3lOMjVvUS9XY2lFUDF2SWhMK0ErK3IwdkwrYWthSC96VUttLzkxQ3B2OERPM1BDUHkxa3dzaENKbnlveHhmTkp5NVYzSEdwVUF6eDN4UGFZT3g3Tkh0SXhldjlvOGxqM2ZvRTlhQUQrZ0FBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZbmJZd2FFc3pNMmlCbU5zTldCUTRoTmladVNBOEV5WU5Oa2xXTUkvTGFRK1BBNGNEeXdFR1pnWnVJSi9YYVErREF4aUMrRHVCSklQTFJoWEdqc0NJRFE0ZEVTQitpc3RHRFJCL0J3Y0RSSURCSlZKNm96cElhQmRIQXdNamkwTkhjZ2hNQWdTMkd6RXBzWW13TXZOcDdXRDgzN3FCcFhjakU0UExadFlVTmdZWEZ3QjlsUzRIQUFCNDJtTmdJQUNNSUpCbEp3TUQ4eHdHaG44MUNCWWpEeU1QdzJPR3h5eUxHUmhZRldDeS8xK3hCak52K3YvcVh4cE1MNnNaNDJNZ3ZnZ0ExbEVWTGdBQUFBQUFpQUNJQUlnQWlBRGNBT29Ca0FKRUF1b0RuZ1BhQkRBRWhnVUlCVndGakFXOEJlSUdKZ1pxQnJ3SFBBZXlDQllJZ0Fqb0NVUUpzZ29ZQ2xvS29ncmlDekFMY0F2NERKd05FZzJVRGZvT1lnOHNEOGdRUkJEWUVTZ1JnaEl5RXFRVE5oUENGQVlVZkJWRUZlb1dlaGJXRnp3WG5CZ2NHTFFaS2htYUdkWWFFaHBhR29vYXVCdUVIRHdjcGgxV0hiUWVQQjdlSDNRZmdCK01JQ0FnZUNFY0lhNGg5aUtVSXpJajNDUmlKTUFsUUNXZ0poNG1zaWNnSjVRb0ppaGNLTzRwWkNtc0tvSXJraXljTE9ndEZDMWNBQUI0MnExOENYd2IxYlgzdmJOb3QyeHRsaGZKc21aR2ttVlo4aTdGdXhKbnRTMW50K1BFaWVQc0Rsa2dJYXdobUlha0pRbVVRS0VwQkdoSmdLOUFBNFNHa0JBZWExdmFRdmVtZlpRQzc5SFNYN3E5OXlqd0NzU1Q3OXc3TTFwc2gvQys3MEdzR2MzY0dkMnozSFArWjVsQkxMcEwvaVBYelZlaWZPUkFUYWcvdVNnZUZZczVIWWQ3ZU13eE9vYlRqWnIwakk2RmY3c01HQ09Hdzh4NkkyWVJZdnRodzZJaDJFTnpuYzZDQW9TY1RjNHBEWFVWUVY5WmdhUEFZYmZCWGZNYXpUcDNCQlc2V0tkTzlBdkJSa2REdk43UE92eHNQTmpZa0hDdzhCbXZyeXQwbCtKMkRGdVhVODg2NEZNbkNpRXoxb2xjek10NmhmTS9Gc2lHYll3eVkrWE1uUko3OWl3anVPekYvSU1QOHNWMmw4Q2NQY3RLcnFEeHdRZU5RYjdTRi9pME0rRHpCZmpuQTc1UC9meTFuMzc1WTFzZXA4UDM0RU9zM21vM20rU25jY3BrdGx2MXJMeEJYcWZqOG13T25KS2ZkaUFHdjNiaFk1YmpQa0lXVklKNnVwOTB6MXVTZENPRThCQ0hNWlpTUEpETURDT0dFWm5lMHFRTERnTDVHSTFrSHg5STJ2UHlFTW9yeVN0MjJ1RkdKa2xuSUN6UXM0UW9OaGh2d1V5aEZ4TVNnMjBZcUdmKzA4azA4U3RXOEUyTTAvMitmODZjQlF2Z2ovdW9xR1JzYTNNemM3Q2s2UHhpcjNCVzhOSVBtTTJGQytncDVnSE96MzFVSUNLVC9BRkNCU3d5WVNzaS96R283c0tmdVh1NFUyZ2g2a2RMay8xenB6TkdVNkNFWVJtbXg1YXZaN0dPWXhnV3hHakJKbE5GeW1wZ0VESU9GZVNaV2FNeFFDa01zNzJMRmlHMHFIOVJmOTlpdU0yQ1ZQZnNXZE9TYlMzK1lFQjBpVUYvMEc3d1JWQVpkam10T0lMMTlYWHBYU3NHcWhvYk9yQ1l0U3ZFY0dORE8yN0JpYXhkVmR6NXVENXJGMGJvdWUwbGVYa2xSWWZiYml5aU82ZVNYS1FzT2djbmZxL3RyRkZPUE5CNms3SnpwazA1MGZpMnRyTktYdDc2K3piMmNYdE5kWFdON1p5eStiakFWbDZpWTMrbGJXM2txUDJjc3ZtcmN2QkgybGFPbnpzSG1uMzB3bTR1eHBlakdTaUZGcUZyays2VWsyYzVqQmIyVEhGeFBGNlVxQWh5RE0rQ3FwU0RxcFRwUUI4d2ovQUk0bUdoc0R3emdsaFdQMnpBZXIzRWdzWklzSWRZL2NERWNXUUlPd3puMlBrRFNWaEw4SXZUUFlFS0VmNk1CaStvanhjWHVwVzFvdWhPS0JoeUZib1Z4dXRkcWpiQnNZeGUxYm5oaWhnT0JRbkhFK1JhUnVkeWtvT29zWUZjem53OVdGdFYyNUdNUjJvYm5ja1YxNlhtTGUxN2VFY3drUWcyMURZbmsvSHEycmJDbHZWVFJ5TDdsajJ3TnBpNHBWWnlTVGhjNlFuejVSN3hCWHVwaWFqa0x3V3ZhN3IzRG11NS82cmhaVi9wNWI0cmVqemk2N1l5QXpuNWpyL00wKzM5bHFtc3FPZG8zK2hNNW9qb2tYc3J2T1VPTTMvYjJHOW4rRjBXM1RlQVZqNnRzL2xJUk5Xb0EzV2pUY21SUXN6eDVkaGdaSHBnWmZLWTRVY1JhOUFaV04wbzRoRFNjMmpFZ3ZWNTJHalFHMGZNbU9meHNBbFdhVVVLR1F5NllhVFRoWFc5eVdSTmpTUWhsT3hPZHMyY1h0TlIwejRsTGxWTHNjb0tUNG05QUg3T0dyU1MxYW53VVZQUGVvNllKR0tNTU9FbTRXQUNjOEM4d3ZxNmVHTkRVQncvM29vejUvQnR1N3E2dEgvTXR4MVdzYmlxOFB5ZGJwdFZMSXE2MmMxanMrcnJKUW4rbU95QmtucVFPOVdWZFhTanV5VHFjUlNlL3hlWHU2U20xT1ptcDdVcHc2UjZ1U0I3NEhQYVlWai9sd0V2cndkZWRxSWVkRERwc21DRWU5cGNZS0M2Z3d6SE5tQ2U0MVRUVmdGYXlJQlJINFdyV0k1aFJ4REcrbUVqcUdKRnlvQTVqaC9XQVZ0RkhqUzM3bEpEaHhDTXBMc2E3OEVRSXRRMUcrWXhUWXlMd1dZcFpDS2FERHFidG41QlVTQmM5ZUY0Z2hpRnRCM1I2ZDBab3lKVUV5a1FUc2NUVkplcEhnTzdFeUhtMzQ4VnVwcVQ3YkhaczZiTW5OSndvdFNwTDNLOXBWaUZaYVZseTFMSzdtTVY1Vk52ZW1Iay9yNmxTeGNQUHI3akZmKzBSRy9ISzl5cGxSYXY2M3VDMXlPdWsyYTMxQ3lQUHorMXpWbFlVRlZaV1dWTEpWZll5RTZCdi9PNi9udlhETjNaZXMzTzFZZVhuQi9yRERkTmIvc3hjQU8vd0R6QU9zQlhXRkhiQ1NNd0dhdGN0VkNId1JDSGdZQnpkb1o0Q2R4UERxQmgyRU93d2swd3hvb3NFa3VVVDg5U1d4a2l6ckFGc3c3OUhMNHlGcXZrNStES1Q3bVA2dVJ5dnlqNjhidWNJVWp1akxIOENQc0F2eDc1MERUbEI4MXd1RElGWjBLNHQxU3hSR2FrL0JpcWhFUEVuc0RYQVhMMU1Qdytuajh3Y01MbExHZklqMnVhcm1OY1RqdmRJNU1KeFREVDJHQ1BKMWliMVYzcmxPeXZ2Zjc2YTNiSldldTJXdmYvNmZiYi83U2ZYeC93eGNPbGxodms1OCtlbForL3dWSWFqdnNDaHJsL3g3MXZ2SUY3L3o2WHpqVUtjLzF4N2x3eGhya2lGRUtadVNyendwV0l6cFZ3YXdCbG1EVnd3dXVwb0hNdHRMdWNqRTZmWHBOeGUyTURRL2VJQzNFemkrak1yQk5tekJmOFhUNyt4aHZ5OGIvUE5haXp4cDFueitKT2JkWmtCdWg1dkp2TGgzWFRnaFlsODZjd0RPSWF3MTRibUJYRWdHUmRNRk1IRVNYZUM5Q0lxMGlCMzBjUk1tTVg3SEdZUTNpVWlQaG1lcFlEN1FjUUFQZHFyZzVXaDNTR0VnS0N3TVVsNGlyRGRmbVlXbTlLVGJYaU9Ra3A4UTRjSXJwT1NmSlI2dzJHKzRFT3J2cnBja0ZJV0EzTjFUKzczK1ZPQkVQbGpkYUZDNjJONWFGZ3d1MjYvMmZWelFaclFoREtuNjdtT3BxNFUyM1Z0dnpYTnptcklxWE82QlRlY1lzajZvNkhQU0hocFplRWtDY2NkMGZoRUQ4bDZpeU5WRGszdlo1dnEyNGpQSGdVN2VNRWpnSHBSSk9Wc1BnUnd3K0F1Mk14WmhCZVQ2d0JnVGs4TTU5S01CaVVwS0NrTjVSU0EycnpxMHRXOU5zMDQyanpheWJTYjZNcjk2NGFHODVUVnFYOEQ4WDF5aDhxMzdFRi9EVEhrRE1mS2g1Yi9vZDZKazhaaVMzd25lclZzUHdtVzRCWElSc3FTNWFhNk9LamV0T2YwWnRRa0RFVVVhNVQ1RVhoSmpFeWpHelgvODNaRjR6Z05WeXA2eDk0bFQwL1AzL3NUeldlWWlQSGxEbGNWQmNleFdjNWdUa0o5L2NsUGRrTGVJaWNKYm9ONkRiT1pybU9ES0hzWjNUU1l6cGw4c3luekVtRkhJVUlPditYQUdlYThUYVVoNHFUaFpwbEFOL1hDNTk1eUJLZ2Q4NUZpYy8zOXZiM3d4L2U1aFZrNGx4bENnWXhla0EreEVYNXE4R1pkVDlqQXJXbGhxaVVHQ0p5NDZ6RkpxbkhFTjZqSGt1YTBsK3ZHbENzRW5HSnlxOXI3bzg0djNnOSs0dGwzTmc2ZTdKekdjZmNZMC95VjFjSlp1TW54eUprbzFzUUFiZXdCL3pPTE9yRFMxRlZNa3lRSkI3bUZJOE0weUlFaGxFdkNSUUtTZ3RLQ3AzMHAzU1pkUTAvUlcxT2pqZGxQbm56eWl2ZnZQTk8rcmxoOCtZTjVJODdkWjk4N3J2ZmxjOGRQb3pkMy8wdWR0LzMzdmRlZlBIVlYxOTg4WHZBajlNSWNWWGNHUlJBTmNtb0hlQVY2QVo4c0F3Ry9NQldwSGlPRUwweXplOEFrc0ppTUU3V3FEUk9tQzNZbHJZMjhVU0FyRjJYclo3akZRRkxpb0EvL3JuZDZoRHRUb2NUUCt6eGVxVy92cUY0RHNXUk1BOWViWkpDVlY2WHgvejNndkx5OC9PcHpPNkhPWUt2UjdWbzB3a0pjeXdSV1FHSVIwS3dEd0J6bEdyejVUQmZ4UWRYRUNreUs3WElJNUExREt6UHJzbkhEU1JKU0ZDTGFxU3FSdEd0TFZPblRvLzlXVWpTcjdwV0NNQUl3NFUwbUtRbWlQbmRxYUZscStYL3dDV3g5bVJ6bVhqK1V5RGFaTVhmV2RneHI2ZS9qeHlNRER6Yng1MWFkblRMMmtlSDVFOEdSWTlYK0VEd0FROHFLdkx3ZmZOV05jeFlWSG1BSFAxYjJGMWJpeWo5SjBGWENvSCtadFNkbkIzRk9vREJnQ3A2RU96d09nN0lZa21JUW5BZUM5d0JtTXdyS0RwSGxlQ3pHVFZKVWtPRFZCaFdVRExvTENWUnNhWEUySUtSVlZRSmdBU1JJcUNNK0NSMHNrVy91M1hoY3ZrUDN6OFl0QW1WQnN2VWZWTTNidXBidEo2ZzJaNkIva1VMdW5zSnJiVnpIMXZJblhyaW9jZTZnbDhlZXU2RmxDTmFHbDNFKzRTNVhiUG5STnZiWTlObVRwL3Bua3VJZlM3cUtKZG9QSFlOeUxvTGFJMmlHaFJQMXRkZ3BNTTllb3g0eGFnYXNFNVhrWUl3Z0dGWGdoeEZGdWlxanNIb0tuOHc3ZytLUm9PSEVHYkxBQ0pYZmQwRVBXMVVkb2tVNjNHOWc2MnBmbHpSenNkdlU3WmpQMUcyajhvTFlNZUJ6NWJPcXBmdisxMEJkeXBXTmZhdW9yRVBaU3Z1UTdDWldzUjBDdUxZWGtBeUdEMUpaWFlFOFBuTVpLY2VBRGttOG1KNUhRdnJpb093YUJjTTRrRUxSNEJzL1JBUmw1QkNIRWNENHpCRHhGV05vb0lrdWdPQ3BJa0w5RThmVitqSnVIVVN1dFJyWWlLSGllVUd3M29HaENIUHRLNWN1Zk9KcFovOWZ1aTVYa1ZXOSt3ZXZIelp3aFdyS2l1U2pZeWY4UXJNU3U1SXJMMDkrazVnN1ltcmZ2alQ2a3BYaElncHRYTHgvRUdwb0V4a2dtS1pFaXQvRTJpS2M2Y0JuMFJSTXRrR0NKYzFrVkFEdkFsUXlDbTBzTEMwaU9ISW9xVzhIS0h5YUhsVlJSQXVMUXNHQ2cyR1lxQkh3VStNbnZodUxVUUlVbmR1bHdLSTJEVk5HMFgyTDE2ZUNULzdYM3VjOGIzOVc0K3Qydjc2Nks2WHA0YWp6K0V0MkNCdlgxb1g3Vy91MnpDOG1EdmRNTVhtNldlTlBiZHZhMjBhZW5UTDVVK3RYcmV5N2RqYVgrTGF4MHhqU3lwbXgySzlzWUh1VkQ5WlYyZUFuaWtnb3pLMDRJUVZnQXV4S3lhd0swV3dDd0IrR3pnSGRnaldHaXVrbERWVW1peFdUcUhSQ2VjR0tKUXRReDdSWGNFVCtpaGV3U28rSk1ybVY2VFdhQ05aSGM1V2ttZVVoMHkxZ0tpalRUcDhqWHdIV1RJK2dUblBIUUhOcW5XZmw5eHV2U2xhWnNsbkwzdVJMQkxjUndYQm9zZGczbjVZSTZYZ2x1clI5T1JVcHc1UUJqSGNCaEFEdzQvb3FUZlJLZDZFNHpRVFVGSGg4U0JVVVY5UkY2dnloRHhCb1J4dVVWSmwxQnl6VHA4ZHFjVVRrOFJyVEZaY3g3ejc3S3ErMU5CbFcxKzcrZWJYdG01Y21lcGI5ZXgxc3hhUmZNeWlXWDJEZzMza2p6dTE5TjdsZ3plSTRtMlhiZmxXWDkrM3RteTZWUlIyRFM2L2QrbWJxWTZPbnA2T2pwUWNXdExWMWRmWDFiVUVkT3p1QytmQUg1MENSbFlSSFhOZ2hqTVRqdmVBZFdNd3h3QnRQSi9XTVJVS0FHMCtIMEsrS2w4a0FPRW04Z1lLUTZxT0FVVUZzTTZVdGRMT0pDYkdvY1NTeDdESS9KSW9sSHhRdnE2RTZOb3p2OW1ZbjlhMXhhQmF6VlRKdUZOVW5lVFQ4dUY4ck9wYTkyMDdORjE3aDZpV29tUXdXNHBiMkljQm8xQWZ6Mm5JSlVEc01qdE1mRDRZTUN2NEhXdXB0Y1Rsb0dDRytuZzFKNkg0SENiM1c3NEtiYlEvWmtFbTN6VjJOQ2YzQlhQWUFkaFBvblB3b2Nwa3FFang4Q3o0ZUdadFprSVk3STNQQ3lpRHpJQ2ZNQU9xeXJtNFVKdkY0em40TUhzdS96a1JLc0thdXdhbHVHWnVLbkFFc0tpUjRLbWU4ZkZXV1RuRm9scXNaY1RwT0F1cnpwZjlmcDVUY3BWSVl5ZVpPVktKUzNMbU9jOS9XT3h5RmJNV2JxcFUyZUFUSFBKYjhsc093ZGRRS1pud0hYa1Y0VEM0MXp0QXZ4NUYvOFVKN0dGQXBDSUtKNE1nQThLSzFlbTBaUUQxMmdGMTJrVzd2N1NJNGxiZHBMalZmbWtrV3pUdU8zczRHOW5LOGZFNEY5MEJ2Rm1rOGFZZ2c5T3o0cnV5a0liVGRWbnBGaU5PaDNXWTZ3QStuUC9RcVhDSW1UTjJVdVVRYTJFT1VUN0lXMHdLajdDRUpaVkg4aGJnemM5QVg5K0hHRjFDZGVpNnBBVjBCVnZBWjRHeXFzRjZNRzM5d0I4amZoY3hnblFwU2lteUxMbGhNRFlpUjFKMzR3YkNHRVEwYnlSNzJFRFNHUWlBOHRVRmFxc3E0VWRGS1ZLaHJGb2E4RkYzVUkyREhaTmdyWGk5UFFmdnM4VnZmUDJ3anFsS0pLb1lDK05mUDN2bTNKU0NRY0tuSDJxYlBqMlZnai91b3pPUDdIOGcwbGZzZGhmL3ZFcnZ0TTVxbno2empFS3dmd2s3bDV5UGVvVmpSSGVQcVdzSCtTK3M1NDV3Y2RTRit0R0M1TndpRjJOa0lIeGltUjRUMWlPTzBYTWppREZqSThzWVJ3d1l3ajRFekFMNHBkUHhBd0RDU0dxSDE4M3Y3a2FvdTcrN2I4RTh1TkdjYURBWUM0aEJDL0hvR2FlbkxDMHFRQldHd1hMTHRrNkM1ZzR6SWJGZU0yVjJxWjdKc21VaVcvc2Z1K2Z1WHpKam1TMTF6YUoxUys1WXVDemc1NHNjcnBJeWJyYWh2RGpZS2k1OWRQdWVuKzlZZkhUN1Y2NHo2S3hPbzk1aWFmeldnaVAvY2VNUjdIdXFlbWExVkNiTWlFN2o0Z2MrdWYvR1U4TTlIYmZ2MnJiK3AzdTJ6ekRxOUs0OCtiVnlseFJvMzk1ejFmRlZYLzM0eml1ZkhLNWdTLzJsTnB1ZGQzdjNmUGpRaTdqbEdUazE5L3IyNnZxQkcyTHJFSFBoWThCMFo4SFBKaURDbjVKc1JFYXdQMFoyUGRMckRVTW1iREFJS1IzSHNHUUZBa3pDSWpGR3pVMHd1cEZnT2xzd0xwb05aY1NXNDBtZ1hNaXZuK1NvSTIzay9YcTJubVgrcmM2TWhYNDFrbDZpYlB1aTh0ZWlYZXF4VGNwMjBkZ2phaEQ5NXBMclA3bUdPK0lUemwrbUlEd0Y3UjA4bVAyTk5TcmJOK1RGK0RGRWZmTk1vSFU3ME9wREZZQmdkNXpnc1o0anVLSVdsazg1K0RBOTV2VHJlWUpmQWZNUjlLQlRBMlVTWDVVbXE4QWE4VHlCSGpvQXZ0dklCVHE0QUxTSlhhbU1SenFkTmh3V0VFSTFzVWk0Z3JoeUgvTDZnMDFHYlFIcEZieVlpYzB5TEdFMWpBOHdtVzdab1IvT24vUEh0Mzg2OW9KQy9XV1hxVGJMZVBTMnBVc1dMNy90eFplSFZyL0lIWG5zMElJZFl2dTczMzVDWVFKclZMWnlLRG10czIzTXZMOXJGclZqNndHZnJBY2ZIa09keVdRbEJvaElQUTRzSEFLYitHRTl3QlVsK01yc013dzFDMkdPSUY4QTlNR2dLQVVDQmhYT085V2NwcG9DaGZrcnVGZk5DQ21SY0IxTitYTlZzYlpaMWZYT3pXdjMzLzZOQS8zZlhGRmdyZlpaWTJkL2ZmVFRXL2IrN2U0bkZqY251Vk9BakVjRkwxQzQ1cHJYenB6K2NYV05ZV0d3ckw1dzQ5M1kvZHhwN0w1N1Y0ZG1BMXBCbnJ0Qm5oNklmSmNxWWl4U3hLZWo0dUJ5eENlbHhjY2hEc1JIeEthTUl6QXNMVGFJNmdPaXp3czNMUUVWMTFPUktWSDk1OHVMeGVmMzdqMy9oQnhXeERNOHJDcnJiM1p1dVBmKysrL2R3QjNaSjM5MDVvejgwZjVjQVoxdmVPbjA2UmVwYkFnOUFQaFJISDJtZ04yWWtxdUd1YkljeDI4all1SVpGZ0l0akkyd09vMUdBV3c3eCtsV2d1S0pPcElac2NCVjFWbFhzVHczK2dVdUk2eXJTU2ZHditoMXlWWmtBSmhnMkRiaFNqMEhLeU05WDFBczQwcmxlcFM1ZkdDQTV0V0IyZ1ovc0ZHMFNYNUh3RXpLY2FwT2dmZnd1Mmc5VFFlclFRMzA2YWxKQmNIRnlraitYTDc4UXhMcGZvanZhZW1jVmdOaC9tQ3VQTmpidVNObG92d0xraXcvTkVaaUsvbWRINUV2OGpjRlg2NWtjbVJTang1U3VCdlN1S3VVRDlicmdUdUdJYU5pS3RQMUExN2o2dmpLeE1YSGc3VDF3R3I5dHZGWEFQc01LeWRlQU93alU2eEh0Y1FVRSs2WnFDbk9jTS9tcjFNTXpXUnhkamJycGltc3V3N1hFTjdKUC90WEZSNGRVN1kzcWdWTTltZ1c3K1NmRXViOWQzYWduV0VjUm5QQXpod0ZPOU9PdXBLem1vRXNGMkFNRWlrQXFtTTRyZXBpWUdnbUJLTHM5RDdEYUdVWE9OeU8yb0xCWUZ3QWM1Tk5YSTY1U1RSbUtFbG5GbXlxRDg0MVAxYkYvR3pZU016UDF0VXZhZjVFMmZvY3R1VnZYNjJZb2ljWHFhYm8vMUJUMUxlQ21LS3lSN0lkakR4V0pCbHJhalN6ZEZVQ3pCSUdkSWE0ZTBCZkZoTDdpc3hnYWN6Y2Vvdkp3SkxhdERXUG9ZdUlaMGtlR3F3VXpXNEJuUXZSL080NXMyZk5uTjdlb3ZwVmZ6QS91elJ0bTB5Q2Z0dm55elhERFgrMnRKV3lkRk9UNmw3M0tkdE9lV2RuN2hGdEJMNUtIWUZ2N3RTTzBEZ1ltSEErUndGd1JQNzFaQXFoTXV3VHJGY1ZoT1RuRVNjQW4wSUU2WE9BcFBraGt2WVRVc0FaWUEzU09CTkNBWm85U2lmOUZIcnFKa0Q4Ykp2OEp6ckx2MktVQy9NeCtxdnFPMzh4K2Z6VENvelJhbHJIUFFMaGF6eFpYMHh5cmoxa1BZSVBHYzJlTFFKSnJnSmREaE5nQklORFlpQW9qcHVzbXNRanFRVXliUnVOMGJQcUNhcEFUdi8yNTMrK3Q0QXE2SXpoQlF0a05jM0Z2Sy9OZGV5dUYxKzZzMERBMDZsS3l1ZUYvbVZNZjlwVXFicjNPc3g1SlpxZjdGME12cThLSW5TU0FRS29nc0VxY3d6ODIyVldsVEhQb2lvalF3SmVIVll6ZG5EMWlpVjlpeGIwekFHK2krRjRreTFvemRaRVhFYktQVzRTdldmVk9VbXdFNHFSZ284bzVHUFhGOVZMbktXV1g2TGtSdVFIcHd3SzdtQ1JaQzJzOFprVUh1eHZXeXk1aSszQmdwS2tVQ1hXYjFmMXRDSVhFZUd2S2R0cVBMMVJQYkpINDUzOEdKdW84YytxN3lvS1ZDaEh1anNqVGNHZTRsQlVxSHZ5YzNUMlJaeE02NFRtQ3lKb3RRWWFHVVJ5VTZNUVNDSGRFRVI5T2dWMWFBblFVaEtXS1VQQUVyQ1kyNVk5RW1VR0RpVHpFYW5DaFFuVGJVR0tyYkpXcjZZNkYzTit6Q2VVM2pmeEVOV2ZqTnU3NHc1Vmk5YWx0UWpqS1lvQzFVMTBlQmlaZ01hWGdjWVVzVit6QTE2V0kxa0FqdWdRSGpWZ29qaG0wMFdzV0FwMXo1Z0dCRWdTV2JHV2JLMXhUS0lSWmlXTURKbng1MGNKV2xPVm4vc3lwU1Z1YmMwMVZJTzZyK2ZGS2lNeDZ5SGQ4dHd6TGZseFZSTThybExkeVdkMHBTN3NuWHp0TS9Qa0RhTFhLK0s3eHA2ZVRCK3NOdG1GLzJLemtuVUd0dUVZOEtnRERUOVRYMEFLVldvTVhncUxpWWdYZkptaUNReURoNGxCQzVQaXRXL2lXWGFJaUQrbEdCREZuM2VnTmdtNEY0ZEFsTHE4SERNU0RHSHhVa1lmUXJGc2E2L3dyS211TlJhMXllM2MxdHlncWxPejZJYUtBdndBcDJvTnZqck5vejYvdjlqRG5CdjczbVE4S1IyYmo4YzAzV0ZRQi9EbDF2L3R1aGxyK3ZTV1d6NDllcFIrN3IvOTl2M2tqenQxbDN6dXVlZmtjM2NUOS9zY2R0LzEzbXRuenZ6d2gyZk92S2JHQlZlQWZBSVFyS3pUVnFvT2tiaHR2WjRpS01NRVYwTldLc2ZyOWR3MmJTU0V3UHpLaVFNcGFJMlJmSGtBaVJSNUdZbTFWMkRxSlF4ZkpsaTQrVzkvZS85dURXYmRvMnp2dkZOZHErTGRWMTk5N2JWWGd4Qisrc29yUDN0cU1zNlBIUjljdVhJWjRibjhiNVRuVFdnR2VxWDdTUWZRYXFyRFNLOGsvMHVUWnZJRjk1Z0FVbllQS09jbHBBY0s5WWoyYlBFRExDZ3BLZnV2SmVHK2J0aElxamdHQWwrOU1EYWdqYVVaRkZwR0lFNWsvR0NJalZsYXdSc2w0MWx5Nzg4WkRzalYzZHlNVVBPTTV1bkpkcGo2RktuQ0lZbEJNNDBvVlZVSTZXazJKU2V2b3RmS0VHbzFKVVRiOGk2dU5NWE9qYjI5dmhrK1QwdEpiN2NscnpDUzd4Q2JOamRKM2ZWVEY4YXUycW96T0NyekMyMW52bkVNeHU0N2VIQWYrZU5PM1NhZi84NTM1TTl1WXpaNmpUcmVXS0dUZkVGZlpVbWxhRFpaek5XczVBbUpaYmJYMm5EUks5L0IzRzN2UGZQd3d5ZFBQdnp3TTVtWTlGblFQZEt6dFAwRXJIR0RsbUVRa0FIT0c1Z1J3Z1U5eEZPa3FzU3pETW10Y2twdXBSVENCWjNlYU5SdDA4WWlvMUcvY3JLaE5ML1EwelZ6T3Z6U1ZLS0c0WGliV2FzY0ZuNnVoNzRJbXB4TVRaZi8rei9qNVM3UlhaVG5yQ2gycUpIVTNGVmhwOGNwRmZwNkdwTnFWQ1UzajB0TzVEOTYxN3BWcTliZHhSMDUvZFNmV2wzaDBwWm9qY3Z2VjFRNTJTMjJ4VHJMSThFTGFETGRsdkdjN3U0NW9FQjNnVDNwQU4zdVFxbGsxMHlNZFQ3TThBVFBZTjJ3UWMrUWFpUHdQTE5QcWxvc1dOVndDcEgyRHJwTEhWTVhtak45bWhTUXFxV0FNU3Ryb1dnU2lTTGNDc2VVbEY4b3F4YWthaUJoaDhLOGtNcWtPcVdKa2YxVlBBTHhsN242YThOekZrcEMxV1ViYm03KzV2TFRYM25rU3FVZFVReWI0M2V2V1RJWURwV251dnN1ciszcFcvWFV0bmxmcWFzRnVyeUMvSGZCVzFEUU5iK3J4UnV3MnV4T1VScis3WmFqZzJ1REpOV0pld1d2dlhEOWh0bkppb1Nqd0ZsZ0x5dXAyTE54NDBPRERUVUJrZ0hCYUJYbzJrYlF0U2hxU05icXNCbzJranlkVnJUTStCZ0s3YUlvSXBMWXdoRlFxNVkybGRLTE9CVmJkbEdzcHl6UmxJaWMrSzFxdFBxVTdXOVBrS00rZ2QxTFk4T2wvaktZT1lDTUhOZDZRZjVQZXZ4aFVpVERhbzhreVRtUzNoeWFYbVNIUUlnMEYwTzZIOU9BT29FYVJaRUNDbU1tS1V0OG9kYVZNMm5vcHdEc0NSRlA5WmJYRHh4NGZVdDFibFNUMnJKaXhaYlUrTGhtN0FmN1hsMjc5dFY5VEZNMkdoejczZllycnRqT0JETDVnUXNmQXkxbmFTMFphSkZvellSWEtkTHJGSW8wWWtqTkdOQ2RtSXZ1VkJDRUo2R2tOQnNlUDBGbk9GMit5OXJjMXRhVUp6K296Zm00c2gzNHpSOW5hVGc0N2IwWFM5NHlrWDBzaDRaN21iVlo4LzhyelA5ZG1QOVUxSnhNeEdNMkZ1dElOUnlSMnY0b2dYaWdZd1N4Y0p5UVlyQkd5bFRVUVVDZUZKUnlRUXByWlJSRXA4Z254RTVLbGJKOGNxZzdSV2MrWlMxYldCZWIxbUw1NW9PVzFzNVlyWXNkcmxOcFVnSGRqc1k3OUJYVmRWVzZPK1BySjhTaWk0czlsaklSLzBZT2kyVVdUL0U0dXAvRmo3dUxIQzQ1eGN6T3l1K0FRbElzdDVCVU5HZlhseGs1SWtLVFVRK0VHNFlzWmtaSmdTdFFsODhOMkdmTmlJTkE2Yis4YkxCcm5EUVpQbGt1M0RpWjJOMkpMTWFNS0l5UlA4WmlXeTUwYS9qT1kwSDF5S2l5YmNlaS9FbHJMc01pZHh3c1VvOXNTZ2REZStVcnN0Zm5oeC9tQlBIMzRLM1pqUHY1ejdOanpBcmcxMUhnVnp0S0pCdUFYU3hobHg0WVJHSmkwSk5KUXZoMjFLcXhLVWRaSmtkTGwxd0lOMUJxcXVSSFgxVXQwUzVsKzZyOGVDeVg5czdUWnhvbkxPeVA1R3hpMFFYR2xCUHZ2WVdsZEx5M0QyaWRRbk1VYTVSOHJLaDBLMjNMOURScGFZQkw5VFJOSEtmME5JVlFRQ3hzRkF2VEdZTjBTMU5Xc0RkSmU0Sjc3R1c4bFNUdElOVDdCZERvWk5ybDQrUTdXT0lDU211YjcveC92MDBUbXdkb25EZXRsRFhTUkNkZXFmU01ZQ3pJVDdQMzg0UElUWEl3SkVvbEQxTnd5ak14WE9hWkdCanJSb1ZTWXdOcG5lRFUwb1U2RnpYQmFQT3pYeUtaUTRZNkxwbG1FWi9Iblp1cXAwMkxlUVZkUlBDU3ZjK0tsZCtOd2U4K1NuKzNJaGtndjhkZ2xsbWZhWHRNdHlhNmtjc3ZOZkpLMmNTbS9pNzVXWnUydzk1SytnY1o4b080VTM2ZWJtViswQ3Q4OG12Qkc1czJyWnI3RS9sVWRQY2wvQ3ZPREhqQ2k4SlA2ZFpNVDVhNXJhU0NpbnVBYnNUc0ljMlJWOEZBTC9JRXc1eWhLUEtVRGswbnBTMWFzdEZsREZzbzNhREUzRjV0eE8xOFBDeDR2R0g5YzgvcHcxNlBFSTd6dU4wWWkzQ243STZ4KzAwR3QyZ3k1RnZ4WHZrNmE3N0JKTG9OSm1hVnd3NjI5ODJ4Qzl3SDhydkloc3JwZkZ6aldhQjBmdEpwVE1oM2NXOWJkVHByM21lVmVYVExuWlhmdGRYVTFGVGJiTld3SWJFOGRySmpiQU4vRk81ZlRPOVBZbGVsUmJMSW1iNnhVcVlKQmJSK0paNXRLQ3lYTEdaNXBLaWlLV1lyd011NC9jRFZldDBibHZKUXZOdDhRY0c1VzhCdjNNc2VSM1d3dlArZ3REL24rN0NCYlcwQjNPb0FDbGdJUG5LTzZObWVBU1ZNRGtOb1FQcXNSa21Qa2dHeGhoRlNGcURSUVNTbEp6d1labFJBck55NS90SVhBTGtpM2RVYW0wcVR0WjkzRlVwZkJIR2VkZzBKVE9yckVhcHZyMjlyU2dCdHRTS2d4bmlqV1FPTmhibUFPdDJPUXhQTUpDT2RhZW5PZFBmSEU0MFFrU1JlRmNwOWlqVzZ2SDJvZU82VHk2ODQydi85NDN2dVhyU3g1ZUFzbTZVNFZKQWZHM2h0eVlOelpuWE8rSExMemJ2WTQvL3lsUHhPUlZReFRQV0p0czdVVjRjUDNGUG03VXg2aS9oQVZaV24zbFplUHZaR1hVMTFiYUltV2FySXBSVGtjaGxmamlwUk0vcUJ3bTRUQ3dHY0RjTWFBNUdvWDBndVhwVUdHRFUxSXBaUzVERUlHcWRIVWpvYXZhc3VYNVZEOU9KREZYdXZYb1hVakVjRWhpSU94REJ5NmRIQSs4SklCQVkwUjVycWEySCtGZjVnWXpCZ1VvSnJXMjRqR2cyMkp3dGQ3Rm90WHEzTjQwUGUrcjI5dTEvZHNPSFYzVU9IRzd6Q3V5cnEwOHB6bnJjM3RMZHZTTFlQMXRZT3R2UGxZRXlXTmJXTnZ2V1ZyN3cxT2pCdmtlQlZpOGw3MWJEN2lkWWQ4K2J0YU8yNHNyZjN5ZzZ5Um04a2ZYZDBIWFFtazdHTDFGTWpXZlhVeUxoNktpaFpNQ1FHZ3hQcXFkbWRCWm1TYWxhUGxGTFVZRDlSaWhyaCtVMnpON1cwYkpxZCtsYVBQVDhxMkNQTDMxaC82UDBiZHYzcjNnYzdtNVBzY1RESkw5REVYK1hzU01lT1ZHcEhSMTJWYVc2a0xGclUwTHp6clFNSGZuLzlqamlKS3hnMEREUTlvdXJRZDVNbUh5eGRHMVllSHBoTVljalRYaXlSNjhTRkcvMmNvVU4wOWVseWxxeWlNQ3pQcmIvMDZJa0tJd1lEY1ZGVG1Lekhib0p0T0p0dGhlNHNoVUhqRkliOTBLdjJJdnhaOERZY0hsSlVwM2R2dlpxY3diMXlCZFdWSk5VYm9qR2YvVlZSRHErd2FONkFvanB0VGRpdGFZeWlLNHJlS0d0ME4vQjNMdWlNSDl4L1I3STFuU0htNFNTUGFCOHROMHdTVlJHYUlpWmNDTE85Z29DUUVCS0NrZ2dYbG9jZEFnUnhKV3B6b09pL1NQOEprS2pUK3dsZGxyT2J2Y0xZTHNjTksrODlZYkVVbHVlWjNDVnJmcmJtMEZ2YnIvbjNyNStNNEdkdFcvdlk0N3ZQM1MxNDVpMU9jQlUxZ1pJU3I5RWYzUG03V3crOHRmTzllK1lvL2Q2UEFDWmF3d2RRRTdwY0VYRllLMWNhTUtQSFdzSFNPRXpxdmRLNENtZElHd3NuNFY1R1BKSzVLS2UwU1F2REpDOUVFMnlDV0VRTHc4cGpKc3J6SmFMZ3hSbjBNV2s2UTJtU3Btdmtua1BGeFNhTFdHU3gzVGgwRTA1UWZQSkRYS3dDU0RWSGZQSWtPWDd5NURFKzBHVDBlMHFrcWlBZmVyaVYxb2luNXlEa002UkRlczdwbDhsYWtkZHhqNEFzYTFFSHVrTjVDaUdJZWIyMlZpSUlsSmxudVZHVGdad2FOdW9ZMm1PbzEvUEQ5RGt6clJVM1N0US9uak5hYzFYS3BVUG9vaGVDMTZxckEwdlNVZGMrSlU3YTVBTmlrUmhVdlpaYmFSVWZsMFpPOTZRUi81U3pQTVoxWG00bFJ2UFBDb1A2Ly9MbnZ0ZVgxK1RsQjRyenpDOWNlZTBtTUswM3ZicHg0NnMzTlc3WnNqdzUwdFkyQW5abVh2ZE16V3lPMWIzNkc3ODNQMTRVcTY3a1d0YXVYNWRvdmZiWFgvN3lyNjk5NzhidDIyOU1iTzd0M1p3QVBRQjR4ajBFOW1ZNjJueUNKYzhmcVUraFNzaGdVQm9QcEhTcmJHUjgzYUUwS1JCdE1pQWo5ZStURDFJVWFqcWkxUW1hVU5BNkRkVEN5bVNSQ0hIb1Z1ekZuNThzdzQ5N3IzbDAyUzFkcWR6S1EzVzhvM2xEUjNYdXdZelhvWjZtNU9TOE8xZkx3em1xdGFaMzN2Q0RnMGR5OG1KN3RRRHN3Z1c2L3Vid0N3c0V0QjZoQWdhdHN5clBVVDhncjJQdnBjZlgwcWVvMTZGbjZYcHRndkVIZ2JkVDBSVkpZMGZNYk9KSWdLL3hWMTF5VXNwQWM1S2dYWUdVeVVoWWg0WmdvU3FOTXdJWUprNFBUdnppZ3hUK1RrVkpxWUVXTDZSR3dsK3BVRFhBSVZaL3FaSWdpQ0lncXFCZTdmblFPK3E1SFI3eTFHT2Q1L3crclVOczFYaFdnaUhnNmlqd3Y1OThWbnp5ajdZM0t0dUFleFY0eGNpOHlSZ0pkakQycTJBOEVRd200c0VmeWs4VFB0MEhmT29BUHZuUkxJVTVickM2M0JCNUJrNUtNV2tQUkZDTkN3NkNqK2ZZOWRuSGxjZmsvTWhIS25qcVkzS1hxRk16UC9KcU51aTgrcXdudHAxVGQ0NHFybVZ5UmNBWFBvRDVIZ0M3MDRFTzB3ZHVubWxOTUVTeWdQQmFNYTlMQVBhZ0NJODhpd09ZWGpFbkJqMnIwd1ZTSE1Nb290WDhPZW1IMUU2UzRIMlNvVWtmR1RXRXRDRnF3MFlrUFdKQUsxKzFneE51RE1EL21ZNE4rc1NLVFduWnVOalh6QlAxcExHWjJpYnkvTEt3MFN2c0ZMekZwZFdKM0IyMU9lRVloSlkzOW53dEVydHVGbnY4N20rTW5TRVJLR051ckx2amdQejRoUDNiTlFXNC9Zb3JmN3htdmJvK25nQStUa2NqSjZhUmVGMDEzQjdTcDI4WU5oa1pneUV3dmdleU5Ca2tweFVuUnlJUUdEcUVKaG1vMlozT3VHWjR6R3FpNlAvWjRpajhBWjgyNzM5bWN6NFV2RGQvSDZ6ekY3RTRES1B4NmVENzRPTzJBbDVaRGp6S1I3N2N1bDVrUWwzUFYxQldWSmlwNjQxL3Vwekp3VnFNL0lmcnIvL0RvVVAwYy9iR3BxYU5zNVZQOWpnQnBHL3RWRDdmVXhDVWhya1pGSkIzY3BmQmZHcFFFdDJjTkVVeHg1c3dTdnRjeVVUU2xUenh0VHhQWGFZeXhVeGVLa1RjUmpVZGx1VmtWV040c1N2QXk1S0h2bXFUdFIwUUc5YWdhaUpUdFdpVmlVeHNsNWJkUkVhd0hScktWRnRjWllQcWNYT3c2SWFzVUlVOXJpRk4rWndpclBFMkRzRG9lN25SQ3NYMndMdEhNcndqeUNLUWhWZWt5WEZLT0ZOSkNMRXE3ejRmb09SZU1ZRjNJdWtRdUFoQ21ZeURuNk5FT1FpbFA1ZC9qNlNEdjhJczBNNGV6d3J0emwrbmJKVlA3TmFpdi9mRzQzYUk5Y0JXRUwyTG8yZG9MK0NKZXZMc1cwOHAyV0pNcksyRmxreUpPYVUxcVVDSzVKVFNYN0tyTWFydHJjcTBUbVl1eWhTNHhsMlRBZHNaWTB3YjZVaTFKNUl6ZGtCNStVWWNOU3FteDAwTEtKbkg0bFZMNDcrRVY2YmF5bjdZWFdXM1I0dXRCVk5hVTN2bll6V05NYlpJclZ2dlVGMldYZkIydjdLR1BUNmx2TUVmamNZTXZsV1BieHlhM0s3ODY4SDdGSjRlQmRzU28vYTNKemtuQ1lTWGphdnhSYkpxZkpIUHFmR0JrWTJKQWFsYURHaXZHYUY5VjJxRlR5bndhY3MwOStVaVJKbElmWTlXK0lMWm9mV1A2QXRGV2c2dGFlbnNDcTFZZm4xaTN0TGxUKy9hZjdYMlRwRzZ3OHUvR2EwcVhyYjJZTXUrRlErdC8vcU8yZzcydVBJbWtZN0dTckhTYmpLYUN3djlWdzBQN2UrZWxYNlBTRWZ6d3VJeUU1OW44Zmw3anZaL2FjWWNrL3I4TTRtN0Y5UGU3SGl5SGx3UlNZdU82dWp6bFN4OXZsSnRrTXp0eHBiRUNsR1FKSzFBbG03NnREblZ2SUVhRXFxVlBqVXNJdGxieGxudnhOdHBNSFRyVGJIckZ4VG11YVFDdTh2MWs2OGZPL2tTT2Z4UzJ5enVGRmxPNzlNZzZNOFBod05Hc1NMcUtmU2FON3g4R29za0RNSWxTdDhqelAxcjdHRTBCYTArWWN2eW95VWt4OE9SNmg3SGtaZnlaT2NJa3RMRWswcWN6MmZIK1ZTUnA2QzRGQURjSGhlMTBtVnVnSytiVUEraytUcGlKdHF5cWdmc1g3eXEwM3lYK01NTWJzY2dIdW8rdFdheUlIc1ljT0xsR1VjSW5oTS9vR2d6WUhkcnR0Y2tkUkhTN3dyMFg2d09HUGpmcWdQZW9OWUJmNWMvZmViTWFmbnk3NmZsZHI5MVB2VjBRajB5eWg1VzQ3QkJzYXhNWkk3bVZEcG00VlBqNjRBdy93NVNCMnlvS3FCMUhhVGpFS2REdVhYQVFGWWRrRFFyU2NRTGl1UHJnRGlUTGcvK1Q4dUE0VHNNamEzTlUvSU8zR2FkMHRKYWIvaXFvQktrUGgyeXVIdWZ1U29jaVpodjZaMnRaV1V5cEpLU0oxNHQzeWVXZWFWeEpPL0VDejNlb2hMNVlYeHpkazJMUEJleUYyai9uQnBnNEdJMXdKbTBCaWdXanE4QjZyOXdEZEFSdWxRTmNMSFN5L1pmbUszUExmaFpkKyswcVVmdVY3WngrZU9HM1BwMjN1aTFoZXFSVlJxVFBwTS95VGJMZS9mbUFFTERwOWxNMjcwN1hRK3JrTmRTSFUrUWZvTXFOMjE4MDZtcW9hNWhSRHJleU90U3RQSTlNRWR5alN2Zll5dWoxOUVYRWJRemlTK284RW41cHBrM0hybEpDcFFXejEwOXYwbitTWGV1MnJjZU94WWZyL2JuLzNucm5XMGNudEpWWDhYd2RadTNNRHR5dE9GbXZEUFQ5MGhyZlVCYmhOVDZyQmV2OVFXK1lLMHZNTEhXRjBGaDBSMmY3UDBGT2EyZGNhM2NGOFBVUWRGNm45VSs5aEdlMFRDek9wYXZWdnlzZHNZcy81UWU4UWxzQ1hzWWFDbVZIR1BuZG9vZVMwbXgvRTlhOVlNampIdWJja1FzZzBrK0pEL052czhQUXF5K0tXbHRnVUEySDZZZkJnZWp2ZnFyTlAycUFwS1VaTmJTekRXaGlMN1V4azllcFlJNEhvMWtob0hJeVZPUXhGNWpabjQ2RlpCb3JJNUtncmMwb0ZkZndtR2xDVzBmQTNTN0NQbjVXS2NnT2UyWmVkTE1wVHdycjZWcTRWczFEaXErMkdNcExWcDFXWWpqOGFicnI5K0tqVGkyY1dsUnFjVWpmdllCbTRldnZseXRyV3pISnZhRDgveGdwRDBXSzRnczZ4MHVHYmxGTkFuNzFqbE51eTFGbmZOQytiRlllOVZUcDcyK3J4b0tGaSszeGFxcW9yYkJ4UVhHeldXZUU4ZG9mZktjZkIvekhrL2VhUkpYZUpMNy9oSHRSVWdERTE2RWxIbmhpU3VyZFliNVRuemF0Q1Q4OGR1OHdpZmZKcDB3dW42L1VvTkY3OHRQY3lHUXh6UTBrclNDMitOcTRKNXVERXFWbGdjTVk4a2IxcFFIZzVIMk5xdEtUcE1IcmJCa2hnRUlIRURLYS94WUlnL1NXVHdOVFcxdERvU0RZWDM2QlQ1S2NVcURSUEROaHdzMU9iU3IrRnBoZnFJeGhxbGtZdWw2RitQL2dEWGg3UnJUcjhaNTdBZWZpVVJFU3pmR1FEWmJyOTg5b3VOeGRNTWdGUkUvZU95RXAyeXpzV0R4b0MxYVZSV3pMVjljWVBpcXozdjZxU29RVTM1b1htZVJaYmZKdVc2ZllBcmNmZVd3eWQ0NU4xZ0Fjb3BRSHQyRUQzRGR6Qmd3LzNKU3gzeEdzSUpqSlFERG92Q0haZENBamlldlBBREVSQmpCUUhUS0lHWStBY3pBSDJEcktLeFRodVVBT0N1ajRTZ3BEU3FERVJtcjFlT0RvaFFTNmF1QTFQTHZ4UHFMMmplbTExN09RZDVVOGQ2S2FZMWRVcWl0M0Y3b0QxZm50ZXhmR2g5T3htZUwyVWVZTVZId2VNc0ZSeUFjc0xuNmwwaUN4NVA1cHNSbmJ6R043RXExaHpaQnE3WlZIS2txS2FSQlVNWU1xREUzZytaUDBrcWJYU3llN0tWdXpJNnY5ZmRyLzJKVHA4YklIM2VxUCt2b0w1V0RzYW13MEFFWEJMbjMrTzBRK2RlaWVlRHlucU56Y3BneHcvckJTeTZvWkhqVGRLdzNjK3FyZXFZQWY5azl4QkxzUWJ6SmJPTE5venFPNU1rZ1F0K0FUTHpCTkdDMTVMRm1JOVlielBvUlpESVpWaUdEeWJDQVBFMm1YS3FEUzNWWWw3NmV2cHp5VXBjUEpEM3o1OWZWelY4NGYySGR2THE1UFYxVGsyS3dxRmdFV2RhU0oya29YN1FHQXZWdE9GUjQycnR3NEVOU1h4UVVVdDhVVk9lMnEyMjkyaE5WOU9xRStvWlBXNzJZMEROK3Axc09Gem1jN3Z1dXpNc3JjK2VWZ251enUzMkgzRTVtc2ZOOHY4VlE2aTF5c3Q4bTI4c2hEdW4yVmRaVXltODdCSjBCeDYwUk1ScnQvanQvTC9NVHdSOE0rdkhscmZyYVVwY243M3A5aVh2c24wTEFXT2l3alAwM0g1Vmd5eGo1NkZpdEVBajRyM0k1bk02cnBvcjVJSWJyN1BiaVF2bldIL3dBc1NDckVQZU9LcXNoN0tLU3l0Y2tOUk1rWlNCR3BSaWtsQnpIYWlQbURSWURieG5Od3hhejJYSjVGc3VSZ1RjWlJwQlpyemYzSTdOWnZ4THB6ZnA1YW4xdjVnU1JHWXdHM2ppS2pCYUQwYkxyQzk4dE9ldlNOekpZekxzdWVTY0llNHZxNnVxRzZsWXNXN3BvUWZlY2NFTFZBZXYvaHc2b2J4Y2lBeWQ5dFZDZDhsQjh2V0lZdjdnK0RGVFlYYksreW8xdE5aR0dXSHVOTHh5cEtJbnZtWHJ0elhON0h2cStMM3d4cldnWnB4WG5qenVkdDduc2k2TDJYNGtKWDBYTTFVVVU1S0RiNmltN2J1M1VqWWxyUWk0SFdjc2YwN1c4RFRXaGJyUVJiVWJ2VXcwcGlwSVhLWUtXZE9RRG9OczhtekhrcmNZbUk2L2ExNW5wTGdwRG5qSFBZQndGejRISXU0Mm9Rd0s3TktJblFzbkRhS1FBNXhuTWVRTldiTFJnazlsb0lnZnl6S3VRT2M4TXl6dVZ2cEdlSVZXL3lXK29oeHVpTDNDL2dhVFkwNFBRcHN0Nk52YU1yQndhWE5xL2VQN2NHZE5iVzJqWlVHeW9qNFp0RUY0cE5qenpNcVdzeXBjYTltZmVwcFFsV1ZXd1NEWDZHWVd3cTJweUVhdkExaWZ3WGZ2WE5iWjg0MERibmhxdjBWUnFaWFhWNjZ0MnhxcFNUcGZMMmJhaEtUNmx1YXh5UVVuam51bXNpZXBDUmlkaTBlN0NTVXpFTzNmei9MYXRxMWJYT3VjMWpWeFc3TXp6MjRvOFpZeWphTFlZRUlKQm9VY0l1bXBkam9yUkVvdTdaT3lQVkMweTZpRi9pOWlIU2N5R3ZPSUg5SjFyNjloN0FmY0tLSmFNcE45V3BaVStBdWtFYjVTK3BVcEE1WUpVRk5ES0c1TnhOT3ZCTm5hWDkrU3h2bFBMb25aN3NOanFXbkI5N0NaWmZkTXQwMHpDNi9ON1RyOWNHeXVNZWlvclE0WkErR0htWFMzV3dPZTRXc0JnQ3dGU2hhaVdlaVppcml6QXBZZzU1eTF6anpZMXpweloxRENUWCtnVmpwTFV5MUhSbzlhdjV3QzlmaFJLU2xsMFpwZHkvc2QxbkY5TlVzZjV0YnB6dTVKSG1Dd05odjR2RWY1dENnQUFBSGphalpMQlRoc3hFSVovTHdIUkE2aXRla0k5V0tnSE9MQk9vRWdST1lWSXVSUUpJZ0ZxajdDMWRoY2w4V0o3RDd4RUg2SXYwaHVxK2g1OWh4NzcyM0ZMcUVyVlhhMzllVHovekt6SEFKN2pIZ0tMNXlPK0pSYllFTzhTWitpSUl2RUtYb3ZQaVR0NEtiNG5Yc1ZHOWlyeEdsNWs0OFNiMk1vK1VTVTZ6N2o2R2lNRUZ0Z1NLbkdHZGZFaDhRcjZva3Jjd1J2eEpmRXEvWDhrWHNOMnRwMTRFMit6OXhqQm9NRWRMR3FVcU9BaHNZOHVlamdrbmRPaU9RZXZOdnBvamhKbmtXZHhMN0RCRGJtSTZpRTlQWFdHZHNmMVRvenFtY1hoQ0lwdlNXM3dhSEdObkNyRFNBcTNYQnZhTmVmNTB1cUt5cUJWZjFUeFVNTXVvMkJrbWp0Ymw1V1grOTNlb1R5dnRCeVoxdGJheWpOYnp6UkhjNk1MTDRldHI0eDFjcWZ5dm5GSFNwVzFyOXJydkRBemRkc2FyOXQ1bks2YXhxa1VJa2JZRFZtZVBBZzh5Z1ljMDNQS2E0RmpNK1Y0d0JyRHFmWXh3QVFYL0lha3AvNW83MEYra0hkNy9jSGtZakljTEJlenR3ajdyOGI4RHZINEhCYkN5eWh3ZERZOGJibFVIeTYxZGJXWnk1Z1ovMVBqWHdyNzFmTkZ4eDI3SEhRTmJZNlpRdDRwNTNCSFN1NmZZb3dUaXRnUk5zUVZ0bTY4eTEwOXpZMHQxZW40QkQ4QityR29lUUFBZU5wbGl0ZE93bUFBUnM5ZlJoR2NETVV0YmxHeHhWbFhYQ2k0QlNlb3BURmdMd2cxQldPODFVZjFQWXltaVRIUmMzTytuSHhJT0h4KzhQWXR3VjlNcDBxNGNPUEJpNHlQQnZ3RWFLU0pabHBvcFkwZ0ljSkVhS2VES0oxMDBVMFB2ZlRSendBeEJobGltQkZHR1dPY0NlSk1Nc1UwQ1daUVVFa3l5eHp6TExESUVockxyTERLR3V0c3NNa1cyK3lRWXBjOTBtVFk1NEJEampqbWhGUE95SkxqbkFzdXVlS2FHL0lVdU9XT2UzU0tHTHdMU2JpRVczaUVWOGdocTFyU2F4V2padXBsNjlsT2xHM2pJZmpiNmkrV2t5SjEweTc5TzhxUGxkY25VOU44amxWRitSbnFGekxITlc0QUFRQUIvLzhBRDNqYVkyQmtZR0RnQVdJbElHWmlZQWJDUkFaR2hpU0dGQ0F2bFNFZHlHWUJ5ekFBQUNmVUFqVjQybU5nWkdCZzRHSUlZVWhpWUhaeDh3bGhFRWt2U3MxbVVNaEpMTWxqMEdGZ0Fjb3kvUC9QQUZLRnpCWmpZSFoyREZGZ0VQUDE5d0dTUWY2K1FCSXV5NWhXbEpqTXdBRmlnVEVMV0M4alVJUVJhQ1lUMEQ0RklNbkd3TWVRek1ETUlNUWdDcklkU0l1RDFhYkEyVXdNSWd4aUFMVzJFeGw0Mm1OZ1pHQmc0R0t3WWJCallIWng4d2xoRUVrdlNzMW1rTXRKTE1sajBHQmdBY295L1A4UEpMQ3hnQUFBV3hvTGF3QUFBQUFBQVFBQUFBRFZwQ2NJQUFBQUFObWNnK0VBQUFBQTJmdEpOQT09JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG4ifX0=`,"base64").toString("utf8"));return t(`metrics/setup > setup > success`),a}async function a({login:e,imports:t,q:r},{enabled:n=!1,token:a=""}={}){try{if(!n||!r.music)return null;const o={get provider(){return _[s]?.name??""},get mode(){return w[l]??"Unconfigured music plugin"}};let i=null,{"music.provider":s="","music.mode":l="","music.playlist":d=null,"music.limit":p=4}=r;if(d&&!l&&(l="playlist"),d&&!s)for(const[e,{embed:t}]of Object.entries(_))t.test(d)&&(s=e);if(l||(l="recent"),!(s in _))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in w))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!_[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),console.debug(`metrics/compute/${e}/plugins > music > processing mode ${l} with provider ${s}`),l){case"playlist":{console.debug(`metrics/compute/${e}/plugins > music > starting browser`);const r=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > music > started ${await r.version()}`);const n=await r.newPage();console.debug(`metrics/compute/${e}/plugins > music > loading page`),await n.goto(d);const a=n.mainFrame();switch(s){case"apple":{await a.waitForSelector(".tracklist.playlist"),i=[...(await a.evaluate(()=>[...document.querySelectorAll(".tracklist li")].map(e=>({name:e.querySelector(".tracklist__track__name").innerText,artist:e.querySelector(".tracklist__track__sub").innerText,artwork:e.querySelector(".tracklist__track__artwork img").src}))))];break}case"spotify":{await a.waitForSelector("table"),i=[...(await a.evaluate(()=>[...document.querySelectorAll("table tr")].map(e=>({name:e.querySelector("td:nth-child(2) div:nth-child(1)").innerText,artist:e.querySelector("td:nth-child(2) div:nth-child(2)").innerText,artwork:window.getComputedStyle(document.querySelector("button[title=Play]").parentNode,null).backgroundImage.match(/^url\("(https:...+)"\)$/)[1]}))))];break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await r.close(),Array.isArray(i)&&(console.debug(`metrics/compute/${e}/plugins > music > found ${i.length} tracks`),console.debug(t.util.inspect(i,{depth:1/0,maxStringLength:256})),i=t.shuffle(i));break}case"recent":{const r=Date.now()-86400000;switch(s){case"spotify":{const[n,s,l]=a.split(",").map(e=>e.trim());if(!n||!s||!l)throw{error:{message:`Spotify token must contain client id/secret and refresh token`}};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with spotify refresh token`);const{data:{access_token:a}}=await t.axios.post("https://accounts.spotify.com/api/token",`${new t.url.URLSearchParams({grant_type:"refresh_token",refresh_token:l,client_id:n,client_secret:s})}`,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});console.debug(`metrics/compute/${e}/plugins > music > got access token`),console.debug(`metrics/compute/${e}/plugins > music > querying spotify api`),i=(await t.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${p}&after=${r}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${a}`}})).data.items.map(({track:e})=>({name:e.name,artist:e.artists[0].name,artwork:e.album.images[0].url}))}catch(e){if(e.isAxiosError){const t=e.response?.status,r=e.response.data?.error_description??null;throw message=`API returned ${t}${r?` (${r})`:""}`,e=e.response?.data??null,{error:{message,instance:e},...o}}throw e}break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}break}default:throw{error:{message:`Unsupported mode "${l}"`},...o};}if(Array.isArray(i)){0 music > keeping only ${p} tracks`),i=i.slice(0,p)),console.debug(`metrics/compute/${e}/plugins > music > loading artworks`);for(const r of i)console.debug(`metrics/compute/${e}/plugins > music > processing ${r.name}`),r.artwork=await t.imgb64(r.artwork);return{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}}async function o({login:e,q:t,dflags:r},{conf:n,data:a,rest:o,graphql:i,plugins:l},{s:d,pending:s,imports:p}){const c=a.computed={commits:0,sponsorships:0,licenses:{favorite:"",used:{}},token:{},repositories:{watchers:0,stargazers:0,issues_open:0,issues_closed:0,pr_open:0,pr_merged:0,forks:0,releases:0}},u=p.imgb64(a.user.avatarUrl);if(a.plugins={},console.debug(`metrics/compute/${e} > formatting common metrics`),t["config.timezone"]){const r=a.config.timezone={name:t["config.timezone"],offset:0};try{r.offset=+(1e3*(60*(60*new Date().toLocaleString("fr",{timeZoneName:"short",timeZone:r.name}).match(/UTC[+](?\d+)/)?.groups?.offset)))||0,console.debug(`metrics/compute/${e} > timezone set to ${r.name} (${0 failed to use timezone "${r.name}"`)}}for(const u of Object.keys(p.plugins))s.push((async()=>{try{console.debug(`metrics/compute/${e}/plugins > ${u} > started`),a.plugins[u]=await p.plugins[u]({login:e,q:t,imports:p,data:a,computed:c,rest:o,graphql:i},l[u]),console.debug(`metrics/compute/${e}/plugins > ${u} > completed (${null===a.plugins[u]?"skipped":"success"})`)}catch(t){console.debug(`metrics/compute/${e}/plugins > ${u} > completed (error)`),a.plugins[u]=t}finally{const e={name:u,result:a.plugins[u]};return console.debug(p.util.inspect(e,{depth:1/0,maxStringLength:256})),e}})());for(const u of a.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])c.repositories[e]+=u[e].totalCount;c.repositories.forks+=u.forkCount,u.licenseInfo&&(c.licenses.used[u.licenseInfo.spdxId]=(c.licenses.used[u.licenseInfo.spdxId]??0)+1)}c.diskUsage=`${p.bytes(1e3*a.user.repositories.totalDiskUsage)}`,c.licenses.favorite=Object.entries(c.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)??"",c.commits+=a.user.contributionsCollection.totalCommitContributions+a.user.contributionsCollection.restrictedContributionsCount;const m=(Date.now()-new Date(a.user.createdAt).getTime())/31536000000,g=_Mathfloor(m),h=_Mathceil(12*(m-g));c.registration=g?`${g} year${d(g)} ago`:`${h} month${d(h)} ago`,c.cakeday=[new Date,new Date(a.user.createdAt)].map(e=>e.toISOString().match(/(?\d{2}-\d{2})(?=T)/)?.groups?.mmdd).every((e,t,r)=>e===r[0]),c.calendar=a.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),c.avatar=(await u)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",c.token.scopes=(await o.request("HEAD /")).headers["x-oauth-scopes"].split(", "),a.meta={version:n.package.version,author:n.package.author},(r.includes("--cakeday")||t["dflag.cakeday"])&&(console.debug(`metrics/compute/${e} > applying dflag --cakeday`),c.cakeday=!0),(r.includes("--hireable")||t["dflag.hireable"])&&(console.debug(`metrics/compute/${e} > applying dflag --hireable`),a.user.isHireable=!0)}async function i({login:e,q:t,dflags:r=[]},{graphql:n,rest:a,plugins:o,conf:i,die:h=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(S.inspect(t,{depth:1/0,maxStringLength:256}));const f=t.template||i.settings.templates.default,y=_Mathmax(0,+t.repositories)||i.settings.repositories||100,_=[],w=(e,t="")=>1 graphql query`),Object.assign(M,await n(s.replace(/[$]login/,`"${e}"`).replace(/[$]repositories/,`${y}`).replace(/[$]calendar.to/,`"${new Date().toISOString()}"`).replace(/[$]calendar.from/,`"${new Date(Date.now()-1209600000).toISOString()}"`))),console.debug(`metrics/compute/${e} > compute`);const g=E[f].default||E[f];await g({login:e,q:t,dflags:r},{conf:i,data:M,rest:a,graphql:n,plugins:o},{s:w,pending:_,imports:{plugins:T,url:O,imgb64:k,axios:C,puppeteer:A,run:m,fs:L,os:z,paths:b,util:S,format:l,bytes:d,shuffle:p,htmlescape:c,urlexpand:u}});const x=await Promise.all(_);if(h){const e=x.filter(({result:e=null})=>!!e?.error).length;if(e)throw new Error(`${e} error${w(e)} found...`)}}console.debug(`metrics/compute/${e} > render`);let W=await x.render(P,{...M,s:w,style:R,fonts:I},{async:!0});if(i.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new v({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(W);W=r}return console.debug(`metrics/compute/${e} > success`),W}catch(e){if(Array.isArray(e.errors)&&"NOT_FOUND"===e.errors[0].type)throw new Error("user not found");throw e}}function l(e){for(const{u:t,v:r}of[{u:"b",v:1000000000},{u:"m",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")}${t}`;return e}function d(e){for(const{u:t,v:r}of[{u:"E",v:1000000000000000000},{u:"P",v:1000000000000000},{u:"T",v:1000000000000},{u:"G",v:1000000000},{u:"M",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")} ${t}B`;return`${e} byte${1":!0,'"':!0,"'":!0}){return e.replace(/&(?!(?:amp|lt|gt|quot|apos);)/g,t["&"]?"&":"&").replace(//g,t[">"]?">":">").replace(/"/g,t["\""]?""":"\"").replace(/'/g,t["'"]?"'":"'")}async function u(e){try{return(await C.get(e)).request.res.responseUrl}catch{return e}}async function m(e,t){return await new Promise((r,n)=>{console.debug(`metrics/command > ${e}`);const a=P.exec(e,t);let[o,i]=["",""];a.stdout.on("data",e=>o+=e),a.stderr.on("data",e=>i+=e),a.on("close",t=>(console.debug(`metrics/command > ${e} > exited with code ${t}`),0===t?r(o):n(i)))})}function g({data:e,conf:t,q:r}){const n=e=>"object"==typeof e?new Proxy(e,{get(e,t){return t===Symbol.toPrimitive?()=>"##":t===Symbol.iterator?Reflect.get(e,t):/^plugins$/.test(t)?Reflect.get(e,t):/^error/.test(t)?void 0:n(t in e?Reflect.get(e,t):{})}}):e,a=Object.entries(t.settings.plugins).filter(([e,t])=>t.enabled).map(([e])=>e).filter(e=>e in r&&r[e]);Object.assign(e,{s(e,t){return"y"===t?"ies":"s"},meta:{version:t.package.version,author:t.package.author,placeholder:!0},user:n({name:`############`,websiteUrl:`########################`,isHireable:!1}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",cakeday:!1,calendar:Array(14).fill({color:"#ebedf0"}),licenses:{favorite:`########`},token:{scopes:[]}}),plugins:Object.fromEntries(a.map(e=>[e,n({posts:{source:"########",list:Array("posts.limit"in r?_Mathmax(+r["posts.limit"]||0,0):2).fill({title:"###### ###### ####### ######",date:"####"})},music:{provider:"########",tracks:Array("music.limit"in r?_Mathmax(+r["music.limit"]||0,0):4).fill({name:"##########",artist:"######",artwork:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg=="})},pagespeed:{detailed:!!r["pagespeed.detailed"],scores:["Performance","Accessibility","Best Practices","SEO"].map(e=>({title:e,score:NaN}))},followup:{issues:{count:0},pr:{count:0}},habits:{facts:!!(r["habits.facts"]??1),charts:!!r["habits.charts"],indents:{style:`########`},commits:{day:"####"},linguist:{ordered:[]}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{list:[...Array("topics.limit"in r?_Mathmax(+r["topics.limit"]||0,0):12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...Array("projects.limit"in r?_Mathmax(+r["projects.limit"]||0,0):4).fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]},tweets:{profile:{username:"########",verified:!1},list:[...Array("tweets.limit"in r?_Mathmax(+r["tweets.limit"]||0,0):2).fill(null).map(()=>({text:"###### ###### ####### ######".repeat(4),created_at:Date.now()}))]}}[e]??{})]))})}r.r(t);var h={};r.r(h),r.d(h,{default:()=>n});var f={};r.r(f),r.d(f,{default:()=>i});var y=r(35747),b=r(85622),S=r(31669),x=r(58509),v=r(20485),k=r(67192),C=r(2390);const _={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},w={playlist:"Suggested tracks",recent:"Recently played"},T={followup:async function({computed:e,q:t},{enabled:r=!1}={}){try{if(!r||!t.followup)return null;const n={issues:{get count(){return this.open+this.closed},get open(){return e.repositories.issues_open},get closed(){return e.repositories.issues_closed}},pr:{get count(){return this.open+this.merged},get open(){return e.repositories.pr_open},get merged(){return e.repositories.pr_merged}}};return n}catch(e){throw{error:{message:"An error occured",instance:e}}}},gists:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.gists)return null;console.debug(`metrics/compute/${e}/plugins > gists > querying api`);const{user:{gists:a}}=await t(` +module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math.tan,_Mathasin=Math.asin,_Mathsin=Math.sin,_Mathcos=Math.cos,_MathPI=Math.PI,_Mathsqrt=Math.sqrt,_NumberisInteger=Number.isInteger,_NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_NumberNEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,_Stringprototype=String.prototype,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_StringfromCharCode=String.fromCharCode,_Mathabs=Math.abs,_Mathpow=Math.pow,_Mathround=Math.round,_Mathfloor=Math.floor,_Mathceil=Math.ceil,_Mathmax=Math.max,_Mathmin=Math.min;function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={exports:{}},r=!0;try{__webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),r=!1}finally{r&&delete __webpack_module_cache__[e]}return t.exports}var __webpack_modules__={45274:(e,t,r)=>{"use strict";async function n({log:e=!0}={}){const t=e?console.debug:()=>null;t(`metrics/setup > setup`);const n="src/templates",a={templates:{},settings:{},statics:r.ab+"html",node_modules:b.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),y.existsSync(r.ab+"settings.json")?(a.settings=JSON.parse(`${await y.promises.readFile(b.resolve("settings.json"))}`),t(`metrics/setup > load settings.json > success`)):t(`metrics/setup > load settings.json > (missing)`),a.settings.templates||(a.settings.templates={default:"classic",enabled:[]}),a.settings.plugins||(a.settings.plugins={}),a.settings.plugins.base={parts:["header","activity","community","repositories","metadata"]},a.settings.debug&&t(S.inspect(a.settings,{depth:1/0,maxStringLength:256})),t(`metrics/setup > load package.json`),y.existsSync(r.ab+"package.json")?(a.package=JSON.parse(`${await y.promises.readFile(b.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),a.package={version:"2.9.0",author:"lowlighter"}),y.existsSync(r.ab+"templates"))for(const e of await y.promises.readdir(n)){if(/.*[.]mjs$/.test(e))continue;t(`metrics/setup > load template [${e}]`);const r=[`${n}/${e}/query.graphql`,`${n}/${e}/image.svg`,`${n}/${e}/style.css`,`${n}/${e}/fonts.css`],[o,i,s,l]=await Promise.all(r.map(async e=>`${await y.promises.readFile(b.resolve(e))}`));a.templates[e]={query:o,image:i,style:s,fonts:l},t(`metrics/setup > load template [${e}] > success`),a.settings.debug&&Object.defineProperty(a.templates,e,{get(){t(`metrics/setup > reload template [${e}]`);const[n,a,o,i]=r.map(e=>`${y.readFileSync(b.resolve(e))}`);return t(`metrics/setup > reload template [${e}] > success`),{query:n,image:a,style:o,fonts:i}}})}else t(`metrics/setup > load templates from build`),a.templates=JSON.parse(Buffer.from(`eyJjbGFzc2ljIjp7InF1ZXJ5IjoicXVlcnkgTWV0cmljcyB7XHJcbiAgdXNlcihsb2dpbjogJGxvZ2luKSB7XHJcbiAgICBkYXRhYmFzZUlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dpblxyXG4gICAgY3JlYXRlZEF0XHJcbiAgICBhdmF0YXJVcmxcclxuICAgIHdlYnNpdGVVcmxcclxuICAgIGlzSGlyZWFibGVcclxuICAgIHR3aXR0ZXJVc2VybmFtZVxyXG4gICAgZ2lzdHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXMobGFzdDogJHJlcG9zaXRvcmllcywgaXNGb3JrOiBmYWxzZSwgb3duZXJBZmZpbGlhdGlvbnM6IE9XTkVSKSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgdG90YWxEaXNrVXNhZ2VcclxuICAgICAgbm9kZXMge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB3YXRjaGVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXJnYXplcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBsYW5ndWFnZXMoZmlyc3Q6IDQpIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgc2l6ZVxyXG4gICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfb3BlbjogaXNzdWVzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfY2xvc2VkOiBpc3N1ZXMoc3RhdGVzOiBDTE9TRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfb3BlbjogcHVsbFJlcXVlc3RzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9tZXJnZWQ6IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE1FUkdFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICByZWxlYXNlcyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcmtDb3VudFxyXG4gICAgICAgIGxpY2Vuc2VJbmZvIHtcclxuICAgICAgICAgIHNwZHhJZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcGFja2FnZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzdGFycmVkUmVwb3NpdG9yaWVzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgd2F0Y2hpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc1Nwb25zb3Ige1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc01haW50YWluZXIge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBjb250cmlidXRpb25zQ29sbGVjdGlvbiB7XHJcbiAgICAgIHRvdGFsUmVwb3NpdG9yaWVzV2l0aENvbnRyaWJ1dGVkQ29tbWl0c1xyXG4gICAgICB0b3RhbENvbW1pdENvbnRyaWJ1dGlvbnNcclxuICAgICAgcmVzdHJpY3RlZENvbnRyaWJ1dGlvbnNDb3VudFxyXG4gICAgICB0b3RhbElzc3VlQ29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9uc1xyXG4gICAgfVxyXG4gICAgY2FsZW5kYXI6Y29udHJpYnV0aW9uc0NvbGxlY3Rpb24oZnJvbTogJGNhbGVuZGFyLmZyb20sIHRvOiAkY2FsZW5kYXIudG8pIHtcclxuICAgICAgY29udHJpYnV0aW9uQ2FsZW5kYXIge1xyXG4gICAgICAgIHdlZWtzIHtcclxuICAgICAgICAgIGNvbnRyaWJ1dGlvbkRheXMge1xyXG4gICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUbyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2VycyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2luZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGlzc3VlQ29tbWVudHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBvcmdhbml6YXRpb25zIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbWFnZSI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDgwXCIgaGVpZ2h0PVwiPCU9IDEyXHJcbiAgKyAoISFiYXNlLmhlYWRlcikqODAgKyAodXNlci5pc0hpcmVhYmxlKSoxNlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMzhcclxuICArICgoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSoxMjhcclxuICArICghIWJhc2UucmVwb3NpdG9yaWVzKSoxMDhcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCghIXBsdWdpbnMudHJhZmZpYyl8fCghIXBsdWdpbnMubGluZXMpKSkqMTZcclxuICArICghIXBsdWdpbnMuZm9sbG93dXApKjY4XHJcbiAgKyAoISFwbHVnaW5zLnBhZ2VzcGVlZCkqMTI2ICsgKHBsdWdpbnMucGFnZXNwZWVkPy5kZXRhaWxlZCA/PyAwKSo2KjIwXHJcbiAgKyAoISFwbHVnaW5zLmhhYml0cykqMjggKyAoISFwbHVnaW5zLmhhYml0cz8uZmFjdHMpKjU4ICsgKCEhcGx1Z2lucy5oYWJpdHM/LmNoYXJ0cykqMjI2XHJcbiAgKyAoISFwbHVnaW5zLmxhbmd1YWdlcykqOTZcclxuICArICghIXBsdWdpbnMubXVzaWMpKjY0ICsgKHBsdWdpbnMubXVzaWM/LnRyYWNrcz8ubGVuZ3RoID8gMTQrTWF0aC5tYXgoMCwgcGx1Z2lucy5tdXNpYy50cmFja3MubGVuZ3RoLTEpKjM2IDogMClcclxuICArICghIXBsdWdpbnMucG9zdHMpKjY0ICsgKHBsdWdpbnMucG9zdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo0MFxyXG4gICsgKCEhcGx1Z2lucy5pc29jYWxlbmRhcikqMTkyICsgKHBsdWdpbnMuaXNvY2FsZW5kYXI/LmR1cmF0aW9uID09PSAnZnVsbC15ZWFyJykqMTAwXHJcbiAgKyAoISFwbHVnaW5zLmdpc3RzKSo2OFxyXG4gICsgKCEhcGx1Z2lucy50b3BpY3MpKjE2MFxyXG4gICsgKCEhcGx1Z2lucy5wcm9qZWN0cykqMjIgKyAocGx1Z2lucy5wcm9qZWN0cz8ubGlzdD8ubGVuZ3RoID8/IDApKjYwICsgKCEhcGx1Z2lucy5wcm9qZWN0cz8uZXJyb3IpKjIyXHJcbiAgKyAoISFwbHVnaW5zLnR3ZWV0cykqNjQgKyAocGx1Z2lucy50d2VldHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo5MFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoKCEhcGx1Z2lucy5oYWJpdHMpKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKyghIXBsdWdpbnMubXVzaWMpKyghIXBsdWdpbnMucG9zdHMpKyghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKyghIXBsdWdpbnMuZ2lzdHMpKyghIXBsdWdpbnMudG9waWNzKSsoISFwbHVnaW5zLnByb2plY3RzKSktMSkpKjRcclxuJT5cIj5cclxuXHJcbiAgPGRlZnM+PHN0eWxlPjwlPSBmb250cyAlPjwvc3R5bGU+PC9kZWZzPlxyXG5cclxuICA8c3R5bGU+XHJcbiAgICA8JT0gc3R5bGUgJT5cclxuICA8L3N0eWxlPlxyXG5cclxuICA8Zm9yZWlnbk9iamVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgPGRpdiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhclwiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gY29tcHV0ZWQuYXZhdGFyICU+XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9zcGFuPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBjb21wdXRlZC5jYWtlZGF5ID8gJ2Nha2VkYXknIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5jYWtlZGF5KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDEuNWExLjI1IDEuMjUgMCAxMDAgMi41aDIuMzA5Yy0uMjMzLS44MTgtLjU0Mi0xLjQwMS0uODc4LTEuNzkzLS40My0uNTAyLS45MTUtLjcwNy0xLjQzMS0uNzA3ek0yIDIuNzVjMCAuNDUuMTA4Ljg3NS4zIDEuMjVoLS41NUExLjc1IDEuNzUgMCAwMDAgNS43NXYyYzAgLjY5OC40MDkgMS4zIDEgMS41ODJ2NC45MThjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgxMC41QTEuNzUgMS43NSAwIDAwMTUgMTQuMjVWOS4zMzJjLjU5MS0uMjgxIDEtLjg4NCAxLTEuNTgydi0yQTEuNzUgMS43NSAwIDAwMTQuMjUgNGgtLjU1YTIuNzUgMi43NSAwIDAwLTIuNDUtNGMtLjk4NCAwLTEuODc0LjQyLTIuNTcgMS4yM0E1LjA4NiA1LjA4NiAwIDAwOCAyLjI3NGE1LjA4NiA1LjA4NiAwIDAwLS42OC0xLjA0MkM2LjYyMy40MiA1LjczMyAwIDQuNzUgMEEyLjc1IDIuNzUgMCAwMDIgMi43NXpNOC45NDEgNGgyLjMwOWExLjI1IDEuMjUgMCAxMDAtMi41Yy0uNTE2IDAtMSAuMjA1LTEuNDMuNzA3LS4zMzcuMzkyLS42NDYuOTc1LS44NzkgMS43OTN6bS0xLjg0IDEuNUgxLjc1YS4yNS4yNSAwIDAwLS4yNS4yNXYyYzAgLjEzOC4xMTIuMjUuMjUuMjVoNS41VjUuNWgtLjE0OXptMS42NDkgMFY4aDUuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTJhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNS41em0wIDRoNC43NXY0Ljc1YS4yNS4yNSAwIDAxLS4yNS4yNWgtNC41di01em0tMS41IDB2NWgtNC41YS4yNS4yNSAwIDAxLS4yNS0uMjVWOS41aDQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBKb2luZWQgR2l0SHViIDwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0uNSA0Ljc1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMC40NzEuNjk2bDIuNSAxYS43NS43NSAwIDAwLjU1Ny0xLjM5Mkw4LjUgNy43NDJWNC43NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEpvaW5lZCBHaXRIdWIgPCU9IGNvbXB1dGVkLnJlZ2lzdHJhdGlvbiAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuNSAzLjVhMiAyIDAgMTAwIDQgMiAyIDAgMDAwLTR6TTIgNS41YTMuNSAzLjUgMCAxMTUuODk4IDIuNTQ5IDUuNTA3IDUuNTA3IDAgMDEzLjAzNCA0LjA4NC43NS43NSAwIDExLTEuNDgyLjIzNSA0LjAwMSA0LjAwMSAwIDAwLTcuOSAwIC43NS43NSAwIDAxLTEuNDgyLS4yMzZBNS41MDcgNS41MDcgMCAwMTMuMTAyIDguMDUgMy40OSAzLjQ5IDAgMDEyIDUuNXpNMTEgNGEuNzUuNzUgMCAxMDAgMS41IDEuNSAxLjUgMCAwMS42NjYgMi44NDQuNzUuNzUgMCAwMC0uNDE2LjY3MnYuMzUyYS43NS43NSAwIDAwLjU3NC43M2MxLjIuMjg5IDIuMTYyIDEuMiAyLjUyMiAyLjM3MmEuNzUuNzUgMCAxMDEuNDM0LS40NCA1LjAxIDUuMDEgMCAwMC0yLjU2LTMuMDEyQTMgMyAwIDAwMTEgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBGb2xsb3dlZCBieSA8JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAodXNlci5pc0hpcmVhYmxlKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGlyZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNi43NSAwQTEuNzUgMS43NSAwIDAwNSAxLjc1VjNIMS43NUExLjc1IDEuNzUgMCAwMDAgNC43NXY4LjVDMCAxNC4yMTYuNzg0IDE1IDEuNzUgMTVoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDEzLjI1di04LjVBMS43NSAxLjc1IDAgMDAxNC4yNSAzSDExVjEuNzVBMS43NSAxLjc1IDAgMDA5LjI1IDBoLTIuNXpNOS41IDNWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0yLjVhLjI1LjI1IDAgMDAtLjI1LjI1VjNoM3pNNSA0LjVIMS43NWEuMjUuMjUgMCAwMC0uMjUuMjVWNmEyIDIgMCAwMDIgMmg5YTIgMiAwIDAwMi0yVjQuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUg1em0tMS41IDVhMy40ODQgMy40ODQgMCAwMS0yLS42Mjd2NC4zNzdjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVY4Ljg3M2EzLjQ4NCAzLjQ4NCAwIDAxLTIgLjYyN2gtOXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBmb3IgaGlyZSAhXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNhbGVuZGFyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT4gMTFcIiB3aWR0aD1cIjwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT5cIiBoZWlnaHQ9XCIxNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IFt4LCB7Y29sb3J9XSBvZiBPYmplY3QuZW50cmllcyhjb21wdXRlZC5jYWxlbmRhcikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPVwiZGF5XCIgeD1cIjwlPSB4KjE1ICU+XCIgeT1cIjBcIiB3aWR0aD1cIjExXCIgaGVpZ2h0PVwiMTFcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIgcng9XCIyXCIgcnk9XCIyXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEgMi41QTIuNSAyLjUgMCAwMTMuNSAwaDguNzVhLjc1Ljc1IDAgMDEuNzUuNzV2My41YS43NS43NSAwIDAxLTEuNSAwVjEuNWgtOGExIDEgMCAwMC0xIDF2Ni43MDhBMi40OTIgMi40OTIgMCAwMTMuNSA5aDMuMjVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVhMSAxIDAgMTAwIDJoNS43NWEuNzUuNzUgMCAwMTAgMS41SDMuNUEyLjUgMi41IDAgMDExIDExLjV2LTl6bTEzLjIzIDcuNzlhLjc1Ljc1IDAgMDAxLjA2LTEuMDZsLTIuNTA1LTIuNTA1YS43NS43NSAwIDAwLTEuMDYgMEw5LjIyIDkuMjI5YS43NS43NSAwIDAwMS4wNiAxLjA2MWwxLjIyNS0xLjIyNHY2LjE4NGEuNzUuNzUgMCAwMDEuNSAwVjkuMDY2bDEuMjI0IDEuMjI0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIENvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmFjdGl2aXR5KSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgQWN0aXZpdHlcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEwLjUgNy43NWEyLjUgMi41IDAgMTEtNSAwIDIuNSAyLjUgMCAwMTUgMHptMS40My43NWE0LjAwMiA0LjAwMiAwIDAxLTcuODYgMEguNzVhLjc1Ljc1IDAgMTEwLTEuNWgzLjMyYTQuMDAxIDQuMDAxIDAgMDE3Ljg2IDBoMy4zMmEuNzUuNzUgMCAxMTAgMS41aC0zLjMyelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQuY29tbWl0cyAlPiBDb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zICU+IElzc3VlPCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDQuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDIuNzV6TTEgMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDEwLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExMy4yNSAxMkg5LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxNCAxMy41NDNWMTJIMi43NUExLjc1IDEuNzUgMCAwMTEgMTAuMjV2LTcuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50ICU+IGlzc3VlIGNvbW1lbnQ8JT0gcyh1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmNvbW11bml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuMzI2IDEuOTczYTEuMiAxLjIgMCAwMTEuNDktLjgzMmMuMzg3LjExMi45NzcuMzA3IDEuNTc1LjYwMi41ODYuMjkxIDEuMjQzLjcxIDEuNyAxLjI5Ni4wMjIuMDI3LjA0Mi4wNTYuMDYxLjA4NEExMy4yMiAxMy4yMiAwIDAxOCAzYy42NyAwIDEuMjg5LjAzNyAxLjg2MS4xMDhsLjA1MS0uMDdjLjQ1Ny0uNTg2IDEuMTE0LTEuMDA0IDEuNy0xLjI5NWE5LjY1NCA5LjY1NCAwIDAxMS41NzYtLjYwMiAxLjIgMS4yIDAgMDExLjQ5LjgzMmMuMTQuNDkzLjM1NiAxLjM0Ny40NzkgMi4yOS4wNzkuNjA0LjEyMyAxLjI4LjA3IDEuOTM2LjU0MS45NzcuNzczIDIuMTEuNzczIDMuMzAxQzE2IDEzIDE0LjUgMTUgOCAxNXMtOC0yLTgtNS41YzAtMS4wMzQuMjM4LTIuMTI4Ljc5NS0zLjExNy0uMDgtLjcxMi0uMDM0LTEuNDYuMDUyLTIuMTIuMTIyLS45NDMuMzQtMS43OTcuNDc5LTIuMjl6TTggMTMuMDY1YzYgMCA2LjUtMiA2LTQuMjdDMTMuMzYzIDUuOTA1IDExLjI1IDUgOCA1cy01LjM2My45MDQtNiAzLjc5NmMtLjUgMi4yNyAwIDQuMjcgNiA0LjI3elwiPjwvcGF0aD48cGF0aCBkPVwiTTQgOGExIDEgMCAwMTIgMHYxYTEgMSAwIDAxLTIgMFY4em0yLjA3OCAyLjQ5MmMtLjA4My0uMjY0LjE0Ni0uNDkyLjQyMi0uNDkyaDNjLjI3NiAwIC41MDUuMjI4LjQyMi40OTJDOS42NyAxMS4zMDQgOC44MzQgMTIgOCAxMmMtLjgzNCAwLTEuNjY5LS42OTYtMS45MjItMS41MDh6TTEwIDhhMSAxIDAgMTEyIDB2MWExIDEgMCAxMS0yIDBWOHpcIj48L3BhdGg+PC9zdmc+ICAgICAgICAgICAgICBDb21tdW5pdHkgc3RhdHNcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxNC4yNWMwIC4xMzguMTEyLjI1LjI1LjI1SDR2LTEuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMS43NS43NXYxLjI1aDIuMjVhLjI1LjI1IDAgMDAuMjUtLjI1VjEuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtOC41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41ek0xLjc1IDE2QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoOC41QzExLjIxNiAwIDEyIC43ODQgMTIgMS43NXYxMi41YzAgLjA4NS0uMDA2LjE2OC0uMDE4LjI1aDIuMjY4YS4yNS4yNSAwIDAwLjI1LS4yNVY4LjI4NWEuMjUuMjUgMCAwMC0uMTExLS4yMDhsLTEuMDU1LS43MDNhLjc1Ljc1IDAgMTEuODMyLTEuMjQ4bDEuMDU1LjcwM2MuNDg3LjMyNS43NzkuODcxLjc3OSAxLjQ1NnY1Ljk2NUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2aC0zLjVhLjc1Ljc1IDAgMDEtLjE5Ny0uMDI2Yy0uMDk5LjAxNy0uMi4wMjYtLjMwMy4wMjZoLTNhLjc1Ljc1IDAgMDEtLjc1LS43NVYxNGgtMXYxLjI1YS43NS43NSAwIDAxLS43NS43NWgtM3pNMyAzLjc1QS43NS43NSAwIDAxMy43NSAzaC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyAzLjc1ek0zLjc1IDZhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNMyA5Ljc1QS43NS43NSAwIDAxMy43NSA5aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyA5Ljc1ek03Ljc1IDlhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNNyA2Ljc1QS43NS43NSAwIDAxNy43NSA2aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxNyA2Ljc1ek03Ljc1IDNhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgTWVtYmVyIG9mIDwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPiBvcmdhbml6YXRpb248JT0gcyh1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01LjUgMy41YTIgMiAwIDEwMCA0IDIgMiAwIDAwMC00ek0yIDUuNWEzLjUgMy41IDAgMTE1Ljg5OCAyLjU0OSA1LjUwNyA1LjUwNyAwIDAxMy4wMzQgNC4wODQuNzUuNzUgMCAxMS0xLjQ4Mi4yMzUgNC4wMDEgNC4wMDEgMCAwMC03LjkgMCAuNzUuNzUgMCAwMS0xLjQ4Mi0uMjM2QTUuNTA3IDUuNTA3IDAgMDEzLjEwMiA4LjA1IDMuNDkgMy40OSAwIDAxMiA1LjV6TTExIDRhLjc1Ljc1IDAgMTAwIDEuNSAxLjUgMS41IDAgMDEuNjY2IDIuODQ0Ljc1Ljc1IDAgMDAtLjQxNi42NzJ2LjM1MmEuNzUuNzUgMCAwMC41NzQuNzNjMS4yLjI4OSAyLjE2MiAxLjIgMi41MjIgMi4zNzJhLjc1Ljc1IDAgMTAxLjQzNC0uNDQgNS4wMSA1LjAxIDAgMDAtMi41Ni0zLjAxMkEzIDMgMCAwMDExIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEZvbGxvd2luZyA8JT0gdXNlci5mb2xsb3dpbmcudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBTcG9uc29yaW5nIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3RhcnJlZCA8JT0gdXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBXYXRjaGluZyA8JT0gdXNlci53YXRjaGluZy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yIDIuNUEyLjUgMi41IDAgMDE0LjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djEyLjVhLjc1Ljc1IDAgMDEtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMTEwLTEuNWgxLjc1di0yaC04YTEgMSAwIDAwLS43MTQgMS43Ljc1Ljc1IDAgMDEtMS4wNzIgMS4wNUEyLjQ5NSAyLjQ5NSAwIDAxMiAxMS41di05em0xMC41LTFWOWgtOGMtLjM1NiAwLS42OTQuMDc0LTEgLjIwOFYyLjVhMSAxIDAgMDExLTFoOHpNNSAxMi4yNXYzLjI1YS4yNS4yNSAwIDAwLjQuMmwxLjQ1LTEuMDg3YS4yNS4yNSAwIDAxLjMgMEw4LjYgMTUuN2EuMjUuMjUgMCAwMC40LS4ydi0zLjI1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTMuNWEuMjUuMjUgMCAwMC0uMjUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gdXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCAlPiBSZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguNzUuNzVhLjc1Ljc1IDAgMDAtMS41IDBWMmgtLjk4NGMtLjMwNSAwLS42MDQuMDgtLjg2OS4yM2wtMS4yODguNzM3QS4yNS4yNSAwIDAxMy45ODQgM0gxLjc1YS43NS43NSAwIDAwMCAxLjVoLjQyOEwuMDY2IDkuMTkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTQgMy41MTQgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTUgMy41MTUgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxNi0uMDE1LjAwNi0uMDA2LjAwMi0uMDAyLjAwMS0uMDAyTDUuMjUgOS41bC41My41M2EuNzUuNzUgMCAwMC4xNTQtLjgzOEwzLjgyMiA0LjVoLjE2MmMuMzA1IDAgLjYwNC0uMDguODY5LS4yM2wxLjI4OS0uNzM3YS4yNS4yNSAwIDAxLjEyNC0uMDMzaC45ODRWMTNoLTIuNWEuNzUuNzUgMCAwMDAgMS41aDYuNWEuNzUuNzUgMCAwMDAtMS41aC0yLjVWMy41aC45ODRhLjI1LjI1IDAgMDEuMTI0LjAzM2wxLjI5LjczNmMuMjY0LjE1Mi41NjMuMjMxLjg2OC4yMzFoLjE2MmwtMi4xMTIgNC42OTJhLjc1Ljc1IDAgMDAuMTU0LjgzOGwuNTMtLjUzLS41My41M3YuMDAxbC4wMDIuMDAyLjAwMi4wMDIuMDA2LjAwNi4wMTYuMDE1LjA0NS4wNGEzLjUxNyAzLjUxNyAwIDAwLjY4Ni40NUE0LjQ5MiA0LjQ5MiAwIDAwMTMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTIgMy41MTIgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxLS4wMS4wMDYtLjAwNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMi0uNTI5LS41MzEuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMTMuODIzIDQuNWguNDI3YS43NS43NSAwIDAwMC0xLjVoLTIuMjM0YS4yNS4yNSAwIDAxLS4xMjQtLjAzM2wtMS4yOS0uNzM2QTEuNzUgMS43NSAwIDAwOS43MzUgMkg4Ljc1Vi43NXpNMS42OTUgOS4yMjdjLjI4NS4xMzUuNzE4LjI3MyAxLjMwNS4yNzNzMS4wMi0uMTM4IDEuMzA1LS4yNzNMMyA2LjMyN2wtMS4zMDUgMi45em0xMCAwYy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDEzIDYuMzI3bC0xLjMwNSAyLjl6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBQcmVmZXIgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+IGxpY2Vuc2VcclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIE5vIGxpY2Vuc2UgcHJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSA3Ljc3NVYyLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg1LjAyNWEuMjUuMjUgMCAwMS4xNzcuMDczbDYuMjUgNi4yNWEuMjUuMjUgMCAwMTAgLjM1NGwtNS4wMjUgNS4wMjVhLjI1LjI1IDAgMDEtLjM1NCAwbC02LjI1LTYuMjVhLjI1LjI1IDAgMDEtLjA3My0uMTc3em0tMS41IDBWMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDUuMDI1Yy40NjQgMCAuOTEuMTg0IDEuMjM4LjUxM2w2LjI1IDYuMjVhMS43NSAxLjc1IDAgMDEwIDIuNDc0bC01LjAyNiA1LjAyNmExLjc1IDEuNzUgMCAwMS0yLjQ3NCAwbC02LjI1LTYuMjVBMS43NSAxLjc1IDAgMDExIDcuNzc1ek02IDVhMSAxIDAgMTAwIDIgMSAxIDAgMDAwLTJ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcyAlPiBSZWxlYXNlPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnJlbGVhc2VzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguODc4LjM5MmExLjc1IDEuNzUgMCAwMC0xLjc1NiAwbC01LjI1IDMuMDQ1QTEuNzUgMS43NSAwIDAwMSA0Ljk1MXY2LjA5OGMwIC42MjQuMzMyIDEuMi44NzIgMS41MTRsNS4yNSAzLjA0NWExLjc1IDEuNzUgMCAwMDEuNzU2IDBsNS4yNS0zLjA0NWMuNTQtLjMxMy44NzItLjg5Ljg3Mi0xLjUxNFY0Ljk1MWMwLS42MjQtLjMzMi0xLjItLjg3Mi0xLjUxNEw4Ljg3OC4zOTJ6TTcuODc1IDEuNjlhLjI1LjI1IDAgMDEuMjUgMGw0LjYzIDIuNjg1TDggNy4xMzMgMy4yNDUgNC4zNzVsNC42My0yLjY4NXpNMi41IDUuNjc3djUuMzcyYzAgLjA5LjA0Ny4xNzEuMTI1LjIxNmw0LjYyNSAyLjY4M1Y4LjQzMkwyLjUgNS42Nzd6bTYuMjUgOC4yNzFsNC42MjUtMi42ODNhLjI1LjI1IDAgMDAuMTI1LS4yMTZWNS42NzdMOC43NSA4LjQzMnY1LjUxNnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5wYWNrYWdlcy50b3RhbENvdW50ICU+IFBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAzLjVjMC0uMTMzLjA1OC0uMzE4LjI4Mi0uNTUuMjI3LS4yMzcuNTkyLS40ODQgMS4xLS43MDhDNC44OTkgMS43OTUgNi4zNTQgMS41IDggMS41YzEuNjQ3IDAgMy4xMDIuMjk1IDQuMTE3Ljc0Mi41MS4yMjQuODc0LjQ3IDEuMTAxLjcwNy4yMjQuMjMzLjI4Mi40MTguMjgyLjU1MSAwIC4xMzMtLjA1OC4zMTgtLjI4Mi41NS0uMjI3LjIzNy0uNTkyLjQ4NC0xLjEuNzA4QzExLjEwMSA1LjIwNSA5LjY0NiA1LjUgOCA1LjVjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDctLjIyNC0uMjMzLS4yODItLjQxOC0uMjgyLS41NTF6TTEgMy41YzAtLjYyNi4yOTItMS4xNjUuNy0xLjU5LjQwNi0uNDIyLjk1Ni0uNzY3IDEuNTc5LTEuMDQxQzQuNTI1LjMyIDYuMTk1IDAgOCAwYzEuODA1IDAgMy40NzUuMzIgNC43MjIuODY5LjYyMi4yNzQgMS4xNzIuNjIgMS41NzggMS4wNC40MDguNDI2LjcuOTY1LjcgMS41OTF2OWMwIC42MjYtLjI5MiAxLjE2NS0uNyAxLjU5LS40MDYuNDIyLS45NTYuNzY3LTEuNTc5IDEuMDQxQzExLjQ3NiAxNS42OCA5LjgwNiAxNiA4IDE2Yy0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5LS42MjMtLjI3NC0xLjE3My0uNjItMS41NzktMS4wNC0uNDA4LS40MjYtLjctLjk2NS0uNy0xLjU5MXYtOXpNMi41IDhWNS43MjRjLjI0MS4xNS41MDMuMjg2Ljc3OS40MDdDNC41MjUgNi42OCA2LjE5NSA3IDggN2MxLjgwNSAwIDMuNDc1LS4zMiA0LjcyMi0uODY5LjI3NS0uMTIxLjUzNy0uMjU3Ljc3OC0uNDA3VjhjMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgOS43MDUgOS42NDYgMTAgOCAxMGMtMS42NDcgMC0zLjEwMi0uMjk1LTQuMTE3LS43NDItLjUxLS4yMjQtLjg3NC0uNDctMS4xMDEtLjcwN0MyLjU1OCA4LjMxOCAyLjUgOC4xMzMgMi41IDh6bTAgMi4yMjVWMTIuNWMwIC4xMzMuMDU4LjMxOC4yODIuNTUuMjI3LjIzNy41OTIuNDg0IDEuMS43MDggMS4wMTYuNDQ3IDIuNDcxLjc0MiA0LjExOC43NDIgMS42NDcgMCAzLjEwMi0uMjk1IDQuMTE3LS43NDIuNTEtLjIyNC44NzQtLjQ3IDEuMTAxLS43MDcuMjI0LS4yMzMuMjgyLS40MTguMjgyLS41NTF2LTIuMjc1Yy0uMjQxLjE1LS41MDMuMjg1LS43NzguNDA2LTEuMjQ3LjU0OS0yLjkxNy44NjktNC43MjIuODY5LTEuODA1IDAtMy40NzUtLjMyLTQuNzIxLS44NjlhNi4yMzYgNi4yMzYgMCAwMS0uNzc5LS40MDZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPiB1c2VkXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGluZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNC42NjRhLjI1LjI1IDAgMDAtLjA3My0uMTc3bC0yLjkxNC0yLjkxNGEuMjUuMjUgMCAwMC0uMTc3LS4wNzNIMi43NXpNMSAxLjc1QzEgLjc4NCAxLjc4NCAwIDIuNzUgMGg3LjU4NmMuNDY0IDAgLjkwOS4xODQgMS4yMzcuNTEzbDIuOTE0IDIuOTE0Yy4zMjkuMzI4LjUxMy43NzMuNTEzIDEuMjM3djkuNTg2QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMS43NXptNyAxLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS41aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjV2MS41YS43NS43NSAwIDAxLTEuNSAwVjdoLTEuNWEuNzUuNzUgMCAwMTAtMS41aDEuNVY0QS43NS43NSAwIDAxOCAzLjI1em0tMyA4YS43NS43NSAwIDAxLjc1LS43NWg0LjVhLjc1Ljc1IDAgMDEwIDEuNWgtNC41YS43NS43NSAwIDAxLS43NS0uNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IGFkZGVkLCA8JT0gcGx1Z2lucy5saW5lcy5kZWxldGVkICU+IHJlbW92ZWRcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50ICU+IFNwb25zb3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTAgMi4xMjJhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OEEyLjI1IDIuMjUgMCAwMDUuNzUgOC41aDEuNXYyLjEyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWOC41aDEuNWEyLjI1IDIuMjUgMCAwMDIuMjUtMi4yNXYtLjg3OGEyLjI1IDIuMjUgMCAxMC0xLjUgMHYuODc4YS43NS43NSAwIDAxLS43NS43NWgtNC41QS43NS43NSAwIDAxNSA2LjI1di0uODc4em0zLjc1IDcuMzc4YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTMtOC43NWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzICU+IEZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS42NzkgNy45MzJjLjQxMi0uNjIxIDEuMjQyLTEuNzUgMi4zNjYtMi43MTdDNS4xNzUgNC4yNDIgNi41MjcgMy41IDggMy41YzEuNDczIDAgMi44MjQuNzQyIDMuOTU1IDEuNzE1IDEuMTI0Ljk2NyAxLjk1NCAyLjA5NiAyLjM2NiAyLjcxN2EuMTE5LjExOSAwIDAxMCAuMTM2Yy0uNDEyLjYyMS0xLjI0MiAxLjc1LTIuMzY2IDIuNzE3QzEwLjgyNSAxMS43NTggOS40NzMgMTIuNSA4IDEyLjVjLTEuNDczIDAtMi44MjQtLjc0Mi0zLjk1NS0xLjcxNUMyLjkyIDkuODE4IDIuMDkgOC42OSAxLjY3OSA4LjA2OGEuMTE5LjExOSAwIDAxMC0uMTM2ek04IDJjLTEuOTgxIDAtMy42Ny45OTItNC45MzMgMi4wNzhDMS43OTcgNS4xNjkuODggNi40MjMuNDMgNy4xYTEuNjE5IDEuNjE5IDAgMDAwIDEuNzk4Yy40NS42NzggMS4zNjcgMS45MzIgMi42MzcgMy4wMjRDNC4zMjkgMTMuMDA4IDYuMDE5IDE0IDggMTRjMS45ODEgMCAzLjY3LS45OTIgNC45MzMtMi4wNzggMS4yNy0xLjA5MSAyLjE4Ny0yLjM0NSAyLjYzNy0zLjAyM2ExLjYxOSAxLjYxOSAwIDAwMC0xLjc5OGMtLjQ1LS42NzgtMS4zNjctMS45MzItMi42MzctMy4wMjNDMTEuNjcxIDIuOTkyIDkuOTgxIDIgOCAyem0wIDhhMiAyIDAgMTAwLTQgMiAyIDAgMDAwIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycyAlPiBXYXRjaGVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLndhdGNoZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IgPyAnZXJyb3InIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMCAxLjc1QS43NS43NSAwIDAxLjc1IDFoNC4yNTNjMS4yMjcgMCAyLjMxNy41OSAzIDEuNTAxQTMuNzQ0IDMuNzQ0IDAgMDExMS4wMDYgMWg0LjI0NWEuNzUuNzUgMCAwMS43NS43NXYxMC41YS43NS43NSAwIDAxLS43NS43NWgtNC41MDdhMi4yNSAyLjI1IDAgMDAtMS41OTEuNjU5bC0uNjIyLjYyMWEuNzUuNzUgMCAwMS0xLjA2IDBsLS42MjItLjYyMUEyLjI1IDIuMjUgMCAwMDUuMjU4IDEzSC43NWEuNzUuNzUgMCAwMS0uNzUtLjc1VjEuNzV6bTguNzU1IDNhMi4yNSAyLjI1IDAgMDEyLjI1LTIuMjVIMTQuNXY5aC0zLjc1N2MtLjcxIDAtMS40LjIwMS0xLjk5Mi41NzJsLjAwNC03LjMyMnptLTEuNTA0IDcuMzI0bC4wMDQtNS4wNzMtLjAwMi0yLjI1M0EyLjI1IDIuMjUgMCAwMDUuMDAzIDIuNUgxLjV2OWgzLjc1N2EzLjc1IDMuNzUgMCAwMTEuOTk0LjU3NHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHJhZmZpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudHJhZmZpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQgJT4gdmlldzwlPSBzKHBsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudCkgJT4gaW4gbGFzdCB0d28gd2Vla3NcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cCkgeyAlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+SXNzdWVzPC9oMz5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZm9sbG93dXAuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICA8bWFzayBpZD1cImlzc3Vlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50ID8gMCA6IDIyMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDczYTQ5XCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjaXNzdWVzLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAoMS1wbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjZDczYTQ5XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDAxMTAuNjUtNS4wMDMuNzUuNzUgMCAwMC45NTktMS4xNTMgOCA4IDAgMTAyLjU5MiA4LjMzLjc1Ljc1IDAgMTAtMS40NDQtLjQwN0E2LjUgNi41IDAgMDExLjUgOHpNOCAxMmExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnptMC04YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAxMS0xLjUgMHYtMy41QS43NS43NSAwIDAxOCA0em00Ljc4IDQuMjhsMy0zYS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMi40NyAyLjQ3LS45Ny0uOTdhLjc0OS43NDkgMCAxMC0xLjA2IDEuMDZsMS41IDEuNWEuNzUuNzUgMCAwMDEuMDYgMHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQgJT4gQ2xvc2VkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiIzI4YTc0NVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMub3BlbiAlPiBPcGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+UHVsbCByZXF1ZXN0czwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJwci1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZmNDJjMVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiMyOGE3NDVcIi8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhvcml6b250YWwgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiM2ZjQyYzFcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01IDMuMjU0VjMuMjV2LjAwNWEuNzUuNzUgMCAxMTAtLjAwNXYuMDA0em0uNDUgMS45YTIuMjUgMi4yNSAwIDEwLTEuOTUuMjE4djUuMjU2YTIuMjUgMi4yNSAwIDEwMS41IDBWNy4xMjNBNS43MzUgNS43MzUgMCAwMDkuMjUgOWgxLjM3OGEyLjI1MSAyLjI1MSAwIDEwMC0xLjVIOS4yNWE0LjI1IDQuMjUgMCAwMS0zLjgtMi4zNDZ6TTEyLjc1IDlhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6bS04LjUgNC41YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkICU+IE1lcmdlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03LjE3NyAzLjA3M0w5LjU3My42NzdBLjI1LjI1IDAgMDExMCAuODU0djQuNzkyYS4yNS4yNSAwIDAxLS40MjcuMTc3TDcuMTc3IDMuNDI3YS4yNS4yNSAwIDAxMC0uMzU0ek0zLjc1IDIuNWEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXptLTIuMjUuNzVhMi4yNSAyLjI1IDAgMTEzIDIuMTIydjUuMjU2YTIuMjUxIDIuMjUxIDAgMTEtMS41IDBWNS4zNzJBMi4yNSAyLjI1IDAgMDExLjUgMy4yNXpNMTEgMi41aC0xVjRoMWExIDEgMCAwMTEgMXY1LjYyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWNUEyLjUgMi41IDAgMDAxMSAyLjV6bTEgMTAuMjVhLjc1Ljc1IDAgMTExLjUgMCAuNzUuNzUgMCAwMS0xLjUgMHpNMy43NSAxMmEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5sYW5ndWFnZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgPGgzPk1vc3QgdXNlZCBsYW5ndWFnZXM8L2gzPlxyXG4gICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxtYXNrIGlkPVwibGFuZ3VhZ2VzLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjbGFuZ3VhZ2VzLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzLmxlbmd0aCA/IDAgOiA0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgdmFsdWUsIGNvbG9yLCB4fSBvZiBwbHVnaW5zLmxhbmd1YWdlcy5mYXZvcml0ZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjwlPSB4KjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gdmFsdWUqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCI8JT0gY29sb3IgJT5cIi8+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvcn0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIG5vLXdyYXAgbGFuZ3VhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCI8JT0gY29sb3IgJT5cIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDRhNCA0IDAgMTAwIDggNCA0IDAgMDAwLTh6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gbmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAwQTEuNzUgMS43NSAwIDAwMCAxLjc1djEyLjVDMCAxNS4yMTYuNzg0IDE2IDEuNzUgMTZoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDE0LjI1VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwSDEuNzV6TTEuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgxMi41YS4yNS4yNSAwIDAxLjI1LjI1djEyLjVhLjI1LjI1IDAgMDEtLjI1LjI1SDEuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek0xMS43NSAzYS43NS43NSAwIDAwLS43NS43NXY3LjVhLjc1Ljc1IDAgMDAxLjUgMHYtNy41YS43NS43NSAwIDAwLS43NS0uNzV6bS04LjI1Ljc1YS43NS43NSAwIDAxMS41IDB2NS41YS43NS43NSAwIDAxLTEuNSAwdi01LjV6TTggM2EuNzUuNzUgMCAwMC0uNzUuNzV2My41YS43NS43NSAwIDAwMS41IDB2LTMuNUEuNzUuNzUgMCAwMDggM3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQgJT4gUHJvamVjdDwlPSBzKHBsdWdpbnMucHJvamVjdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHVwZGF0ZWQsIHByb2dyZXNzfSBvZiBwbHVnaW5zLnByb2plY3RzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMy43NUMwIDIuNzg0Ljc4NCAyIDEuNzUgMmgxMi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRIMS43NUExLjc1IDEuNzUgMCAwMTAgMTIuMjV2LTguNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djguNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEyLjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0zLjUgNi4yNWEuNzUuNzUgMCAwMS43NS0uNzVoN2EuNzUuNzUgMCAwMTAgMS41aC03YS43NS43NSAwIDAxLS43NS0uNzV6bS43NSAyLjI1YS43NS43NSAwIDAwMCAxLjVoNGEuNzUuNzUgMCAwMDAtMS41aC00elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHptLjUgNC43NWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAuNDcxLjY5NmwyLjUgMWEuNzUuNzUgMCAwMC41NTctMS4zOTJMOC41IDcuNzQyVjQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVkIDwlPSB1cGRhdGVkICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi41IDEuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDguNWEuMjUuMjUgMCAwMS4yNS4yNXY3LjczNmEuNzUuNzUgMCAxMDEuNSAwVjEuNzVBMS43NSAxLjc1IDAgMDAxMS4yNSAwaC04LjVBMS43NSAxLjc1IDAgMDAxIDEuNzV2MTEuNWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDMuMTdhLjc1Ljc1IDAgMDAwLTEuNUgyLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNNC43NSA0YS43NS43NSAwIDAwMCAxLjVoNC41YS43NS43NSAwIDAwMC0xLjVoLTQuNXpNNCA3Ljc1QS43NS43NSAwIDAxNC43NSA3aDJhLjc1Ljc1IDAgMDEwIDEuNWgtMkEuNzUuNzUgMCAwMTQgNy43NXptMTEuNzc0IDMuNTM3YS43NS43NSAwIDAwLTEuMDQ4LTEuMDc0TDEwLjcgMTQuMTQ1IDkuMjgxIDEyLjcyYS43NS43NSAwIDAwLTEuMDYyIDEuMDU4bDEuOTQzIDEuOTVhLjc1Ljc1IDAgMDAxLjA1NS4wMDhsNC41NTctNC40NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCU9IFtwcm9ncmVzcy5kb25lID8gYCR7cHJvZ3Jlc3MuZG9uZX0gZG9uZWAgOiBcIlwiLCBwcm9ncmVzcy5kb2luZyA/IGAke3Byb2dyZXNzLmRvaW5nfSBkb2luZ2AgOiBcIlwiLCBwcm9ncmVzcy50b2RvID8gYCR7cHJvZ3Jlc3MudG9kb30gdG9kb2AgOiBcIlwiXS5maWx0ZXIoc3RyID0+IHN0cikuam9pbihcIiDCtyBcIikgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIGhvcml6b250YWwtd3JhcCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHJvamVjdC1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIndoaXRlXCIgcng9XCI1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3Byb2plY3QtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhBNzQ1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9IChwcm9ncmVzcy5kb25lL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy5kb2luZy9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjNkY0MkMxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9ICgocHJvZ3Jlc3MuZG9uZStwcm9ncmVzcy5kb2luZykvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLnRvZG8vcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djEyLjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2MTIuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2SDEuNzVBMS43NSAxLjc1IDAgMDEwIDE0LjI1VjEuNzV6bTkuMjIgMy43MmEuNzUuNzUgMCAwMDAgMS4wNkwxMC42OSA4IDkuMjIgOS40N2EuNzUuNzUgMCAxMDEuMDYgMS4wNmwyLTJhLjc1Ljc1IDAgMDAwLTEuMDZsLTItMmEuNzUuNzUgMCAwMC0xLjA2IDB6TTYuNzggNi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIgMmEuNzUuNzUgMCAwMDAgMS4wNmwyIDJhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMNS4zMSA4bDEuNDctMS40N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQgJT4gR2lzdDwlPSBzKHBsdWdpbnMuZ2lzdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAuMjVhLjc1Ljc1IDAgMDEuNjczLjQxOGwxLjg4MiAzLjgxNSA0LjIxLjYxMmEuNzUuNzUgMCAwMS40MTYgMS4yNzlsLTMuMDQ2IDIuOTcuNzE5IDQuMTkyYS43NS43NSAwIDAxLTEuMDg4Ljc5MUw4IDEyLjM0N2wtMy43NjYgMS45OGEuNzUuNzUgMCAwMS0xLjA4OC0uNzlsLjcyLTQuMTk0TC44MTggNi4zNzRhLjc1Ljc1IDAgMDEuNDE2LTEuMjhsNC4yMS0uNjExTDcuMzI3LjY2OEEuNzUuNzUgMCAwMTggLjI1em0wIDIuNDQ1TDYuNjE1IDUuNWEuNzUuNzUgMCAwMS0uNTY0LjQxbC0zLjA5Ny40NSAyLjI0IDIuMTg0YS43NS43NSAwIDAxLjIxNi42NjRsLS41MjggMy4wODQgMi43NjktMS40NTZhLjc1Ljc1IDAgMDEuNjk4IDBsMi43NyAxLjQ1Ni0uNTMtMy4wODRhLjc1Ljc1IDAgMDEuMjE2LS42NjRsMi4yNC0yLjE4My0zLjA5Ni0uNDVhLjc1Ljc1IDAgMDEtLjU2NC0uNDFMOCAyLjY5NHYuMDAxelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZ2lzdHMuc3RhcmdhemVycyAlPiBTdGFyZ2F6ZXI8JT0gcyhwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNWEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0wIDIuMTIyYTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhBMi4yNSAyLjI1IDAgMDA1Ljc1IDguNWgxLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjguNWgxLjVhMi4yNSAyLjI1IDAgMDAyLjI1LTIuMjV2LS44NzhhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OGEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNUEuNzUuNzUgMCAwMTUgNi4yNXYtLjg3OHptMy43NSA3LjM3OGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0zLTguNzVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5mb3JrcyAlPiBGb3JrPCU9IHMocGx1Z2lucy5naXN0cy5mb3JrcykgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQuMDY0IDBhOC43NSA4Ljc1IDAgMDAtNi4xODcgMi41NjNsLS40NTkuNDU4Yy0uMzE0LjMxNC0uNjE2LjY0MS0uOTA0Ljk3OUgzLjMxYTEuNzUgMS43NSAwIDAwLTEuNDkuODMzTC4xMSA3LjYwN2EuNzUuNzUgMCAwMC40MTggMS4xMWwzLjEwMi45NTRjLjAzNy4wNTEuMDc5LjEuMTI0LjE0NWwyLjQyOSAyLjQyOGMuMDQ2LjA0Ni4wOTQuMDg4LjE0NS4xMjVsLjk1NCAzLjEwMmEuNzUuNzUgMCAwMDEuMTEuNDE4bDIuNzc0LTEuNzA3YTEuNzUgMS43NSAwIDAwLjgzMy0xLjQ5VjkuNDg1Yy4zMzgtLjI4OC42NjUtLjU5Ljk3OS0uOTA0bC40NTgtLjQ1OUE4Ljc1IDguNzUgMCAwMDE2IDEuOTM2VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwaC0uMTg2ek0xMC41IDEwLjYyNWMtLjA4OC4wNi0uMTc3LjExOC0uMjY2LjE3NWwtMi4zNSAxLjUyMS41NDggMS43ODMgMS45NDktMS4yYS4yNS4yNSAwIDAwLjExOS0uMjEzdi0yLjA2NnpNMy42NzggOC4xMTZMNS4yIDUuNzY2Yy4wNTgtLjA5LjExNy0uMTc4LjE3Ni0uMjY2SDMuMzA5YS4yNS4yNSAwIDAwLS4yMTMuMTE5bC0xLjIgMS45NSAxLjc4Mi41NDd6bTUuMjYtNC40OTNBNy4yNSA3LjI1IDAgMDExNC4wNjMgMS41aC4xODZhLjI1LjI1IDAgMDEuMjUuMjV2LjE4NmE3LjI1IDcuMjUgMCAwMS0yLjEyMyA1LjEyN2wtLjQ1OS40NThhMTUuMjEgMTUuMjEgMCAwMS0yLjQ5OSAyLjAybC0yLjMxNyAxLjUtMi4xNDMtMi4xNDMgMS41LTIuMzE3YTE1LjI1IDE1LjI1IDAgMDEyLjAyLTIuNWwuNDU4LS40NThoLjAwMnpNMTIgNWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS04LjQ0IDkuNTZhMS41IDEuNSAwIDEwLTIuMTItMi4xMmMtLjczNC43My0xLjA0NyAyLjMzMi0xLjE1IDMuMDAzYS4yMy4yMyAwIDAwLjI2NS4yNjVjLjY3MS0uMTAzIDIuMjczLS40MTYgMy4wMDUtMS4xNDh6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIFBhZ2VTcGVlZCBJbnNpZ2h0c1xyXG4gICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy43NzUgMy4yNzVhLjc1Ljc1IDAgMDAxLjA2IDEuMDZsMS4yNS0xLjI1YTIgMiAwIDExMi44MyAyLjgzbC0yLjUgMi41YTIgMiAwIDAxLTIuODMgMCAuNzUuNzUgMCAwMC0xLjA2IDEuMDYgMy41IDMuNSAwIDAwNC45NSAwbDIuNS0yLjVhMy41IDMuNSAwIDAwLTQuOTUtNC45NWwtMS4yNSAxLjI1em0tNC42OSA5LjY0YTIgMiAwIDAxMC0yLjgzbDIuNS0yLjVhMiAyIDAgMDEyLjgzIDAgLjc1Ljc1IDAgMDAxLjA2LTEuMDYgMy41IDMuNSAwIDAwLTQuOTUgMGwtMi41IDIuNWEzLjUgMy41IDAgMDA0Ljk1IDQuOTVsMS4yNS0xLjI1YS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMS4yNSAxLjI1YTIgMiAwIDAxLTIuODMgMHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IHVzZXIud2Vic2l0ZVVybCAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQuZXJyb3IpIHsgJT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtzY29yZSwgdGl0bGV9IG9mIHBsdWdpbnMucGFnZXNwZWVkLnNjb3JlcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllIGNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTIwIDEyMFwiIHdpZHRoPVwiNTBcIiBoZWlnaHQ9XCI1MFwiIGNsYXNzPVwiZ2F1Z2UgPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gKHNjb3JlID49IDAuOSA/ICdoaWdoJyA6IHNjb3JlID49IDAuNSA/ICdhdmVyYWdlJyA6ICdsb3cnKSA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiZ2F1Z2UtYmFzZVwiIHI9XCI1M1wiIGN4PVwiNjBcIiBjeT1cIjYwXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImdhdWdlLWFyY1wiIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgNjAgNjApXCIgcj1cIjUzXCIgY3g9XCI2MFwiIGN5PVwiNjBcIiBzdHJva2UtZGFzaGFycmF5PVwiPCU9IHNjb3JlICogMzI5ICU+IDMyOVwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCB4PVwiNjBcIiB5PVwiNjBcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiA+PCU9IE1hdGgucm91bmQoc2NvcmUqMTAwKSAlPjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9XCI2MFwiIHk9XCI2MFwiIGRvbWluYW50LWJhc2VsaW5lPVwiY2VudHJhbFwiID4tPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48JT0gdGl0bGUgJT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQuZGV0YWlsZWQpIHsgJT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1ZGl0cyByb3dcIj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuNzUuNzVBLjc1Ljc1IDAgMDE2LjUgMGgzYS43NS43NSAwIDAxMCAxLjVoLS43NXYxbC0uMDAxLjA0MWE2LjcxOCA2LjcxOCAwIDAxMy40NjQgMS40MzVsLjAwNy0uMDA2Ljc1LS43NWEuNzUuNzUgMCAxMTEuMDYgMS4wNmwtLjc1Ljc1LS4wMDYuMDA3YTYuNzUgNi43NSAwIDExLTEwLjU0OCAwTDIuNzIgNS4wM2wtLjc1LS43NWEuNzUuNzUgMCAwMTEuMDYtMS4wNmwuNzUuNzUuMDA3LjAwNkE2LjcxOCA2LjcxOCAwIDAxNy4yNSAyLjU0MWEuNzU2Ljc1NiAwIDAxMC0uMDQxdi0xSDYuNWEuNzUuNzUgMCAwMS0uNzUtLjc1ek04IDE0LjVBNS4yNSA1LjI1IDAgMTA4IDRhNS4yNSA1LjI1IDAgMDAwIDEwLjV6bS4zODktNi43bDEuMzMtMS4zM2EuNzUuNzUgMCAxMTEuMDYxIDEuMDZMOS40NSA4Ljg2MUExLjUwMiAxLjUwMiAwIDAxOCAxMC43NWExLjUgMS41IDAgMTEuMzg5LTIuOTV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFRpbWUgdG8gaW50ZXJhY3RpdmVcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTA2LjAxNiA0LjAzNS43NS43NSAwIDAxMS4zODgtLjU3IDggOCAwIDExLTQuMzctNC4zNy43NS43NSAwIDAxLS41NjkgMS4zODlBNi40NzkgNi40NzkgMCAwMDggMS41em02LjI4LjIyYS43NS43NSAwIDAxMCAxLjA2bC00LjA2MyA0LjA2NGEyLjUgMi41IDAgMTEtMS4wNi0xLjA2TDEzLjIyIDEuNzJhLjc1Ljc1IDAgMDExLjA2IDB6TTcgOGExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFNwZWVkIEluZGV4XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS42NDMgMy4xNDNMLjQyNyAxLjkyN0EuMjUuMjUgMCAwMDAgMi4xMDRWNS43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDMuNjQ2YS4yNS4yNSAwIDAwLjE3Ny0uNDI3TDIuNzE1IDQuMjE1YTYuNSA2LjUgMCAxMS0xLjE4IDQuNDU4Ljc1Ljc1IDAgMTAtMS40OTMuMTU0IDguMDAxIDguMDAxIDAgMTAxLjYtNS42ODR6TTcuNzUgNGEuNzUuNzUgMCAwMS43NS43NXYyLjk5MmwyLjAyOC44MTJhLjc1Ljc1IDAgMDEtLjU1NyAxLjM5MmwtMi41LTFBLjc1Ljc1IDAgMDE3IDguMjV2LTMuNUEuNzUuNzUgMCAwMTcuNzUgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgVG90YWwgQmxvY2tpbmcgVGltZVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTExLjEzNCAxLjUzNUM5LjcyMiAyLjU2MiA4LjE2IDQuMDU3IDYuODg5IDUuMzEyIDUuOCA2LjM4NyA1LjA0MSA3LjQwMSA0LjU3NSA4LjI5NGEzLjc0NSAzLjc0NSAwIDAwLTMuMjI3IDEuMDU0Yy0uNDMuNDMxLS42OSAxLjA2Ni0uODYgMS42NTdhMTEuOTgyIDExLjk4MiAwIDAwLS4zNTggMS45MTRBMjEuMjYzIDIxLjI2MyAwIDAwMCAxNS4yMDN2LjA1NGwuNzUtLjAwNy0uMDA3Ljc1aC4wNTRhMTQuNDA0IDE0LjQwNCAwIDAwLjY1NC0uMDEyIDIxLjI0MyAyMS4yNDMgMCAwMDEuNjMtLjExOGMuNjItLjA3IDEuMy0uMTggMS45MTQtLjM1Ny41OTItLjE3IDEuMjI2LS40MyAxLjY1Ny0uODYxYTMuNzQ1IDMuNzQ1IDAgMDAxLjA1NS0zLjIxN2MuOTA4LS40NjEgMS45NDItMS4yMTYgMy4wNC0yLjMgMS4yNzktMS4yNjIgMi43NjQtMi44MjUgMy43NzUtNC4yNDkuNTAxLS43MDYuOTIzLTEuNDI4IDEuMTI1LTIuMDk2LjItLjY1OS4yMzUtMS40NjktLjM2OC0yLjA3LS42MDYtLjYwNy0xLjQyLS41NS0yLjA2OS0uMzQtLjY2LjIxMy0xLjM3Ni42NDYtMi4wNzYgMS4xNTV6bS0zLjk1IDguNDhhMy43NiAzLjc2IDAgMDAtMS4xOS0xLjE5MiA5Ljc1OCA5Ljc1OCAwIDAxMS4xNjEtMS42MDdsMS42NTggMS42NThhOS44NTMgOS44NTMgMCAwMS0xLjYzIDEuMTQyek0uNzQyIDE2bC4wMDctLjc1LS43NS4wMDhBLjc1Ljc1IDAgMDAuNzQzIDE2ek0xMi4wMTYgMi43NDljLTEuMjI0Ljg5LTIuNjA1IDIuMTg5LTMuODIyIDMuMzg0bDEuNzE4IDEuNzE4YzEuMjEtMS4yMDUgMi41MS0yLjU5NyAzLjM4Ny0zLjgzMy40Ny0uNjYyLjc4LTEuMjI3LjkxMi0xLjY2Mi4xMzQtLjQ0NC4wMzItLjU1MS4wMDktLjU3NWgtLjAwMVYxLjc4Yy0uMDE0LS4wMTQtLjExMi0uMTEzLS41NDguMDI3LS40MzIuMTQtLjk5NS40NjItMS42NTUuOTQyek0xLjYyIDEzLjA4OWExOS41NiAxOS41NiAwIDAwLS4xMDQgMS4zOTUgMTkuNTUgMTkuNTUgMCAwMDEuMzk2LS4xMDQgMTAuNTI4IDEwLjUyOCAwIDAwMS42NjgtLjMwOWMuNTI2LS4xNTEuODU2LS4zMjUgMS4wMTEtLjQ4YTIuMjUgMi4yNSAwIDAwLTMuMTgyLTMuMTgyYy0uMTU1LjE1NS0uMzI5LjQ4NS0uNDggMS4wMWExMC41MTUgMTAuNTE1IDAgMDAtLjMwOSAxLjY3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBGaXJzdCBDb250ZW50ZnVsIFBhaW50XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djEwLjVjMCAuMTM4LjExMi4yNS4yNS4yNWguOTRhLjc2Ljc2IDAgMDEuMDMtLjAzbDYuMDc3LTYuMDc4YTEuNzUgMS43NSAwIDAxMi40MTItLjA2TDE0LjUgMTAuMzFWMi43NWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6bTEyLjUgMTFINC44MWw1LjA0OC01LjA0N2EuMjUuMjUgMCAwMS4zNDQtLjAwOWw0LjI5OCAzLjg4OXYuOTE3YS4yNS4yNSAwIDAxLS4yNS4yNXptMS43NS0uMjVWMi43NUExLjc1IDEuNzUgMCAwMDE0LjI1IDFIMS43NUExLjc1IDEuNzUgMCAwMDAgMi43NXYxMC41QzAgMTQuMjE2Ljc4NCAxNSAxLjc1IDE1aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxMy4yNXpNNS41IDZhLjUuNSAwIDExLTEgMCAuNS41IDAgMDExIDB6TTcgNmEyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIExhcmdlc3QgQ29udGVudGZ1bCBQYWludFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuNzUgMTRBMS43NSAxLjc1IDAgMDE2IDEyLjI1di04LjVDNiAyLjc4NCA2Ljc4NCAyIDcuNzUgMmg2LjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY4LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNGgtNi41em0tLjI1LTEuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWg2LjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNi41YS4yNS4yNSAwIDAwLS4yNS4yNXY4LjV6TTQuOSAzLjUwOGEuNzUuNzUgMCAwMS0uMjc0IDEuMDI1LjI1LjI1IDAgMDAtLjEyNi4yMTd2Ni41YS4yNS4yNSAwIDAwLjEyNi4yMTcuNzUuNzUgMCAwMS0uNzUyIDEuMjk4QTEuNzUgMS43NSAwIDAxMyAxMS4yNXYtNi41YzAtLjY0OS4zNTMtMS4yMTQuODc0LTEuNTE2YS43NS43NSAwIDAxMS4wMjUuMjc0ek0xLjYyNSA1LjUzM2EuNzUuNzUgMCAxMC0uNzUyLTEuMjk5QTEuNzUgMS43NSAwIDAwMCA1Ljc1djQuNWMwIC42NDkuMzUzIDEuMjE0Ljg3NCAxLjUxNWEuNzUuNzUgMCAxMC43NTItMS4yOTguMjUuMjUgMCAwMS0uMTI2LS4yMTd2LTQuNWEuMjUuMjUgMCAwMS4xMjYtLjIxN3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VtdWxhdGl2ZSBMYXlvdXQgU2hpZnRcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7c2NvcmUsIHN1ZmZpeCA9IFwiXCIsIHRocmVzaG9sZH0gb2YgW1xyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5pbnRlcmFjdGl2ZS8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy43ODUsIDcuM119LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5zcGVlZEluZGV4LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlszLjM4NywgNS44XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLnRvdGFsQmxvY2tpbmdUaW1lLzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsuMjg3LCAuNl19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5maXJzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi4zMzYsIDRdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MubGFyZ2VzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi41LCA0XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTorcGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5jdW11bGF0aXZlTGF5b3V0U2hpZnQsIHRocmVzaG9sZDpbLjEsIC4yNV19XHJcbiAgICAgICAgICAgICAgICBdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1ZGl0IHRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBzY29yZS50b0ZpeGVkKDIpLnJlcGxhY2UoL1suXTArJC8sIFwiXCIpICU+IDwlPSBzdWZmaXggJT5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTi9BXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKE51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImF1ZGl0XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bTMuMjggNS43OGEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTUuNSA1LjVhLjc1Ljc1IDAgMTAxLjA2IDEuMDZsNS41LTUuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzBdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBoaWdoXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTExLjc4LTEuNzJhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDYuNzUgOS4xOSA1LjI4IDcuNzJhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2bDIgMmEuNzUuNzUgMCAwMDEuMDYgMGw0LjUtNC41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIGlmIChzY29yZSA8PSB0aHJlc2hvbGRbMV0pIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImF1ZGl0IGF2ZXJhZ2VcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVhNi41IDYuNSAwIDEwMCAxMyA2LjUgNi41IDAgMDAwLTEzek0wIDhhOCA4IDAgMTExNiAwQTggOCAwIDAxMCA4em05IDNhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTYuMjVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwMS41IDB2LTMuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBsb3dcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC40Ny4yMkEuNzUuNzUgMCAwMTUgMGg2YS43NS43NSAwIDAxLjUzLjIybDQuMjUgNC4yNWMuMTQxLjE0LjIyLjMzMS4yMi41M3Y2YS43NS43NSAwIDAxLS4yMi41M2wtNC4yNSA0LjI1QS43NS43NSAwIDAxMTEgMTZINWEuNzUuNzUgMCAwMS0uNTMtLjIyTC4yMiAxMS41M0EuNzUuNzUgMCAwMTAgMTFWNWEuNzUuNzUgMCAwMS4yMi0uNTNMNC40Ny4yMnptLjg0IDEuMjhMMS41IDUuMzF2NS4zOGwzLjgxIDMuODFoNS4zOGwzLjgxLTMuODFWNS4zMUwxMC42OSAxLjVINS4zMXpNOCA0YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAwMS0xLjUgMHYtMy41QS43NS43NSAwIDAxOCA0em0wIDhhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVjLTIuMzYzIDAtNCAxLjY5LTQgMy43NSAwIC45ODQuNDI0IDEuNjI1Ljk4NCAyLjMwNGwuMjE0LjI1M2MuMjIzLjI2NC40Ny41NTYuNjczLjg0OC4yODQuNDExLjUzNy44OTYuNjIxIDEuNDlhLjc1Ljc1IDAgMDEtMS40ODQuMjExYy0uMDQtLjI4Mi0uMTYzLS41NDctLjM3LS44NDdhOC42OTUgOC42OTUgMCAwMC0uNTQyLS42OGMtLjA4NC0uMS0uMTczLS4yMDUtLjI2OC0uMzJDMy4yMDEgNy43NSAyLjUgNi43NjYgMi41IDUuMjUgMi41IDIuMzEgNC44NjMgMCA4IDBzNS41IDIuMzEgNS41IDUuMjVjMCAxLjUxNi0uNzAxIDIuNS0xLjMyOCAzLjI1OS0uMDk1LjExNS0uMTg0LjIyLS4yNjguMzE5LS4yMDcuMjQ1LS4zODMuNDUzLS41NDEuNjgxLS4yMDguMy0uMzMuNTY1LS4zNy44NDdhLjc1Ljc1IDAgMDEtMS40ODUtLjIxMmMuMDg0LS41OTMuMzM3LTEuMDc4LjYyMS0xLjQ4OS4yMDMtLjI5Mi40NS0uNTg0LjY3My0uODQ4LjA3NS0uMDg4LjE0Ny0uMTczLjIxMy0uMjUzLjU2MS0uNjc5Ljk4NS0xLjMyLjk4NS0yLjMwNCAwLTIuMDYtMS42MzctMy43NS00LTMuNzV6TTYgMTUuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMTAgMS41aC0yLjVhLjc1Ljc1IDAgMDEtLjc1LS43NXpNNS43NSAxMmEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb2RpbmcgaGFiaXRzIGFuZCByZWNlbnQgYWN0aXZpdHlcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuZmFjdHMpIHsgJT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJoYWJpdHNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmluZGVudHMuc3R5bGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT5Nb3N0bHkgYWN0aXZlIG9uIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheS50b0xvY2FsZUxvd2VyQ2FzZSgpICU+PC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmNoYXJ0cykgeyAlPlxyXG4gICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4ocGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3VyKSkgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgIDxoMz5Db21taXQgYWN0aXZpdHkgcGVyIHRpbWUgb2YgdGhlIGRheTwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAobGV0IGggPSAwOyBoIDwgMjQ7IGgrKykgeyBjb25zdCBwID0gKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cnNbaF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXJzLm1heD8/MSk7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3Vyc1toXSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCIgc3R5bGU9XCJoZWlnaHQ6IDwlPSBwKjUwICU+cHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBgJHtofWAucGFkU3RhcnQoMiwgMCkgJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuZGF5KSkgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY29sdW1uIGNoYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICA8aDM+Q29tbWl0IGFjdGl2aXR5IHBlciBkYXk8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChsZXQgZCA9IDA7IGQgPCA3OyBkKyspIHsgY29uc3QgcCA9IChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXNbZF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXMubWF4Pz8xKTsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5kYXlzW2RdICU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhclwiIHN0eWxlPVwiaGVpZ2h0OiA8JT0gcCo1MCAlPnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDwlPSBNYXRoLmNlaWwocC8wLjI1KSAlPi1iZylcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl1bZF0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5saW5ndWlzdC5hdmFpbGFibGUpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPkxhbmd1YWdlIGFjdGl2aXR5PC9oMz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1iYXJzIGhvcml6b250YWxcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbbGFuZ3VhZ2UsIHBdIG9mIHBsdWdpbnMuaGFiaXRzLmxpbmd1aXN0Lm9yZGVyZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPjwlPSBsYW5ndWFnZSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIiBzdHlsZT1cIndpZHRoOiA8JT0gcCo4MCAlPiU7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPjwlPSBNYXRoLnJvdW5kKDEwMCpwKSAlPiU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy50b3BpY3MpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNC4xODQgMS4xNDNhMS43NSAxLjc1IDAgMDAtMi41MDItLjU3TC45MTIgNy45MTZhMS43NSAxLjc1IDAgMDAtLjUzIDIuMzJsLjQ0Ny43NzVhMS43NSAxLjc1IDAgMDAyLjI3NS43MDJsMTEuNzQ1LTUuNjU2YTEuNzUgMS43NSAwIDAwLjc1Ny0yLjQ1MWwtMS40MjItMi40NjR6bS0xLjY1Ny42NjlhLjI1LjI1IDAgMDEuMzU4LjA4MWwxLjQyMiAyLjQ2NGEuMjUuMjUgMCAwMS0uMTA4LjM1bC0yLjAxNi45Ny0xLjUwNS0yLjYwNSAxLjg1LTEuMjZ6TTkuNDM2IDMuOTJsMS4zOTEgMi40MS01LjQyIDIuNjEtLjk0Mi0xLjYzIDQuOTctMy4zOXpNMy4yMjIgOC4xNTdsLTEuNDY2IDFhLjI1LjI1IDAgMDAtLjA3NS4zM2wuNDQ3Ljc3NWEuMjUuMjUgMCAwMC4zMjUuMWwxLjU5OC0uNzY5LS44My0xLjQzNnptNi4yNTMgMi4zMDZhLjc1Ljc1IDAgMDAtLjk0NC0uMjUybC0xLjgwOS44N2EuNzUuNzUgMCAwMC0uMjkzLjI1M0w0LjM4IDE0LjMyNmEuNzUuNzUgMCAxMDEuMjM4Ljg0OGwxLjg4MS0yLjc1djIuODI2YS43NS43NSAwIDAwMS41IDB2LTIuODI2bDEuODgxIDIuNzVhLjc1Ljc1IDAgMDAxLjIzOC0uODQ4bC0yLjY0NC0zLjg2M3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIFN0YXJyZWQgdG9waWNzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50b3BpY3MuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudG9waWNzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BpY3MgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCBkZXNjcmlwdGlvbn0gb2YgcGx1Z2lucy50b3BpY3MubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRpdGxlPVwiPCU9IGRlc2NyaXB0aW9uICU+XCI+PCU9IG5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwek02LjM3OSA1LjIyN0EuMjUuMjUgMCAwMDYgNS40NDJ2NS4xMTdhLjI1LjI1IDAgMDAuMzc5LjIxNGw0LjI2NC0yLjU1OWEuMjUuMjUgMCAwMDAtLjQyOEw2LjM3OSA1LjIyN3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLm11c2ljLm1vZGUgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMucHJvdmlkZXIpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4wMDIgMi43MjVhLjc1Ljc1IDAgMDEuNzk3LS42OTlDOC43OSAyLjQyIDEzLjU4IDcuMjEgMTMuOTc0IDEzLjIwMWEuNzUuNzUgMCAxMS0xLjQ5Ny4wOTggMTAuNTAyIDEwLjUwMiAwIDAwLTkuNzc2LTkuNzc2Ljc1Ljc1IDAgMDEtLjctLjc5OHpNMiAxM2ExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6bS44NC01Ljk1YS43NS43NSAwIDAwLS4xNzkgMS40ODljMi41MDkuMyA0LjUgMi4yOTEgNC44IDQuOGEuNzUuNzUgMCAxMDEuNDktLjE3OEE3LjAwMyA3LjAwMyAwIDAwMi44MzggNy4wNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEZyb20gPCU9IHBsdWdpbnMubXVzaWMucHJvdmlkZXIgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5tdXNpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMudHJhY2tzLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhY2tsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSA9IFwiXCIsIGFydGlzdCA9IFwiXCIsIGFydHdvcmsgPSBcIlwifSBvZiBwbHVnaW5zLm11c2ljLnRyYWNrcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LDwlPSBhcnR3b3JrICU+XCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgYWx0PVwiXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPjwlPSBuYW1lICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFydGlzdFwiPjwlPSBhcnRpc3QgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY5LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg2LjVhLjI1LjI1IDAgMDAuMjUtLjI1di05LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0wIDEuNzVDMCAuNzg0Ljc4NCAwIDEuNzUgMGgxMi41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY5LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxM0g4LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxMyAxNC41NDNWMTNIMS43NUExLjc1IDEuNzUgMCAwMTAgMTEuMjV2LTkuNXpNOSA5YTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS01LjI1YS43NS43NSAwIDAwLTEuNSAwdjIuNWEuNzUuNzUgMCAwMDEuNSAwdi0yLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIE5vIG11c2ljIHJlY2VudGx5IGxpc3RlbmVkXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNDU2LjczNGExLjc1IDEuNzUgMCAwMTIuODI2LjUwNGwuNjEzIDEuMzI3YTMuMDgxIDMuMDgxIDAgMDAyLjA4NCAxLjcwN2wyLjQ1NC41ODRjMS4zMzIuMzE3IDEuOCAxLjk3Mi44MzIgMi45NEwxMS4wNiAxMGwzLjcyIDMuNzJhLjc1Ljc1IDAgMTEtMS4wNjEgMS4wNkwxMCAxMS4wNmwtMi4yMDQgMi4yMDVjLS45NjguOTY4LTIuNjIzLjUtMi45NC0uODMybC0uNTg0LTIuNDU0YTMuMDgxIDMuMDgxIDAgMDAtMS43MDctMi4wODRsLTEuMzI3LS42MTNhMS43NSAxLjc1IDAgMDEtLjUwNC0yLjgyNkw0LjQ1Ni43MzR6TTUuOTIgMS44NjZhLjI1LjI1IDAgMDAtLjQwNC0uMDcyTDEuNzk0IDUuNTE2YS4yNS4yNSAwIDAwLjA3Mi40MDRsMS4zMjguNjEzQTQuNTgyIDQuNTgyIDAgMDE1LjczIDkuNjNsLjU4NCAyLjQ1NGEuMjUuMjUgMCAwMC40Mi4xMmw1LjQ3LTUuNDdhLjI1LjI1IDAgMDAtLjEyLS40Mkw5LjYzIDUuNzNhNC41ODEgNC41ODEgMCAwMS0zLjA5OC0yLjUzN0w1LjkyIDEuODY2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgUmVjZW50IGFydGljbGVzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnBvc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnBvc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLnBvc3RzLnNvdXJjZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5saXN0Lmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHt0aXRsZSwgZGF0ZX0gb2YgcGx1Z2lucy5wb3N0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHBvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDBhLjc1Ljc1IDAgMDEuNzUuNzVWMmg1Vi43NWEuNzUuNzUgMCAwMTEuNSAwVjJoMS4yNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djEwLjVBMS43NSAxLjc1IDAgMDExMy4yNSAxNkgyLjc1QTEuNzUgMS43NSAwIDAxMSAxNC4yNVYzLjc1QzEgMi43ODQgMS43ODQgMiAyLjc1IDJINFYuNzVBLjc1Ljc1IDAgMDE0Ljc1IDB6bTAgMy41aDguNWEuMjUuMjUgMCAwMS4yNS4yNVY2aC0xMVYzLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgyem0tMi4yNSA0djYuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMC41YS4yNS4yNSAwIDAwLjI1LS4yNVY3LjVoLTExelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPjwlPSBkYXRlICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPjwlPSB0aXRsZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyByZWNlbnQgcG9zdHNcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnR3ZWV0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNzMuNSAyMjIuM1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGQ9XCJNMjczLjUgMjYuM2ExMDkuNzcgMTA5Ljc3IDAgMCAxLTMyLjIgOC44IDU2LjA3IDU2LjA3IDAgMCAwIDI0LjctMzEgMTEzLjM5IDExMy4zOSAwIDAgMS0zNS43IDEzLjYgNTYuMSA1Ni4xIDAgMCAwLTk3IDM4LjQgNTQgNTQgMCAwIDAgMS41IDEyLjhBMTU5LjY4IDE1OS42OCAwIDAgMSAxOS4xIDEwLjNhNTYuMTIgNTYuMTIgMCAwIDAgMTcuNCA3NC45IDU2LjA2IDU2LjA2IDAgMCAxLTI1LjQtN3YuN2E1Ni4xMSA1Ni4xMSAwIDAgMCA0NSA1NSA1NS42NSA1NS42NSAwIDAgMS0xNC44IDIgNjIuMzkgNjIuMzkgMCAwIDEtMTAuNi0xIDU2LjI0IDU2LjI0IDAgMCAwIDUyLjQgMzkgMTEyLjg3IDExMi44NyAwIDAgMS02OS43IDI0IDExOSAxMTkgMCAwIDEtMTMuNC0uOCAxNTguODMgMTU4LjgzIDAgMCAwIDg2IDI1LjJjMTAzLjIgMCAxNTkuNi04NS41IDE1OS42LTE1OS42IDAtMi40LS4xLTQuOS0uMi03LjNhMTE0LjI1IDExNC4yNSAwIDAgMCAyOC4xLTI5LjFcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIExhdGVzdCB0d2VldHNcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSAhcGx1Z2lucy50d2VldHMucHJvZmlsZSA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50d2VldHMucHJvZmlsZT8udmVyaWZpZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOS41ODUuNTJhMi42NzggMi42NzggMCAwMC0zLjE3IDBsLS45MjguNjhhMS4xNzggMS4xNzggMCAwMS0uNTE4LjIxNUwzLjgzIDEuNTlhMi42NzggMi42NzggMCAwMC0yLjI0IDIuMjRsLS4xNzUgMS4xNGExLjE3OCAxLjE3OCAwIDAxLS4yMTUuNTE4bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAwIDMuMTdsLjY4LjkyOGMuMTEzLjE1My4xODYuMzMuMjE1LjUxOGwuMTc1IDEuMTM4YTIuNjc4IDIuNjc4IDAgMDAyLjI0IDIuMjRsMS4xMzguMTc1Yy4xODcuMDI5LjM2NS4xMDIuNTE4LjIxNWwuOTI4LjY4YTIuNjc4IDIuNjc4IDAgMDAzLjE3IDBsLjkyOC0uNjhhMS4xNyAxLjE3IDAgMDEuNTE4LS4yMTVsMS4xMzgtLjE3NWEyLjY3OCAyLjY3OCAwIDAwMi4yNDEtMi4yNDFsLjE3NS0xLjEzOGMuMDI5LS4xODcuMTAyLS4zNjUuMjE1LS41MThsLjY4LS45MjhhMi42NzggMi42NzggMCAwMDAtMy4xN2wtLjY4LS45MjhhMS4xNzkgMS4xNzkgMCAwMS0uMjE1LS41MThMMTQuNDEgMy44M2EyLjY3OCAyLjY3OCAwIDAwLTIuMjQtMi4yNGwtMS4xMzgtLjE3NWExLjE3OSAxLjE3OSAwIDAxLS41MTgtLjIxNUw5LjU4NS41MnpNNy4zMDMgMS43MjhjLjQxNS0uMzA1Ljk4LS4zMDUgMS4zOTQgMGwuOTI4LjY4Yy4zNDguMjU2Ljc1Mi40MjMgMS4xOC40ODlsMS4xMzYuMTc0Yy41MS4wNzguOTA5LjQ3OC45ODcuOTg3bC4xNzQgMS4xMzdjLjA2Ni40MjcuMjMzLjgzMS40ODkgMS4xOGwuNjguOTI3Yy4zMDUuNDE1LjMwNS45OCAwIDEuMzk0bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OSAxLjE4bC0uMTc0IDEuMTM2YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny45ODdsLTEuMTM3LjE3NGEyLjY3OCAyLjY3OCAwIDAwLTEuMTguNDg5bC0uOTI3LjY4Yy0uNDE1LjMwNS0uOTguMzA1LTEuMzk0IDBsLS45MjgtLjY4YTIuNjc4IDIuNjc4IDAgMDAtMS4xOC0uNDg5bC0xLjEzNi0uMTc0YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny0uOTg3bC0uMTc0LTEuMTM3YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OS0xLjE4bC0uNjgtLjkyN2ExLjE3OCAxLjE3OCAwIDAxMC0xLjM5NGwuNjgtLjkyOGMuMjU2LS4zNDguNDIzLS43NTIuNDg5LTEuMThsLjE3NC0xLjEzNmMuMDc4LS41MS40NzgtLjkwOS45ODctLjk4N2wxLjEzNy0uMTc0YTIuNjc4IDIuNjc4IDAgMDAxLjE4LS40ODlsLjkyNy0uNjh6TTExLjI4IDYuNzhhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDcgOC45NCA1Ljc4IDcuNzJhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2bDEuNzUgMS43NWEuNzUuNzUgMCAwMDEuMDYgMGwzLjc1LTMuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDIuMzdhNi41IDYuNSAwIDAwNi41IDExLjI2Ljc1Ljc1IDAgMDEuNzUgMS4yOTggOCA4IDAgMTEzLjk5NC03LjI3My43NTQuNzU0IDAgMDEuMDA2LjA5NXYxLjVhMi43NSAyLjc1IDAgMDEtNS4wNzIgMS40NzVBNCA0IDAgMTExMiA4djEuMjVhMS4yNSAxLjI1IDAgMDAyLjUgMFY3Ljg2N2E2LjUgNi41IDAgMDAtOS43NS01LjQ5NlYyLjM3ek0xMC41IDhhMi41IDIuNSAwIDEwLTUgMCAyLjUgMi41IDAgMDA1IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy51c2VybmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIXBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA6IHR3aXR0ZXIgdXNlcm5hbWUgbm90IGZvdW5kXHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmxpc3QubGVuZ3RoKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGV4dCwgY3JlYXRlZF9hdH0gb2YgcGx1Z2lucy50d2VldHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlLSB0ZXh0ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+PCU9IG5ldyBEYXRlKGNyZWF0ZWRfYXQpLnRvR01UU3RyaW5nKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIE5vIHJlY2VudCB0d2VldHNcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNzUgMGEuNzUuNzUgMCAwMS43NS43NVYyaDVWLjc1YS43NS43NSAwIDAxMS41IDBWMmgxLjI1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTAuNUExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjMuNzVDMSAyLjc4NCAxLjc4NCAyIDIuNzUgMkg0Vi43NUEuNzUuNzUgMCAwMTQuNzUgMHptMCAzLjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1VjZoLTExVjMuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDJ6bS0yLjI1IDR2Ni43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjcuNWgtMTF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb250cmlidXRpb25zIGNhbGVuZGFyXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLmlzb2NhbGVuZGFyLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuOTk4IDE0LjVjMi44MzIgMCA1LTEuOTggNS00LjUgMC0xLjQ2My0uNjgtMi4xOS0xLjg3OS0zLjM4M2wtLjAzNi0uMDM3Yy0xLjAxMy0xLjAwOC0yLjMtMi4yOS0yLjgzNC00LjQzNC0uMzIyLjI1Ni0uNjMuNTc5LS44NjQuOTUzLS40MzIuNjk2LS42MjEgMS41OC0uMDQ2IDIuNzMuNDczLjk0Ny42NyAyLjI4NC0uMjc4IDMuMjMyLS42MS42MS0xLjU0NS44NC0yLjQwMy42MzNhMi43ODggMi43ODggMCAwMS0xLjQzNi0uODc0QTMuMjEgMy4yMSAwIDAwMyAxMGMwIDIuNTMgMi4xNjQgNC41IDQuOTk4IDQuNXpNOS41MzMuNzUzQzkuNDk2LjM0IDkuMTYuMDA5IDguNzcuMTQ2IDcuMDM1Ljc1IDQuMzQgMy4xODcgNS45OTcgNi41Yy4zNDQuNjg5LjI4NSAxLjIxOC4wMDMgMS41LS40MTkuNDE5LTEuNTQuNDg3LTIuMDQtLjgzMi0uMTczLS40NTQtLjY1OS0uNzYyLTEuMDM1LS40NTRDMi4wMzYgNy40NCAxLjUgOC43MDIgMS41IDEwYzAgMy41MTIgMi45OTggNiA2LjQ5OCA2czYuNS0yLjUgNi41LTZjMC0yLjEzNy0xLjEyOC0zLjI2LTIuMzEyLTQuNDM4LTEuMTktMS4xODQtMi40MzYtMi40MjUtMi42NTMtNC44MXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgc3RyZWFrIDwlPSBwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50ICU+IGRheTwlPSBzKHBsdWdpbnMuaXNvY2FsZW5kYXIuc3RyZWFrLmN1cnJlbnQpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIH48JT0gcGx1Z2lucy5pc29jYWxlbmRhci5hdmVyYWdlICU+IGNvbW1pdHMgcGVyIGRheVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmlzb2NhbGVuZGFyLnN2ZykgeyAlPlxyXG4gICAgICAgICAgICA8JS0gcGx1Z2lucy5pc29jYWxlbmRhci5zdmcgJT5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbiAgICAgICAgPGZvb3Rlcj5cclxuICAgICAgICAgIDxzcGFuPlRoZXNlIG1ldHJpY3MgPCU9ICFjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCJkb2VzIG5vdCBpbmNsdWRlIGFsbFwiIDogXCJpbmNsdWRlc1wiICU+IHByaXZhdGUgY29udHJpYnV0aW9uczwlIGlmICgoY29uZmlnLnRpbWV6b25lPy5uYW1lKSYmKCFjb25maWcudGltZXpvbmU/LmVycm9yKSkgeyAlPiwgdGltZXpvbmUgPCU9IGNvbmZpZy50aW1lem9uZS5uYW1lICU+PCUgfSAlPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPkxhc3QgdXBkYXRlZCA8JT0gbmV3IERhdGUoKS50b0dNVFN0cmluZygpICU+IHdpdGggbG93bGlnaHRlci9tZXRyaWNzQDwlPSBtZXRhLnZlcnNpb24gJT48L3NwYW4+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2ZvcmVpZ25PYmplY3Q+XHJcbjwvc3ZnPiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBBcHBsZSBDb2xvciBFbW9qaSwgU2Vnb2UgVUkgRW1vamk7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBIZWFkZXJzICovXHJcbiAgaDEsIGgyLCBoMyB7XHJcbiAgICBtYXJnaW46IDhweCAwIDJweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBjb2xvcjogIzAzNjZkNjtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgfVxyXG4gIGgxIHN2ZywgaDIgc3ZnLCBoMyBzdmcge1xyXG4gICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gIH1cclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgaDIge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gIH1cclxuICBoMyB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuLyogRmllbGRzICovXHJcbiAgc2VjdGlvbiA+IC5maWVsZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG4gIC5maWVsZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDJweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfVxyXG4gIC5maWVsZCBzdmcge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZpbGw6ICM5NTlkYTU7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHtcclxuICAgIGNvbG9yOiAjY2IyNDMxO1xyXG4gIH1cclxuICAuZmllbGQuZXJyb3Igc3ZnIHtcclxuICAgIGZpbGw6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogRGlzcGxheXMgKi9cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG4gIC5yb3cgc2VjdGlvbiB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLmNvbHVtbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5jZW50ZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbC13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcbiAgLmhvcml6b250YWwgLmZpZWxkIHtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuICAubm8td3JhcCB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmlsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4vKiBVc2VyIGF2YXRhciAqL1xyXG4gIC5hdmF0YXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogQ29tbWl0IGNhbGVuZGFyICovXHJcbiAgLmNhbGVuZGFyLmZpZWxkIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xyXG4gIH1cclxuICAuY2FsZW5kYXIgLmRheSB7XHJcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNywzMSwzNSwuMDQpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XHJcbiAgfVxyXG5cclxuLyogUHJvZ3Jlc3MgYmFycyAqL1xyXG4gIHN2Zy5iYXIge1xyXG4gICAgbWFyZ2luOiA0cHggMDtcclxuICB9XHJcblxyXG4vKiBMYW5ndWFnZSAqL1xyXG4gIC5maWVsZC5sYW5ndWFnZSB7XHJcbiAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgZmxleC1ncm93OiAwO1xyXG4gIH1cclxuXHJcbiAgLmZpZWxkLmxhbmd1YWdlIHNtYWxsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4vKiBMYWJlbHMgKi9cclxuICAubGFiZWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YxRjhGRjtcclxuICAgIGNvbG9yOiAjMDM2NkQ2O1xyXG4gICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgbWFyZ2luOiAycHggNXB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxuICAubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RERUVGRjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4vKiBIYWJpdHMgKi9cclxuICAuaGFiaXRzIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMzdweDtcclxuICB9XHJcblxyXG4vKiBGb290ZXIgKi9cclxuICBmb290ZXIge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgY29sb3I6ICM2NjY2NjY7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcblxyXG4vKiBTcGVlZCB0ZXN0IGNhdGVnb3JpZXMgKi9cclxuICAuY2F0ZWdvcmllcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gIH1cclxuICAuY2F0ZWdvcmllIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuXHJcbi8qIEdhdWdlcyAqL1xyXG4gIC5nYXVnZSB7XHJcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XHJcbiAgICBmaWxsOiBub25lO1xyXG4gIH1cclxuICAuZ2F1Z2UuaGlnaCB7XHJcbiAgICBjb2xvcjogIzE4YjY2MztcclxuICB9XHJcbiAgLmdhdWdlLmF2ZXJhZ2Uge1xyXG4gICAgY29sb3I6ICNmYjhjMDA7XHJcbiAgfVxyXG4gIC5nYXVnZS5sb3cge1xyXG4gICAgY29sb3I6ICNlNTM5MzU7XHJcbiAgfVxyXG4gIC5nYXVnZS1iYXNlLCAuZ2F1Z2UtYXJjIHtcclxuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAxMDtcclxuICB9XHJcbiAgLmdhdWdlLWJhc2Uge1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC4yO1xyXG4gIH1cclxuICAuZ2F1Z2UtYXJjIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcclxuICAgIGFuaW1hdGlvbi1kZWxheTogMjUwbXM7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1nYXVnZSAxcyBlYXNlIGZvcndhcmRzXHJcbiAgfVxyXG4gIC5nYXVnZSB0ZXh0IHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHJcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcbiAgLmdhdWdlIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZ2F1Z2Uge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAgMzI5O1xyXG4gICAgfVxyXG4gIH1cclxuICAuYXVkaXRzIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICB9XHJcbiAgLmF1ZGl0LnRleHQge1xyXG4gICAgbWluLXdpZHRoOiA0MnB4O1xyXG4gIH1cclxuICAuYXVkaXQgc3ZnIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgLmF1ZGl0LmhpZ2gge1xyXG4gICAgZmlsbDogIzE4YjY2MztcclxuICB9XHJcbiAgLmF1ZGl0LmF2ZXJhZ2Uge1xyXG4gICAgZmlsbDogI2ZiOGMwMDtcclxuICB9XHJcbiAgLmF1ZGl0LmxvdyB7XHJcbiAgICBmaWxsOiAjZTUzOTM1O1xyXG4gIH1cclxuXHJcbi8qIE11c2ljIHBsdWdpbiAqL1xyXG4gIC50cmFja2xpc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyOHB4O1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIC50cmFjayB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAudHJhY2sgaW1nIHtcclxuICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xyXG4gIH1cclxuICAudHJhY2sgLm5hbWUge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgfVxyXG4gIC50cmFjayAuYXJ0aXN0IHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIFBvc3RzIHBsdWdpbiAqL1xyXG4gIC5wb3N0IHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB3aWR0aDogNDAwcHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgbWF4LWhlaWdodDogNDBweDs7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyAuZGF0ZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMXB4O1xyXG4gIH1cclxuXHJcbi8qIFRvcGljcyAqL1xyXG4gIC50b3BpY3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcblxyXG4vKiBUd2VldHMgKi9cclxuICAudHdlZXQge1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgbWFyZ2luLXRvcDogNnB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjNzc3Nzc3QjI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICB9XHJcblxyXG4gIC50d2VldCAubWVudGlvbiwgLnR3ZWV0IC5saW5rLCAudHdlZXQgLmhhc2h0YWcge1xyXG4gICAgY29sb3I6ICMwMzY2ZDY7XHJcbiAgfVxyXG5cclxuICAudHdlZXQgLmRhdGUge1xyXG4gICAgbWFyZ2luOiA2cHggMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIENoYXJ0cyBhbmQgZ3JhcGhzICovXHJcbiAgLmNoYXJ0IHtcclxuICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gIH1cclxuXHJcbiAgLmNoYXJ0LWJhcnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiA4cHggMCA0cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuZW50cnkge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzIC5lbnRyeSAudmFsdWUge1xyXG4gICAgZm9udC1zaXplOiA5cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuYmFyIHtcclxuICAgIHdpZHRoOiA3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmcpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogc3BhY2UtYmV0d2VlbjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzLmhvcml6b250YWwgLmVudHJ5IHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5lbnRyeSAubmFtZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgbWluLXdpZHRoOiAzMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5iYXIge1xyXG4gICAgaGVpZ2h0OiA3cHg7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogRmFkZSBhbmltYXRpb24gKi9cclxuICAuYWYge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uLWZhZGUgMXMgZWFzZSBmb3J3YXJkcztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZmFkZSB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4vKiBDYWtlIGRheSAqL1xyXG4gIC5jYWtlZGF5LCAuY2FrZWRheSBzdmcge1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tcmFpbmJvdyAxLjJzO1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwcygxKTtcclxuICB9XHJcblxyXG4vKiBSYWluYm93IGFuaW1hdGlvbiAqL1xyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLXJhaW5ib3cge1xyXG4gICAgMCUsIDEwMCV7IGNvbG9yOiAjN0YwMEZGOyBmaWxsOiAjN0YwMEZGOyB9XHJcbiAgICAxNCUgeyBjb2xvcjogI0E5MzNGRjsgZmlsbDogI0E5MzNGRjsgfVxyXG4gICAgMjkleyBjb2xvcjogIzAwN0ZGRjsgZmlsbDogIzAwN0ZGRjsgfVxyXG4gICAgNDMleyBjb2xvcjogIzAwRkY3RjsgZmlsbDogIzAwRkY3RjsgfVxyXG5cdFx0NTcleyBjb2xvcjogI0ZGRkYwMDsgZmlsbDogI0ZGRkYwMDsgfVxyXG5cdFx0NzEleyBjb2xvcjogI0ZGN0YwMDsgZmlsbDogI0ZGN0YwMDsgfVxyXG5cdFx0ODYleyBjb2xvcjogI0ZGMDAwMDsgZmlsbDogI0ZGMDAwMDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiIifSwidGVybWluYWwiOnsicXVlcnkiOiJxdWVyeSBNZXRyaWNzIHtcclxuICB1c2VyKGxvZ2luOiAkbG9naW4pIHtcclxuICAgIGRhdGFiYXNlSWRcclxuICAgIG5hbWVcclxuICAgIGxvZ2luXHJcbiAgICBjcmVhdGVkQXRcclxuICAgIGF2YXRhclVybFxyXG4gICAgd2Vic2l0ZVVybFxyXG4gICAgaXNIaXJlYWJsZVxyXG4gICAgdHdpdHRlclVzZXJuYW1lXHJcbiAgICBnaXN0cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllcyhsYXN0OiAkcmVwb3NpdG9yaWVzLCBpc0Zvcms6IGZhbHNlLCBvd25lckFmZmlsaWF0aW9uczogT1dORVIpIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgICB0b3RhbERpc2tVc2FnZVxyXG4gICAgICBub2RlcyB7XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHdhdGNoZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhcmdhemVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhbmd1YWdlcyhmaXJzdDogNCkge1xyXG4gICAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgICBzaXplXHJcbiAgICAgICAgICAgIG5vZGUge1xyXG4gICAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19vcGVuOiBpc3N1ZXMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19jbG9zZWQ6IGlzc3VlcyhzdGF0ZXM6IENMT1NFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9vcGVuOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX21lcmdlZDogcHVsbFJlcXVlc3RzKHN0YXRlczogTUVSR0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlbGVhc2VzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9ya0NvdW50XHJcbiAgICAgICAgbGljZW5zZUluZm8ge1xyXG4gICAgICAgICAgc3BkeElkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBwYWNrYWdlcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHN0YXJyZWRSZXBvc2l0b3JpZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICB3YXRjaGluZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzU3BvbnNvciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzTWFpbnRhaW5lciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uIHtcclxuICAgICAgdG90YWxSZXBvc2l0b3JpZXNXaXRoQ29udHJpYnV0ZWRDb21taXRzXHJcbiAgICAgIHRvdGFsQ29tbWl0Q29udHJpYnV0aW9uc1xyXG4gICAgICByZXN0cmljdGVkQ29udHJpYnV0aW9uc0NvdW50XHJcbiAgICAgIHRvdGFsSXNzdWVDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zXHJcbiAgICB9XHJcbiAgICBjYWxlbmRhcjpjb250cmlidXRpb25zQ29sbGVjdGlvbihmcm9tOiAkY2FsZW5kYXIuZnJvbSwgdG86ICRjYWxlbmRhci50bykge1xyXG4gICAgICBjb250cmlidXRpb25DYWxlbmRhciB7XHJcbiAgICAgICAgd2Vla3Mge1xyXG4gICAgICAgICAgY29udHJpYnV0aW9uRGF5cyB7XHJcbiAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXNDb250cmlidXRlZFRvIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93ZXJzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93aW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgaXNzdWVDb21tZW50cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIG9yZ2FuaXphdGlvbnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImltYWdlIjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0ODBcIiBoZWlnaHQ9XCI8JT0gNDhcclxuICArICghIWJhc2UuaGVhZGVyKSo2MlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMTA4XHJcbiAgKyAoISFiYXNlLmFjdGl2aXR5KSoxMDhcclxuICArICghIWJhc2UuY29tbXVuaXR5KSo5NFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjE0MlxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLnRyYWZmaWMpKSoxOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLmZvbGxvd3VwKSkqMTAyXHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKighIXBsdWdpbnMubGluZXMpKSozNFxyXG4gICsgKCEhcGx1Z2lucy5wYWdlc3BlZWQpKjExMCArIChwbHVnaW5zLnBhZ2VzcGVlZD8uZGV0YWlsZWQgPz8gMCkqNioxNlxyXG4gICsgKCEhcGx1Z2lucy5sYW5ndWFnZXMpKjEyNFxyXG4gICsgKCEhcGx1Z2lucy5naXN0cykqNThcclxuICArIE1hdGgubWF4KDAsICgoKCEhYmFzZS5tZXRhZGF0YSkrKCEhYmFzZS5oZWFkZXIpKygoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSsoISFiYXNlLnJlcG9zaXRvcmllcykrKCEhcGx1Z2lucy5wYWdlc3BlZWQpKyghIXBsdWdpbnMubGFuZ3VhZ2VzKSsoISFwbHVnaW5zLmdpc3RzKSktMSkpKjIwXHJcbiU+XCI+XHJcbiAgPCVcclxuICAgIG1ldGEuJCA9IGA8c3BhbiBjbGFzcz1cInBzMS1wYXRoXCI+JHtgJHt1c2VyLmxvZ2lufWAudG9Mb2NhbGVMb3dlckNhc2UoKX1AbWV0cmljczwvc3Bhbj46PHNwYW4gY2xhc3M9XCJwczEtbG9jYXRpb25cIj5+PC9zcGFuPiR7Y29tcHV0ZWQudG9rZW4uc2NvcGVzLmluY2x1ZGVzKFwicmVwb1wiKSA/IFwiI1wiIDogXCIkXCJ9YFxyXG4gICAgbWV0YS5hbmltYXRpb25zID0gIW1ldGEucGxhY2Vob2xkZXIgPyB7c3RkaW46LjE2LCBzdGRvdXQ6LjI4LCBsZW5ndGg6KDIrT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoK09iamVjdC5rZXlzKHBsdWdpbnMpLmxlbmd0aCl9IDoge3N0ZGluOjAsIHN0ZG91dDowLCBsZW5ndGg6MH1cclxuICAlPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gICAgICAuc3RkaW4sIC5zdGRvdXQge1xyXG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogPCU9IG1ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgLnN0ZG91dCB7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA8JT0gbWV0YS5hbmltYXRpb25zLnN0ZG91dCAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgPCUgZm9yIChsZXQgaSA9IDAsIGQgPSAwOyBpIDwgbWV0YS5hbmltYXRpb25zLmxlbmd0aDsgaSsrLCBkKz1tZXRhLmFuaW1hdGlvbnMuc3RkaW4rbWV0YS5hbmltYXRpb25zLnN0ZG91dCkgeyAlPlxyXG4gICAgICAgIC5zdGRpbjpudGgtb2YtdHlwZSg8JT0gaSsxICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkICU+cztcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN0ZG91dDpudGgtb2YtdHlwZSg8JT0gaSsyICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkK21ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwlIGlmIChpID09PSBtZXRhLmFuaW1hdGlvbnMubGVuZ3RoLTEpIHsgJT5cclxuICAgICAgICAgIGZvb3RlciB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogPCU9IGQgJT5zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilIA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilqE8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gZXhpdFwiPuKclTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbjxwcmU+PCUjIC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAlPlxyXG48ZGl2IGNsYXNzPVwiYmFubmVyXCI+PCUjIC0lPlxyXG5HaXRIdWIgbWV0cmljcyBnZW5lcmF0b3IgPCU9IG1ldGEudmVyc2lvbiAlPlxyXG5UaGVzZSBnZW5lcmF0ZWQgbWV0cmljcyBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk9cclxuV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LlxyXG5cclxuTGFzdCBnZW5lcmF0ZWQ6IDwlPSBuZXcgRGF0ZSgpLnRvR01UU3RyaW5nKCkgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IHdob2FtaTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPGI+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9iPiByZWdpc3RlcmVkPTwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24ubWF0Y2goL14uKz8gW3ltXS8pWzBdLnJlcGxhY2UoLyAvZywgXCJcIikgJT4sIHVpZD08JT0gYCR7dXNlci5kYXRhYmFzZUlkfWAuc3Vic3RyKC00KSAlPiwgZ2lkPTwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPlxyXG4gIGNvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+IDxiPjwlIGZvciAoY29uc3QgW3gsIHtjb2xvcn1dIG9mIE9iamVjdC5lbnRyaWVzKGNvbXB1dGVkLmNhbGVuZGFyKSkgeyAtJT48c3BhbiBzdHlsZT1cImNvbG9yOjwlPSBjb2xvciAlPlwiPiM8L3NwYW4+PCUgfSAlPjwvYj5cclxuICBmb2xsb3dlZCBieSA8Yj48JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPjwvYj4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpfHwoYmFzZS5jb21tdW5pdHkpKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gZ2l0IHN0YXR1czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKGJhc2UuYWN0aXZpdHkpIHsgLSU+XHJcbjxiPlJlY2VudCBhY3Rpdml0eTwvYj5cclxuICA8Yj48JT0gYCR7Y29tcHV0ZWQuY29tbWl0c31gLnBhZFN0YXJ0KDUpICU+PC9iPiBjb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zfWAucGFkU3RhcnQoNSkgJT48L2I+IHB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gcHVsbCByZXF1ZXN0PCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWU8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICA8Yj48JT0gYCR7dXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWUgY29tbWVudDwlPSBzKHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50KSAlPlxyXG48JSB9IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpJiYoYmFzZS5jb21tdW5pdHkpKSB7IC0lPlxyXG5cclxuPCUgfSAtJT5cclxuPCUgaWYgKGJhc2UuY29tbXVuaXR5KSB7IC0lPlxyXG48Yj5UcmFja2VkIGFjdGl2aXR5PC9iPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmZvbGxvd2luZy50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHVzZXI8JT0gcyh1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50KSAlPiBmb2xsb3dlZFxyXG4gIDxiPjwlPSBgJHt1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzcG9uc29yZWRcclxuICA8Yj48JT0gYCR7dXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzdGFycmVkXHJcbiAgPGI+PCU9IGAke3VzZXIud2F0Y2hpbmcudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPiB3YXRjaGVkXHJcbjwlIH0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBscyAtbGggZ2l0aHViL3JlcG9zaXRvcmllczwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+IC0gPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPlxyXG48JSBpZiAocGx1Z2lucy50cmFmZmljKSB7IGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgLSU+XHJcbi0tLS0gIDxiPiAgICAgPC9iPiAgdmlld3MgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgdmlld3NcclxuPCUgfX0gLSU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuc3RhcmdhemVyc31gLnBhZFN0YXJ0KDUpICU+PC9iPiAgc3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3N9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHdhdGNoZXI8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMpICU+XHJcbmRyLXggIDxiPjwlPSBgJHt1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbjwlIGlmIChwbHVnaW5zLmZvbGxvd3VwKSB7IGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7IC0lPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIElTU1VFUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIFBVTExfUkVRVUVTVFMgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+KTwvc3Bhbj5cclxuPCUgfSBlbHNlIHsgLSU+XHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgSVNTVUVTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkfWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJTilIDilIAgY2xvc2VkXHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgUFVMTF9SRVFVRVNUU1xyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBtZXJnZWRcclxuPCUgfX0gLSU+XHJcbjwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgLSU+XHJcbmRyLXggICAgICAgICBMSUNFTlNFXHJcbi1yLS0gICAgICAgICDilJTilIDilIAgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+XHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxpbmVzKSB7IGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbjxzcGFuIGNsYXNzPVwiZGlmZiBlcnJvclwiPkBAIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yLm1lc3NhZ2UgJT4gQEA8L3NwYW4+PCUgfSBlbHNlIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmXCI+QEAgLTwlPSBwbHVnaW5zLmxpbmVzLmRlbGV0ZWQgJT4gKzwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IEBAPC9zcGFuPlxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmdpc3RzKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gbHMgLWxoIGdpdGh1Yi9naXN0czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHBsdWdpbnMuZ2lzdHMudG90YWxDb3VudCAlPiBnaXN0PCU9IHMocGx1Z2lucy5naXN0cy50b3RhbENvdW50KSAlPlxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzfWAucGFkU3RhcnQoNSkgJT48L2I+ICBzdGFyZ2F6ZXI8JT0gcyhwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmdpc3RzLmZvcmtzfWAucGFkU3RhcnQoNSkgJT48L2I+ICBmb3JrPCU9IHMocGx1Z2lucy5naXN0cy5mb3JrcykgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcykgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGxvY2FsZTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUjIC0lPlxyXG48JSB9IGVsc2UgeyBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZX0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7IC0lPlxyXG48Yj48JT0gbmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpLnBhZEVuZCgxMikgJT48L2I+IFs8JT0gXCIjXCIucmVwZWF0KE1hdGguY2VpbCgxMDAqdmFsdWUvNSkpLnBhZEVuZCgyMCkgJT5dIDwlPSAoMTAwKnZhbHVlKS50b0ZpeGVkKDIpLnBhZEVuZCg1KSAlPiVcclxuPCUgfX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBjdXJsIC08JT0gcGx1Z2lucy5wYWdlc3BlZWQuZGV0YWlsZWQgPyBcInZcIiA6IFwiXCIgJT5JIDwlPSB1c2VyLndlYnNpdGVVcmwgJT48L2Rpdj48JSMgLSU+XHJcbjxkaXYgY2xhc3M9XCJzdGRvdXRcIj48JSMgLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvcikgeyAtJT5cclxuPHNwYW4gY2xhc3M9XCJlcnJvclwiPjwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+PC9zcGFuPjwlIH0gZWxzZSB7IC0lPlxyXG48Yj5Vc2VyLUFnZW50PC9iPjogR29vZ2xlIFBhZ2VTcGVlZCBBUElcclxuPGI+TG9jYXRpb248L2I+OiA8JT0gdXNlci53ZWJzaXRlVXJsICU+XHJcbjwlIGZvciAoY29uc3Qge3Njb3JlLCB0aXRsZX0gb2YgcGx1Z2lucy5wYWdlc3BlZWQuc2NvcmVzKSB7IC0lPlxyXG48Yj48JT0gYFgtJHt0aXRsZS5yZXBsYWNlKC8gL2csIFwiLVwiKX1gICU+PC9iPjogPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gTWF0aC5yb3VuZChzY29yZSoxMDApIDogXCItXCIgJT4lXHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5kZXRhaWxlZCkgeyBmb3IgKGNvbnN0IHtuYW1lLCBzY29yZSwgc3VmZml4ID0gXCJcIiwgdGhyZXNob2xkfSBvZiBbXHJcbiAge25hbWU6XCJUaW1lIHRvIGludGVyYWN0aXZlXCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuaW50ZXJhY3RpdmUvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzMuNzg1LCA3LjNdfSxcclxuICB7bmFtZTpcIlNwZWVkIEluZGV4XCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3Muc3BlZWRJbmRleC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy4zODcsIDUuOF19LFxyXG4gIHtuYW1lOlwiVG90YWwgQmxvY2tpbmcgVGltZVwiLCBzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLnRvdGFsQmxvY2tpbmdUaW1lLzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsuMjg3LCAuNl19LFxyXG4gIHtuYW1lOlwiRmlyc3QgQ29udGVudGZ1bCBQYWludFwiLCBzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLmZpcnN0Q29udGVudGZ1bFBhaW50LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsyLjMzNiwgNF19LFxyXG4gIHtuYW1lOlwiTGFyZ2VzdCBDb250ZW50ZnVsIFBhaW50XCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MubGFyZ2VzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi41LCA0XX0sXHJcbiAge25hbWU6XCJDdW11bGF0aXZlIExheW91dCBTaGlmdFwiLCBzY29yZTorcGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5jdW11bGF0aXZlTGF5b3V0U2hpZnQsIHRocmVzaG9sZDpbLjEsIC4yNV19XHJcbl0pIHsgLSU+XHJcbjxiPiZndDsgPCU9IG5hbWUgJT48L2I+OiA8JT0gIU51bWJlci5pc05hTihzY29yZSkgPyBzY29yZSA6IFwiLVwiICU+PCU9IHN1ZmZpeCAlPiA8JSBpZiAoTnVtYmVyLmlzTmFOKHNjb3JlKSkgeyAlPjwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzBdKSB7ICU+KG9rICspPCUgfSBlbHNlIGlmIChzY29yZSA8PSB0aHJlc2hvbGRbMV0pIHsgJT4ob2spPCUgfSBlbHNlIHsgJT4oYmFkKTwlIH0gJT5cclxuPCUgfX19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKGJhc2UubWV0YWRhdGEpIHsgLSU+XHJcblxyXG48Zm9vdGVyPkNvbm5lY3Rpb24gcmVzZXQgYnkgPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+PC9mb290ZXI+PCUjIC0lPlxyXG48JSB9IC0lPjwvcHJlPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9yZWlnbk9iamVjdD5cclxuPC9zdmc+XHJcblxyXG4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogVGl0bGUgYmFyICovXHJcbiAgLmhlYWRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCA4cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjNTA0YjQ1IDAlLCMzYzNiMzcgMTAwJSk7XHJcbiAgfVxyXG5cclxuICAudGl0bGUge1xyXG4gICAgY29sb3I6ICNkNWQwY2U7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICBmb250LXNpemU6IDhweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjN2Q3ODcxIDAlLCAjNTk1OTUzIDEwMCUpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcclxuICB9XHJcblxyXG4gIC5idXR0b24uZXhpdCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2YzNzQ1OCAwJSwgI2RlNGMxMiAxMDAlKTtcclxuICB9XHJcblxyXG4vKiBUZXJtaW5hbCAqL1xyXG4gIHByZSwgLmJhbm5lciwgZm9vdGVyIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBjb2xvcjogI0RERERERDtcclxuICB9XHJcbiAgcHJlIHtcclxuICAgIGJhY2tncm91bmQ6ICM0MjA5MkI7XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIH1cclxuICAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgY29sb3I6ICNBRTlEQTc7XHJcbiAgfVxyXG5cclxuLyogUHJvbXB0ICovXHJcbiAgLnBzMS1wYXRoIHtcclxuICAgIGNvbG9yOiAjN0VEQTI5O1xyXG4gIH1cclxuXHJcbiAgLnBzMS1sb2NhdGlvbiB7XHJcbiAgICBjb2xvcjogIzQ4NzhjMDtcclxuICB9XHJcblxyXG4vKiBEaWZmICovXHJcbiAgLmRpZmYge1xyXG4gICAgY29sb3I6ICMzQTk2REQ7XHJcbiAgfVxyXG5cclxuLyogRXJyb3IgKi9cclxuICAuZXJyb3Ige1xyXG4gICAgY29sb3I6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogQW5pbWF0aW9ucyAqL1xyXG4gIC5zdGRpbiwgZm9vdGVyIHtcclxuICAgIHdpZHRoOiAwJTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZGluLWFuaW1hdGlvbjtcclxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbiAgfVxyXG5cclxuICAuc3Rkb3V0IHtcclxuICAgIG1heC1oZWlnaHQ6IDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBzdGRvdXQtYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3RkaW4tYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgd2lkdGg6IDAlOyB9XHJcbiAgICAxMDAlIHsgd2lkdGg6IDEwMCU7IH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3Rkb3V0LWFuaW1hdGlvbiB7XHJcbiAgICAwJSB7IG1heC1oZWlnaHQ6IDA7IH1cclxuICAgIDEwMCUgeyBtYXgtaGVpZ2h0OiAzNjBweDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiJAZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRCtrQUJJQUFBQUFjYkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBL2lBQUFBQndBQUFBY2lUdjBNVWRFUlVZQUFENjBBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFQMVFBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUErM0FBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCdzFvL1dZMjFoY0FBQUF5QUFBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxhQUFBQUVNQUFBQnNKdUVRaFdad1oyMEFBQVBRQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUHF3QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWdBQUFMM3dBQUZkUWcrSEVybWhsWVdRQUFBR1VBQUFBTmdBQUFEWVhtUnFzYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWZsb2JYUjRBQUFDWEFBQUFNRUFBQURZTDNRZHcyeHZZMkVBQUF1c0FBQUEwZ0FBQU5JdkJCbCtiV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSFJBZ1p1WVcxbEFBQTcvQUFBQWNRQUFBT1RBVnl1cG5CdmMzUUFBRDNBQUFBQTdBQUFBVWxrWDhUeWNISmxjQUFBQ3NRQUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW0xT3V3elJmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NVZi81UDVsQk9nRmh3QUFBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K1QvMDlZWGpBQVJWQUFDd0NwRkFjUUFBRUFBQUJvQUhBQUJRQXZBQUlBQWdBc0FGb0FqUUFBQUtZQkNnQUNBQUY0Mm1OZ1lUbkRPSUdCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobllPVmtnQUZtQmlRUUdCcm95SENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCbi9ReWlBSGphWXpuRE1KVUJDRmpPUUREalM0Yi9ERFlNbXhtTUdDWXpQbVhVWk14bTJNK3dpckVFaU84ekhHUFl3M0NIWVRkUVpES1FkWkxoS2NNNWhnT005eGs3R0dvWlZqR3NaL2dIMU1YRkVNQlFCc1FnbUFURUp4aUt3V3c1QmplR0NDQU53dk1ZcW9BOHJ2L2ZnT3B0R0pZemVqR21NYno0LzRUUmtxR2RRWldoSGdnbkFXMnBaL0FGa3ZzWW5CazIvdjhEWkxlQTVTWUQzVmJLNE1GZ0JOVHRCdFMvaVdFamt6VERPNFpwRE4vKy8vNy9tMEdFWVI4VE84TnVBQkZVUGtrQUFBQjQybU5nWUdCbWdHQVpCa1lHRVBBQjhoakJmQllHQXlETkFZUk1RRHFhb1k1aHcvLy9RSllDUXl5STlmL3gvMGYvTjBKMWdRRWpHd09jeXdqU3c4U0FDb0NTekN5c2JPd2NuRnpjUEx4OC9BS0NRc0lpb21MaUVwSlMwakt5Y3ZJS2lrcktLcXBxNmhxYVd0bzZ1bnI2Qm9aR3hpYW1adVlXbGxiV05yWjJEUFlPams3T0xxNXU3aDZlWHQ0K3ZuNytBWUZCd1NHaFllRVJrVkhSTWJGeDhRa01CRUVpQTAwQkFCVk5INWdBQUhqYXJWZHJXeHZIRlo3VkRZd0JBNUt3bTNYZFVjYWlManVTU2VzNHhGWWNzc3VpT0VwU2dYRzc2elR0TGhMdS9aTDBScS9wL2FMOG1iT2lmZXA4eTAvTGUyWldDampnUG4yZThrSG5uWmwzNWx6bnpFSkNTeElQb3pDV3N2ZEVMTzcycVBMZ1VVUzNYTG9SSjQvbDZHRkVoV2I2MGF5WUZZT0JPbkFiRFJJeGlVQnRqNFVqZ3NSdmthTkpKbzliVk5DcW9Sb3RLbW81UEM3VzZzSVBxQnJJSlBHelFpM3dzMll4b0VLd2Z5UnBYZ0VFNlpCSy9hTnhvVkRBTWRRNHZOcmcyZkZpM2ZHdlNrRGxqNnRPRld1S1JEODZqTWVyVHNFb0xHa3FlbFFQSXRaSHEwR1FFMXc1bFBSeG4wcHJqOFkzbklVZ0hJUlVDYU1HRlp2eDNqc1J5TzRva3RUdlkyb0xiTnBrdEJuSE1yTnNXSFFEVS9sSTBnYXZiekR6NDM0a0VZMVJLbW11SHlXWWtidzJ4K2cybzl1Sm04Ung3Q0phTkI4TVNPeEZKSHBNYm1Eczl1Z2FvMnU5OU1tU0dERGpTVmtjeFBFd2pjbng0amozSUpaRCtLUDh1RVZsTFdGQnFabkNwNW1nSDlHTThtbFcrY2dBdGlRdHFwaHdJeEp5bU0wYytKSVgyVjNYbXMrL1ZFekNBWlhYRzFnTTVFaU9vQ3ZiS0RjUm9kMG82YnZwWGh5cHVCRkwybm9RWWMzbHVPU210R2hHMDRYQUc0dUNUZk1zaHNwWEtCZmxwMVE0ZUV6T0FJYlF6SHFMTG1qSjFpN0NyWkk0a0h3Q2JTVXhVNUp0WSsyY0hsOVlGRUhvcnplbWhYTlJueTZrZVh1SzQ4R0VBSzRuTWh5cGxKTnFnaTFjVGdoSkYwWk9yRVJxVmJwdFZTeWNzNTJ1WTVkd1AzWHQ1S1pGYlJ3NlhwZ1h4UkJhWE5XSTExSEVsM1JXS0lRMFRMZGJ0S1JCbFpJdUJXL3dBUURJRUMzeGFBK2pKWk92WlJ5MFpJSWlFWU1CTk5OeWtNaFJJbWtaWVd2Uml1N3RSMWxwdUIxZnA0VkRkZFNpcXU3dFJyMEhkdEp0WUw1cTVtczZFeXZCd3loYldRbklTWDFhOXZqS29iVDg3QkwvTE9HSG5GWGtvdGpzUnhtSEQvNzZJMlFZYXBmV0d3cmJKdGkxNjd3Rk41bG5ZbmpTaGYxZHpKNU8xamtweklTb0tzUXJJSEZ2N0RpT3lWWmRpMHdVd3YySVZwUXZRMXBFK1Mwb2xCeEtzWWFaQkRiODU4b1ZSeXlMcXZCOW55TlJneUZZeTJxekhuM291YzhqYnF0d3R1NjE2TExPSEpaWEVIaVduOU5aa2VWek9pdXhkSFZXWm5sVlp4V1duOWZaRE10ck9wdGwrUVdkWFdEcGFUVkpCRlVTaEZ6Sk5qbnY4clZwa1Q2eHVEcGRmTTh1dGs0c3JrMFgzN2VMVWd1NjVKM25NUHY2Yitzck8zclN2d2I4azdEcmVmakhVc0UvbHRmaEg4c20vR081QnY5WWZoSCtzYndCLzFoK0NmNnhYSWQvTE50YWRremwzdFJRZXlXUjZINU9FcGpjNGphMnVYZzNOTjMwNkNZdTVndTRFMTE1VGxwVnVxbTR3eitUNGJMM1g1N2tPbHVzaEZ4NjlNSjZWbmJxWVlUdXlGNSs1VVI0enVQYzB2SkZZL21MT00xeXdzL3F4UDA5MHhhZUY2di9FdnkzZlU5dFpyZWNPdnQ2Ry9HQUEyZmJqMXVUYnJib0pkMiszR25SNW4ram9zSUhvTCtNRkluVnBtekxMdmNHaFBiK2FOUlZYVFNUQ0M4ZzJpK2VwazNIcWRjUTRUdG9ZcXQwR2JRUyttclQwTEo1NGRQRndEc2N0WldVblJIT3ZIdWFKdHYyUEtyZ051UnNTUWszbDYzZDZMZ2t5OUk5THEyVm40dDlicmx6Nk43SzdGQTdDVldDcCs5dHdtM1BQaytsSUJrcUt1TjF4WElwU0YzZ2hGdmUwM3RTbUlhSFFPMGd4d29hZHZqcG1ndU1GcHgzaGhKbG0yc0ZseGpKS0tQZ3lwODVGU2V5RVUwMm9vamZ2S1YrcWd1RjBKbkVRbUsydkpiSFFuVVFwbGVtU3pSbjFuZFVsNVZ5RnU5TlE4ak8yRWlUMkkvYXNvT1huYTNQSnlYYmxhZUNLazJNN3AvOGlMRkpQS3ZhODJ3cEx2bFhUMWdTVE5LVjhKZk8weTVQVXJ5Ri90SG1LTzdRNVNEcXUzaGNaU2R1Wnh0T0RmZjJ0Vk9yZTI3LzFLcC81dDVuN1FnMDNmR2VwWEJiMDExdkJOdTR4dURVdVZRa3RFMGIyQkVhbDdrKzEyemtVM3lwK2RaMUxsQ0Y2OVBHemJQbjcraHNEby9PWk12L1dOTGQvMWNWczAvY3h6b0tyZXBFdlRUaTNNNHVHdkFkYnhLVjF6RzY2elZVSHBmY20ya0k3aU1FZFh2dDhWbUNHMTV0MDIzYzhqZk9tZS9oT0tkV3BaZUEzOVQwTXNSYkhNVVE0Wlk3ZUlFbjBYcGJjMEhUVzRCZjFXTWhkZ0Q2QUE2RFhUMTJ6TXdlZ0psNXdKd3V3RDV6R0R4a0RvT3ZNWWZCMS9VeGVtRUFGQUU1QnNYNjJMRnpqNERzM0R2TWN4aDlnM2tHdmNzOGc3N0pQSU8reFRwRGdJUjFNa2haSjRNRDFzbGd3SnpYQVliTVlYRElIQWFQbWNQZzI4YXViYUR2R0xzWWZkZll4ZWg3eGk1RzN6ZDJNZnFCc1l2UkQ0MWRqSDVrN0dMMFk4UzRNMDNnVDh5SXRnRGZzL0Exd1BjNTZHYmtZL1JUdkxVNTUyY1dNdWZuaHVQa25GOWc4eXZUVTM5cFJtYkhrWVc4NDFjV012M1hPQ2NuL01aQ0p2eldRaWI4RHR4NzAvTitiMGFHL29HRlRQK0RoVXovSTNibWhEOVp5SVEvVzhpRXY0RDc2dlM4djVxUm9mL05RcWIvM1VLbS93TTdjOEkvTFdUQ3lFSW1mS2pIRjgwbkxsWGNjYWxRRFBIZkU5cGc3SHMwZTBqRjYvMmp5V1BkK2dUMW9BUDZBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkdGpCb1N6TXphSUdZMncxWUZEaUUySm01SUR3VEpnMDJTVll3ajh0cEQ0OERod1BMQVFabUJtNGduOWRwRDRNREdJTDRPNEVrZzh0R0ZjYU93SWdORGgwUklINkt5MFlORUg4SEJ3TkVnTUVsVW5xak9raG9GMGNEQXlPTFEwZHlDRXdDQkxZYk1TbXhpYkF5ODJudFlQemZ1b0dsZHlNVGc4dG0xaFEyQmhjWEFIMlZMZ2NBQUhqYVkyQWdBSXdna0dVbkF3UHpuUC9mL2hVaFdBenpnSEFLd3hTV3hRd01yQXJNY3hnWS90V3c3UHovaWpXWWVkUC9WLy9TWUhwWnpSZ2ZBL0ZGQU1tRUdZZ0FBQUFBaUFDSUFJZ0FpQURpQVBBQmtBSmlBd3dENmdRZ0JHUUVxZ1VvQlhBRm5nWElCZTRHTEFaMkJzQUhQQWU0Q0JJSWhBanFDVUFKdWdvZUNtQUtwZ3JrQ3lvTGFBdnlESjROQmcxc0RkZ09KZzdBRDB3UHhoQkNFSWdRM0JGMkVjWVNSQkxBRXdvVFloUXFGS3dWUUJXWUZlNFdRaGJDRjBRWHFoZ0FHRHdZZUJqQUdPb1pHQm5lR3B3YkJodkVIQ0ljcGgyRUhnd2VHQjRrSHJnZkNCL09JSElndWlGbUloSWlraU1tSTRRa0VpUm1KTllsVmlXNEpqb213aWIwSjNvbjJpZ29LTllwMkNyd0t6d3JhQ3VvQUFCNDJyVjhCM3djMWJYM3ZWTzNhRmZhMVJaSjI3UmR2YTU2VzNmWjZ1NnliRXR5bDhGTjJJQndFemJHZ0ttMkFadGdJTlFrTkdPRFFYVDRDQ1dVSkE4ZTVGRkNQZ0lFeUV2Z3ZjU0VJbzIrYysvTTdLNktiWDd2L1Q3L3JOblptVHV6OS9UL3VlZk1JQmJkS0gzR05mRTVLQm1sb2lxMEtEcS9QTitmemdrY2J1WXh4d2dNSnd6cVJFWmc0Zjh1RGNhSTRUQ3pWb3RaaE5oRjhNR2lidGhEYlJaTFNncENsaXBMWmFRa0srUnhwNlNtcEpwTmNGZERtVjZ3NXlLYmxiVUlmcTh2VkpZYUtTLzFzcWxldGp4VUZxbElaV0ZiWGxwaXN6dHdQWVpQcTBWa1UyRXIrSDFoUFJiOFhJR0xkZm1HWC9lUkQ3WXNueG5KWkE0RjJIZmZaWHhXY3pwLzU1MTh1dG5xWTk1OWx3MVlROW83NzlTRytCeFA4SWRwUVk4bnlEOFQ5UHpnNVFkKzJQK3R5Y0FKK0JaOGhCV05acjFPT29sYmRIcXpVV1NsZGRJYWdUT1lVbkdMZERJVk1makwwVytaUDNPbmtSRTUwWUxIZFN6RElveWJtNDdiMnhkSDdRZ2gzTXRoakFNdFBORE85Q0tHOFRPdGpxZ1ZEZ0lmTU9wTFBONFpOU2NuSTVUc1RIYllMSERIcEtDZ0lid1FXU1AyKzBKaE5sUmVnODAyRnliVWh1b3dNSUo1MXNJVU02Nk1EQTh1WWl6MlBiaW1adXBVK09OT3AyV00xTm5UMCszTS84bElHMDUzK1c3eHVlaG1kQlNOTXEremIzS25VL3hJTjVxQlVBcUxkT2h6UlA0eHFIYjBLKzU2YmdnMW9UYTBPTHBnVmkyajFYbHRETXN3elNrR1BhczFhaGlFdFdpZEtWbGtzY0F4REF2eVRjSTZYUllsTVp0dGJXNUdxTG10dWEyMUJXNHlaOGEwYUVOMVpWbXBOeEQwVy8wQmI4Q3M4UkR4V29SY0xGTDV3WTVNSHhHdk43NUxQNERnQ25Vbk5TWndiM3kzRkZkNFJlNENvTzNGNk5PRXhFL21jWjVVWng3VEpQMmc3dDFCanY4NitoejUrTFJEUHRpSWVYWHZtRFFRbFg2TXNyM2VjTmg3bW15azUxSk03alJXaHozeHZkaEpYQ0Vma3Y0YTM1TzJuejVOK01laWs2Tjd1UXcrRTgxQzdhZ1QzUk4xOEN5alFSYU1OWXZicXEwY2o2dXdsczhLTVl5V0J5M0pCQzNKMDJNTlJwcE9BVFFDOHdqM0lWN0w4SjFKV0F1bXcycVpQc1N5WXE4T2kyS0FCZFVwZ1QzRWlwM251b3Bjd1BiQ1NMYWpNK3JzNkdoc1JLaWpzNk96c2IyeEhXWTMweDNNOGp1RFdRYU5DOFRod2phN2JGZXljb1ZEWWF2TjdzWldpeEdMVmtYZDRGaGM4VXJJYWJzcEZDN0FaUkdRQnJtYUVhd1dteDN1WkM0dmk0VGdIaVptbjdlN3c1ZWQ3Zk5sKzR5MTErMXVidTljZE4rRjNtRFF1Mk9CZk5pYXBuVnU2ZHd6YzNaSDE4L1hlSU4zcmMzTzhyZi9jMk5lZHQ0Q1B0UGpleWh0ZHI3ZjdmWS82M2RuYkhYOHkraDBiVnl5ZUY4emM4TG44ZmllU1Y5UVNVNSs0M2VuMnBvV0ptTjdpc3UxZHQ2aW5kR2YrenpTZ1JtMW1WbUdKUDNYSTkzenB2cnlqTWs2NmIrSWpIaFVBanArQytoNE12S2lZalFGZGFBVjBXNndaUjR6L0NCaU5ZS0dGUVlSaDVESW9iNGtMQnF3VmlOcSsvU1k1ekVJQXVPc0ZxVFJDTDFJRUxLRjFxbFRTMHA4UG9TbWRreHRuOU5ZTXFVa1dsM3BLL1lWNVdRNTBzMHA4Q1BHa0pHWXNjeE52MDloR0ZkYVlpY2FqQ203UWVGeHdBZ2ozS0RZOVRDaUFQdkhYMkZreHB6RzErNmFNMGY5enp4anowaExUeHUreVVZLzJmVWpKVlBEWWZVL2t6ZzBuSENDRzVxVGNHYlE0YkRaN2NNdjJ1QXp6Y2JXV3hLSGpyeVhPSFJQNGluaU53NEJUemNBVCt0UkkvcDcwL0ZpVU93MFBVYTRFak9vRWJQTUxMK1Y1ZGhDekhOOHMyUHlVeG80MVNsN3ppeFFhZ2FDeHlEY21lVVl0ZytjcXRpckJaWE9hdEZnanVON0JSQ0duMjkxeUQ5VmNzN3hDSWJUWFZWc2ptalJXUzVDc1dzU0pOMEpEaHFobWRPQnlEcC94QitvRG9SMHhIenNjWmNjOHZ1SUZHMTJYRjRCTGt2eGI0Sm9WMTJkcjVBSW5FaTB2Q0pFeFVxc2hvaTFBak9mM213bFZ0RzhvYUlqSnpzSEI3TXlrN0tPRWErMUxGQ3lZVDdaNlM5eUw5cjdVTi9SampYTFZzNDdzdXFkdW9LNVpSZDJTVDl5USt1U3c3dUpNU3dwTEdndGpIUVdTcWNXYjRESUZ2UmMwbjBKK2ZEMkhsbHljOWZxMjZac3Zicno0UHlSM1BPbVJlWVhiY1loSVBvejVuWG1MeEREa2xDNXpQNGtFcmk2R1JLNEVEREt6SkJvaFJlUkE2Z1g5c0NSUkhVd0pnbnBBaXpSN1hpRXFzSE1YNFFLMXU5MkJkZ0tvZkJ1N25TSlZKL2hkR2JnRjRtUWNMYjBTN2FYWDQwOHlITVM3amFIL3VCamNLOHcvTkpKK0x5dzgxR2JCV3RzdVlqNEdHSWhBdWk5bWU2Ukh3R0h3NVJGek9VVnJGR1g0dEtiREE5KzllVkRCcFBlbGFMVFgvTGVsVmYrWVlCZmJUTzcwaTNhZnVucTBWSHArbjZ0SmQxbHRnbXovNEhudnZvcW5uOTZOcG5IZVRDUHU1UjVhREdhVFgweG1VZE9mQjV1SjUySHpXeTFNSUpJQkV3TnRkeHNTbUhvSG9sQ2RtYnFINjY4OHIxTDlQSnNIdnJ5cXdlVjJmQzIwOUlEcjc0cVBmU1AyWUl5STd3WlFmakZXOVU1RVgrRTBYUDRLczRBdGxPRzVrZVRpekRpQ3NQKzlHUVdYRHNETVNJSEJKSktKSUF2QjRqRlpiVUFiRUM1UkM1VzJPTXdoL0Fna2N4bDlDd0hLTUlBZHkxREVYZWdBQUJFQmdVUXdYS0ZtNExJeTB6MWd5YUtpdTlwd0VHaWtUSTl2QXl4bU1QNWZBQWp1eWt0cUJOOG1kSlhMNlhudUROeTB2ZnZUOC9KY09la3Z5ajlaNlpQMEFYVFRIYU1BamcvaHhzcXlwRytHTkI1UGFsbVowZ28rMTI2SytpMkZwdytYV0IxQjEzcHZ5c1RRazV6cXNlckc4QnB2TTZmSmRQK0szUVY1K01Za0VOK05BZU1Ha0VRNHpCQUkzQU9lQzJ4Y29LT2VLWURSbnVRTytEM0IveWl4a0VnaE1sTGJjcnZOVkhqS3pONUtWQW85WnJJOUE5NGNCV3hHT2tWb3YzU0syUWZWM21DSERQeFdKQ09KZlBCVzZYM21iK0JWYVFnZDlRQmlnRmdEbEhsUnpIZEQ0VVlUUnJGTUNJTFAweXdTajBHdmYvQUxMNWpudDdJTE9jYzFoZHhLRFhabUN3NXMwdTRKUHhKcXBYU3lqQ2NqN2tLR1pBbjZreTBxVzV5dGcxKzM0RDBFV3BRTW1FS1BSd1A4eHdSeUd5Wkg1aXJ5SHpKSDUzdng0QS8vNGJ6NE1yMHFFMDFVT1JIcmZSdVNVSDVibU1nNDBNTkRZMk44SWZ6WEw0bnlFMmZrR2xITDB2SE9JSHZSeVpVZmtyUE1ES1FKUkFsaWR3NHAwV3gwcWlPYXVNK2FpVFVENWhRU2xpZHRvaFZCRWNBT3Z0dkVYYWtSL1Ric3lJc2N3ZDg4djF1dTBiNy9ZMHBGdklwbkpkaWtYSG4weEEvVW1oTTlxQzhhRGJCa2pKMEJsOE1VeUZFWmFOV2tqU2tlRkxjYVRZYVYyVjRUTTBUZnBLNmhmRlJrdm44aGI2KzV5Kzk5UG0rdmhjRzJ3YW1UeDlvazdmYzBGSHB5eWVla0w0NmVoVGJubmdDMjQ4ZTN2VDJ3WU52Yjl4SXRwc0lQejVFQ096eWFaaFJVVFRmQ0xBS2RBRTJMSU1CSmJBQWVEbkNpSjRZdjBFL3cvNUFoTmhjWUl3QVRhcWhWVkE3Qk0xbHZ5RWlYVTRWMFBDOXlaaHBOM3J3Z01WaWM2SFJLMVFCczB0K3BzdE9zL25NWHlTNU1vWlpLcU9uQUdSK0RYd3FST2MvNXNNY1MwUmtCQkVGRU95ekhNeU1xTlZtbUo4Y0k3T0kxSmdlTmZFSUpnd0Q3N0ZyOG5HZFVTTjhLMFFGZ1p3eXY1MmFHOEVpZ29pOUNTalJxMG9ad0o3ZkY0T0oxSTB3VHp6Y3Mvbzg2VGcrUVFJYWtEckg1MHJHVHl4dHVtakR4bDV5eUQ3N1YwdTRvWG0zYlZoei93YnAvbDBrY3IxSXFBNmw0R2VYNzJ4Y3RxRnlJemwyS0p4U1ZrTjk1T2hYN0g5VGZORVViU3pHQWk4QUdVd3pFZ0JRQ0J5UXc1Sk1oS0EyRnJnQ2FKZ1hlelZ5S0krckQyd2hkQWNDa1VqQW5xY2xvVnNtU3dWYWluOEhKMGcwaUlCWUNOaHk4a0cvSlZJSjhiMlVlZUdCNWUyenUxYjNQbm5waWxmYjNLYU16QlR6MUZ0YWQrelplK0ZzSXRxSy9nc3ZQSDhyQmNBRzQzWEh1YUdPRzFjdDNCa01IVnl6NGQ2bDA2dHRUb3NyeDFCY3RXM04ydk9Jdkh1V0x1Z05UeU5rYjdCbGFCZFR1emdFT2dnd0RRVlJGaXFQbG1aaEpPQm1FU05lZHBBYUxBaFpMUUQ1R2JZSFpPbG5nY1p3Q0VaRHBoWHhCbnhhalRNWFdVMHErckNXbGlRb1pnMHVpOG13Rkh0VDJabDNrbG5mZVJuMW0zUEo5ckRrODdsMCtGTmJTVWc2RHkvVWNFT3RJL3ZJWFAra0tpbnNlSTNNenozdWtRcjhqZXpUbjZheXVndEYwTXpvTkJGZ05TWnlZbm1CQmJ2aGVKYmJCWU5BZ0h3ZkRCZTdpWmg4QkhIUlBEaWJJV0tLb0JKL0tHQVArUUpVVFBLa1daRE01S0pTak4wblIybmlqMHU5N00yRWlnTERxZ3N1UHI1czNmTzdlbDVzODZRUUNVMDUwdFJ4Y1VQTnBqblR6eTlOOGVYNEdRdVRtYzNZdUx0b1VIaXVjczFqMjdZTnJZOVdXTjIyakZ4RFFmbVViYTF6K3FQK2dNN3R4Ly8wdTJWLzlScjRxeVR1U2NqNjgxQnR0RW9qVTRtQldrNm1pd1d6SWs0aWdTNFh1RmxYbmlzMzZJZkxIS0ZBUUtOSmwya1RJY3Nnd1hjTWRlWkFCUnFYRXJESEliaEszMHFmT0NOSEZtNThaUFdhcHdZMlBGN1pjZ2hQK1U0NnZIVkt3d1hOemYzMWRWdGF1U2REcFI0SE52N3JuZWx6bGordytmejdlMVoxWC9iYkIzSGtUZjNJdFJXOURUTTMxbGV1blQ1alhSV1YxMmRBQ3cveWNxQzVqd0V3WjRoUFNTSUFIbllCSXZkRElHQzdPYURHMXlMYmtTT2FMcDlDZ3hQT2RWTDA2RURwZm11WVYraExpQW5laEJ6U3kzN2hFcVNGMnJBamtNL2ptNldRN0N1WU80a28wbEorL0w5MnV5dk5xR2YvZkpEWXhMc1E4VmowRnVpV0JQYmdBQWhVZzZaSHAxZ0VRQWZFTVlNSU9JYnZFMm5rRU9USXdYR3E2ZWZsT1owSTVkWGtWVWRLbkxuT25JQVBicEVCVHNBKzNnbkkySHp5bklzWkp3L21yVi8yTEoyemJQUDZKN2R1ZlhMOTVxVnp1bnArdWE2K3Q3SnlaVzN0eXNySzN2clpteHNhTnMrV3Q5elFvaU5kSFlOWk9UZXRXSHZQOHVYM3JGMXhVMDdXWUVmWGtVV0g4K2RYbHM0dktwcGZXamsvWCtMTGUrdnJWMVJVcktpdjd5MG51dmI4NkpjY0N6UXJ1bWJDREFjRWN5QUNqZ0Y2ZVQ2bWEwcjRCM3JINmxvZ0VKWjFqV0EvaGhNRll2NFZlYmppek9rbDh3cFJMT201N3h5Z2NsaUgzWEdWazNWc050VTNib2hxbHZUR20zbzhYdWNPeXpvbTZ4dk1sbUlWOWw3QUpRNFM0emtWclFTSmo0YXNBRk1IWm9UWVkzUVlNNnlwRk1EUUdLK3VPZEM0dzR6OTVsYmdqUHJIYkk3RG1wSEx4MEFjbU1NVjB2c1FBTWtjM0NnbkdyYkxVWjJGdU02c2prOElndzl5TzIwV09nTit3Z3pNRTdDZk9va3JFekZnNGt5a1V4UHg0RTYwblhOeHFTaWQ0RUc5aGxoVU04RjBxSk11SE1JSTNPSE1wR0JUV1N6UVlnVzdoN0dzcHBoOXplUzFKV1dQOURCM1pDZlpBQW9QL3l2ZFprdG50VnhxYnByWmE1R2VsWjYxZU0xcHVUcThNeWt6UFQwekNlOGtPdlVyWE0zNTJMbFVGb0J1MVBYSXRTQUVrTVVpdWl6WlRialNwc2dqM1dxbThGU1lBRS9OWndhcnZvUjlkcTRhTXFUTkNSQVdxSHdZK05DbThzR2N6TVJBZDJjY2REdkRLdWdXNGtzbVdxd0dBY3hWQWRYRC83SlFiakIzalBUSTNHQzF6Q0NsV3Rxcm8vekFVL0ZVbVIvU1hzSUhhZlJiOW1YSWZjT1FNVjBjMVdWZ0JodkFCVExLRW00bzV1Y2c0aUorRjNGMzFOZ0NMY1R3dUY1d01YNE9IR0pnM0VBWWc0aHU5U1VPNjR4YXNpRHZ5U3JMaWhUbXcwK0dBbm5aMUM1bDM1T01hVllXS20vQTljd2tjR1BjMHUrN3grYk4yTC9Cd05jMXNBWW0yVFNqZlZuKzZxVzdGeE1ubW1TNCtXbFRlWGxkSGZ4eHA5dXVXYlp3ZTFmKzlVVkZMMXZTUktlM3VyRzRhVW13a3pqVjNWYUhwdXZILzNMNSt1bnFBckVTQnBXTXJ1VU9jdVZvRGxxTXVxS0xNK3lNanRGaFZrZmdGdUlobEEvcXNRWnhqSWJyUTB3UzFyR01yaytMSVdWREFvc0Flb2tpMzBrQkdCSjVzYU9wQ2FHbXhVMkw1cmJERFdlSFMwTEJnbEFnWk5DNDQwdGlvWENDSHlxeEsyRWRMTXhxc1ZFY1JtTzc0cC9LNldsMU9ZQmNaQTZVVXNkc2s1MVh5TS9tLzJYWHpNRjVVNWJaSThzYmlqc0tGaDVjc0RESEk2UW1wMXJzWEl1WTVXOWEyUFBJd0JVZjdWenkwUFlaKzhvMHJOUEFwNVhmM0hINzU5dHZ4N1lIYXhkVUJkekZpeUpaQWE3OHdIZDNiRDI1Y21yRHRHbmxxMmQyL1diL3FnYTlLS1licFg5enBPY1VIaHJZODl6YUd5WHA5c0ZuMWxoTVRMNVo1OUNsT2ZmKzg3NFhjYzJqMHRMT0E3TUtDN3F1bWxwUUttTUdTSlc0RnlITzVxTmlWQmt0UTFyd08xcDJMUkpGVGJjT2F6UytGb0ZqV0xMMEFtQUMrNGtUS2lxRTBia0V5NWtDRWIrZU1NMW14K05RWE5ncmpqc2lSMXV3UnBIMXNzd3ZpcE53YngwRmRiZVI3ZjY1a21QZUFQMStnbXdyY2ROVE5CUFpGSHdLWC9Fa1JGL2ZjRWcxMGIvL1BaYU9IQ0xiSzBiK3pMamt0ZTUyb0djbTBPTUdWUzVFZGRGcUFZdHlaQkl4SjRJckFVOEM2STVnQTBGSmMrVk1xVEEvSnlzYzlFSytoSnplUUsxV05ZRllFRmJwTUtsMHNDb2NoNlFmZHZ4ZTV2dTc1ODJJcnQreTVJRkxSbDRqazcva0VrckM2YzkrZThHRlc3ZjlGbXUzNy90UkFoVGFma052ODdhZzcrWk5mVWZteHFtUWhKN0ZTNWNQYjFqZis1YnNneTRFRERRRFltd0ptaGFORm1DQWN6UXFJSlloRUlmdkZRRm15RWxTZkIvU2VXTFkyUnhCckNXb09CVDJoNEpCRFlIY2tPUEppeEpVZFZYVU1GWjFsWVMxUkY1NjUxSjh4SExyZGkwNy83NWxpKzg4ZitXampTYklrYzJlWlI5c3ZmWEwzWHYrZXZQeWd5VytiRzdJN1pkT0VkT2R2bmxhL3p2WFh2dDJmM1dGTWV5MnUyMVRwcEpNOW5Gc3Z5VmFVNjNpVkNLanJTQ2pOT0I4YmpSTGxvbEFaY0tOa1luZjYwaUhVVFp2b0Z5a1VFRk9xeWVUaEl3UWN1RW1mOSs3OSsvSHBHekMrYzJiS2YvZisvMlRGeDN2NlRsK0VhalJkZEkvVHAyUy9ubGRuTzAvZnRiMzVxRkRiNjZYZVU3bTFneHpxMEVIbTQ3cndOdVdJNEFtRE5lZmhQVmFEZGIzZzd2UjZnVXRXQWlDSkVIVEo4OGVrY21UWlhnMTlYWkVLOG1GSWljTTBpdTFlczNnVDd5ME0ycURuUnBVWFFGYUZmU2JVb09RTlpVWjVCcVZ5VElKL1NWeEordzFLZW13SXV6WUVTNEhZT3p3SHNLUU5XdklsbDBQQjBDNkkxOWl4cE9WNVNGL2tzVGsrckx4UXlEUDl4SU56Qk9VaUhpZmxLN3BJcC9TaTJUYkphMzdERVFxODJ3aDhLd2NYU3J6ckJBc0VVSlBQOGlhNE4rMW9MV2N3SExna0RIV2RldXhUdWRySVZtaTJBMSt4aS9LNjk2a1RFblh2WC9TSlJDMmdFbmxLRkpVQUk0b2xiSXBLYzRpbWZEU2NhendtOGI1cEJnSHVTcUZGMUtNRlY5UW9DQ1I3V1UwKzJTdklEbUE5QjJoL1NWcFlBd25kb3gxU0xJdXJWRHFsclZvVG5SV0pjWWlRWFlRc0RnQ2FEaDFiVi9EMEJVQnlEcGord3lqTHUvRDRWcFVFd29HSWo0d1l4MzF0Wk9hY1VWWlhCbG9XbTJhMUtBNWF0QlRkaTNhZEg5UDEzMGJIOTd4TDJvaEQ1SnRabUR1dTl0dS9YcnYvcStQTEwraFdESHJQeEw2YXBlWHlXWmQ5ZWNZWGpwZGJDa3NQb3J0ajUvQ2FiZlVWQlJUNDVaMVlRZm93alRpczVBZWNWalByVTNTYVNDRWFMdU5Ca2FyOWJXSVBFdldVc0hrNmNvT1hEY05UYW1ycWE2cUxDOHBWT0tLTjVBY0w4cE9FSnYzaklKVXFmZkdSZHNOdERVMjB0RHlNdGt1bFl4TDQ5L2tNN2lhbnNIL3ZWVCtKaWZld3h0VWN2RVJhZDFZRVZNbVhJTXZvT0xHNkZXZ213TzZQU2c3R3VJQUtQTGRaQW5MMXdLVVlvSmFGVW85eUVWWFFaVDFZcnBVN0MwWnV6S243ckJ2dzF4R0ViWlFUWnhLWjJZWlJSUzYzalIraGpIRncrZ0MwTHZMWVM1QnNqcGpKMnVEelNScUFISWVUSndaSWtrcEtYK1FvQTZEL2Y1QTJCK2ZHRkVocGI1Z1VzeUlBcC9ZOUxnK21NaHJiN3pVUHhSTklWbzEvK0RlQzZYNzZld2VsV2MzVXZMd294MHpVek94aTlyS2QwMWJCNWpqY2ZzZ3VuSTN6SE1lc1k4NW1JT1pNR1Q5REFPT3cxeWZYdEVhUTVLaU5Rekp5QVNzTENuQlpSMHRUYk5uVFlzQ1F3TlprY3JpZ0RHdU1sakdhK1MvTFZieklqWGtBaHlteUMwWm4xT0hZb2lGVWxvbkxkT2s3RzMxRkRvNWIwcTQxRWtJbmJ0NlZyclBIcktuelM3SWFYVzc2VktWdERnaDlLeVExZXFVckdUVGxmV2M4L0NxckZWTnVnV3VSdkwxUU1taXV2bGVYOER0Y2tudlRLSms4L0NEWTNsRzRsTUFsWUNiaGJRRU1QNGdvSHNrZEVNT0lzZ1JOTDd1QnVOOEVEejhwb0FDQVJUamlQdkZDZFF6SDhCVS94dC9MUzk4eUJIalRrb1prNk1xSFo1TkJYckJSSjhIWG9CN0NPWVhKZlpmNjdHekhLTG9pMVNGQmpXWXlGT3ZPNE1YaUtMNnFuSWl6QUN4a0tTNE1GUEhTVW92cjkyRTllTlJaNnhCZ3piandDZnR3aWpKS0kvYit5YmJHNGJjUUNEWDhLWjFVL3hvZVhveCtYZzd6U244OFNOOTBkc1RyS3QwNUdWQ01sTTkvT1pZRWFXWVJtNW5lcjJFOXBtSzNaV2gzbE81QmxLc1VESTJCK2d1a1JENGQxbEVESU43aVdNQTAzTkVQUlBQVWxUZ2I1R05zek5xb3NXelVvSURJZ0YvUUFrRE1STU5uekd3VVViZ1V0TVlSYTRLaHNvOEk5OXoxOFRSOTdRV3N2MlR6YUhCNzNNRGlibzZySE5rVnJDM0Q3ODZsbXFqY2ZnNDh5a1ZPNE1XQTkxYi96L1VTVmptNjcxN3Y3NzFWcnJkZUY4WEJDeDV5dzNkSW4zNStPUFNsMGRKQUNMbzhyQWNuL3JmdnZiYWQvcFZqTGtZWk9GRk9hZ3NXZ0xRQzJFQnJSVko0UjN3LzBUUG5KTVY4TUZvRC9IT0lhMWFYakRpM0RQN2lWZ0N3Rlk4dTNMbHMvdisrZzExMUg5SXNCai9YOTg5Y1BEUVZlOXlkeTEvWU11V1h5NlQzaHZMeDVHYmRtMjVnSUNleGRJM2xJZFZhRFlhaXFhV1lDVGFBQklXWXNpK21uV1l3VTFOeHdPZ1NtRmlTU3dtV1M1QkVleHFrcVFKdlZxNjVnN1FTQzIxT1pxT2gyQjRFTEFtd2lKa3dHZStUQU02bUlONGxyOTg0bURFOGd6Yk4yWndaMmZVWGwyTlVQWHM2c2FwVVpod1pYRXczKzhQNmFtRFVRUWFGdVhpcnBKZjJCSnlZK3ArNDFYZXM0cmVtWFpwUjF0bVZlNk1jRlpMcmxhWDdFa3kyYXJYbG1iVUJEV1JHVm5uYnhNMVhuK0c5dEZiSG9heG0rN3Q2cnAzazd6bGhtNlEvbm5paEhUNkJtWi9wa2Fibk9FUjBpd3VXMFpLYmtBak1ucGRNVnZnU3pmcTM2akcvdCtld0VrM0hGNy82cFZYdnRyWFI3YnJZemtLaVUyMWFEcHFpTmFDazlLQUg5UEFHUTNUcDZWQVZFZHJCRHpMcUIxMU5EdWVQcldoRHE2cUpucVVIYW5YeHlzNnREdkpsaGlPUW1vOE9xdVNaY282SnB4Y2R2alN5cUFueitGTVZzSlBZKzI4c0MzVEhjeHd6Nis1Z2pwcWFXTkMzdm5EVjY5ajR4VTcvcDI3YS82UjFmMjN1V3pGMlIwMWRVNGFkQnFhOHhxbnpnN2s1RXI3eG1ua0Y2LzA5TW0rL0RhdzYyemFkOWNSYloyRnNlREZERS9pTXhaNmdZMVU0OEJ4eGZaSlZZRUY3NVhkZ2tpSm5PNVN4MDU3N2txSzhuTkRBWS9MSDlUU1ZUT2xxNHNHWTlLZElnZnIrUEtMVmFtZ1J4SnJYeks3MUFZdkJkV3lmd0JVR3pJV1BiUnA0MEJPMkwrOGJlSHE0bFZiVmp4MythcjdHK1NPcnR6azdKTjdCNjlzcUEwdGFaMjdxYkM5YytVald4YmZYUzFqM00vOTdveXU3alVMc3lzdFpudXl5VzdKUHJSejNiSEZzMmUyRW8rUDgvenVuSzA3Tm5ZMXRHV1lyQ2twVG10Zys2cTFSenFtVjlmSitTeEdsNEN1ekFWZHlVYVJhTEdBbFE0ZXNsNmlGcExpUHAwRzVXd1U5cHRvMnFKVWttTGRBcE1nM1RnYnZGd1p6VktrMC85SkhjMUJzdjFQNmJRY3Fka2xORDNaVHlkZGxnZ01wZGZwc1FFMVJxdHhLcC8yTjlEbEhiWWJoRWdMSnFTZkxBWUs4MUV1b01JSS9NVktYaW9zTEpzQWwrUjFzYkd4cHY2RFYxLzlvRjRPS0JRVzdUbHdZTS9teEFBenN2SDNiNzMxZSthZ090MlJQVWN2di93b3MwdkIxVHFZSzFtZkNwTzV1a21OdjVsWFpneHBPWjJ4T3Rrd0N2cm9YQk9namdJVThMaTVhdVBRN2g2WVM0dDAxRkNhbDF1YUpOM2FUT2QySWRsZWcwdHcyU3I2dlZVSmhpbCt0OGZIZnFQT2RmaHFkcXM4ejlGdllaN3YwdnBpNytPNUFRT0xCUkw4MCtYZ3o4SjhPUkxmSWY5cWdjUXUyTUtvd2Q4TmtZblVUd2ZIalZJR3lMRS9na29DUkF4all6L3RiNklOeHFUTGFSeUZEcXgwSk1jSUhTSXc1eW8rTzJ1dVplZ3A2N3h3TnJlUFloNU04ZXJCVlU4YnF6UDl3bFByZG93Si95a0IxeFJteHNoVFU5eitCTG8vWnBvTExaYVJCMW12alB3d0tvRzUzMEx6dm1pMHJqbzdUZVNJcUhSYUVZalNkQ2ZwR1hrcFVZWjgvTmpFcjZvaUFvS2ovdzF4MEtjZEQrN1k4UWUwZUFMUlk1SytLZExyZUVsMUhPVnNHSlYrbkVlLzBxN2NlcnhNZW5WR25BV2RILzJ4bG40clVtQjZxK1NKNVg4YnBCZ2d4My9HeDJQZy9DVmNHOHU3YW9FSDF3TVBTbEJGTkFJc1lBa0xSQ0NhNUZ3ZzEwblN3UkpVcEpLZUlObUowZUFzbEJLRU8xMjYreFBxRXU2bDdjYlN2VE5sdGFWOWVqOE1UMGtrYStUMzBxMHhVbFl4aFRGUzF1S2pjUngvSDlEaVYzUElTUm8wMUJ3eTNxQ2g1SkRXTXI5VnpTRkZQQ0hUaUZWYlpZL0dqcmgwSTMyTVJlbklZSHd1STNOSTBpbEYxeitSR2FjYmg5dXhnZVliRDVPWjJxenNBOTlUaDFhbjlCdk5rVTZ5YS9pbHlFNXliNUlSa2Y1dlR1N3Y1K0w5L1REV2pteUJzZ2dwQVhNeC9wcGliQ1dwT0R1YjZBZE4yekJWR21rSXozcUc5Rmg3Z29JM1NGdXVmN2lJOGdpdmdkL2RRMzgzS3hva3Y4Y0F0Rm9iYjgyS3RWRFprUldTTUtYeWJKbzAxVjhkLzlsWjBwRDg4L3hTVC9EN2orWGY1SzhrVzFrMlgrQnYyVThoTHJ0UTFpUENxdWxSbHhFU0NFanlnV3pFN0NOVnN3dGhuQXM1dytrY2hOcEhCTUF3a0FiUU9wVWc1MDFLMTZMU1o4SHNjZXR3UkhEYXpQWlVsL0MzdndtdVZMdlo1aFJ3Uk9kMmNrUG0xSkZIZEhxVFF4UU5TZmhQVW1hU1FSUWRKa2pqMmxMTk1KL1JUNlVkM0JlakhES2dURG9mNjNnV0JBT01NZzl1YkYzdUk3MCs2Y2VjSk5oeTd3NW41T1Jra0QvSzJ5ck95T2J5KzVFSnBkTjdHcEhhM3BWbVVXK0dsTHBqTUZaeFkzUFRiR2xHczNTVnplMzFwWnJ4VW01amFyb2pYZmVCSWNNVnpqYU15dXZQKzBuOFkwK2dBbFNOUG0wNjdnSW5uZXpFR3JhaUhOQmRDc3lhYlhhTU9TTENFYVVMT0J2eEhPa1hHVVFzb0dMRWF2b1E2ZDhsaURDM1JTUjA5ekl5RkhUSWR5NDk5d1ZBcnAvdXFrMFpqbWp4MmE1Q3NZc0E4S3ZYRUZoZVdJaFFZWFZoVlZrcDBKYnZEd1FEa1loZVhmcFBoSjJ4bmdKZ0dpM3FDYkZ1TUtYNzEwYVdGQWtRRHowOTFVL1VNVHBsbVhIdWMrZXQvdG5pVDA3ZWZzT0dnYVk3WjV1TVhwcytPUCtGM3VmM3JlNTY1WTdwdDdheEozNXhqOVRmUnR6SWxJYkcxaG1YZGQxMmMrbUMzcTZjb0xZb0xjV2ZtbGNvY1cwTFozZmNzOEZtbDJVUkJGbTA4Sm5nT3NyUUo2ZFNJRFVSMWF6Wmo5UmNMZEJDT3FCcGFwUGJJdEQwVWcyZ2NqTmcvcG1IeXM1V3VRcXBGNUVHN1Z3WWp6aGdkTjlQdUNTYVBkbG9GQnNNVVYwZDJ3bWlzSVZDQ0lYS1FwR0NQT0lWd2ZwRDRPRGxGdEV4SFVPS1JNWW03ZU5iYlBBMDE2VlA3M2hwOCthWGRxeTR0OEhsdTUydVBkRlYvR2R3K29HMnRnT2RuWVBUcGcxMjhwbUFBSXZ2MmZiQjRjTWZiRnM4dDEzMjdGd0s5ZnRTKzVGMTY0NjBMeml5Y3VXUkJjUXVkd1B2WFdBSFo2MHY1U2JVbDNMLzEvV2xjY0Q5WDNRNU9ycTdzK2ZJd281RFBVc2ZuR1UxdTlLVE05dmY3Ny91ZzRzditlQ2F6aHNqdm16MmhMb1FYYmM4c3ZDV250NmpDNnZLVTdMVDdYNTc3ZlJkSDE1MTFZZTdwdFRXRWpUT1VKb094ZlRKbWN5Z00rb1RlUktGSlJJZmE3U1Q2VlBpMEc1cWVVS2l1U2JxRTh0emEzL0NKWW8ralJ1TllvTkJuK0tXUFVHZmZLRmd4Sy9xVTZ5TlAxU0h4OVNzejZoUDdHY3Uya2tIZXRSdzd3cFpzWjYrbEs1WWZDKzVxQ1oxVXEwaSt2VGpBekpDYUorN1dOYXJlL0FCV1o5a1RaSzFpdkQrSVBCK0d1aFRKa0J4eUpuVjFVbkV3MGtlMGI1QXJwZXN3T1MyMEo0RlJKL044a0pVODRhOW9ZQWZMdlNFL1Q1SWlqSkl6bXdua2VLTUttVEVvcGVRZ3Q3Y3FBSGtrQ2ZlZGVQU1I2ZWJqSDZiTnEvbDM5YmYvTzdtUy81d1lQdlAwNW1WMXB2M3NDZTIvWGEvejNuajBjS3d0c3hxeXJLRmk3YStmOU4xSHc3Y3NIUFRCUU5LRHl1M2hBK2lVblRSWTREUnRHcWJjYmI2UUlZR015SnA3MlFod0dOdHJ3NXJ0UUVRS2RFVEpELzJFUTJyWStFazNGS0wrK0lYSlk2a2oyekFMNVVvRFpGK201N0FYclVIUGd6KzJJWGprT1FNSzN2VWdPNjlySWcxQnZTRzNSdC9nNWRRdUhLdi9FbWFXMTIrbCtuaTVzdEQ5L0hCVW5PUlBybUtMLzZQalZSNEw2bXdqNkg0ZGZzOVE3SS8zaTJ0NFE2QkRBdFJBOVpGOVVFR0NFaWp5L0t5RWVVaVVGbWU1UVoxR3RKbzNLc1ZHTm9zSllycXN5bEtiMkUrdFlzQXJhQW1YcUlHTWZuNmJuUzJxNGxWUmRTcmtZaDRWdVQ3em55WGhHc2hnSTYvTExhR1JiVnY0alhFek94RlJRZ1ZOUlRWVjViVFZ1T0FQUkFva3lPb1hWbE9WWExkU1ZwejY5U25hQ1pwWExzaDdyWlhQNysvNTZVRllZMDVyTmUzUHRCMjFkVTdYcEF0c0MzQjhOZ1RNZTg5L05aRjl5L3hlb3pobExRS3pwbTV0LysxV3pmOTd1cXJmN2ZwY05zMVhWM1h0TTI1cHFmbm1qbEVoOEY5Y1B2Qjk5V2dEVVNIT1ZXSEEwaWowWGJMR3F1MkgrYU9YMzkzUkgxRWJUVklTN0hHNUlOa3phMUJWZkpDZENRUTFDczFWNlZUZEVMaUVwR2ZQanJqK2pUdWRVMjVmMlhYNVkxejQ0blowcm50Q3c0dFhoby9NSmZ1bjZUUnpkaTd0dTN3U3NrWlMySCt2WFBkaWdmV1M1K29CK1JvaDBaSHFVM1A1dWVsK05CYWhGSVl0SWFEeWNQeFo2VTE3SDU2ZkRWOTBuUU5lcEhpNm1rSy94clF0cWkyTGkvWnlHRlI1V0VRMUZQb0JxOHNCd1JOTi9BMDJLTFhjUXhwVStzbXo3L1FxcitmdENOcEJMN3ZMS1BrMm5VRHFxK3RqaEFIQUlsOWhGUTdBbVBUWGRGNjVrVjlxMm5pa2tZcHR6N0dzY1lmVDgyT045TnMya3UyNzROWDJUa3JuaGpXU08vajl1cFlaei9PdWVPcXNUejBCSWUvd08yeC9IQkVrdk1lOUFqd3FRSDQ1RUN6Wk9iWXdaTnozZVJabjBBTEV3dDRCRFZaNFNBcDViTnJFNC9MandNNVVEcWhYWDRjeUhyR0tpaHpwd3ZUQkhiNEcvblpHT2xyK3JrdU1UakZ4RTd5a1dHWTMrZmd3OXJSS2VwRFRqVk9aY0JOTkR2b2pnYXJXTjZqSVE5TGFIdHBRU3JZWWtnU2VZNWhVTGRBbG5UbE5YVGlnWExvTUYwdmFVTEliWkd2NlVhVFh4RU5rNFZnZFN5MXU4bEhnck5KZzhtMm83YW0yVE9uTjlRU2d3cVMvMFpWRVNnc0hHYy9reDJiVEQxYzhvUG85bkxGS0xuWGdHTTMrbHo1SllYdGhmUVJwT3VWTHhHcUpaOVNLNk1tQ0tOeUw1NDVmWTI1ODVxYVpSWDFpbm93N1RObUxQclpTdW01U2I5Q0ZMbGEzbHU1dkh0cDUyTTFBNHRIUHBGMWhmaWtHMEFXTmVodXlzM0hLc2thUXJPRGZJb3hTVGhKaDdTbVY2ZGxpTDJNNnpoVHhCQWlZK1RBU3hJbkdDOWIxL2pSNE83aTQxRE1DTWNONjFSZFdYVkU5V1hVbGYxUGZKakNiN2JrSEY2TUF2YVRQdGZVUjlhd0o4N3V4RlIrWHJ6bWZEa3VYd2JZcWhINE9LSEdsbnV1R3R2Wm45aGx2djV3NTg0UHI3eVNibnNQdGJjZjZwVzM3SWtkSHgwNDhORU9lWHQ0d2RFVks0NHVrTGMwYjRPY3Z3WG1rNDJxMEdPblFscEc1RlNjRFlrT1F4NVYxWktVSVJnclNtWEgxNzdDc2VoZVNNY21SSE1GSlozeHNtamVtRUIranVFa3BPZmtJSlJUbFZOWlVnU1R6U0xTOXNtMUtwVXg0WE1KZG54dEtsMEJ6QS9FeS8xckV2RDB5b1NFRElDbmpKbWxiZU45SytEcHcyTXpNaGwvN2VEdWkvSFZRK0JYSWw4bmdWelo4ZXBDbUUzazY5bXgxcmpMeHZIMUhNTW44dFZIQXRta1VHazhjMzhTU0ZvVForMERhdXA3Qm56MFkyeFpHaDlRTXQvRFl6TVQ0b2ZJTTB0emdhOUY2TUtvRGxSRXlDT0xaUXBudlNpaFpxUFVzNEpqaWpZT0FMNkpkUjM2SEZkdUN4M2ZqY2FQN295Q0hjSlBGY3EreGFhVm44aU93M3NqamdQOFNaV09LV1UvbjU2bHRRYVREY1dWUzA1dHd4MFUxTk8xK1dPN3lmWU5uNnZvaWx1YTJCTlphU0Z6V3BYR3NmTjMyMTRjN3o1K3MvaXlScG4raytBL01vRCtabExMYTV5a2xwZWJVTXZMUFVzdHJ4azF6WnhlV3Z3L3FlWEZYOUp3dG1MZWIraUxHWEx2M3RXN0lUdkx1MmhHNzBWbDdaMWREMTl5L3QxMXNkY3pCSDV4OWRZZGVkbitycG5MZDVYUjF6VDAvcnhhWGlnZ2IyV1lPMjFHZldhV1FaOGs2bE5UWFJ1WExOay9wN1l1L2xxR25zWHpaL3J5alBwa1VXZXp5aTlucUk3a2svVURqTFlSUDhzTm9YeTY3ZzFrWTVZWkZPaXpiU3g5dGsxcDBFdFlCY2xIZVFGL21Ed0VyRmJ6NGc4QjJ5WTAySmJGQkUwV252RS9mUGhuVk5kWHQ2MllkbmlHMGVSTE0zaGJuNS8zcTJPdms4T3ZLMjE0dEM5SU90eS92anhmVjVDUm1ta3BibmprT0I2Z1dwK24xaUViWWU0WHM3ZENabm50WThrMHpNcnFuVUZXc2poUzRlTzRZQXMvYnIyRHVJdkF4Qkh5TWdRL1pzM0NOMlpZd21LRi9FUzBzZ3laUXBQYllobk94SGd5eVNyRkdEeXJkTXJIanJHL2lhMVJRTHhVRTRSZitsdzByRjVMdm56RzN1b0pqaFFSSnJpREEydk9oNUNLUDVVVmYrUXZOS0JpZDZ3K1JkNnZBYnc1VXgweCtMK3RJKzZFQ1RWSXp4Z3Jpb3ZLa3FYbjYrUHRYNFBZaEMyTDVMNUNscFplUnV6a1ZTSE1sN0dhNTFiWllOVTZJc3l6SEZWSEsvSkRSbHBJbkxSR0dDc2l5bjJ3L2dETU9UU3hRS2l1OWs5V0lxU3JST05LaEdtLzFvVkR1Y1ZKUjMrV1ZKb2JDbWxmTU5PWmg4aDIrL1gzaVNGUGcvSGV3NnZwUWJOS1RzRGw4ZUVUVXF2UDR3b2trUFVrL3AwMUkwdktabWJHYW1RellmNlhBMzFucVJNRy81ZDFRdjA1NjRUMmluRjF3dmZ3bEZKcWhiOGcyNTV2dm02THQ0YVY0Qm5TKzdQaVpjTG1kLzY5UXE2bnlkUkxyMGdQeGlJUUkwbXgvUVc0UXQzLy9QT1lIa3FycVI0V2tGNkJvSVUyaVFtS1dGVzdJdDFob0kzNVZMUUZLTTlIQVdwaUNSNGJHZnE4WEVVOVUzRU9uYXlYMWs3WjhiTk4vbEJaejVidUdkTEJoa1RGek1DR3prVEZISDV5MzVGWkhBNFdUbUg1OHIwSG1MZGlvbnlMS1luSjhBUk1OZ05vQ0tJYjVINXZ2MXdnN0k4LzUwM0xnOEV4ejNuTHoyOEc0a1BIbEJLRDUzNG1mT0s0VHZtaDhFbktqaE1mQ1IvN2tPYy9YTWtqdCtIUGxMS2pqWlFkVjBwVlN0bnhEY0lNbDJsaytRTTBaQkFPdUpPWnUyNGszLzVENGNFajBrbjJqL3hTU0NEV1JYWGxrT1FhNkxQZmNqN3NpRDN5VFJaQW1kVjBCWjNNbnJ6SUkrb2xyNVJBSEkvNjRzTkE1T1RCTXVKRk1kTVJ5MDJLQzNPek05MFphUUV4OW9RYllBY1B0Z21pbFVUWFpDeVhhbXhLVFRYU2dPVm53dVUza3NGK0lhYTc3QXNnNWZVRHhSekxiOXE5YXd2VzRMM1VoYjcyTWFObkxyK2U3QjY0RFBQTVI2L3pTMG1oc1hyN3FzYUxqMFYwd2VzMjJ2UURodlRkVzhuUlJ4LzFtN2M3azdac0lWOTJiYlhvNXJnTlEyVGhFRE1PNlJqekNOK1BES2pncDcyZklmNGlDR3RDaXd0em5VOE84bnkvMi8vOWc0VGp3ancxdnYxZE9zazVLTTlYUjNWNWNEOHJoZ0FkNHprTVljbExwK1FISjVINlJwNGNUdVU1cmQ3RWh3RmU2MFR5bTg1WXd2TmttZWZsa1VCMklGdVVWeVhHY1JqMlBUakc3RVFPazJJWk1MOUFOVDc4M1VjTWp5ODdRSFB0eTRISkg5TW5ncTdkQzZ6ZnNtdjNKcDdsaWdmV2swUDgwcUVoZzN1T3pySjFGMkhybGkxSnp1MW0vNk9Qa2k5YmQ2Y2JCdlMyamRjRmRaRmpGemV1Mmw0dFY0RXh1Z2sveUpVekg0UHVOOVA2NkJRRHNEY1RsSWxnT3A0ODd6Y0lKc1NBVGc2U1J5dFFKMkVBcVNnU0JoQ1NFWDE5U1JBRmZJR3dqM1o5SzNWaStqVEJHTWd5cG1PUEZBanhoNnVqMVkzaEJUTlRiRFpycGxoNFJXdjFxcW1WYzBJSkI1aVBjN0o4bWZOVFRXbE9vNzY1S3lmTDY0MTlJWG5PdDh5VmJFanBHYTJnRk9SeHBBTEZBdUFpZlllSTZWVHlXZ1oxVEpMVzBzbWVJN1ZkY21sVDA2WE56WFFibmhhTy9lZUdZb2RodXoveEZMQ0VHLzF4MU1mOUhuVFpoUXBSSytwQW0rajhWbm1BdysyWTAwN0ZnbzV0dG1vWlpnNTVDOHcrWURhL0QzRmFuWmJURFpJbkRwRVdvN1ZJeTRuYVRzQ2dyRTZEQlZFbjlDR3RWbHlCUkswNHQ2MnRxS2l0bzYyanFMV29aVTZqM3g5S1M4L3orNHJKMGcrbGl6aXRzZ2dneEhpYnBOeEZRVGFCTVMvb0lvSXlLeTlTVUo5N29ScFlvYnlMMEZUcVQyVVprOFVxVGN2SitkVTF4aVI3c3NIK285YVFiTG5UYW1HYWpjUHJSYTNkYWpTeU41SFBqUmFMcFN2RDdYWklMMXZTQlEydVMvWllYZmxkYi9BZk1TK2xsMFh3RzNORXB6WFpvdC9ObTAwanYwNTMxRnRTTlNPLzVad1dzMW5MRkhQT0VXZWEwNWwrRk81aU9lck5URTdWNDRGVXM4TWlYWTExMHJlZ2lNRGJMTzUxaGJmTDBDamxiTElISkQ4ZGN5SWpjMVZHclRWeDVtcmduRjdrOU9SUktwMU92em1CeVVqa3RHSWYwZ21DYmhIUzZZUWVKT2lFZGdYVzFwN2hGcUpldCt2Yzk0aE9UUlN2cUJFNXpTRFM2RVdOZnRkUHZna3AzUlVWRlMwcld0cEpFdGJzY2xuU2h2K3hwQ0drMFVzcWdzbzdUb1N4THptaGppcFpEb0EvV2Vvck1ySWxmMVlHdGhYbFRxMFB6SFNCQW1TWWluZlhiZG85ZGVZcjJKRGhubHo0bThjSmYvZ1dxM1ZuZm0ybS9jdXM2ZG5GVmFia2hUYXIxWFpKbXQ0YjJMb2l1cjdxbmlsV0s5Z1hzbEQ3dWdDY2JRczZIMjFDMzFFdHlDakFBZzhPZ0pzQ1NWY0tCTTVOV0d0Y0RZd1d3TU9uZ2pSYjFSZXJhTEQ2WmhXdFVXZlU2Z1pKaHdZdmlIdzhvSUlETVRLb3o0U04yaVJqWnpMV0diQStTYWNuQjR4SksxQ1NNV211SXpvLzlxWVdEWUFORFFFYjVMYTdKcjJ0NWlmZXRqTWFhQVhjdG5GRDYvbXQ1NjNzWGI2MGM5RzhqbGt6Nit0SWJBa0VTaU1CZTQ0WmtGek1nZEhuUzRVenZPaGw4dmU4RUVHakNlL3FNeWRrV1pQNEFyWTBGUy9kVkx1OG91Nkt5K3AyRktlS1JvZW96ZW5KYjVyYk5pY3ZZRFo3WnpiT21US3Rrc3ErNk9JYVZrY1ZKSzRveHZ3dXl5VGVZZlFQUEg5QlNWZjFxdExVZWZVcnR6Z2RPcHNoTmN6YTBpdEtLdklqYWE2aXN1S1N0RElyL0Z1YW9YVzVSdjdzTkk5Ukcra1ljUStUZUExcEdkYkpjWi9XYXdCdlpoTE1yTWNNZlJSZjBRQzE4QkNNTFlQbTAzZnFaQ0szUDJBUHFzV0Z5UmdjYjc1YTd6cjJxM25QdDNvTmFUNlRjY2JoYVN2YUpCa1dTd1FKRG04Ni9raERzU1V6TmFOQWwxKyt2cCtOeXJrYUkzSnR6Sy81ZVFCbHdsU0RsZmRuZFNhOGt5NEI2TWpoZGN6VDhzZXlzaW9xNEkrZjV3cnNDYmpvUnFsRnp3WjZIU2hNRjdOVkNoTkxLT2V1bjhTZTUzbGdYUDFraEg3TWp5ZlA4UlVqdU92L0EyQStoZng0Mm8yU1VXdmJNQlNGajl5MFl3OE5nMjB2ZlprZTAwR3RwRjJoTkt3UUFuMVpvYzFvQzN0TU0yRzdKSkVqeVErRi9xbjFSNHl4dC8yZ3dZNVVyVXZET21aajY3dlg5eHhkU3dMd0FsOGhjSDk5eHZmRUFwdmlRK0lNejBTVmVBMXZ4SmZFTGJ3V1B4T3ZZek5UaVRmd0tpc1N0N0dWM1ZFbFdzOFpmWXNPZ1FXMmhFcWNvUzArSlY3RGtWZ2tidUd0K0pGNG5UNHZFMitnazcxUDNNYTc3QlpER05TNGdVV0ZBaVU4SkhiUlJRLzdwSE5tTk1kUTFjUWF6YmZFV2VSWi9CYlk0Sm84aWVvQkt6MTFobm5IdUJOZFBXZHhPSVRpWFZBYktocGNJYWZLMEVsaHdkZ3dyem5PbDZJeGxVR3JWcnI0MDhNMlhUQTA5WTJ0aXRMTDNXNXZYNTZYV2c1Tll5dHQ1Wm10WnBwdmM2MG5YZzRhWHhyclpLZjB2bmFIU2hXVkw1dXJmR0ptYXRFWXI1dDVITVoxN1ZTeWlBN2JZWlluRndLUFpnTStNbGV3ZHNvZnNBeDEwVXpIaEQwMkc1YjNBSDJNY01GblFIcnExM1pXZmZieWJ1K2dQN29ZRGZyTHZlMDgrUDlycTFhOEhxL1BnOE5sVkRxcUREZENMbldNUzIxZFplWXlkb0gvNy9ydnJmNCtGL2Vud3ZFa0JJT2FPY2NwUXdOVGp1RWNGZngraW1PY1VNUmQ0NmE1aWExcTczSlhUWE5qQzNWNmZJSmYzMkt6S0hqYVpZclhUc0pnQUViUFgwWVJuQXpGTFc1UnNjVlpWMXdvdUFVbnFLVXhZQzhJTlFWanZOVm44N1dNcG9reDBYTnp2cHg4U0RoOGZ2RDJMY0ZmVEtkS3VIRGp3WXVNandiOEJHaWtpV1phYUtXTklDSENSR2luZ3lpZGRORk5ENzMwMGM4QU1RWVpZcGdSUmhsam5BbmlURExGTkFsbVVGQkpNc3NjOHl5d3lCSWF5Nnl3eWhycmJMREpGdHZza0dLWFBkSmsyT2VBUTQ0NDVvUlR6c2lTNDV3TExybmltaHZ5RkxqbGpudDBpaGk4QzBtNGhGdDRoRmZJSWF0YTBtc1ZvMmJxWmV2WlRwUnQ0eUg0MitvdmxwTWlkZE11L1R2S2o1WFhKMVBUZkk1VlJma1o2aGNOUnpWUUFBRUFBZi8vQUE5NDJtTmdaR0JnNEFGaUpTQm1ZbUFHd2tRR1JvWWtoaFFnTDVVaEhjaG1BY3N3QUFBbjFBSTFlTnBqWUdSZ1lPQmlDR0ZJWW1CMmNmTUpZUkJKTDByTlpsRElTU3pKWTlCaFlBSEtNdnovendCU2hjd1dZMkIyZGd4UllCRHo5ZmNCa2tIK3ZrQVNMc3VZVnBTWXpNQUJZb0V4QzFndkkxQ0VFV2dtRTlBK0JTREp4c0RIa016QXpDREVJQXF5SFVpTGc5V213TmxNRENJTVlnQzF0aE1aZU5wallHUmdZT0Jpc0dHd1kyQjJjZk1KWVJCSkwwck5acERMU1N6Slk5QmdZQUhLTXZ6L0R5U3dzWUFBQUZzYUMyc0FBQUFBQUFFQUFBQUExYVFuQ0FBQUFBRFpuSVBoQUFBQUFObjdTVWM9JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRUNvQUJJQUFBQUFkUFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFCQWpBQUFBQndBQUFBY2lUdjBIa2RFUlVZQUFEKzRBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFRRmdBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUEvNEFBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCeUFwSzJZMjFoY0FBQUF4Z0FBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxZQUFBQUQ0QUFBQnNKN0VSVm1ad1oyMEFBQVBJQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUDdBQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWRBQUFNSWtBQUZxNGlLNXhPR2hsWVdRQUFBR1VBQUFBTmdBQUFEWVhtaHBRYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWU5b2JYUjRBQUFDWEFBQUFMb0FBQURZS3VjWlBteHZZMkVBQUF1Z0FBQUEwZ0FBQU5KWWVrSk9iV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSEhBaEZ1WVcxbEFBQTlBQUFBQWNJQUFBTnYreDlxZ25CdmMzUUFBRDdFQUFBQTdBQUFBVWxrZmNUeWNISmxjQUFBQ3J3QUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW13aWJpUWhmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NUVC8ydjMvQlBJRnBBQUJBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K3QvN2RZUGpFQVJWQUFDd0NvR2djR0FBRUFBQUJvQUc0QUJRQXhBQUlBQWdBc0FGb0FqUUFBQUp3QkZRQUNBQUY0Mm1OZ1lUbkR0SWVCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobjRPQmtnQUZtQmlRUUdCcm95TENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCMGx3eXlBSGphSlk2aGl3SnhFSVcvQVpQWkpnZ0tna1VGbXlCY0Uvd3pWb05CT0pOZ0V4R0w4V0J0NXhvVVlTMmFCRkZrMndXRFdjd0hCeWJEMXA5UGJ4N3ZHOTdBREpNNDQ2TktuUDl0UDJ5cHNKQTdkakt6SWtkQzgrU0lnREY3WnV6b3MySE9nVFZUaTZ5bkhQTEZoYXlMcWRPbTlsWkRWMEphWW8yaytLSCtzaytUaW92ZG5Rd0ZKcGF6RXBHN1dvcFAwZ3p3R0xFU3kySkFsVy8zRUx2a05Sdm9OMCszQ3RxdXY3WloyaCsvRExtNXV4UVRLSytlTjhrOU1RQUFlTnBqWUdCZ1pvQmdHUVpHQmhEd0FmSVl3WHdXQmdNZ3pRR0VURUE2bXFHT1ljUC8vMENXQWtNc2lQWC84ZjlIL3pkQ2RZRUJJeHNEbk1zSTBzUEVnQXFBa3N3c3JHenNISnhjM0R5OGZQd0Nna0xDSXFKaTRoS1NVdEl5c25MeUNvcEt5aXFxYXVvYW1scmFPcnA2K2dhR1JzWW1wbWJtRnBaVzFqYTJkZ3oyRG81T3ppNnVidTRlbmw3ZVByNSsvZ0dCUWNFaG9XSGhFWkZSMFRHeGNmRUpEQVJCSWdOTkFRQVZUUitZQUFCNDJxMVhhMXNieHhXZTFRMk1BUU9Tc0p0MTNWSEdvaTQ3a2tuck9NUldITExMb2poS1VvRnh1K3MwN1M0Uzd2MlM5RWF2NmYyaS9KbXpvbjNxZk10UHkzdG1WZ280NEQ1OW52SkI1NTJaZCtaYzU4eENRa3NTRDZNd2xyTDNSQ3p1OXFqeTRGRkV0MXk2RVNlUDVlaGhSSVZtK3RHc21CV0RnVHB3R3cwU01ZbEFiWStGSTRMRWI1R2pTU2FQVzFUUXFxRWFMU3BxT1R3dTF1ckNENmdheUNUeHMwSXQ4TE5tTWFCQ3NIOGthVjRCQk9tUVN2MmpjYUZRd0RIVU9MemE0Tm54WXQzeHIwcEE1WStyVGhWcmlrUS9Pb3pIcTA3QktDeHBLbnBVRHlMV1I2dEJrQk5jT1pUMGNaOUthNC9HTjV5RklCeUVWQW1qQmhXYjhkNDdFY2p1S0pMVTcyTnFDMnphWkxRWnh6S3piRmgwQTFQNVNOSUdyMjh3OCtOK0pCR05VU3Bwcmg4bG1KRzhOc2ZvTnFQYmladkVjZXdpV2pRZkRFanNSU1I2VEc1ZzdQYm9HcU5ydmZUSmtoZ3c0MGxaSE1UeE1JM0o4ZUk0OXlDV1EvaWovTGhGWlMxaFFhbVp3cWVab0IvUmpQSnBWdm5JQUxZa0xhcVljQ01TY3BqTkhQaVNGOWxkMTVyUHYxUk13Z0dWMXh0WURPUklqcUFyMnlnM0VhSGRLT203NlY0Y3FiZ1JTOXA2RUdITjViamtwclJvUnRPRndCdUxnazN6TEliS1Z5Z1g1YWRVT0hoTXpnQ0cwTXg2aXk1b3lkWXV3cTJTT0pCOEFtMGxNVk9TYldQdG5CNWZXQlJCNks4M3BvVnpVWjh1cEhsN2l1UEJoQUN1SnpJY3FaU1Rhb0l0WEU0SVNSZEdUcXhFYWxXNmJWVXNuTE9kcm1PWGNEOTE3ZVNtUlcwY09sNllGOFVRV2x6VmlOZFJ4SmQwVmlpRU5FeTNXN1NrUVpXU0xnVnY4QUVBeUJBdDhXZ1BveVdUcjJVY3RHU0NJaEdEQVRUVGNwRElVU0pwR1dGcjBZcnU3VWRaYWJnZFg2ZUZRM1hVb3FydTdVYTlCM2JTYldDK2F1WnJPaE1yd2NNb1cxa0p5RWw5V3ZiNHlxRzAvT3dTL3l6aGg1eFY1S0xZN0VjWmh3LysraU5rR0dxWDFoc0syeWJZdGV1OEJUZVpaMko0MG9YOVhjeWVUdFk1S2N5RXFDckVLeUJ4Yit3NGpzbFdYWXRNRk1MOWlGYVVMME5hUlBrdEtKUWNTckdHbVFRMi9PZktGVWNzaTZyd2ZaOGpVWU1oV010cXN4NTk2TG5QSTI2cmNMYnV0ZWl5emh5V1Z4QjRscC9UV1pIbGN6b3JzWFIxVm1aNVZXY1ZscC9YMlF6TGF6cWJaZmtGblYxZzZXazFTUVJWRW9SY3lUWTU3L0sxYVpFK3NiZzZYWHpQTHJaT0xLNU5GOSszaTFJTHV1U2Q1ekQ3K20vckt6dDYwcjhHL0pPdzYzbjR4MUxCUDViWDRSL0xKdnhqdVFiL1dINFIvckc4QWY5WWZnbitzVnlIZnl6YlduWk01ZDdVVUhzbGtlaCtUaEtZM09JMnRybDROelRkOU9nbUx1WUx1Qk5kZVU1YVZicXB1TU0vaytHeTkxK2U1RHBicklSY2V2VENlbFoyNm1HRTdzaGVmdVZFZU03ajNOTHlSV1A1aXpqTmNzTFA2c1Q5UGRNV25oZXIveEw4dDMxUGJXYTNuRHI3ZWh2eGdBTm4yNDliazI2MjZDWGR2dHhwMGVaL282TENCNkMvakJTSjFhWnN5eTczQm9UMi9talVWVjAwa3dndklOb3ZucVpOeDZuWEVPRTdhR0tyZEJtMEV2cHEwOUN5ZWVIVHhjQTdITFdWbEowUnpyeDdtaWJiOWp5cTREYmtiRWtKTjVldDNlaTRKTXZTUFM2dGxaK0xmVzY1YytqZXl1eFFPd2xWZ3FmdmJjSnR6ejVQcFNBWktpcmpkY1Z5S1VoZDRJUmIzdE43VXBpR2gwRHRJTWNLR25iNDZab0xqQmFjZDRZU1padHJCWmNZeVNpajRNcWZPUlVuc2hGTk5xS0kzN3lsZnFvTGhkQ1p4RUppdHJ5V3gwSjFFS1pYcGtzMFo5WjNWSmVWY2hidlRVUEl6dGhJazlpUDJyS0RsNTJ0enljbDI1V25naXBOak82Zi9JaXhTVHlyMnZOc0tTNzVWMDlZRWt6U2xmQ1h6dE11VDFLOGhmN1I1aWp1ME9VZzZydDRYR1VuYm1jYlRnMzM5clZUcTN0dS85U3FmK2JlWiswSU5OM3hucVZ3VzlOZGJ3VGJ1TWJnMUxsVUpMUk5HOWdSR3BlNVB0ZHM1Rk44cWZuV2RTNVFoZXZUeHMyejUrL29iQTZQem1UTC8xalMzZjlYRmJOUDNNYzZDcTNxUkwwMDR0ek9MaHJ3SFc4U2xkY3h1dXMxVkI2WDNKdHBDTzRqQkhWNzdmRlpnaHRlYmROdDNQSTN6cG52NFRpblZxV1hnTi9VOURMRVd4ekZFT0dXTzNpQko5RjZXM05CMDF1QVg5VmpJWFlBK2dBT2cxMDlkc3pNSG9DWmVjQ2NMc0ErY3hnOFpBNkRyekdId2RmMU1YcGhBQlFCT1FiRit0aXhjNCtBN053N3pITVlmWU41QnIzTFBJTyt5VHlEdnNVNlE0Q0VkVEpJV1NlREE5YkpZTUNjMXdHR3pHRnd5QndHajVuRDROdkdybTJnN3hpN0dIM1gyTVhvZThZdVJ0ODNkakg2Z2JHTDBRK05YWXgrWk94aTlHUEV1RE5ONEUvTWlMWUEzN1B3TmNEM09laG01R1AwVTd5MU9lZG5GakxuNTRiajVKeGZZUE1yMDFOL2FVWm14NUdGdk9OWEZqTDkxemduSi96R1FpYjgxa0ltL0E3Y2U5UHpmbTlHaHY2QmhVei9nNFZNL3lOMjVvUS9XY2lFUDF2SWhMK0ErK3IwdkwrYWthSC96VUttLzkxQ3B2OERPM1BDUHkxa3dzaENKbnlveHhmTkp5NVYzSEdwVUF6eDN4UGFZT3g3Tkh0SXhldjlvOGxqM2ZvRTlhQUQrZ0FBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZbmJZd2FFc3pNMmlCbU5zTldCUTRoTmladVNBOEV5WU5Oa2xXTUkvTGFRK1BBNGNEeXdFR1pnWnVJSi9YYVErREF4aUMrRHVCSklQTFJoWEdqc0NJRFE0ZEVTQitpc3RHRFJCL0J3Y0RSSURCSlZKNm96cElhQmRIQXdNamkwTkhjZ2hNQWdTMkd6RXBzWW13TXZOcDdXRDgzN3FCcFhjakU0UExadFlVTmdZWEZ3QjlsUzRIQUFCNDJtTmdJQUNNSUpCbEp3TUQ4eHdHaG44MUNCWWpEeU1QdzJPR3h5eUxHUmhZRldDeS8xK3hCak52K3YvcVh4cE1MNnNaNDJNZ3ZnZ0ExbEVWTGdBQUFBQUFpQUNJQUlnQWlBRGNBT29Ca0FKRUF1b0RuZ1BhQkRBRWhnVUlCVndGakFXOEJlSUdKZ1pxQnJ3SFBBZXlDQllJZ0Fqb0NVUUpzZ29ZQ2xvS29ncmlDekFMY0F2NERKd05FZzJVRGZvT1lnOHNEOGdRUkJEWUVTZ1JnaEl5RXFRVE5oUENGQVlVZkJWRUZlb1dlaGJXRnp3WG5CZ2NHTFFaS2htYUdkWWFFaHBhR29vYXVCdUVIRHdjcGgxV0hiUWVQQjdlSDNRZmdCK01JQ0FnZUNFY0lhNGg5aUtVSXpJajNDUmlKTUFsUUNXZ0poNG1zaWNnSjVRb0ppaGNLTzRwWkNtc0tvSXJraXljTE9ndEZDMWNBQUI0MnExOENYd2IxYlgzdmJOb3QyeHRsaGZKc21aR2ttVlo4aTdGdXhKbnRTMW50K1BFaWVQc0Rsa2dJYXdobUlha0pRbVVRS0VwQkdoSmdLOUFBNFNHa0JBZWExdmFRdmVtZlpRQzc5SFNYN3E5OXlqd0NzU1Q3OXc3TTFwc2gvQys3MEdzR2MzY0dkMnozSFArWjVsQkxMcEwvaVBYelZlaWZPUkFUYWcvdVNnZUZZczVIWWQ3ZU13eE9vYlRqWnIwakk2RmY3c01HQ09Hdzh4NkkyWVJZdnRodzZJaDJFTnpuYzZDQW9TY1RjNHBEWFVWUVY5WmdhUEFZYmZCWGZNYXpUcDNCQlc2V0tkTzlBdkJSa2REdk43UE92eHNQTmpZa0hDdzhCbXZyeXQwbCtKMkRGdVhVODg2NEZNbkNpRXoxb2xjek10NmhmTS9Gc2lHYll3eVkrWE1uUko3OWl3anVPekYvSU1QOHNWMmw4Q2NQY3RLcnFEeHdRZU5RYjdTRi9pME0rRHpCZmpuQTc1UC9meTFuMzc1WTFzZXA4UDM0RU9zM21vM20rU25jY3BrdGx2MXJMeEJYcWZqOG13T25KS2ZkaUFHdjNiaFk1YmpQa0lXVklKNnVwOTB6MXVTZENPRThCQ0hNWlpTUEpETURDT0dFWm5lMHFRTERnTDVHSTFrSHg5STJ2UHlFTW9yeVN0MjJ1RkdKa2xuSUN6UXM0UW9OaGh2d1V5aEZ4TVNnMjBZcUdmKzA4azA4U3RXOEUyTTAvMitmODZjQlF2Z2ovdW9xR1JzYTNNemM3Q2s2UHhpcjNCVzhOSVBtTTJGQytncDVnSE96MzFVSUNLVC9BRkNCU3d5WVNzaS96R283c0tmdVh1NFUyZ2g2a2RMay8xenB6TkdVNkNFWVJtbXg1YXZaN0dPWXhnV3hHakJKbE5GeW1wZ0VESU9GZVNaV2FNeFFDa01zNzJMRmlHMHFIOVJmOTlpdU0yQ1ZQZnNXZE9TYlMzK1lFQjBpVUYvMEc3d1JWQVpkam10T0lMMTlYWHBYU3NHcWhvYk9yQ1l0U3ZFY0dORE8yN0JpYXhkVmR6NXVENXJGMGJvdWUwbGVYa2xSWWZiYml5aU82ZVNYS1FzT2djbmZxL3RyRkZPUE5CNms3SnpwazA1MGZpMnRyTktYdDc2K3piMmNYdE5kWFdON1p5eStiakFWbDZpWTMrbGJXM2txUDJjc3ZtcmN2QkgybGFPbnpzSG1uMzB3bTR1eHBlakdTaUZGcUZyays2VWsyYzVqQmIyVEhGeFBGNlVxQWh5RE0rQ3FwU0RxcFRwUUI4d2ovQUk0bUdoc0R3emdsaFdQMnpBZXIzRWdzWklzSWRZL2NERWNXUUlPd3puMlBrRFNWaEw4SXZUUFlFS0VmNk1CaStvanhjWHVwVzFvdWhPS0JoeUZib1Z4dXRkcWpiQnNZeGUxYm5oaWhnT0JRbkhFK1JhUnVkeWtvT29zWUZjem53OVdGdFYyNUdNUjJvYm5ja1YxNlhtTGUxN2VFY3drUWcyMURZbmsvSHEycmJDbHZWVFJ5TDdsajJ3TnBpNHBWWnlTVGhjNlFuejVSN3hCWHVwaWFqa0x3V3ZhN3IzRG11NS82cmhaVi9wNWI0cmVqemk2N1l5QXpuNWpyL00wKzM5bHFtc3FPZG8zK2hNNW9qb2tYc3J2T1VPTTMvYjJHOW4rRjBXM1RlQVZqNnRzL2xJUk5Xb0EzV2pUY21SUXN6eDVkaGdaSHBnWmZLWTRVY1JhOUFaV04wbzRoRFNjMmpFZ3ZWNTJHalFHMGZNbU9meHNBbFdhVVVLR1F5NllhVFRoWFc5eVdSTmpTUWhsT3hPZHMyY1h0TlIwejRsTGxWTHNjb0tUNG05QUg3T0dyU1MxYW53VVZQUGVvNllKR0tNTU9FbTRXQUNjOEM4d3ZxNmVHTkRVQncvM29vejUvQnR1N3E2dEgvTXR4MVdzYmlxOFB5ZGJwdFZMSXE2MmMxanMrcnJKUW4rbU95QmtucVFPOVdWZFhTanV5VHFjUlNlL3hlWHU2U20xT1ptcDdVcHc2UjZ1U0I3NEhQYVlWai9sd0V2cndkZWRxSWVkRERwc21DRWU5cGNZS0M2Z3d6SE5tQ2U0MVRUVmdGYXlJQlJINFdyV0k1aFJ4REcrbUVqcUdKRnlvQTVqaC9XQVZ0RkhqUzM3bEpEaHhDTXBMc2E3OEVRSXRRMUcrWXhUWXlMd1dZcFpDS2FERHFidG41QlVTQmM5ZUY0Z2hpRnRCM1I2ZDBab3lKVUV5a1FUc2NUVkplcEhnTzdFeUhtMzQ4VnVwcVQ3YkhaczZiTW5OSndvdFNwTDNLOXBWaUZaYVZseTFMSzdtTVY1Vk52ZW1Iay9yNmxTeGNQUHI3akZmKzBSRy9ISzl5cGxSYXY2M3VDMXlPdWsyYTMxQ3lQUHorMXpWbFlVRlZaV1dWTEpWZll5RTZCdi9PNi9udlhETjNaZXMzTzFZZVhuQi9yRERkTmIvc3hjQU8vd0R6QU9zQlhXRkhiQ1NNd0dhdGN0VkNId1JDSGdZQnpkb1o0Q2R4UERxQmgyRU93d2swd3hvb3NFa3VVVDg5U1d4a2l6ckFGc3c3OUhMNHlGcXZrNStES1Q3bVA2dVJ5dnlqNjhidWNJVWp1akxIOENQc0F2eDc1MERUbEI4MXd1RElGWjBLNHQxU3hSR2FrL0JpcWhFUEVuc0RYQVhMMU1Qdytuajh3Y01MbExHZklqMnVhcm1OY1RqdmRJNU1KeFREVDJHQ1BKMWliMVYzcmxPeXZ2Zjc2YTNiSldldTJXdmYvNmZiYi83U2ZYeC93eGNPbGxodms1OCtlbForL3dWSWFqdnNDaHJsL3g3MXZ2SUY3L3o2WHpqVUtjLzF4N2x3eGhya2lGRUtadVNyendwV0l6cFZ3YXdCbG1EVnd3dXVwb0hNdHRMdWNqRTZmWHBOeGUyTURRL2VJQzNFemkrak1yQk5tekJmOFhUNyt4aHZ5OGIvUE5haXp4cDFueitKT2JkWmtCdWg1dkp2TGgzWFRnaFlsODZjd0RPSWF3MTRibUJYRWdHUmRNRk1IRVNYZUM5Q0lxMGlCMzBjUk1tTVg3SEdZUTNpVWlQaG1lcFlEN1FjUUFQZHFyZzVXaDNTR0VnS0N3TVVsNGlyRGRmbVlXbTlLVGJYaU9Ra3A4UTRjSXJwT1NmSlI2dzJHKzRFT3J2cnBja0ZJV0EzTjFUKzczK1ZPQkVQbGpkYUZDNjJONWFGZ3d1MjYvMmZWelFaclFoREtuNjdtT3BxNFUyM1Z0dnpYTnptcklxWE82QlRlY1lzajZvNkhQU0hocFplRWtDY2NkMGZoRUQ4bDZpeU5WRGszdlo1dnEyNGpQSGdVN2VNRWpnSHBSSk9Wc1BnUnd3K0F1Mk14WmhCZVQ2d0JnVGs4TTU5S01CaVVwS0NrTjVSU0EycnpxMHRXOU5zMDQyanpheWJTYjZNcjk2NGFHODVUVnFYOEQ4WDF5aDhxMzdFRi9EVEhrRE1mS2g1Yi9vZDZKazhaaVMzd25lclZzUHdtVzRCWElSc3FTNWFhNk9LamV0T2YwWnRRa0RFVVVhNVQ1RVhoSmpFeWpHelgvODNaRjR6Z05WeXA2eDk0bFQwL1AzL3NUeldlWWlQSGxEbGNWQmNleFdjNWdUa0o5L2NsUGRrTGVJaWNKYm9ONkRiT1pybU9ES0hzWjNUU1l6cGw4c3luekVtRkhJVUlPditYQUdlYThUYVVoNHFUaFpwbEFOL1hDNTk1eUJLZ2Q4NUZpYy8zOXZiM3d4L2U1aFZrNGx4bENnWXhla0EreEVYNXE4R1pkVDlqQXJXbGhxaVVHQ0p5NDZ6RkpxbkhFTjZqSGt1YTBsK3ZHbENzRW5HSnlxOXI3bzg0djNnOSs0dGwzTmc2ZTdKekdjZmNZMC95VjFjSlp1TW54eUprbzFzUUFiZXdCL3pPTE9yRFMxRlZNa3lRSkI3bUZJOE0weUlFaGxFdkNSUUtTZ3RLQ3AzMHAzU1pkUTAvUlcxT2pqZGxQbm56eWl2ZnZQTk8rcmxoOCtZTjVJODdkWjk4N3J2ZmxjOGRQb3pkMy8wdWR0LzMzdmRlZlBIVlYxOTg4WHZBajlNSWNWWGNHUlJBTmNtb0hlQVY2QVo4c0F3Ry9NQldwSGlPRUwweXplOEFrc0ppTUU3V3FEUk9tQzNZbHJZMjhVU0FyRjJYclo3akZRRkxpb0EvL3JuZDZoRHRUb2NUUCt6eGVxVy92cUY0RHNXUk1BOWViWkpDVlY2WHgvejNndkx5OC9PcHpPNkhPWUt2UjdWbzB3a0pjeXdSV1FHSVIwS3dEd0J6bEdyejVUQmZ4UWRYRUNreUs3WElJNUExREt6UHJzbkhEU1JKU0ZDTGFxU3FSdEd0TFZPblRvLzlXVWpTcjdwV0NNQUl3NFUwbUtRbWlQbmRxYUZscStYL3dDV3g5bVJ6bVhqK1V5RGFaTVhmV2RneHI2ZS9qeHlNRER6Yng1MWFkblRMMmtlSDVFOEdSWTlYK0VEd0FROHFLdkx3ZmZOV05jeFlWSG1BSFAxYjJGMWJpeWo5SjBGWENvSCtadFNkbkIzRk9vREJnQ3A2RU96d09nN0lZa21JUW5BZUM5d0JtTXdyS0RwSGxlQ3pHVFZKVWtPRFZCaFdVRExvTENWUnNhWEUySUtSVlZRSmdBU1JJcUNNK0NSMHNrVy91M1hoY3ZrUDN6OFl0QW1WQnN2VWZWTTNidXBidEo2ZzJaNkIva1VMdW5zSnJiVnpIMXZJblhyaW9jZTZnbDhlZXU2RmxDTmFHbDNFKzRTNVhiUG5STnZiWTlObVRwL3Bua3VJZlM3cUtKZG9QSFlOeUxvTGFJMmlHaFJQMXRkZ3BNTTllb3g0eGFnYXNFNVhrWUl3Z0dGWGdoeEZGdWlxanNIb0tuOHc3ZytLUm9PSEVHYkxBQ0pYZmQwRVBXMVVkb2tVNjNHOWc2MnBmbHpSenNkdlU3WmpQMUcyajhvTFlNZUJ6NWJPcXBmdisxMEJkeXBXTmZhdW9yRVBaU3Z1UTdDWldzUjBDdUxZWGtBeUdEMUpaWFlFOFBuTVpLY2VBRGttOG1KNUhRdnJpb093YUJjTTRrRUxSNEJzL1JBUmw1QkNIRWNENHpCRHhGV05vb0lrdWdPQ3BJa0w5RThmVitqSnVIVVN1dFJyWWlLSGllVUd3M29HaENIUHRLNWN1Zk9KcFovOWZ1aTVYa1ZXOSt3ZXZIelp3aFdyS2l1U2pZeWY4UXJNU3U1SXJMMDkrazVnN1ltcmZ2alQ2a3BYaElncHRYTHgvRUdwb0V4a2dtS1pFaXQvRTJpS2M2Y0JuMFJSTXRrR0NKYzFrVkFEdkFsUXlDbTBzTEMwaU9ISW9xVzhIS0h5YUhsVlJSQXVMUXNHQ2cyR1lxQkh3VStNbnZodUxVUUlVbmR1bHdLSTJEVk5HMFgyTDE2ZUNULzdYM3VjOGIzOVc0K3Qydjc2Nks2WHA0YWp6K0V0MkNCdlgxb1g3Vy91MnpDOG1EdmRNTVhtNldlTlBiZHZhMjBhZW5UTDVVK3RYcmV5N2RqYVgrTGF4MHhqU3lwbXgySzlzWUh1VkQ5WlYyZUFuaWtnb3pLMDRJUVZnQXV4S3lhd0swV3dDd0IrR3pnSGRnaldHaXVrbERWVW1peFdUcUhSQ2VjR0tKUXRReDdSWGNFVCtpaGV3U28rSk1ybVY2VFdhQ05aSGM1V2ttZVVoMHkxZ0tpalRUcDhqWHdIV1RJK2dUblBIUUhOcW5XZmw5eHV2U2xhWnNsbkwzdVJMQkxjUndYQm9zZGczbjVZSTZYZ2x1clI5T1JVcHc1UUJqSGNCaEFEdzQvb3FUZlJLZDZFNHpRVFVGSGg4U0JVVVY5UkY2dnloRHhCb1J4dVVWSmwxQnl6VHA4ZHFjVVRrOFJyVEZaY3g3ejc3S3ErMU5CbFcxKzcrZWJYdG01Y21lcGI5ZXgxc3hhUmZNeWlXWDJEZzMza2p6dTE5TjdsZ3plSTRtMlhiZmxXWDkrM3RteTZWUlIyRFM2L2QrbWJxWTZPbnA2T2pwUWNXdExWMWRmWDFiVUVkT3p1QytmQUg1MENSbFlSSFhOZ2hqTVRqdmVBZFdNd3h3QnRQSi9XTVJVS0FHMCtIMEsrS2w4a0FPRW04Z1lLUTZxT0FVVUZzTTZVdGRMT0pDYkdvY1NTeDdESS9KSW9sSHhRdnE2RTZOb3p2OW1ZbjlhMXhhQmF6VlRKdUZOVW5lVFQ4dUY4ck9wYTkyMDdORjE3aDZpV29tUXdXNHBiMkljQm8xQWZ6Mm5JSlVEc01qdE1mRDRZTUN2NEhXdXB0Y1Rsb0dDRytuZzFKNkg0SENiM1c3NEtiYlEvWmtFbTN6VjJOQ2YzQlhQWUFkaFBvblB3b2Nwa3FFang4Q3o0ZUdadFprSVk3STNQQ3lpRHpJQ2ZNQU9xeXJtNFVKdkY0em40TUhzdS96a1JLc0thdXdhbHVHWnVLbkFFc0tpUjRLbWU4ZkZXV1RuRm9scXNaY1RwT0F1cnpwZjlmcDVUY3BWSVl5ZVpPVktKUzNMbU9jOS9XT3h5RmJNV2JxcFUyZUFUSFBKYjhsc093ZGRRS1pud0hYa1Y0VEM0MXp0QXZ4NUYvOFVKN0dGQXBDSUtKNE1nQThLSzFlbTBaUUQxMmdGMTJrVzd2N1NJNGxiZHBMalZmbWtrV3pUdU8zczRHOW5LOGZFNEY5MEJ2Rm1rOGFZZ2c5T3o0cnV5a0liVGRWbnBGaU5PaDNXWTZ3QStuUC9RcVhDSW1UTjJVdVVRYTJFT1VUN0lXMHdLajdDRUpaVkg4aGJnemM5QVg5K0hHRjFDZGVpNnBBVjBCVnZBWjRHeXFzRjZNRzM5d0I4amZoY3hnblFwU2lteUxMbGhNRFlpUjFKMzR3YkNHRVEwYnlSNzJFRFNHUWlBOHRVRmFxc3E0VWRGS1ZLaHJGb2E4RkYzVUkyREhaTmdyWGk5UFFmdnM4VnZmUDJ3anFsS0pLb1lDK05mUDN2bTNKU0NRY0tuSDJxYlBqMlZnai91b3pPUDdIOGcwbGZzZGhmL3ZFcnZ0TTVxbno2empFS3dmd2s3bDV5UGVvVmpSSGVQcVdzSCtTK3M1NDV3Y2RTRit0R0M1TndpRjJOa0lIeGltUjRUMWlPTzBYTWppREZqSThzWVJ3d1l3ajRFekFMNHBkUHhBd0RDU0dxSDE4M3Y3a2FvdTcrN2I4RTh1TkdjYURBWUM0aEJDL0hvR2FlbkxDMHFRQldHd1hMTHRrNkM1ZzR6SWJGZU0yVjJxWjdKc21VaVcvc2Z1K2Z1WHpKam1TMTF6YUoxUys1WXVDemc1NHNjcnBJeWJyYWh2RGpZS2k1OWRQdWVuKzlZZkhUN1Y2NHo2S3hPbzk1aWFmeldnaVAvY2VNUjdIdXFlbWExVkNiTWlFN2o0Z2MrdWYvR1U4TTlIYmZ2MnJiK3AzdTJ6ekRxOUs0OCtiVnlseFJvMzk1ejFmRlZYLzM0eml1ZkhLNWdTLzJsTnB1ZGQzdjNmUGpRaTdqbEdUazE5L3IyNnZxQkcyTHJFSFBoWThCMFo4SFBKaURDbjVKc1JFYXdQMFoyUGRMckRVTW1iREFJS1IzSHNHUUZBa3pDSWpGR3pVMHd1cEZnT2xzd0xwb05aY1NXNDBtZ1hNaXZuK1NvSTIzay9YcTJubVgrcmM2TWhYNDFrbDZpYlB1aTh0ZWlYZXF4VGNwMjBkZ2phaEQ5NXBMclA3bUdPK0lUemwrbUlEd0Y3UjA4bVAyTk5TcmJOK1RGK0RGRWZmTk1vSFU3ME9wREZZQmdkNXpnc1o0anVLSVdsazg1K0RBOTV2VHJlWUpmQWZNUjlLQlRBMlVTWDVVbXE4QWE4VHlCSGpvQXZ0dklCVHE0QUxTSlhhbU1SenFkTmh3V0VFSTFzVWk0Z3JoeUgvTDZnMDFHYlFIcEZieVlpYzB5TEdFMWpBOHdtVzdab1IvT24vUEh0Mzg2OW9KQy9XV1hxVGJMZVBTMnBVc1dMNy90eFplSFZyL0lIWG5zMElJZFl2dTczMzVDWVFKclZMWnlLRG10czIzTXZMOXJGclZqNndHZnJBY2ZIa09keVdRbEJvaElQUTRzSEFLYitHRTl3QlVsK01yc013dzFDMkdPSUY4QTlNR2dLQVVDQmhYT085V2NwcG9DaGZrcnVGZk5DQ21SY0IxTitYTlZzYlpaMWZYT3pXdjMzLzZOQS8zZlhGRmdyZlpaWTJkL2ZmVFRXL2IrN2U0bkZqY251Vk9BakVjRkwxQzQ1cHJYenB6K2NYV05ZV0d3ckw1dzQ5M1kvZHhwN0w1N1Y0ZG1BMXBCbnJ0Qm5oNklmSmNxWWl4U3hLZWo0dUJ5eENlbHhjY2hEc1JIeEthTUl6QXNMVGFJNmdPaXp3czNMUUVWMTFPUktWSDk1OHVMeGVmMzdqMy9oQnhXeERNOHJDcnJiM1p1dVBmKysrL2R3QjNaSjM5MDVvejgwZjVjQVoxdmVPbjA2UmVwYkFnOUFQaFJISDJtZ04yWWtxdUd1YkljeDI4all1SVpGZ0l0akkyd09vMUdBV3c3eCtsV2d1S0pPcElac2NCVjFWbFhzVHczK2dVdUk2eXJTU2ZHditoMXlWWmtBSmhnMkRiaFNqMEhLeU05WDFBczQwcmxlcFM1ZkdDQTV0V0IyZ1ovc0ZHMFNYNUh3RXpLY2FwT2dmZnd1Mmc5VFFlclFRMzA2YWxKQmNIRnlraitYTDc4UXhMcGZvanZhZW1jVmdOaC9tQ3VQTmpidVNObG92d0xraXcvTkVaaUsvbWRINUV2OGpjRlg2NWtjbVJTang1U3VCdlN1S3VVRDlicmdUdUdJYU5pS3RQMUExN2o2dmpLeE1YSGc3VDF3R3I5dHZGWEFQc01LeWRlQU93alU2eEh0Y1FVRSs2WnFDbk9jTS9tcjFNTXpXUnhkamJycGltc3V3N1hFTjdKUC90WEZSNGRVN1kzcWdWTTltZ1c3K1NmRXViOWQzYWduV0VjUm5QQXpod0ZPOU9PdXBLem1vRXNGMkFNRWlrQXFtTTRyZXBpWUdnbUJLTHM5RDdEYUdVWE9OeU8yb0xCWUZ3QWM1Tk5YSTY1U1RSbUtFbG5GbXlxRDg0MVAxYkYvR3pZU016UDF0VXZhZjVFMmZvY3R1VnZYNjJZb2ljWHFhYm8vMUJUMUxlQ21LS3lSN0lkakR4V0pCbHJhalN6ZEZVQ3pCSUdkSWE0ZTBCZkZoTDdpc3hnYWN6Y2Vvdkp3SkxhdERXUG9ZdUlaMGtlR3F3VXpXNEJuUXZSL080NXMyZk5uTjdlb3ZwVmZ6QS91elJ0bTB5Q2Z0dm55elhERFgrMnRKV3lkRk9UNmw3M0tkdE9lV2RuN2hGdEJMNUtIWUZ2N3RTTzBEZ1ltSEErUndGd1JQNzFaQXFoTXV3VHJGY1ZoT1RuRVNjQW4wSUU2WE9BcFBraGt2WVRVc0FaWUEzU09CTkNBWm85U2lmOUZIcnFKa0Q4Ykp2OEp6ckx2MktVQy9NeCtxdnFPMzh4K2Z6VENvelJhbHJIUFFMaGF6eFpYMHh5cmoxa1BZSVBHYzJlTFFKSnJnSmREaE5nQklORFlpQW9qcHVzbXNRanFRVXliUnVOMGJQcUNhcEFUdi8yNTMrK3Q0QXE2SXpoQlF0a05jM0Z2Sy9OZGV5dUYxKzZzMERBMDZsS3l1ZUYvbVZNZjlwVXFicjNPc3g1SlpxZjdGME12cThLSW5TU0FRS29nc0VxY3d6ODIyVldsVEhQb2lvalF3SmVIVll6ZG5EMWlpVjlpeGIwekFHK2krRjRreTFvemRaRVhFYktQVzRTdldmVk9VbXdFNHFSZ284bzVHUFhGOVZMbktXV1g2TGtSdVFIcHd3SzdtQ1JaQzJzOFprVUh1eHZXeXk1aSszQmdwS2tVQ1hXYjFmMXRDSVhFZUd2S2R0cVBMMVJQYkpINDUzOEdKdW84YytxN3lvS1ZDaEh1anNqVGNHZTRsQlVxSHZ5YzNUMlJaeE02NFRtQ3lKb3RRWWFHVVJ5VTZNUVNDSGRFRVI5T2dWMWFBblFVaEtXS1VQQUVyQ1kyNVk5RW1VR0RpVHpFYW5DaFFuVGJVR0tyYkpXcjZZNkYzTit6Q2VVM2pmeEVOV2ZqTnU3NHc1Vmk5YWx0UWpqS1lvQzFVMTBlQmlaZ01hWGdjWVVzVit6QTE2V0kxa0FqdWdRSGpWZ29qaG0wMFdzV0FwMXo1Z0dCRWdTV2JHV2JLMXhUS0lSWmlXTURKbng1MGNKV2xPVm4vc3lwU1Z1YmMwMVZJTzZyK2ZGS2lNeDZ5SGQ4dHd6TGZseFZSTThybExkeVdkMHBTN3NuWHp0TS9Qa0RhTFhLK0s3eHA2ZVRCK3NOdG1GLzJLemtuVUd0dUVZOEtnRERUOVRYMEFLVldvTVhncUxpWWdYZkptaUNReURoNGxCQzVQaXRXL2lXWGFJaUQrbEdCREZuM2VnTmdtNEY0ZEFsTHE4SERNU0RHSHhVa1lmUXJGc2E2L3dyS211TlJhMXllM2MxdHlncWxPejZJYUtBdndBcDJvTnZqck5vejYvdjlqRG5CdjczbVE4S1IyYmo4YzAzV0ZRQi9EbDF2L3R1aGxyK3ZTV1d6NDllcFIrN3IvOTl2M2tqenQxbDN6dXVlZmtjM2NUOS9zY2R0LzEzbXRuenZ6d2gyZk92S2JHQlZlQWZBSVFyS3pUVnFvT2tiaHR2WjRpS01NRVYwTldLc2ZyOWR3MmJTU0V3UHpLaVFNcGFJMlJmSGtBaVJSNUdZbTFWMkRxSlF4ZkpsaTQrVzkvZS85dURXYmRvMnp2dkZOZHErTGRWMTk5N2JWWGd4Qisrc29yUDN0cU1zNlBIUjljdVhJWjRibjhiNVRuVFdnR2VxWDdTUWZRYXFyRFNLOGsvMHVUWnZJRjk1Z0FVbllQS09jbHBBY0s5WWoyYlBFRExDZ3BLZnV2SmVHK2J0aElxamdHQWwrOU1EYWdqYVVaRkZwR0lFNWsvR0NJalZsYXdSc2w0MWx5Nzg4WkRzalYzZHlNVVBPTTV1bkpkcGo2RktuQ0lZbEJNNDBvVlZVSTZXazJKU2V2b3RmS0VHbzFKVVRiOGk2dU5NWE9qYjI5dmhrK1QwdEpiN2NscnpDUzd4Q2JOamRKM2ZWVEY4YXUycW96T0NyekMyMW52bkVNeHU0N2VIQWYrZU5PM1NhZi84NTM1TTl1WXpaNmpUcmVXS0dUZkVGZlpVbWxhRFpaek5XczVBbUpaYmJYMm5EUks5L0IzRzN2UGZQd3d5ZFBQdnp3TTVtWTlGblFQZEt6dFAwRXJIR0RsbUVRa0FIT0c1Z1J3Z1U5eEZPa3FzU3pETW10Y2twdXBSVENCWjNlYU5SdDA4WWlvMUcvY3JLaE5ML1EwelZ6T3Z6U1ZLS0c0WGliV2FzY0ZuNnVoNzRJbXB4TVRaZi8rei9qNVM3UlhaVG5yQ2gycUpIVTNGVmhwOGNwRmZwNkdwTnFWQ1UzajB0TzVEOTYxN3BWcTliZHhSMDUvZFNmV2wzaDBwWm9qY3Z2VjFRNTJTMjJ4VHJMSThFTGFETGRsdkdjN3U0NW9FQjNnVDNwQU4zdVFxbGsxMHlNZFQ3TThBVFBZTjJ3UWMrUWFpUHdQTE5QcWxvc1dOVndDcEgyRHJwTEhWTVhtak45bWhTUXFxV0FNU3Ryb1dnU2lTTGNDc2VVbEY4b3F4YWthaUJoaDhLOGtNcWtPcVdKa2YxVlBBTHhsN242YThOekZrcEMxV1ViYm03KzV2TFRYM25rU3FVZFVReWI0M2V2V1RJWURwV251dnN1ciszcFcvWFV0bmxmcWFzRnVyeUMvSGZCVzFEUU5iK3J4UnV3MnV4T1VScis3WmFqZzJ1REpOV0pld1d2dlhEOWh0bkppb1Nqd0ZsZ0x5dXAyTE54NDBPRERUVUJrZ0hCYUJYbzJrYlF0U2hxU05icXNCbzJranlkVnJUTStCZ0s3YUlvSXBMWXdoRlFxNVkybGRLTE9CVmJkbEdzcHl6UmxJaWMrSzFxdFBxVTdXOVBrS00rZ2QxTFk4T2wvaktZT1lDTUhOZDZRZjVQZXZ4aFVpVERhbzhreVRtUzNoeWFYbVNIUUlnMEYwTzZIOU9BT29FYVJaRUNDbU1tS1V0OG9kYVZNMm5vcHdEc0NSRlA5WmJYRHh4NGZVdDFibFNUMnJKaXhaYlUrTGhtN0FmN1hsMjc5dFY5VEZNMkdoejczZllycnRqT0JETDVnUXNmQXkxbmFTMFphSkZvellSWEtkTHJGSW8wWWtqTkdOQ2RtSXZ1VkJDRUo2R2tOQnNlUDBGbk9GMit5OXJjMXRhVUp6K296Zm00c2gzNHpSOW5hVGc0N2IwWFM5NHlrWDBzaDRaN21iVlo4LzhyelA5ZG1QOVUxSnhNeEdNMkZ1dElOUnlSMnY0b2dYaWdZd1N4Y0p5UVlyQkd5bFRVUVVDZUZKUnlRUXByWlJSRXA4Z254RTVLbGJKOGNxZzdSV2MrWlMxYldCZWIxbUw1NW9PVzFzNVlyWXNkcmxOcFVnSGRqc1k3OUJYVmRWVzZPK1BySjhTaWk0czlsaklSLzBZT2kyVVdUL0U0dXAvRmo3dUxIQzQ1eGN6T3l1K0FRbElzdDVCVU5HZlhseGs1SWtLVFVRK0VHNFlzWmtaSmdTdFFsODhOMkdmTmlJTkE2Yis4YkxCcm5EUVpQbGt1M0RpWjJOMkpMTWFNS0l5UlA4WmlXeTUwYS9qT1kwSDF5S2l5YmNlaS9FbHJMc01pZHh3c1VvOXNTZ2REZStVcnN0Zm5oeC9tQlBIMzRLM1pqUHY1ejdOanpBcmcxMUhnVnp0S0pCdUFYU3hobHg0WVJHSmkwSk5KUXZoMjFLcXhLVWRaSmtkTGwxd0lOMUJxcXVSSFgxVXQwUzVsKzZyOGVDeVg5czdUWnhvbkxPeVA1R3hpMFFYR2xCUHZ2WVdsZEx5M0QyaWRRbk1VYTVSOHJLaDBLMjNMOURScGFZQkw5VFJOSEtmME5JVlFRQ3hzRkF2VEdZTjBTMU5Xc0RkSmU0Sjc3R1c4bFNUdElOVDdCZERvWk5ybDQrUTdXT0lDU211YjcveC92MDBUbXdkb25EZXRsRFhTUkNkZXFmU01ZQ3pJVDdQMzg0UElUWEl3SkVvbEQxTnd5ak14WE9hWkdCanJSb1ZTWXdOcG5lRFUwb1U2RnpYQmFQT3pYeUtaUTRZNkxwbG1FWi9Iblp1cXAwMkxlUVZkUlBDU3ZjK0tsZCtOd2U4K1NuKzNJaGtndjhkZ2xsbWZhWHRNdHlhNmtjc3ZOZkpLMmNTbS9pNzVXWnUydzk1SytnY1o4b080VTM2ZWJtViswQ3Q4OG12Qkc1czJyWnI3RS9sVWRQY2wvQ3ZPREhqQ2k4SlA2ZFpNVDVhNXJhU0NpbnVBYnNUc0ljMlJWOEZBTC9JRXc1eWhLUEtVRGswbnBTMWFzdEZsREZzbzNhREUzRjV0eE8xOFBDeDR2R0g5YzgvcHcxNlBFSTd6dU4wWWkzQ243STZ4KzAwR3QyZ3k1RnZ4WHZrNmE3N0JKTG9OSm1hVnd3NjI5ODJ4Qzl3SDhydkloc3JwZkZ6aldhQjBmdEpwVE1oM2NXOWJkVHByM21lVmVYVExuWlhmdGRYVTFGVGJiTld3SWJFOGRySmpiQU4vRk81ZlRPOVBZbGVsUmJMSW1iNnhVcVlKQmJSK0paNXRLQ3lYTEdaNXBLaWlLV1lyd011NC9jRFZldDBibHZKUXZOdDhRY0c1VzhCdjNNc2VSM1d3dlArZ3REL24rN0NCYlcwQjNPb0FDbGdJUG5LTzZObWVBU1ZNRGtOb1FQcXNSa21Qa2dHeGhoRlNGcURSUVNTbEp6d1labFJBck55NS90SVhBTGtpM2RVYW0wcVR0WjkzRlVwZkJIR2VkZzBKVE9yckVhcHZyMjlyU2dCdHRTS2d4bmlqV1FPTmhibUFPdDJPUXhQTUpDT2RhZW5PZFBmSEU0MFFrU1JlRmNwOWlqVzZ2SDJvZU82VHk2ODQydi85NDN2dVhyU3g1ZUFzbTZVNFZKQWZHM2h0eVlOelpuWE8rSExMemJ2WTQvL3lsUHhPUlZReFRQV0p0czdVVjRjUDNGUG03VXg2aS9oQVZaV24zbFplUHZaR1hVMTFiYUltV2FySXBSVGtjaGxmamlwUk0vcUJ3bTRUQ3dHY0RjTWFBNUdvWDBndVhwVUdHRFUxSXBaUzVERUlHcWRIVWpvYXZhc3VYNVZEOU9KREZYdXZYb1hVakVjRWhpSU94REJ5NmRIQSs4SklCQVkwUjVycWEySCtGZjVnWXpCZ1VvSnJXMjRqR2cyMkp3dGQ3Rm90WHEzTjQwUGUrcjI5dTEvZHNPSFYzVU9IRzd6Q3V5cnEwOHB6bnJjM3RMZHZTTFlQMXRZT3R2UGxZRXlXTmJXTnZ2V1ZyN3cxT2pCdmtlQlZpOGw3MWJEN2lkWWQ4K2J0YU8yNHNyZjN5ZzZ5Um04a2ZYZDBIWFFtazdHTDFGTWpXZlhVeUxoNktpaFpNQ1FHZ3hQcXFkbWRCWm1TYWxhUGxGTFVZRDlSaWhyaCtVMnpON1cwYkpxZCtsYVBQVDhxMkNQTDMxaC82UDBiZHYzcjNnYzdtNVBzY1RESkw5REVYK1hzU01lT1ZHcEhSMTJWYVc2a0xGclUwTHp6clFNSGZuLzlqamlKS3hnMEREUTlvdXJRZDVNbUh5eGRHMVllSHBoTVljalRYaXlSNjhTRkcvMmNvVU4wOWVseWxxeWlNQ3pQcmIvMDZJa0tJd1lEY1ZGVG1Lekhib0p0T0p0dGhlNHNoVUhqRkliOTBLdjJJdnhaOERZY0hsSlVwM2R2dlpxY3diMXlCZFdWSk5VYm9qR2YvVlZSRHErd2FONkFvanB0VGRpdGFZeWlLNHJlS0d0ME4vQjNMdWlNSDl4L1I3STFuU0htNFNTUGFCOHROMHdTVlJHYUlpWmNDTE85Z29DUUVCS0NrZ2dYbG9jZEFnUnhKV3B6b09pL1NQOEprS2pUK3dsZGxyT2J2Y0xZTHNjTksrODlZYkVVbHVlWjNDVnJmcmJtMEZ2YnIvbjNyNStNNEdkdFcvdlk0N3ZQM1MxNDVpMU9jQlUxZ1pJU3I5RWYzUG03V3crOHRmTzllK1lvL2Q2UEFDWmF3d2RRRTdwY0VYRllLMWNhTUtQSFdzSFNPRXpxdmRLNENtZElHd3NuNFY1R1BKSzVLS2UwU1F2REpDOUVFMnlDV0VRTHc4cGpKc3J6SmFMZ3hSbjBNV2s2UTJtU3Btdmtua1BGeFNhTFdHU3gzVGgwRTA1UWZQSkRYS3dDU0RWSGZQSWtPWDd5NURFKzBHVDBlMHFrcWlBZmVyaVYxb2luNXlEa002UkRlczdwbDhsYWtkZHhqNEFzYTFFSHVrTjVDaUdJZWIyMlZpSUlsSmxudVZHVGdad2FOdW9ZMm1PbzEvUEQ5RGt6clJVM1N0US9uak5hYzFYS3BVUG9vaGVDMTZxckEwdlNVZGMrSlU3YTVBTmlrUmhVdlpaYmFSVWZsMFpPOTZRUi81U3pQTVoxWG00bFJ2UFBDb1A2Ly9MbnZ0ZVgxK1RsQjRyenpDOWNlZTBtTUswM3ZicHg0NnMzTlc3WnNqdzUwdFkyQW5abVh2ZE16V3lPMWIzNkc3ODNQMTRVcTY3a1d0YXVYNWRvdmZiWFgvN3lyNjk5NzhidDIyOU1iTzd0M1p3QVBRQjR4ajBFOW1ZNjJueUNKYzhmcVUraFNzaGdVQm9QcEhTcmJHUjgzYUUwS1JCdE1pQWo5ZStURDFJVWFqcWkxUW1hVU5BNkRkVEN5bVNSQ0hIb1Z1ekZuNThzdzQ5N3IzbDAyUzFkcWR6S1EzVzhvM2xEUjNYdXdZelhvWjZtNU9TOE8xZkx3em1xdGFaMzN2Q0RnMGR5OG1KN3RRRHN3Z1c2L3Vid0N3c0V0QjZoQWdhdHN5clBVVDhncjJQdnBjZlgwcWVvMTZGbjZYcHRndkVIZ2JkVDBSVkpZMGZNYk9KSWdLL3hWMTF5VXNwQWM1S2dYWUdVeVVoWWg0WmdvU3FOTXdJWUprNFBUdnppZ3hUK1RrVkpxWUVXTDZSR3dsK3BVRFhBSVZaL3FaSWdpQ0lncXFCZTdmblFPK3E1SFI3eTFHT2Q1L3crclVOczFYaFdnaUhnNmlqd3Y1OThWbnp5ajdZM0t0dUFleFY0eGNpOHlSZ0pkakQycTJBOEVRd200c0VmeWs4VFB0MEhmT29BUHZuUkxJVTVickM2M0JCNUJrNUtNV2tQUkZDTkN3NkNqK2ZZOWRuSGxjZmsvTWhIS25qcVkzS1hxRk16UC9KcU51aTgrcXdudHAxVGQ0NHFybVZ5UmNBWFBvRDVIZ0M3MDRFTzB3ZHVubWxOTUVTeWdQQmFNYTlMQVBhZ0NJODhpd09ZWGpFbkJqMnIwd1ZTSE1Nb290WDhPZW1IMUU2UzRIMlNvVWtmR1RXRXRDRnF3MFlrUFdKQUsxKzFneE51RE1EL21ZNE4rc1NLVFduWnVOalh6QlAxcExHWjJpYnkvTEt3MFN2c0ZMekZwZFdKM0IyMU9lRVloSlkzOW53dEVydHVGbnY4N20rTW5TRVJLR051ckx2amdQejRoUDNiTlFXNC9Zb3JmN3htdmJvK25nQStUa2NqSjZhUmVGMDEzQjdTcDI4WU5oa1pneUV3dmdleU5Ca2tweFVuUnlJUUdEcUVKaG1vMlozT3VHWjR6R3FpNlAvWjRpajhBWjgyNzM5bWN6NFV2RGQvSDZ6ekY3RTRES1B4NmVENzRPTzJBbDVaRGp6S1I3N2N1bDVrUWwzUFYxQldWSmlwNjQxL3Vwekp3VnFNL0lmcnIvL0RvVVAwYy9iR3BxYU5zNVZQOWpnQnBHL3RWRDdmVXhDVWhya1pGSkIzY3BmQmZHcFFFdDJjTkVVeHg1c3dTdnRjeVVUU2xUenh0VHhQWGFZeXhVeGVLa1RjUmpVZGx1VmtWV040c1N2QXk1S0h2bXFUdFIwUUc5YWdhaUpUdFdpVmlVeHNsNWJkUkVhd0hScktWRnRjWllQcWNYT3c2SWFzVUlVOXJpRk4rWndpclBFMkRzRG9lN25SQ3NYMndMdEhNcndqeUNLUWhWZWt5WEZLT0ZOSkNMRXE3ejRmb09SZU1ZRjNJdWtRdUFoQ21ZeURuNk5FT1FpbFA1ZC9qNlNEdjhJczBNNGV6d3J0emwrbmJKVlA3TmFpdi9mRzQzYUk5Y0JXRUwyTG8yZG9MK0NKZXZMc1cwOHAyV0pNcksyRmxreUpPYVUxcVVDSzVKVFNYN0tyTWFydHJjcTBUbVl1eWhTNHhsMlRBZHNaWTB3YjZVaTFKNUl6ZGtCNStVWWNOU3FteDAwTEtKbkg0bFZMNDcrRVY2YmF5bjdZWFdXM1I0dXRCVk5hVTN2bll6V05NYlpJclZ2dlVGMldYZkIydjdLR1BUNmx2TUVmamNZTXZsV1BieHlhM0s3ODY4SDdGSjRlQmRzU28vYTNKemtuQ1lTWGphdnhSYkpxZkpIUHFmR0JrWTJKQWFsYURHaXZHYUY5VjJxRlR5bndhY3MwOStVaVJKbElmWTlXK0lMWm9mV1A2QXRGV2c2dGFlbnNDcTFZZm4xaTN0TGxUKy9hZjdYMlRwRzZ3OHUvR2EwcVhyYjJZTXUrRlErdC8vcU8yZzcydVBJbWtZN0dTckhTYmpLYUN3djlWdzBQN2UrZWxYNlBTRWZ6d3VJeUU1OW44Zmw3anZaL2FjWWNrL3I4TTRtN0Y5UGU3SGl5SGx3UlNZdU82dWp6bFN4OXZsSnRrTXp0eHBiRUNsR1FKSzFBbG03NnREblZ2SUVhRXFxVlBqVXNJdGxieGxudnhOdHBNSFRyVGJIckZ4VG11YVFDdTh2MWs2OGZPL2tTT2Z4UzJ5enVGRmxPNzlNZzZNOFBod05Hc1NMcUtmU2FON3g4R29za0RNSWxTdDhqelAxcjdHRTBCYTArWWN2eW95VWt4OE9SNmg3SGtaZnlaT2NJa3RMRWswcWN6MmZIK1ZTUnA2QzRGQURjSGhlMTBtVnVnSytiVUEraytUcGlKdHF5cWdmc1g3eXEwM3lYK01NTWJzY2dIdW8rdFdheUlIc1ljT0xsR1VjSW5oTS9vR2d6WUhkcnR0Y2tkUkhTN3dyMFg2d09HUGpmcWdQZW9OWUJmNWMvZmViTWFmbnk3NmZsZHI5MVB2VjBRajB5eWg1VzQ3QkJzYXhNWkk3bVZEcG00VlBqNjRBdy93NVNCMnlvS3FCMUhhVGpFS2REdVhYQVFGWWRrRFFyU2NRTGl1UHJnRGlUTGcvK1Q4dUE0VHNNamEzTlUvSU8zR2FkMHRKYWIvaXFvQktrUGgyeXVIdWZ1U29jaVpodjZaMnRaV1V5cEpLU0oxNHQzeWVXZWFWeEpPL0VDejNlb2hMNVlYeHpkazJMUEJleUYyai9uQnBnNEdJMXdKbTBCaWdXanE4QjZyOXdEZEFSdWxRTmNMSFN5L1pmbUszUExmaFpkKyswcVVmdVY3WngrZU9HM1BwMjN1aTFoZXFSVlJxVFBwTS95VGJMZS9mbUFFTERwOWxNMjcwN1hRK3JrTmRTSFUrUWZvTXFOMjE4MDZtcW9hNWhSRHJleU90U3RQSTlNRWR5alN2Zll5dWoxOUVYRWJRemlTK284RW41cHBrM0hybEpDcFFXejEwOXYwbitTWGV1MnJjZU94WWZyL2JuLzNucm5XMGNudEpWWDhYd2RadTNNRHR5dE9GbXZEUFQ5MGhyZlVCYmhOVDZyQmV2OVFXK1lLMHZNTEhXRjBGaDBSMmY3UDBGT2EyZGNhM2NGOFBVUWRGNm45VSs5aEdlMFRDek9wYXZWdnlzZHNZcy81UWU4UWxzQ1hzWWFDbVZIR1BuZG9vZVMwbXgvRTlhOVlNampIdWJja1FzZzBrK0pEL052czhQUXF5K0tXbHRnVUEySDZZZkJnZWp2ZnFyTlAycUFwS1VaTmJTekRXaGlMN1V4azllcFlJNEhvMWtob0hJeVZPUXhGNWpabjQ2RlpCb3JJNUtncmMwb0ZkZndtR2xDVzBmQTNTN0NQbjVXS2NnT2UyWmVkTE1wVHdycjZWcTRWczFEaXErMkdNcExWcDFXWWpqOGFicnI5K0tqVGkyY1dsUnFjVWpmdllCbTRldnZseXRyV3pISnZhRDgveGdwRDBXSzRnczZ4MHVHYmxGTkFuNzFqbE51eTFGbmZOQytiRlllOVZUcDcyK3J4b0tGaSszeGFxcW9yYkJ4UVhHeldXZUU4ZG9mZktjZkIvekhrL2VhUkpYZUpMNy9oSHRSVWdERTE2RWxIbmhpU3VyZFliNVRuemF0Q1Q4OGR1OHdpZmZKcDB3dW42L1VvTkY3OHRQY3lHUXh6UTBrclNDMitOcTRKNXVERXFWbGdjTVk4a2IxcFFIZzVIMk5xdEtUcE1IcmJCa2hnRUlIRURLYS94WUlnL1NXVHdOVFcxdERvU0RZWDM2QlQ1S2NVcURSUEROaHdzMU9iU3IrRnBoZnFJeGhxbGtZdWw2RitQL2dEWGg3UnJUcjhaNTdBZWZpVVJFU3pmR1FEWmJyOTg5b3VOeGRNTWdGUkUvZU95RXAyeXpzV0R4b0MxYVZSV3pMVjljWVBpcXozdjZxU29RVTM1b1htZVJaYmZKdVc2ZllBcmNmZVd3eWQ0NU4xZ0Fjb3BRSHQyRUQzRGR6Qmd3LzNKU3gzeEdzSUpqSlFERG92Q0haZENBamlldlBBREVSQmpCUUhUS0lHWStBY3pBSDJEcktLeFRodVVBT0N1ajRTZ3BEU3FERVJtcjFlT0RvaFFTNmF1QTFQTHZ4UHFMMmplbTExN09RZDVVOGQ2S2FZMWRVcWl0M0Y3b0QxZm50ZXhmR2g5T3htZUwyVWVZTVZId2VNc0ZSeUFjc0xuNmwwaUN4NVA1cHNSbmJ6R043RXExaHpaQnE3WlZIS2txS2FSQlVNWU1xREUzZytaUDBrcWJYU3llN0tWdXpJNnY5ZmRyLzJKVHA4YklIM2VxUCt2b0w1V0RzYW13MEFFWEJMbjMrTzBRK2RlaWVlRHlucU56Y3BneHcvckJTeTZvWkhqVGRLdzNjK3FyZXFZQWY5azl4QkxzUWJ6SmJPTE5venFPNU1rZ1F0K0FUTHpCTkdDMTVMRm1JOVlielBvUlpESVpWaUdEeWJDQVBFMm1YS3FEUzNWWWw3NmV2cHp5VXBjUEpEM3o1OWZWelY4NGYySGR2THE1UFYxVGsyS3dxRmdFV2RhU0oya29YN1FHQXZWdE9GUjQycnR3NEVOU1h4UVVVdDhVVk9lMnEyMjkyaE5WOU9xRStvWlBXNzJZMEROK3Axc09Gem1jN3Z1dXpNc3JjK2VWZ251enUzMkgzRTVtc2ZOOHY4VlE2aTF5c3Q4bTI4c2hEdW4yVmRaVXltODdCSjBCeDYwUk1ScnQvanQvTC9NVHdSOE0rdkhscmZyYVVwY243M3A5aVh2c24wTEFXT2l3alAwM0g1Vmd5eGo1NkZpdEVBajRyM0k1bk02cnBvcjVJSWJyN1BiaVF2bldIL3dBc1NDckVQZU9LcXNoN0tLU3l0Y2tOUk1rWlNCR3BSaWtsQnpIYWlQbURSWURieG5Od3hhejJYSjVGc3VSZ1RjWlJwQlpyemYzSTdOWnZ4THB6ZnA1YW4xdjVnU1JHWXdHM2ppS2pCYUQwYkxyQzk4dE9ldlNOekpZekxzdWVTY0llNHZxNnVxRzZsWXNXN3BvUWZlY2NFTFZBZXYvaHc2b2J4Y2lBeWQ5dFZDZDhsQjh2V0lZdjdnK0RGVFlYYksreW8xdE5aR0dXSHVOTHh5cEtJbnZtWHJ0elhON0h2cStMM3d4cldnWnB4WG5qenVkdDduc2k2TDJYNGtKWDBYTTFVVVU1S0RiNmltN2J1M1VqWWxyUWk0SFdjc2YwN1c4RFRXaGJyUVJiVWJ2VXcwcGlwSVhLWUtXZE9RRG9OczhtekhrcmNZbUk2L2ExNW5wTGdwRG5qSFBZQndGejRISXU0Mm9Rd0s3TktJblFzbkRhS1FBNXhuTWVRTldiTFJnazlsb0lnZnl6S3VRT2M4TXl6dVZ2cEdlSVZXL3lXK29oeHVpTDNDL2dhVFkwNFBRcHN0Nk52YU1yQndhWE5xL2VQN2NHZE5iVzJqWlVHeW9qNFp0RUY0cE5qenpNcVdzeXBjYTltZmVwcFFsV1ZXd1NEWDZHWVd3cTJweUVhdkExaWZ3WGZ2WE5iWjg0MERibmhxdjBWUnFaWFhWNjZ0MnhxcFNUcGZMMmJhaEtUNmx1YXh5UVVuam51bXNpZXBDUmlkaTBlN0NTVXpFTzNmei9MYXRxMWJYT3VjMWpWeFc3TXp6MjRvOFpZeWphTFlZRUlKQm9VY0l1bXBkam9yUkVvdTdaT3lQVkMweTZpRi9pOWlIU2N5R3ZPSUg5SjFyNjloN0FmY0tLSmFNcE45V3BaVStBdWtFYjVTK3BVcEE1WUpVRk5ES0c1TnhOT3ZCTm5hWDkrU3h2bFBMb25aN3NOanFXbkI5N0NaWmZkTXQwMHpDNi9ON1RyOWNHeXVNZWlvclE0WkErR0htWFMzV3dPZTRXc0JnQ3dGU2hhaVdlaVppcml6QXBZZzU1eTF6anpZMXpweloxRENUWCtnVmpwTFV5MUhSbzlhdjV3QzlmaFJLU2xsMFpwZHkvc2QxbkY5TlVzZjV0YnB6dTVKSG1Dd05odjR2RWY1dENnQUFBSGphalpMQlRoc3hFSVovTHdIUkE2aXRla0k5V0tnSE9MQk9vRWdST1lWSXVSUUpJZ0ZxajdDMWRoY2w4V0o3RDd4RUg2SXYwaHVxK2g1OWh4NzcyM0ZMcUVyVlhhMzllVHovekt6SEFKN2pIZ0tMNXlPK0pSYllFTzhTWitpSUl2RUtYb3ZQaVR0NEtiNG5Yc1ZHOWlyeEdsNWs0OFNiMk1vK1VTVTZ6N2o2R2lNRUZ0Z1NLbkdHZGZFaDhRcjZva3Jjd1J2eEpmRXEvWDhrWHNOMnRwMTRFMit6OXhqQm9NRWRMR3FVcU9BaHNZOHVlamdrbmRPaU9RZXZOdnBvamhKbmtXZHhMN0RCRGJtSTZpRTlQWFdHZHNmMVRvenFtY1hoQ0lwdlNXM3dhSEdObkNyRFNBcTNYQnZhTmVmNTB1cUt5cUJWZjFUeFVNTXVvMkJrbWp0Ymw1V1grOTNlb1R5dnRCeVoxdGJheWpOYnp6UkhjNk1MTDRldHI0eDFjcWZ5dm5GSFNwVzFyOXJydkRBemRkc2FyOXQ1bks2YXhxa1VJa2JZRFZtZVBBZzh5Z1ljMDNQS2E0RmpNK1Y0d0JyRHFmWXh3QVFYL0lha3AvNW83MEYra0hkNy9jSGtZakljTEJlenR3ajdyOGI4RHZINEhCYkN5eWh3ZERZOGJibFVIeTYxZGJXWnk1Z1ovMVBqWHdyNzFmTkZ4eDI3SEhRTmJZNlpRdDRwNTNCSFN1NmZZb3dUaXRnUk5zUVZ0bTY4eTEwOXpZMHQxZW40QkQ4QityR29lUUFBZU5wbGl0ZE93bUFBUnM5ZlJoR2NETVV0YmxHeHhWbFhYQ2k0QlNlb3BURmdMd2cxQldPODFVZjFQWXltaVRIUmMzTytuSHhJT0h4KzhQWXR3VjlNcDBxNGNPUEJpNHlQQnZ3RWFLU0pabHBvcFkwZ0ljSkVhS2VES0oxMDBVMFB2ZlRSendBeEJobGltQkZHR1dPY0NlSk1Nc1UwQ1daUVVFa3l5eHp6TExESUVockxyTERLR3V0c3NNa1cyK3lRWXBjOTBtVFk1NEJEampqbWhGUE95SkxqbkFzdXVlS2FHL0lVdU9XT2UzU0tHTHdMU2JpRVczaUVWOGdocTFyU2F4V2padXBsNjlsT2xHM2pJZmpiNmkrV2t5SjEweTc5TzhxUGxkY25VOU44amxWRitSbnFGekxITlc0QUFRQUIvLzhBRDNqYVkyQmtZR0RnQVdJbElHWmlZQWJDUkFaR2hpU0dGQ0F2bFNFZHlHWUJ5ekFBQUNmVUFqVjQybU5nWkdCZzRHSUlZVWhpWUhaeDh3bGhFRWt2U3MxbVVNaEpMTWxqMEdGZ0Fjb3kvUC9QQUZLRnpCWmpZSFoyREZGZ0VQUDE5d0dTUWY2K1FCSXV5NWhXbEpqTXdBRmlnVEVMV0M4alVJUVJhQ1lUMEQ0RklNbkd3TWVRek1ETUlNUWdDcklkU0l1RDFhYkEyVXdNSWd4aUFMVzJFeGw0Mm1OZ1pHQmc0R0t3WWJCallIWng4d2xoRUVrdlNzMW1rTXRKTE1sajBHQmdBY295L1A4UEpMQ3hnQUFBV3hvTGF3QUFBQUFBQVFBQUFBRFZwQ2NJQUFBQUFObWNnK0VBQUFBQTJmdEpOQT09JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG4ifX0=`,"base64").toString("utf8"));return t(`metrics/setup > setup > success`),a}async function a({login:e,imports:t,q:r},{enabled:n=!1,token:a=""}={}){try{if(!n||!r.music)return null;const o={get provider(){return _[s]?.name??""},get mode(){return w[l]??"Unconfigured music plugin"}};let i=null,{"music.provider":s="","music.mode":l="","music.playlist":d=null,"music.limit":p=4}=r;if(d&&!l&&(l="playlist"),d&&!s)for(const[e,{embed:t}]of Object.entries(_))t.test(d)&&(s=e);if(l||(l="recent"),!(s in _))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in w))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!_[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),console.debug(`metrics/compute/${e}/plugins > music > processing mode ${l} with provider ${s}`),l){case"playlist":{console.debug(`metrics/compute/${e}/plugins > music > starting browser`);const r=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > music > started ${await r.version()}`);const n=await r.newPage();console.debug(`metrics/compute/${e}/plugins > music > loading page`),await n.goto(d);const a=n.mainFrame();switch(s){case"apple":{await a.waitForSelector(".tracklist.playlist"),i=[...(await a.evaluate(()=>[...document.querySelectorAll(".tracklist li")].map(e=>({name:e.querySelector(".tracklist__track__name").innerText,artist:e.querySelector(".tracklist__track__sub").innerText,artwork:e.querySelector(".tracklist__track__artwork img").src}))))];break}case"spotify":{await a.waitForSelector("table"),i=[...(await a.evaluate(()=>[...document.querySelectorAll("table tr")].map(e=>({name:e.querySelector("td:nth-child(2) div:nth-child(1)").innerText,artist:e.querySelector("td:nth-child(2) div:nth-child(2)").innerText,artwork:window.getComputedStyle(document.querySelector("button[title=Play]").parentNode,null).backgroundImage.match(/^url\("(https:...+)"\)$/)[1]}))))];break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await r.close(),Array.isArray(i)&&(console.debug(`metrics/compute/${e}/plugins > music > found ${i.length} tracks`),console.debug(t.util.inspect(i,{depth:1/0,maxStringLength:256})),i=t.shuffle(i));break}case"recent":{const r=Date.now()-86400000;switch(s){case"spotify":{const[n,s,l]=a.split(",").map(e=>e.trim());if(!n||!s||!l)throw{error:{message:`Spotify token must contain client id/secret and refresh token`}};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with spotify refresh token`);const{data:{access_token:a}}=await t.axios.post("https://accounts.spotify.com/api/token",`${new t.url.URLSearchParams({grant_type:"refresh_token",refresh_token:l,client_id:n,client_secret:s})}`,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});console.debug(`metrics/compute/${e}/plugins > music > got access token`),console.debug(`metrics/compute/${e}/plugins > music > querying spotify api`),i=(await t.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${p}&after=${r}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${a}`}})).data.items.map(({track:e})=>({name:e.name,artist:e.artists[0].name,artwork:e.album.images[0].url}))}catch(e){if(e.isAxiosError){const t=e.response?.status,r=e.response.data?.error_description??null;throw message=`API returned ${t}${r?` (${r})`:""}`,e=e.response?.data??null,{error:{message,instance:e},...o}}throw e}break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}break}default:throw{error:{message:`Unsupported mode "${l}"`},...o};}if(Array.isArray(i)){0 music > keeping only ${p} tracks`),i=i.slice(0,p)),console.debug(`metrics/compute/${e}/plugins > music > loading artworks`);for(const r of i)console.debug(`metrics/compute/${e}/plugins > music > processing ${r.name}`),r.artwork=await t.imgb64(r.artwork);return{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}}async function o({login:e,q:t,dflags:r},{conf:n,data:a,rest:o,graphql:i,plugins:l},{s:d,pending:s,imports:p}){const c=a.computed={commits:0,sponsorships:0,licenses:{favorite:"",used:{}},token:{},repositories:{watchers:0,stargazers:0,issues_open:0,issues_closed:0,pr_open:0,pr_merged:0,forks:0,releases:0}},u=p.imgb64(a.user.avatarUrl);if(a.plugins={},console.debug(`metrics/compute/${e} > formatting common metrics`),t["config.timezone"]){const r=a.config.timezone={name:t["config.timezone"],offset:0};try{r.offset=+(1e3*(60*(60*new Date().toLocaleString("fr",{timeZoneName:"short",timeZone:r.name}).match(/UTC[+](?\d+)/)?.groups?.offset)))||0,console.debug(`metrics/compute/${e} > timezone set to ${r.name} (${0 failed to use timezone "${r.name}"`)}}for(const u of Object.keys(p.plugins))s.push((async()=>{try{console.debug(`metrics/compute/${e}/plugins > ${u} > started`),a.plugins[u]=await p.plugins[u]({login:e,q:t,imports:p,data:a,computed:c,rest:o,graphql:i},l[u]),console.debug(`metrics/compute/${e}/plugins > ${u} > completed (${null===a.plugins[u]?"skipped":"success"})`)}catch(t){console.debug(`metrics/compute/${e}/plugins > ${u} > completed (error)`),a.plugins[u]=t}finally{const e={name:u,result:a.plugins[u]};return console.debug(p.util.inspect(e,{depth:1/0,maxStringLength:256})),e}})());for(const u of a.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])c.repositories[e]+=u[e].totalCount;c.repositories.forks+=u.forkCount,u.licenseInfo&&(c.licenses.used[u.licenseInfo.spdxId]=(c.licenses.used[u.licenseInfo.spdxId]??0)+1)}c.diskUsage=`${p.bytes(1e3*a.user.repositories.totalDiskUsage)}`,c.licenses.favorite=Object.entries(c.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)??"",c.commits+=a.user.contributionsCollection.totalCommitContributions+a.user.contributionsCollection.restrictedContributionsCount;const m=(Date.now()-new Date(a.user.createdAt).getTime())/31536000000,g=_Mathfloor(m),h=_Mathceil(12*(m-g));c.registration=g?`${g} year${d(g)} ago`:`${h} month${d(h)} ago`,c.cakeday=[new Date,new Date(a.user.createdAt)].map(e=>e.toISOString().match(/(?\d{2}-\d{2})(?=T)/)?.groups?.mmdd).every((e,t,r)=>e===r[0]),c.calendar=a.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),c.avatar=(await u)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",c.token.scopes=(await o.request("HEAD /")).headers["x-oauth-scopes"].split(", "),a.meta={version:n.package.version,author:n.package.author},(r.includes("--cakeday")||t["dflag.cakeday"])&&(console.debug(`metrics/compute/${e} > applying dflag --cakeday`),c.cakeday=!0),(r.includes("--hireable")||t["dflag.hireable"])&&(console.debug(`metrics/compute/${e} > applying dflag --hireable`),a.user.isHireable=!0)}async function i({login:e,q:t,dflags:r=[]},{graphql:n,rest:a,plugins:o,conf:i,die:h=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(S.inspect(t,{depth:1/0,maxStringLength:256}));const f=t.template||i.settings.templates.default,y=_Mathmax(0,+t.repositories)||i.settings.repositories||100,_=[],w=(e,t="")=>1 graphql query`),Object.assign(M,await n(s.replace(/[$]login/,`"${e}"`).replace(/[$]repositories/,`${y}`).replace(/[$]calendar.to/,`"${new Date().toISOString()}"`).replace(/[$]calendar.from/,`"${new Date(Date.now()-1209600000).toISOString()}"`))),console.debug(`metrics/compute/${e} > compute`);const g=E[f].default||E[f];await g({login:e,q:t,dflags:r},{conf:i,data:M,rest:a,graphql:n,plugins:o},{s:w,pending:_,imports:{plugins:T,url:O,imgb64:k,axios:C,puppeteer:A,run:m,fs:L,os:z,paths:b,util:S,format:l,bytes:d,shuffle:p,htmlescape:c,urlexpand:u}});const x=await Promise.all(_);{const e=x.filter(({result:e=null})=>e?.error);if(!h)console.warn(`${e.length} error${w(e.length)} found, ignoring...`),console.warn(S.inspect(e,{depth:1/0,maxStringLength:256}));else if(e.length)throw new Error(`${e.length} error${w(e.length)} found...`)}}console.debug(`metrics/compute/${e} > render`);let W=await x.render(P,{...M,s:w,style:R,fonts:I},{async:!0});if(i.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new v({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(W);W=r}return console.debug(`metrics/compute/${e} > success`),W}catch(e){if(Array.isArray(e.errors)&&"NOT_FOUND"===e.errors[0].type)throw new Error("user not found");throw e}}function l(e){for(const{u:t,v:r}of[{u:"b",v:1000000000},{u:"m",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")}${t}`;return e}function d(e){for(const{u:t,v:r}of[{u:"E",v:1000000000000000000},{u:"P",v:1000000000000000},{u:"T",v:1000000000000},{u:"G",v:1000000000},{u:"M",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")} ${t}B`;return`${e} byte${1":!0,'"':!0,"'":!0}){return e.replace(/&(?!(?:amp|lt|gt|quot|apos);)/g,t["&"]?"&":"&").replace(//g,t[">"]?">":">").replace(/"/g,t["\""]?""":"\"").replace(/'/g,t["'"]?"'":"'")}async function u(e){try{return(await C.get(e)).request.res.responseUrl}catch{return e}}async function m(e,t){return await new Promise((r,n)=>{console.debug(`metrics/command > ${e}`);const a=P.exec(e,t);let[o,i]=["",""];a.stdout.on("data",e=>o+=e),a.stderr.on("data",e=>i+=e),a.on("close",t=>(console.debug(`metrics/command > ${e} > exited with code ${t}`),0===t?r(o):n(i)))})}function g({data:e,conf:t,q:r}){const n=e=>"object"==typeof e?new Proxy(e,{get(e,t){return t===Symbol.toPrimitive?()=>"##":t===Symbol.iterator?Reflect.get(e,t):/^plugins$/.test(t)?Reflect.get(e,t):/^error/.test(t)?void 0:n(t in e?Reflect.get(e,t):{})}}):e,a=Object.entries(t.settings.plugins).filter(([e,t])=>t.enabled).map(([e])=>e).filter(e=>e in r&&r[e]);Object.assign(e,{s(e,t){return"y"===t?"ies":"s"},meta:{version:t.package.version,author:t.package.author,placeholder:!0},user:n({name:`############`,websiteUrl:`########################`,isHireable:!1}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",cakeday:!1,calendar:Array(14).fill({color:"#ebedf0"}),licenses:{favorite:`########`},token:{scopes:[]}}),plugins:Object.fromEntries(a.map(e=>[e,n({posts:{source:"########",list:Array("posts.limit"in r?_Mathmax(+r["posts.limit"]||0,0):2).fill({title:"###### ###### ####### ######",date:"####"})},music:{provider:"########",tracks:Array("music.limit"in r?_Mathmax(+r["music.limit"]||0,0):4).fill({name:"##########",artist:"######",artwork:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg=="})},pagespeed:{detailed:!!r["pagespeed.detailed"],scores:["Performance","Accessibility","Best Practices","SEO"].map(e=>({title:e,score:NaN}))},followup:{issues:{count:0},pr:{count:0}},habits:{facts:!!(r["habits.facts"]??1),charts:!!r["habits.charts"],indents:{style:`########`},commits:{day:"####"},linguist:{ordered:[]}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{list:[...Array("topics.limit"in r?_Mathmax(+r["topics.limit"]||0,0):12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...Array("projects.limit"in r?_Mathmax(+r["projects.limit"]||0,0):4).fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]},tweets:{profile:{username:"########",verified:!1},list:[...Array("tweets.limit"in r?_Mathmax(+r["tweets.limit"]||0,0):2).fill(null).map(()=>({text:"###### ###### ####### ######".repeat(4),created_at:Date.now()}))]}}[e]??{})]))})}r.r(t);var h={};r.r(h),r.d(h,{default:()=>n});var f={};r.r(f),r.d(f,{default:()=>i});var y=r(35747),b=r(85622),S=r(31669),x=r(58509),v=r(20485),k=r(67192),C=r(2390);const _={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},w={playlist:"Suggested tracks",recent:"Recently played"},T={followup:async function({computed:e,q:t},{enabled:r=!1}={}){try{if(!r||!t.followup)return null;const n={issues:{get count(){return this.open+this.closed},get open(){return e.repositories.issues_open},get closed(){return e.repositories.issues_closed}},pr:{get count(){return this.open+this.merged},get open(){return e.repositories.pr_open},get merged(){return e.repositories.pr_merged}}};return n}catch(e){throw{error:{message:"An error occured",instance:e}}}},gists:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.gists)return null;console.debug(`metrics/compute/${e}/plugins > gists > querying api`);const{user:{gists:a}}=await t(` query Gists { user(login: "${e}") { gists(last: 100) { @@ -16,7 +16,7 @@ module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math } } } - `);console.debug(`metrics/compute/${e}/plugins > gists > processing ${a.nodes.length} gists`);let o=0,i=0,s=0;for(const e of a.nodes)e.isFork||(o+=e.stargazerCount,i+=e.forks.totalCount,s+=e.comments.totalCount);return{totalCount:a.totalCount,stargazers:o,forks:i,comments:s}}catch(e){throw{error:{message:"An error occured",instance:e}}}},habits:async function({login:e,rest:t,imports:r,data:n,q:a},{enabled:o=!1,from:i=100}={}){try{if(!o||!a.habits)return null;let{"habits.from":s=i.from??500,"habits.days":l=30,"habits.facts":d=!0,"habits.charts":p=!1}=a;s=_Mathmax(1,_Mathmin(1e3,+s)),l=_Mathmax(1,_Mathmin(30,+s));const c={facts:d,charts:p,commits:{hour:NaN,hours:{},day:NaN,days:{}},indents:{style:"",spaces:0,tabs:0},linguist:{available:!1,ordered:[],languages:{}}},u=_Mathceil(s/100),m=n.config.timezone?.offset??0;console.debug(`metrics/compute/${e}/plugins > habits > querying api`);const g=[];try{for(let r=0;r habits > loading page ${r}`),g.push(...(await t.activity.listEventsForAuthenticatedUser({username:e,per_page:100,page:r})).data)}catch{console.debug(`metrics/compute/${e}/plugins > habits > no more page to load`)}console.debug(`metrics/compute/${e}/plugins > habits > ${g.length} events loaded`);const h=g.filter(({type:e})=>"PushEvent"===e).filter(({actor:t})=>t.login===e).filter(({created_at:e})=>new Date(e)>new Date(Date.now()-1e3*(60*(60*(24*l)))));console.debug(`metrics/compute/${e}/plugins > habits > filtered out ${h.length} push events over last ${l} days`),console.debug(`metrics/compute/${e}/plugins > habits > loading patches`);const f=[...(await Promise.allSettled(h.flatMap(({payload:e})=>e.commits).map(e=>e.url).map(async e=>(await t.request(e)).data.files)))].filter(({status:e})=>"fulfilled"===e).map(({value:e})=>e).flatMap(e=>e.map(e=>({name:r.paths.basename(e.filename),patch:e.patch??""}))).map(({name:e,patch:t})=>({name:e,patch:t.split("\n").filter(e=>/^[-+]/.test(e)).map(e=>e.substring(1)).join("\n")}));{console.debug(`metrics/compute/${e}/plugins > habits > searching most active day of week`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getDay());for(const e of t)c.commits.days[e]=(c.commits.days[e]??0)+1;c.commits.days.max=_Mathmax(...Object.values(c.commits.days)),c.commits.day=t.length?["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][Object.entries(c.commits.days).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]]??NaN:NaN}{console.debug(`metrics/compute/${e}/plugins > habits > searching most active time of day`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getHours());for(const e of t)c.commits.hours[e]=(c.commits.hours[e]??0)+1;c.commits.hours.max=_Mathmax(...Object.values(c.commits.hours)),c.commits.hour=t.length?`${Object.entries(c.commits.hours).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]}`.padStart(2,"0"):NaN}if(console.debug(`metrics/compute/${e}/plugins > habits > searching indent style`),f.map(({patch:e})=>e.match(/((?:\t)|(?: )) /gm)??[]).forEach(e=>c.indents[/^\t/.test(e)?"tabs":"spaces"]++),c.indents.style=c.indents.spaces>c.indents.tabs?"spaces":c.indents.tabs>c.indents.spaces?"tabs":"",p){console.debug(`metrics/compute/${e}/plugins > habits > searching recently used languages using linguist`);const t={win32:"wsl"}[process.platform]??"";if(f.length&&(await r.run(`${t} which github-linguist`))){c.linguist.available=!0;const n=r.paths.join(r.os.tmpdir(),`${h[0]?.actor?.id??0}`);console.debug(`metrics/compute/${e}/plugins > habits > creating temp dir ${n} with ${f.length} files`),await r.fs.mkdir(n,{recursive:!0}),await Promise.all(f.map(async({name:e,patch:t},a)=>await r.fs.writeFile(r.paths.join(n,`${a}${r.paths.extname(e)}`),t))),console.debug(`metrics/compute/${e}/plugins > habits > creating temp git repository`),await r.run(`git init && git add . && git config user.name "linguist" && git config user.email "null@github.com" && git commit -m "linguist"`,{cwd:n}).catch(console.debug),await r.run(`git status`,{cwd:n}),console.debug(`metrics/compute/${e}/plugins > habits > running linguist`),(await r.run(`${t} github-linguist --breakdown`,{cwd:n})).split("\n").map(e=>e.match(/(?[\d.]+)%\s+(?\w+)/)?.groups).filter(e=>e).map(({value:e,language:t})=>c.linguist.languages[t]=(c.linguist.languages[t]??0)+e/100),c.linguist.ordered=Object.entries(c.linguist.languages).sort(([e,t],[r,n])=>n-t)}else console.debug(`metrics/compute/${e}/plugins > habits > linguist not available`)}return c}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}},isocalendar:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.isocalendar)return null;let{"isocalendar.duration":a="half-year"}=r;a=["full-year","half-year"].includes(a)?a:"full-year";const o=new Date,s=new Date(o);"full-year"===a?s.setFullYear(o.getFullYear()-1):s.setHours(-4320);const l=new Date(s);l.setHours(-336),console.debug(`metrics/compute/${e}/plugins > isocalendar > querying api`);const d={};for(const[r,n,a]of[["padding",l,s],["weeks",s,o]]){console.debug(`metrics/compute/${e}/plugins > isocalendar > loading ${r} from "${n.toISOString()}" to "${a.toISOString()}"`);const{user:{calendar:{contributionCalendar:{weeks:o}}}}=await t(` + `);console.debug(`metrics/compute/${e}/plugins > gists > processing ${a.nodes.length} gists`);let o=0,i=0,s=0;for(const e of a.nodes)e.isFork||(o+=e.stargazerCount,i+=e.forks.totalCount,s+=e.comments.totalCount);return{totalCount:a.totalCount,stargazers:o,forks:i,comments:s}}catch(e){throw{error:{message:"An error occured",instance:e}}}},habits:async function({login:e,rest:t,imports:r,data:n,q:a},{enabled:o=!1,from:i=100}={}){try{if(!o||!a.habits)return null;let{"habits.from":s=i.from??500,"habits.days":l=14,"habits.facts":d=!0,"habits.charts":p=!1}=a;s=_Mathmax(1,_Mathmin(1e3,+s)),l=_Mathmax(1,_Mathmin(30,+s));const c={facts:d,charts:p,commits:{hour:NaN,hours:{},day:NaN,days:{}},indents:{style:"",spaces:0,tabs:0},linguist:{available:!1,ordered:[],languages:{}}},u=_Mathceil(s/100),m=n.config.timezone?.offset??0;console.debug(`metrics/compute/${e}/plugins > habits > querying api`);const g=[];try{for(let r=0;r habits > loading page ${r}`),g.push(...(await t.activity.listEventsForAuthenticatedUser({username:e,per_page:100,page:r})).data)}catch{console.debug(`metrics/compute/${e}/plugins > habits > no more page to load`)}console.debug(`metrics/compute/${e}/plugins > habits > ${g.length} events loaded`);const h=g.filter(({type:e})=>"PushEvent"===e).filter(({actor:t})=>t.login===e).filter(({created_at:e})=>new Date(e)>new Date(Date.now()-1e3*(60*(60*(24*l)))));console.debug(`metrics/compute/${e}/plugins > habits > filtered out ${h.length} push events over last ${l} days`),console.debug(`metrics/compute/${e}/plugins > habits > loading patches`);const f=[...(await Promise.allSettled(h.flatMap(({payload:e})=>e.commits).map(e=>e.url).map(async e=>(await t.request(e)).data.files)))].filter(({status:e})=>"fulfilled"===e).map(({value:e})=>e).flatMap(e=>e.map(e=>({name:r.paths.basename(e.filename),patch:e.patch??""}))).map(({name:e,patch:t})=>({name:e,patch:t.split("\n").filter(e=>/^[-+]/.test(e)).map(e=>e.substring(1)).join("\n")}));{console.debug(`metrics/compute/${e}/plugins > habits > searching most active day of week`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getDay());for(const e of t)c.commits.days[e]=(c.commits.days[e]??0)+1;c.commits.days.max=_Mathmax(...Object.values(c.commits.days)),c.commits.day=t.length?["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][Object.entries(c.commits.days).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]]??NaN:NaN}{console.debug(`metrics/compute/${e}/plugins > habits > searching most active time of day`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getHours());for(const e of t)c.commits.hours[e]=(c.commits.hours[e]??0)+1;c.commits.hours.max=_Mathmax(...Object.values(c.commits.hours)),c.commits.hour=t.length?`${Object.entries(c.commits.hours).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]}`.padStart(2,"0"):NaN}if(console.debug(`metrics/compute/${e}/plugins > habits > searching indent style`),f.map(({patch:e})=>e.match(/((?:\t)|(?: )) /gm)??[]).forEach(e=>c.indents[/^\t/.test(e)?"tabs":"spaces"]++),c.indents.style=c.indents.spaces>c.indents.tabs?"spaces":c.indents.tabs>c.indents.spaces?"tabs":"",p){console.debug(`metrics/compute/${e}/plugins > habits > searching recently used languages using linguist`);const t={win32:"wsl"}[process.platform]??"";if(f.length&&(await r.run(`${t} which github-linguist`))){c.linguist.available=!0;const n=r.paths.join(r.os.tmpdir(),`${h[0]?.actor?.id??0}`);console.debug(`metrics/compute/${e}/plugins > habits > creating temp dir ${n} with ${f.length} files`),await r.fs.mkdir(n,{recursive:!0}),await Promise.all(f.map(async({name:e,patch:t},a)=>await r.fs.writeFile(r.paths.join(n,`${a}${r.paths.extname(e)}`),t))),console.debug(`metrics/compute/${e}/plugins > habits > creating temp git repository`),await r.run(`git init && git add . && git config user.name "linguist" && git config user.email "null@github.com" && git commit -m "linguist"`,{cwd:n}).catch(console.debug),await r.run(`git status`,{cwd:n}),console.debug(`metrics/compute/${e}/plugins > habits > running linguist`),(await r.run(`${t} github-linguist --breakdown`,{cwd:n})).split("\n").map(e=>e.match(/(?[\d.]+)%\s+(?\w+)/)?.groups).filter(e=>e).map(({value:e,language:t})=>c.linguist.languages[t]=(c.linguist.languages[t]??0)+e/100),c.linguist.ordered=Object.entries(c.linguist.languages).sort(([e,t],[r,n])=>n-t)}else console.debug(`metrics/compute/${e}/plugins > habits > linguist not available`)}return c}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}},isocalendar:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.isocalendar)return null;let{"isocalendar.duration":a="half-year"}=r;a=["full-year","half-year"].includes(a)?a:"full-year";const o=new Date,s=new Date(o);"full-year"===a?s.setFullYear(o.getFullYear()-1):s.setHours(-4320);const l=new Date(s);l.setHours(-336),console.debug(`metrics/compute/${e}/plugins > isocalendar > querying api`);const d={};for(const[r,n,a]of[["padding",l,s],["weeks",s,o]]){console.debug(`metrics/compute/${e}/plugins > isocalendar > loading ${r} from "${n.toISOString()}" to "${a.toISOString()}"`);const{user:{calendar:{contributionCalendar:{weeks:o}}}}=await t(` query Calendar { user(login: "${e}") { calendar:contributionsCollection(from: "${n.toISOString()}", to: "${a.toISOString()}") { @@ -63,13 +63,13 @@ module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math } } } - `);console.debug(`metrics/compute/${e}/plugins > posts > processing ${o.nodes.length} projects`);const i=[];for(const e of o.nodes){const t=(Date.now()-new Date(e.updatedAt).getTime())/86400000;let r=1>t?"less than 1 day ago":30>t?`${_Mathfloor(t)} day${2<=t?"s":""} ago`:new Date(e.updatedAt).toDateString().substring(4);const{enabled:n,todoCount:a,inProgressCount:o,doneCount:s}=e.progress;i.push({name:e.name,updated:r,progress:{enabled:n,todo:a,doing:o,done:s,total:a+o+s}})}return{list:i,totalCount:o.totalCount}}catch(e){let t="An error occured";throw e.errors?.map(({type:e})=>e)?.includes("INSUFFICIENT_SCOPES")&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},topics:async function({login:e,imports:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.topics)return null;let{"topics.sort":a="stars","topics.limit":o=15}=r;const i="random"===a;a={starred:"created",activity:"updated",stars:"stars",random:"created"}[a]??"starred",o=_Mathmax(1,_Mathmin(20,+o)),console.debug(`metrics/compute/${e}/plugins > topics > searching starred topics`);let s=[];console.debug(`metrics/compute/${e}/plugins > topics > starting browser`);const l=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > topics > started ${await l.version()}`);const d=await l.newPage();for(let t=1;100>=t;t++){console.debug(`metrics/compute/${e}/plugins > topics > loading page ${t}`),await d.goto(`https://github.com/stars/${e}/topics?direction=desc&page=${t}&sort=${a}`);const r=d.mainFrame();await Promise.race([r.waitForSelector("ul.repo-list"),r.waitForSelector(".blankslate")]);const n=await r.evaluate(()=>[...document.querySelectorAll("ul.repo-list li")].map(e=>({name:e.querySelector(".f3").innerText,description:e.querySelector(".f5").innerText,icon:e.querySelector("img")?.src??null})));if(console.debug(`metrics/compute/${e}/plugins > topics > extracted ${n.length} starred topics`),!n.length){console.debug(`metrics/compute/${e}/plugins > topics > no more page to load`);break}s.push(...n)}if(console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await l.close(),i&&(console.debug(`metrics/compute/${e}/plugins > topics > shuffling topics`),s=t.shuffle(s)),0 topics > keeping only ${o} topics`);const t=s.slice(o);s=s.slice(0,o),s.push({name:`And ${t.length} more...`,description:t.map(({name:e})=>e).join(", "),icon:null})}console.debug(`metrics/compute/${e}/plugins > topics > loading artworks`);for(const r of s)r.icon&&(console.debug(`metrics/compute/${e}/plugins > topics > processing ${r.name}`),r.icon=await t.imgb64(r.icon)),r.description=t.htmlescape(r.description);return{list:s}}catch(e){throw{error:{message:"An error occured",instance:e}}}},traffic:async function({login:e,imports:t,data:r,rest:n,q:a},{enabled:o=!1}={}){try{if(!o||!a.traffic)return null;const i=r.user.repositories.nodes.map(({name:e})=>e)??[];console.debug(`metrics/compute/${e}/plugins > traffic > querying api`);const s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return console.debug(`metrics/compute/${e}/plugins > traffic > computing stats`),l.filter(({data:e})=>e).map(({data:{count:e,uniques:t}})=>(s.count+=e,s.uniques+=t)),s.count=t.format(s.count),s.uniques=t.format(s.uniques),{views:s}}catch(e){let t="An error occured";throw 403===e.status&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},tweets:async function({login:e,imports:t,data:r,q:n},{enabled:a=!1,token:o=null}={}){try{if(!a||!n.tweets)return null;let{"tweets.limit":i=2}=n;i=_Mathmax(1,_Mathmin(10,+i));const s=r.user.twitterUsername;console.debug(`metrics/compute/${e}/plugins > tweets > loading twitter profile (@${s})`);const{data:{data:l=null}}=await t.axios.get(`https://api.twitter.com/2/users/by/username/${s}?user.fields=profile_image_url,verified`,{headers:{Authorization:`Bearer ${o}`}});console.debug(`metrics/compute/${e}/plugins > tweets > querying api`);const{data:{data:d=[]}}=await t.axios.get(`https://api.twitter.com/2/tweets/search/recent?query=from:${s}&tweet.fields=created_at&expansions=entities.mentions.username`,{headers:{Authorization:`Bearer ${o}`}});return l?.profile_image_url&&(console.debug(`metrics/compute/${e}/plugins > tweets > loading profile image`),l.profile_image=await t.imgb64(l.profile_image_url)),0 tweets > keeping only ${i} tweets`),d.splice(i)),await Promise.all(d.map(async r=>{r.mentions=r.entities?.mentions.map(({username:e})=>e)??[],console.debug(`metrics/compute/${e}/plugins > tweets > formatting tweet ${r.id}`),r.text=t.htmlescape(t.htmlescape(r.text,{"<":!0,">":!0}).replace(new RegExp(`@(${r.mentions.join("|")})`,"gi"),` @$1 `).replace(/(?#$1 `).replace(/\n/g,"
").replace(/https?:[/][/](t.co[/]\w+)/g,` $1 `),{"&":!0})})),{username:s,profile:l,list:d}}catch(e){let t="An error occured";if(e.isAxiosError){const r=e.response?.status,n=e.response?.data?.errors?.[0]?.message??null;t=`API returned ${r}${n?` (${n})`:""}`,e=e.response?.data??null}throw{error:{message:t,instance:e}}}}},E={classic:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments)},terminal:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments),t.raw=!0}};var A=r(34651),O=r(78835),P=r(63129);const L=require("fs/promises");var z=r(12087),R=r(3584),I=r.t(R),M=r(32882),W=r.t(M),q=r(29483),B=r.t(q);(async function(){const[e,t,n,a,o]=[W,B,I,h,f].map(e=>e&&e.default?e.default:e),i=(e,t=!1)=>"string"==typeof e?/^(?:[Tt]rue|[Oo]n|[Yy]es)$/.test(e):t,s=[];try{console.log(`GitHub metrics`),console.log(`========================================================`),console.log(`Version | 2.9.0`),process.on("unhandledRejection",e=>{throw e}),"push"===t.context.eventName&&t.context.payload&&t.context.payload.head_commit&&/\[Skip GitHub Action\]/.test(t.context.payload.head_commit.message)&&(console.log(`Skipped because [Skip GitHub Action] is in commit message`),process.exit(0));const l=await a({log:!1});console.log(`Configuration | loaded`);const d=e.getInput("template")||"classic";console.log(`Template to use | ${d}`);const p=e.getInput("token")||"";if(console.log(`Github token | ${p?"provided":"missing"}`),!p)throw new Error("You must provide a valid GitHub token to gather your metrics");const c=n.graphql.defaults({headers:{authorization:`token ${p}`}});console.log(`Github GraphQL API | ok`);const u=t.getOctokit(p);console.log(`Github REST API | ok`);const m=e.getInput("filename")||"github-metrics.svg";console.log(`SVG output file | ${m}`);const g=i(e.getInput("optimize"),!0);l.optimize=g,console.log(`SVG optimization | ${g}`);let h;try{h=(await u.users.getAuthenticated()).data.login}catch{h=t.context.repo.owner}const f=e.getInput("user")||h;console.log(`GitHub user | ${f}`);const y=i(e.getInput("debug"));y||(console.debug=e=>s.push(e)),console.log(`Debug mode | ${y}`);const b=(e.getInput("debug_flags")||"").split(" ").filter(e=>e);console.log(`Debug flags | ${b.join(" ")}`);const S={};let x=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)S[`base.${e}`]=x.includes(e);console.log(`Base parts | ${x.join(", ")||"(none)"}`);const v={"config.timezone":e.getInput("config_timezone")||""};console.log(`Timezone | ${v["config.timezone"]||"(none)"}`);const k={lines:{enabled:i(e.getInput("plugin_lines"))},traffic:{enabled:i(e.getInput("plugin_traffic"))},pagespeed:{enabled:i(e.getInput("plugin_pagespeed"))},habits:{enabled:i(e.getInput("plugin_habits"))},languages:{enabled:i(e.getInput("plugin_languages"))},followup:{enabled:i(e.getInput("plugin_followup"))},music:{enabled:i(e.getInput("plugin_music"))},posts:{enabled:i(e.getInput("plugin_posts"))},isocalendar:{enabled:i(e.getInput("plugin_isocalendar"))},gists:{enabled:i(e.getInput("plugin_gists"))},topics:{enabled:i(e.getInput("plugin_topics"))},projects:{enabled:i(e.getInput("plugin_projects"))},tweets:{enabled:i(e.getInput("plugin_tweets"))}};let C=Object.fromEntries(Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),k.pagespeed.enabled&&(k.pagespeed.token=e.getInput("plugin_pagespeed_token")||"",C[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),console.log(`Pagespeed token | ${k.pagespeed.token?"provided":"missing"}`),console.log(`Pagespeed detailed | ${C["pagespeed.detailed"]}`)),k.languages.enabled){for(const t of["ignored","skipped"])C[`languages.${t}`]=e.getInput(`plugin_languages_${t}`)||null;console.log(`Languages ignored | ${C["languages.ignored"]}`),console.log(`Languages skipped repos | ${C["languages.skipped"]}`)}if(k.habits.enabled){for(const t of["from","days"])C[`habits.${t}`]=e.getInput(`plugin_habits_${t}`)||null;C[`habits.facts`]=i(e.getInput(`plugin_habits_facts`)),C[`habits.charts`]=i(e.getInput(`plugin_habits_charts`)),console.log(`Habits facts | ${C["habits.facts"]}`),console.log(`Habits charts | ${C["habits.charts"]}`),console.log(`Habits events to use | ${C["habits.from"]}`),console.log(`Habits days to keep | ${C["habits.days"]}`)}if(k.music.enabled){k.music.token=e.getInput("plugin_music_token")||"";for(const t of["provider","mode","playlist","limit"])C[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${C["music.provider"]}`),console.log(`Music plugin mode | ${C["music.mode"]}`),console.log(`Music playlist | ${C["music.playlist"]}`),console.log(`Music tracks limit | ${C["music.limit"]}`),console.log(`Music token | ${k.music.token?"provided":"missing"}`)}if(k.posts.enabled){for(const t of["source","limit"])C[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts provider | ${C["posts.provider"]}`),console.log(`Posts limit | ${C["posts.limit"]}`)}if(k.isocalendar.enabled&&(C["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")||"half-year",console.log(`Isocalendar duration | ${C["isocalendar.duration"]}`)),k.topics.enabled){for(const t of["sort","limit"])C[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics sort mode | ${C["topics.sort"]}`),console.log(`Topics limit | ${C["topics.limit"]}`)}if(k.projects.enabled){for(const t of["limit"])C[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${C["projects.limit"]}`)}if(k.tweets.enabled){k.tweets.token=e.getInput("plugin_tweets_token")||null;for(const t of["limit"])C[`tweets.${t}`]=e.getInput(`plugin_tweets_${t}`)||null;console.log(`Twitter token | ${k.tweets.token?"provided":"missing"}`),console.log(`Tweets limit | ${C["tweets.limit"]}`)}const _=+e.getInput("repositories")||100;console.log(`Repositories to use | ${_}`);const w=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${w?"die":"ignore"}`),C={...C,base:!1,...S,...v,repositories:_,template:d};const T=await o({login:f,q:C,dflags:b},{graphql:c,rest:u,plugins:k,conf:l,die:w});console.log(`Render | complete`);const E=i(e.getInput("verify"));if(console.log(`Verify SVG | ${E}`),E){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(T);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const A=i(e.getInput("dryrun"));if(A)console.log(`Dry-run | complete`);else{const r=t.context.ref.replace(/^refs[/]heads[/]/,"");console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`),console.log(`Branch | ${r}`);const n=e.getInput("committer_token")||e.getInput("token")||"";if(console.log(`Committer token | ${n?"provided":"missing"}`),!n)throw new Error("You must provide a valid GitHub token to commit your metrics");const a=t.getOctokit(n);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await a.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (unknown)`)}let o=null;try{const{repository:{object:{oid:e}}}=await c(` + `);console.debug(`metrics/compute/${e}/plugins > posts > processing ${o.nodes.length} projects`);const i=[];for(const e of o.nodes){const t=(Date.now()-new Date(e.updatedAt).getTime())/86400000;let r=1>t?"less than 1 day ago":30>t?`${_Mathfloor(t)} day${2<=t?"s":""} ago`:new Date(e.updatedAt).toDateString().substring(4);const{enabled:n,todoCount:a,inProgressCount:o,doneCount:s}=e.progress;i.push({name:e.name,updated:r,progress:{enabled:n,todo:a,doing:o,done:s,total:a+o+s}})}return{list:i,totalCount:o.totalCount}}catch(e){let t="An error occured";throw e.errors?.map(({type:e})=>e)?.includes("INSUFFICIENT_SCOPES")&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},topics:async function({login:e,imports:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.topics)return null;let{"topics.sort":a="stars","topics.limit":o=15}=r;const i="random"===a;a={starred:"created",activity:"updated",stars:"stars",random:"created"}[a]??"starred",o=_Mathmax(1,_Mathmin(20,+o)),console.debug(`metrics/compute/${e}/plugins > topics > searching starred topics`);let s=[];console.debug(`metrics/compute/${e}/plugins > topics > starting browser`);const l=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > topics > started ${await l.version()}`);const d=await l.newPage();for(let t=1;100>=t;t++){console.debug(`metrics/compute/${e}/plugins > topics > loading page ${t}`),await d.goto(`https://github.com/stars/${e}/topics?direction=desc&page=${t}&sort=${a}`);const r=d.mainFrame();await Promise.race([r.waitForSelector("ul.repo-list"),r.waitForSelector(".blankslate")]);const n=await r.evaluate(()=>[...document.querySelectorAll("ul.repo-list li")].map(e=>({name:e.querySelector(".f3").innerText,description:e.querySelector(".f5").innerText,icon:e.querySelector("img")?.src??null})));if(console.debug(`metrics/compute/${e}/plugins > topics > extracted ${n.length} starred topics`),!n.length){console.debug(`metrics/compute/${e}/plugins > topics > no more page to load`);break}s.push(...n)}if(console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await l.close(),i&&(console.debug(`metrics/compute/${e}/plugins > topics > shuffling topics`),s=t.shuffle(s)),0 topics > keeping only ${o} topics`);const t=s.slice(o);s=s.slice(0,o),s.push({name:`And ${t.length} more...`,description:t.map(({name:e})=>e).join(", "),icon:null})}console.debug(`metrics/compute/${e}/plugins > topics > loading artworks`);for(const r of s)r.icon&&(console.debug(`metrics/compute/${e}/plugins > topics > processing ${r.name}`),r.icon=await t.imgb64(r.icon)),r.description=t.htmlescape(r.description);return{list:s}}catch(e){throw{error:{message:"An error occured",instance:e}}}},traffic:async function({login:e,imports:t,data:r,rest:n,q:a},{enabled:o=!1}={}){try{if(!o||!a.traffic)return null;const i=r.user.repositories.nodes.map(({name:e})=>e)??[];console.debug(`metrics/compute/${e}/plugins > traffic > querying api`);const s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return console.debug(`metrics/compute/${e}/plugins > traffic > computing stats`),l.filter(({data:e})=>e).map(({data:{count:e,uniques:t}})=>(s.count+=e,s.uniques+=t)),s.count=t.format(s.count),s.uniques=t.format(s.uniques),{views:s}}catch(e){let t="An error occured";throw 403===e.status&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},tweets:async function({login:e,imports:t,data:r,q:n},{enabled:a=!1,token:o=null}={}){try{if(!a||!n.tweets)return null;let{"tweets.limit":i=2}=n;i=_Mathmax(1,_Mathmin(10,+i));const s=r.user.twitterUsername;console.debug(`metrics/compute/${e}/plugins > tweets > loading twitter profile (@${s})`);const{data:{data:l=null}}=await t.axios.get(`https://api.twitter.com/2/users/by/username/${s}?user.fields=profile_image_url,verified`,{headers:{Authorization:`Bearer ${o}`}});console.debug(`metrics/compute/${e}/plugins > tweets > querying api`);const{data:{data:d=[]}}=await t.axios.get(`https://api.twitter.com/2/tweets/search/recent?query=from:${s}&tweet.fields=created_at&expansions=entities.mentions.username`,{headers:{Authorization:`Bearer ${o}`}});return l?.profile_image_url&&(console.debug(`metrics/compute/${e}/plugins > tweets > loading profile image`),l.profile_image=await t.imgb64(l.profile_image_url)),0 tweets > keeping only ${i} tweets`),d.splice(i)),await Promise.all(d.map(async r=>{r.mentions=r.entities?.mentions.map(({username:e})=>e)??[],console.debug(`metrics/compute/${e}/plugins > tweets > formatting tweet ${r.id}`),r.text=t.htmlescape(t.htmlescape(r.text,{"<":!0,">":!0}).replace(new RegExp(`@(${r.mentions.join("|")})`,"gi"),` @$1 `).replace(/(?#$1 `).replace(/\n/g,"
").replace(/https?:[/][/](t.co[/]\w+)/g,` $1 `),{"&":!0})})),{username:s,profile:l,list:d}}catch(e){let t="An error occured";if(e.isAxiosError){const r=e.response?.status,n=e.response?.data?.errors?.[0]?.message??null;t=`API returned ${r}${n?` (${n})`:""}`,e=e.response?.data??null}throw{error:{message:t,instance:e}}}}},E={classic:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments)},terminal:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments),t.raw=!0}};var A=r(34651),O=r(78835),P=r(63129);const L=require("fs/promises");var z=r(12087),R=r(3584),I=r.t(R),M=r(32882),W=r.t(M),q=r(29483),B=r.t(q);(async function(){const[e,t,n,a,o]=[W,B,I,h,f].map(e=>e&&e.default?e.default:e),i=(e,t=!1)=>"string"==typeof e?/^(?:[Tt]rue|[Oo]n|[Yy]es)$/.test(e):t,s=[];try{console.log(`GitHub metrics`),console.log(`========================================================`),console.log(`Version | 2.9.0`),process.on("unhandledRejection",e=>{throw e}),"push"===t.context.eventName&&t.context.payload&&t.context.payload.head_commit&&/\[Skip GitHub Action\]/.test(t.context.payload.head_commit.message)&&(console.log(`Skipped because [Skip GitHub Action] is in commit message`),process.exit(0));const l=await a({log:!1});console.log(`Configuration | loaded`);const d=e.getInput("template")||"classic";console.log(`Template to use | ${d}`);const p=e.getInput("token")||"";if(console.log(`Github token | ${p?"provided":"missing"}`),!p)throw new Error("You must provide a valid GitHub token to gather your metrics");const c=n.graphql.defaults({headers:{authorization:`token ${p}`}});console.log(`Github GraphQL API | ok`);const u=t.getOctokit(p);console.log(`Github REST API | ok`);const m=e.getInput("filename")||"github-metrics.svg";console.log(`SVG output file | ${m}`);const g=i(e.getInput("optimize"),!0);l.optimize=g,console.log(`SVG optimization | ${g}`);let h;try{h=(await u.users.getAuthenticated()).data.login}catch{h=t.context.repo.owner}const f=e.getInput("user")||h;console.log(`GitHub user | ${f}`);const y=i(e.getInput("debug"));y||(console.debug=e=>s.push(e)),console.log(`Debug mode | ${y}`);const b=(e.getInput("debug_flags")||"").split(" ").filter(e=>e);console.log(`Debug flags | ${b.join(" ")||"(none)"}`);const S={};let x=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)S[`base.${e}`]=x.includes(e);console.log(`Base parts | ${x.join(", ")||"(none)"}`);const v={"config.timezone":e.getInput("config_timezone")||""};console.log(`Timezone | ${v["config.timezone"]||"(system default)"}`);const k={lines:{enabled:i(e.getInput("plugin_lines"))},traffic:{enabled:i(e.getInput("plugin_traffic"))},pagespeed:{enabled:i(e.getInput("plugin_pagespeed"))},habits:{enabled:i(e.getInput("plugin_habits"))},languages:{enabled:i(e.getInput("plugin_languages"))},followup:{enabled:i(e.getInput("plugin_followup"))},music:{enabled:i(e.getInput("plugin_music"))},posts:{enabled:i(e.getInput("plugin_posts"))},isocalendar:{enabled:i(e.getInput("plugin_isocalendar"))},gists:{enabled:i(e.getInput("plugin_gists"))},topics:{enabled:i(e.getInput("plugin_topics"))},projects:{enabled:i(e.getInput("plugin_projects"))},tweets:{enabled:i(e.getInput("plugin_tweets"))}};let C=Object.fromEntries(Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),k.pagespeed.enabled&&(k.pagespeed.token=e.getInput("plugin_pagespeed_token")||"",C[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),console.log(`Pagespeed token | ${k.pagespeed.token?"provided":"missing"}`),console.log(`Pagespeed detailed | ${C["pagespeed.detailed"]}`)),k.languages.enabled){for(const t of["ignored","skipped"])C[`languages.${t}`]=e.getInput(`plugin_languages_${t}`)||null;console.log(`Languages ignored | ${C["languages.ignored"]||"(none)"}`),console.log(`Languages skipped repos | ${C["languages.skipped"]||"(none)"}`)}if(k.habits.enabled){for(const t of["from","days"])C[`habits.${t}`]=e.getInput(`plugin_habits_${t}`)||null;C[`habits.facts`]=i(e.getInput(`plugin_habits_facts`)),C[`habits.charts`]=i(e.getInput(`plugin_habits_charts`)),console.log(`Habits facts | ${C["habits.facts"]}`),console.log(`Habits charts | ${C["habits.charts"]}`),console.log(`Habits events to use | ${C["habits.from"]||"(default)"}`),console.log(`Habits days to keep | ${C["habits.days"]||"(default)"}`)}if(k.music.enabled){k.music.token=e.getInput("plugin_music_token")||"";for(const t of["provider","mode","playlist","limit"])C[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${C["music.provider"]||"(none)"}`),console.log(`Music plugin mode | ${C["music.mode"]||"(none)"}`),console.log(`Music playlist | ${C["music.playlist"]||"(none)"}`),console.log(`Music tracks limit | ${C["music.limit"]||"(default)"}`),console.log(`Music token | ${k.music.token?"provided":"missing"}`)}if(k.posts.enabled){for(const t of["source","limit"])C[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts source | ${C["posts.source"]||"(none)"}`),console.log(`Posts limit | ${C["posts.limit"]||"(default)"}`)}if(k.isocalendar.enabled&&(C["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")||"half-year",console.log(`Isocalendar duration | ${C["isocalendar.duration"]}`)),k.topics.enabled){for(const t of["sort","limit"])C[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics sort mode | ${C["topics.sort"]||"(default)"}`),console.log(`Topics limit | ${C["topics.limit"]||"(default)"}`)}if(k.projects.enabled){for(const t of["limit"])C[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${C["projects.limit"]||"(default)"}`)}if(k.tweets.enabled){k.tweets.token=e.getInput("plugin_tweets_token")||null;for(const t of["limit"])C[`tweets.${t}`]=e.getInput(`plugin_tweets_${t}`)||null;console.log(`Twitter token | ${k.tweets.token?"provided":"missing"}`),console.log(`Tweets limit | ${C["tweets.limit"]||"(default)"}`)}const _=+e.getInput("repositories")||100;console.log(`Repositories to use | ${_}`);const w=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${w?"die":"warn"}`),C={...C,base:!1,...S,...v,repositories:_,template:d};const T=await o({login:f,q:C,dflags:b},{graphql:c,rest:u,plugins:k,conf:l,die:w});console.log(`Render | complete`);const E=i(e.getInput("verify"));if(console.log(`Verify SVG | ${E}`),E){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(T);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const A=i(e.getInput("dryrun"));if(A)console.log(`Dry-run | complete`);else{const r=t.context.ref.replace(/^refs[/]heads[/]/,"");console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`),console.log(`Branch | ${r}`);const n=e.getInput("committer_token")||e.getInput("token")||"";if(console.log(`Committer token | ${n?"provided":"missing"}`),!n)throw new Error("You must provide a valid GitHub token to commit your metrics");const a=t.getOctokit(n);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await a.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (github-actions)`)}let o=null;try{const{repository:{object:{oid:e}}}=await c(` query Sha { repository(owner: "${t.context.repo.owner}", name: "${t.context.repo.repo}") { object(expression: "${r}:${m}") { ... on Blob { oid } } } } - `);o=e}catch(e){console.debug(e)}console.log(`Previous render sha | ${o??"none"}`),await a.repos.createOrUpdateFileContents({...t.context.repo,path:m,message:`Update ${m} - [Skip GitHub Action]`,content:Buffer.from(T).toString("base64"),...(o?{sha:o}:{})}),console.log(`Commit to repo | ok`)}console.log(`Success !`),process.exit(0)}catch(t){if(console.error(t),!i(e.getInput("debug")))for(const e of["_".repeat(64),"An error occured, logging debug message :",...s])console.log(e);e.setFailed(t.message),process.exit(1)}})().catch(()=>process.exit(1))},12541:function(e,t,r){"use strict";function n(e,t,r){const n=new p(e,t,r);process.stdout.write(n.toString()+s.EOL)}function a(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function o(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(12087)),l=r(74332);t.issueCommand=n,t.issue=function(e,t=""){n(e,{},t)};const d="::";class p{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r}toString(){let e=d+this.command;if(this.properties&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toCommandValue=function(e){return null===e||void 0===e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e)}},84873:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(35747),a=r(12087);class o{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(n.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(n.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${a.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:t}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}t.Context=o},29483:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokit=t.context=void 0;const i=o(r(84873)),s=r(24864);t.context=new i.Context,t.getOctokit=function(e,t){return new s.GitHub(s.getOctokitOptions(e,t))}},18145:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getApiBaseUrl=t.getProxyAgent=t.getAuthString=void 0;const i=o(r(66305));t.getAuthString=function(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");else if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return"string"==typeof t.auth?t.auth:`token ${e}`},t.getProxyAgent=function(e){const t=new i.HttpClient;return t.getAgent(e)},t.getApiBaseUrl=function(){return process.env.GITHUB_API_URL||"https://api.github.com"}},24864:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokitOptions=t.GitHub=t.context=void 0;const i=o(r(84873)),s=o(r(18145)),l=r(40812),d=r(5462),p=r(19227);t.context=new i.Context;const c=s.getApiBaseUrl(),u={baseUrl:c,request:{agent:s.getProxyAgent(c)}};t.GitHub=l.Octokit.plugin(d.restEndpointMethods,p.paginateRest).defaults(u),t.getOctokitOptions=function(e,t){const r=Object.assign({},t||{}),n=s.getAuthString(e,r);return n&&(r.auth=n),r}},66305:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98605),a=r(57211),o=r(92901);let i;var s;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(s=t.HttpCodes||(t.HttpCodes={}));var l;(function(e){e.Accept="accept",e.ContentType="content-type"})(l=t.Headers||(t.Headers={}));var d;(function(e){e.ApplicationJson="application/json"})(d=t.MediaTypes||(t.MediaTypes={})),t.getProxyUrl=function(e){let t=o.getProxyUrl(new URL(e));return t?t.href:""};const p=[s.MovedPermanently,s.ResourceMoved,s.SeeOther,s.TemporaryRedirect,s.PermanentRedirect],c=[s.BadGateway,s.ServiceUnavailable,s.GatewayTimeout],u=["OPTIONS","GET","DELETE","HEAD"];class m extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,m.prototype)}}t.HttpClientError=m;class g{constructor(e){this.message=e}readBody(){return new Promise(async e=>{let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e])}),this.message.on("end",()=>{e(t.toString())})})}}t.HttpClientResponse=g,t.isHttps=function(e){let t=new URL(e);return"https:"===t.protocol};class h{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=_Mathmax(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries))}options(e,t){return this.request("OPTIONS",e,null,t||{})}get(e,t){return this.request("GET",e,null,t||{})}del(e,t){return this.request("DELETE",e,null,t||{})}post(e,t,r){return this.request("POST",e,t,r||{})}patch(e,t,r){return this.request("PATCH",e,t,r||{})}put(e,t,r){return this.request("PUT",e,t,r||{})}head(e,t){return this.request("HEAD",e,null,t||{})}sendStream(e,t,r,n){return this.request(e,t,r,n)}async getJson(e,t={}){t[l.Accept]=this._getExistingOrDefaultHeader(t,l.Accept,d.ApplicationJson);let r=await this.get(e,t);return this._processResponse(r,this.requestOptions)}async postJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.post(e,n,r);return this._processResponse(a,this.requestOptions)}async putJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.put(e,n,r);return this._processResponse(a,this.requestOptions)}async patchJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.patch(e,n,r);return this._processResponse(a,this.requestOptions)}async request(e,t,r,n){if(this._disposed)throw new Error("Client has already been disposed.");let a=new URL(t),o=this._prepareRequest(e,a,n),i=this._allowRetries&&-1!=u.indexOf(e)?this._maxRetries+1:1,l=0,d;for(;l{this.requestRawWithCallback(e,t,function(e,t){e&&n(e),r(t)})})}requestRawWithCallback(e,t,r){let n;"string"==typeof t&&(e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let a=!1,o=(e,t)=>{a||(a=!0,r(e,t))},i=e.httpModule.request(e.options,e=>{let t=new g(e);o(null,t)});i.on("socket",e=>{n=e}),i.setTimeout(this._socketTimeout||180000,()=>{n&&n.end(),o(new Error("Request timeout: "+e.options.path),null)}),i.on("error",function(e){o(e,null)}),t&&"string"==typeof t&&i.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){i.end()}),t.pipe(i)):i.end()}getAgent(e){let t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const o={parsedUrl:t},i="https:"===o.parsedUrl.protocol;o.httpModule=i?a:n;const s=i?443:80;return o.options={},o.options.host=o.parsedUrl.hostname,o.options.port=o.parsedUrl.port?parseInt(o.parsedUrl.port):s,o.options.path=(o.parsedUrl.pathname||"")+(o.parsedUrl.search||""),o.options.method=e,o.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(o.options.headers["user-agent"]=this.userAgent),o.options.agent=this._getAgent(o.parsedUrl),this.handlers&&this.handlers.forEach(e=>{e.prepareRequest(o.options)}),o}_mergeHeaders(e){const t=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},t(this.requestOptions.headers),t(e)):t(e||{})}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=(e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}))(this.requestOptions.headers)[t]),e[t]||n||r}_getAgent(e){let t=o.getProxyUrl(e),s=t&&t.hostname,l;if(this._keepAlive&&s&&(l=this._proxyAgent),this._keepAlive&&!s&&(l=this._agent),!!l)return l;const d="https:"===e.protocol;let p=100;if(!this.requestOptions||(p=this.requestOptions.maxSockets||n.globalAgent.maxSockets),s){i||(i=r(34603));const e={maxSockets:p,keepAlive:this._keepAlive,proxy:{proxyAuth:`${t.username}:${t.password}`,host:t.hostname,port:t.port}};let n;const a="https:"===t.protocol;n=d?a?i.httpsOverHttps:i.httpsOverHttp:a?i.httpOverHttps:i.httpOverHttp,l=n(e),this._proxyAgent=l}if(this._keepAlive&&!l){const e={keepAlive:this._keepAlive,maxSockets:p};l=d?new a.Agent(e):new n.Agent(e),this._agent=l}return l||(l=d?a.globalAgent:n.globalAgent),d&&this._ignoreSslError&&(l.options=Object.assign(l.options||{},{rejectUnauthorized:!1})),l}_performExponentialBackoff(e){e=_Mathmin(10,e);const t=5*_Mathpow(2,e);return new Promise(e=>setTimeout(()=>e(),t))}static dateTimeDeserializer(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e}return t}async _processResponse(e,t){return new Promise(async(r,n)=>{const a=e.message.statusCode,o={statusCode:a,result:null,headers:{}};a==s.NotFound&&r(o);let i,l;try{l=await e.readBody(),l&&0{"use strict";function r(e){if(!e.hostname)return!1;let t=process.env.no_proxy||process.env.NO_PROXY||"";if(!t)return!1;let r;e.port?r=+e.port:"http:"===e.protocol?r=80:"https:"===e.protocol&&(r=443);let n=[e.hostname.toUpperCase()];"number"==typeof r&&n.push(`${n[0]}:${r}`);for(let r of t.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e))if(n.some(e=>e===r))return!0;return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.getProxyUrl=function(e){let t="https:"===e.protocol,n;if(r(e))return n;let a;return a=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY,a&&(n=new URL(a)),n},t.checkBypass=r},22899:(e,t)=>{"use strict";async function r(e){const t=3===e.split(/\./).length?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:t}}function n(e){return 3===e.split(/\./).length?`bearer ${e}`:`token ${e}`}async function a(e,t,r,a){const o=t.endpoint.merge(r,a);return o.headers.authorization=n(e),t(o)}Object.defineProperty(t,"__esModule",{value:!0});t.createTokenAuth=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if("string"!=typeof e)throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(r.bind(null,e),{hook:a.bind(null,e)})}},40812:(e,t,r)=>{"use strict";function n(e,t){if(null==e)return{};var r={},n=Object.keys(e),a,o;for(o=0;o{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),this.hook=t,!!e.authStrategy){const{authStrategy:r}=e,n=a(e,["authStrategy"]),o=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",o.hook),this.auth=o}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{const r=d.createTokenAuth(e.auth);t.wrap("request",r.hook),this.auth=r}const n=this.constructor;n.plugins.forEach(t=>{Object.assign(this,t(this,e))})}static defaults(e){const t=class extends this{constructor(...t){const r=t[0]||{};return"function"==typeof e?void super(e(r)):void super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugin(...e){var t;const r=this.plugins,n=(t=class extends this{},t.plugins=r.concat(e.filter(e=>!r.includes(e))),t);return n}}p.VERSION="3.2.4",p.plugins=[],t.Octokit=p},70412:(e,t,r)=>{"use strict";function n(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function a(e,t){const r=Object.assign({},e);return Object.keys(t).forEach(n=>{k.isPlainObject(t[n])?n in e?r[n]=a(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function o(e){for(const t in e)void 0===e[t]&&delete e[t];return e}function i(e,t,r){if("string"==typeof t){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else r=Object.assign({},t);r.headers=n(r.headers),o(r),o(r.headers);const i=a(e||{},r);return e&&e.mediaType.previews.length&&(i.mediaType.previews=e.mediaType.previews.filter(e=>!i.mediaType.previews.includes(e)).concat(i.mediaType.previews)),i.mediaType.previews=i.mediaType.previews.map(e=>e.replace(/-preview/,"")),i}function s(e,t){const r=/\?/.test(e)?"&":"?",n=Object.keys(t);return 0===n.length?e:e+r+n.map(e=>"q"===e?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${e}=${encodeURIComponent(t[e])}`).join("&")}function l(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function d(e){const t=e.match(_);return t?t.map(l).reduce((e,t)=>e.concat(t),[]):[]}function p(e,t){return Object.keys(e).filter(e=>!t.includes(e)).reduce((t,r)=>(t[r]=e[r],t),{})}function c(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(e){return /%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")),e}).join("")}function u(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function m(e,t,r){return t="+"===e||"#"===e?c(t):u(t),r?u(r)+"="+t:t}function g(e){return void 0!==e&&null!==e}function h(e){return";"===e||"&"===e||"?"===e}function f(e,t,r,n){var a=e[r],o=[];if(!(g(a)&&""!==a))";"===t?g(a)&&o.push(u(r)):""===a&&("&"===t||"?"===t)?o.push(u(r)+"="):""===a&&o.push("");else if("string"==typeof a||"number"==typeof a||"boolean"==typeof a)a=a.toString(),n&&"*"!==n&&(a=a.substring(0,parseInt(n,10))),o.push(m(t,a,h(t)?r:""));else if("*"===n)Array.isArray(a)?a.filter(g).forEach(function(e){o.push(m(t,e,h(t)?r:""))}):Object.keys(a).forEach(function(e){g(a[e])&&o.push(m(t,a[e],e))});else{const e=[];Array.isArray(a)?a.filter(g).forEach(function(r){e.push(m(t,r))}):Object.keys(a).forEach(function(r){g(a[r])&&(e.push(u(r)),e.push(m(t,a[r].toString())))}),h(t)?o.push(u(r)+"="+e.join(",")):0!==e.length&&o.push(e.join(","))}return o}function y(e){return{expand:b.bind(null,e)}}function b(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(e,n,a){if(n){let e="";const a=[];if(-1!==r.indexOf(n.charAt(0))&&(e=n.charAt(0),n=n.substr(1)),n.split(/,/g).forEach(function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);a.push(f(t,e,n[1],n[2]||n[3]))}),e&&"+"!==e){var o=",";return"?"===e?o="&":"#"!==e&&(o=e),(0===a.length?"":e)+a.join(o)}return a.join(",")}return c(a)})}function S(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a=p(e,["method","baseUrl","url","headers","request","mediaType"]),o;const i=d(r);r=y(r).expand(a),/^http/.test(r)||(r=e.baseUrl+r);const l=Object.keys(e).filter(e=>i.includes(e)).concat("baseUrl"),c=p(a,l),u=/application\/octet-stream/i.test(n.accept);if(!u&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),e.mediaType.previews.length)){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map(t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`}).join(",")}return["GET","HEAD"].includes(t)?r=s(r,c):"data"in c?o=c.data:Object.keys(c).length?o=c:n["content-length"]=0,n["content-type"]||"undefined"==typeof o||(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&"undefined"==typeof o&&(o=""),Object.assign({method:t,url:r,headers:n},"undefined"==typeof o?null:{body:o},e.request?{request:e.request}:null)}function x(e,t,r){return S(i(e,t,r))}function v(e,t){const r=i(e,t),n=x.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:v.bind(null,r),merge:i.bind(null,r),parse:S})}Object.defineProperty(t,"__esModule",{value:!0});var k=r(80641),C=r(1857);const _=/\{[^}]+\}/g,w=`octokit-endpoint.js/${"6.0.10"} ${C.getUserAgent()}`,T=v(null,{method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":w},mediaType:{format:"",previews:[]}});t.endpoint=T},3584:(e,t,r)=>{"use strict";function n(e,t,r){if("string"==typeof t&&r&&"query"in r)return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`));const n="string"==typeof t?Object.assign({query:t},r):t,a=Object.keys(n).reduce((e,t)=>l.includes(t)?(e[t]=n[t],e):(e.variables||(e.variables={}),e.variables[t]=n[t],e),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return d.test(o)&&(a.url=o.replace(d,"/api/graphql")),e(a).then(e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers))t[r]=e.headers[r];throw new s(a,{headers:t,data:e.data})}return e.data.data})}function a(e,t){const r=e.defaults(t);return Object.assign((e,t)=>n(r,e,t),{defaults:a.bind(null,r),endpoint:o.request.endpoint})}Object.defineProperty(t,"__esModule",{value:!0});var o=r(48826),i=r(1857);class s extends Error{constructor(e,t){const r=t.data.errors[0].message;super(r),Object.assign(this,t.data),Object.assign(this,{headers:t.headers}),this.name="GraphqlError",this.request=e,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const l=["method","baseUrl","url","headers","request","query","mediaType"],d=/\/api\/v3\/?$/,p=a(o.request,{headers:{"user-agent":`octokit-graphql.js/${"4.5.8"} ${i.getUserAgent()}`},method:"POST",url:"/graphql"});t.graphql=p,t.withCustomRequest=function(e){return a(e,{method:"POST",url:"/graphql"})}},19227:(e,t)=>{"use strict";function r(e){const t="total_count"in e.data&&!("url"in e.data);if(!t)return e;const r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;const o=Object.keys(e.data)[0],i=e.data[o];return e.data=i,"undefined"!=typeof r&&(e.data.incomplete_results=r),"undefined"!=typeof n&&(e.data.repository_selection=n),e.data.total_count=a,e}function n(e,t,n){const a="function"==typeof t?t.endpoint(n):e.request.endpoint(t,n),o="function"==typeof t?t:e.request,i=a.method,s=a.headers;let l=a.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!l)return{done:!0};const e=await o({method:i,url:l,headers:s}),t=r(e);return l=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:t}}})}}function a(e,t,r,a){return"function"==typeof r&&(a=r,r=void 0),o(e,[],n(e,t,r)[Symbol.asyncIterator](),a)}function o(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let i=!1;return t=t.concat(n?n(a.value,function(){i=!0}):a.value.data),i?t:o(e,t,r,n)})}function i(e){return{paginate:Object.assign(a.bind(null,e),{iterator:n.bind(null,e)})}}Object.defineProperty(t,"__esModule",{value:!0});const s=Object.assign(a,{iterator:n});i.VERSION="2.6.2",t.composePaginateRest=s,t.paginateRest=i},5462:(e,t)=>{"use strict";function r(e,t){const r={};for(const[a,o]of Object.entries(t))for(const[t,i]of Object.entries(o)){const[o,s,l]=i,[d,p]=o.split(/ /),c=Object.assign({method:d,url:p},s);r[a]||(r[a]={});const u=r[a];if(l){u[t]=n(e,a,t,c,l);continue}u[t]=e.request.defaults(c)}return r}function n(e,t,r,n,a){function o(...n){let o=i.endpoint.merge(...n);if(a.mapToData)return o=Object.assign({},o,{data:o[a.mapToData],[a.mapToData]:void 0}),i(o);if(a.renamed){const[n,o]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){const o=i.endpoint.merge(...n);for(const[n,i]of Object.entries(a.renamedParameters))n in o&&(e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${i}" instead`),i in o||(o[i]=o[n]),delete o[n]);return i(o)}return i(...n)}const i=e.request.defaults(n);return Object.assign(o,i)}function a(e){return r(e,o)}Object.defineProperty(t,"__esModule",{value:!0});const o={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits"]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};a.VERSION="4.4.1",t.restEndpointMethods=a},48364:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}Object.defineProperty(t,"__esModule",{value:!0});var a=r(86649),o=n(r(86343));const i=o(e=>console.warn(e));class s extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t,Object.defineProperty(this,"code",{get(){return i(new a.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),this.headers=r.headers||{};const n=Object.assign({},r.request);r.request.headers.authorization&&(n.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),n.url=n.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=n}}t.RequestError=s},48826:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}function a(e){return e.arrayBuffer()}function o(e){(d.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let t={},r,n;const o=e.request&&e.request.fetch||p;return o(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(o=>{n=o.url,r=o.status;for(const e of o.headers)t[e[0]]=e[1];if(204!==r&&205!==r){if("HEAD"===e.method){if(400>r)return;throw new c.RequestError(o.statusText,r,{headers:t,request:e})}if(304===r)throw new c.RequestError("Not modified",r,{headers:t,request:e});if(400<=r)return o.text().then(n=>{const a=new c.RequestError(n,r,{headers:t,request:e});try{let e=JSON.parse(a.message);Object.assign(a,e);let t=e.errors;a.message=a.message+": "+t.map(JSON.stringify).join(", ")}catch(t){}throw a});const n=o.headers.get("content-type");return /application\/json/.test(n)?o.json():!n||/^text\/|charset=utf-8$/.test(n)?o.text():a(o)}}).then(e=>({status:r,url:n,headers:t,data:e})).catch(r=>{if(r instanceof c.RequestError)throw r;throw new c.RequestError(r.message,500,{headers:t,request:e})})}function i(e,t){const r=e.defaults(t);return Object.assign(function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook)return o(r.parse(n));const a=(e,t)=>o(r.parse(r.merge(e,t)));return Object.assign(a,{endpoint:r,defaults:i.bind(null,r)}),n.request.hook(a,n)},{endpoint:r,defaults:i.bind(null,r)})}Object.defineProperty(t,"__esModule",{value:!0});var s=r(70412),l=r(1857),d=r(80641),p=n(r(22434)),c=r(48364);const u=i(s.endpoint,{headers:{"user-agent":`octokit-request.js/${"5.4.12"} ${l.getUserAgent()}`}});t.request=u},67208:function(e,t,r){"use strict";function n(e){return!!e&&"function"==typeof e.addRequest}function a(e){return!!e&&"function"==typeof e.addRequest}function o(){const{stack:e}=new Error;return"string"==typeof e&&e.split("\n").some(e=>-1!==e.indexOf("(https.js:"))}function i(e,t){return new i.Agent(e,t)}var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const l=r(28614),d=s(r(2929));(function(e){class t extends l.EventEmitter{constructor(e,t){super(),this.promisifiedCallback=void 0;let r=t;"function"==typeof e?this.callback=e:e&&(r=e),this.timeout=null,r&&"number"==typeof r.timeout&&(this.timeout=r.timeout),this.options=r||{},this.maxFreeSockets=1,this.maxSockets=1,this.sockets=[],this.requests=[]}get defaultPort(){return"number"==typeof this.explicitDefaultPort?this.explicitDefaultPort:o()?443:80}set defaultPort(e){this.explicitDefaultPort=e}get protocol(){return"string"==typeof this.explicitProtocol?this.explicitProtocol:o()?"https:":"http:"}set protocol(e){this.explicitProtocol=e}callback(){throw new Error("\"agent-base\" has no default implementation, you must subclass and override `callback()`")}addRequest(e,t){function r(t){e._hadError||(e.emit("error",t),e._hadError=!0)}function i(e){c||(null!==u&&(clearTimeout(u),u=null),r(e))}function s(t){function o(){g(i,p)}let i;if(!c){if(null!=u&&(clearTimeout(u),u=null),n(t)||a(t))return void t.addRequest(e,p);if(t)return i=t,i.on("free",o),void e.onSocket(i);const s=new Error(`no Duplex stream was returned to agent-base for \`${e.method} ${e.path}\``);r(s)}}const l=Object.assign({},t);"boolean"!=typeof l.secureEndpoint&&(l.secureEndpoint=o()),null==l.host&&(l.host="localhost"),null==l.port&&(l.port=l.secureEndpoint?443:80);const p=Object.assign(Object.assign({},this.options),l);p.host&&p.path&&delete p.path,delete p.agent,delete p.hostname,delete p._defaultAgent,delete p.defaultPort,delete p.createConnection,e._last=!0,e.shouldKeepAlive=!1;let c=!1,u=null;const m=this.timeout,g=this.freeSocket;if("function"!=typeof this.callback)return void r(new Error("`callback` is not defined"));this.promisifiedCallback||(3<=this.callback.length?this.promisifiedCallback=d.default(this.callback):this.promisifiedCallback=this.callback),"number"==typeof m&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,r){return new Promise((n,a)=>{e.call(this,t,r,(e,t)=>{e?a(e):n(t)})})}}},2390:(e,t,r)=>{e.exports=r(64579)},38007:(e,t,r)=>{"use strict";function n(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var a=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(e){e.headers.host=e.host,n(e,t,e.href)}}var a=r(19520),o=r(29801),i=r(92074),s=r(87481),l=r(98605),d=r(57211),p=r(75955).http,c=r(75955).https,u=r(78835),m=r(78761),g=r(35131),h=r(3034),f=r(95261),y=/https:?/;e.exports=function(e){return new Promise(function(t,r){var b=function(e){t(e)},S=function(e){r(e)},x=e.data,v=e.headers;if(v["User-Agent"]||v["user-agent"]||(v["User-Agent"]="axios/"+g.version),x&&!a.isStream(x)){if(Buffer.isBuffer(x));else if(a.isArrayBuffer(x))x=Buffer.from(new Uint8Array(x));else if(a.isString(x))x=Buffer.from(x,"utf-8");else return S(h("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));v["Content-Length"]=x.length}var k;if(e.auth){var C=e.auth.username||"",_=e.auth.password||"";k=C+":"+_}var w=i(e.baseURL,e.url),T=u.parse(w),E=T.protocol||"http:";if(!k&&T.auth){var A=T.auth.split(":"),O=A[0]||"",P=A[1]||"";k=O+":"+P}k&&delete v.Authorization;var L=y.test(E),z=L?e.httpsAgent:e.httpAgent,R={path:s(T.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:v,agent:z,agents:{http:e.httpAgent,https:e.httpsAgent},auth:k};e.socketPath?R.socketPath=e.socketPath:(R.hostname=T.hostname,R.port=T.port);var I=e.proxy;if(!I&&!1!==I){var M=E.slice(0,-1)+"_proxy",W=process.env[M]||process.env[M.toUpperCase()];if(W){var q=u.parse(W),B=process.env.no_proxy||process.env.NO_PROXY,N=!0;if(B){var D=B.split(",").map(function(e){return e.trim()});N=!D.some(function(e){return!!e&&("*"===e||"."===e[0]&&T.hostname.substr(T.hostname.length-e.length)===e||T.hostname===e)})}if(N&&(I={host:q.hostname,port:q.port,protocol:q.protocol},q.auth)){var F=q.auth.split(":");I.auth={username:F[0],password:F[1]}}}}I&&(R.headers.host=T.hostname+(T.port?":"+T.port:""),n(R,I,E+"//"+T.hostname+(T.port?":"+T.port:"")+R.path));var G=L&&(!I||y.test(I.protocol)),U;e.transport?U=e.transport:0===e.maxRedirects?U=G?d:l:(e.maxRedirects&&(R.maxRedirects=e.maxRedirects),U=G?c:p),-1e.maxContentLength&&(r.destroy(),S(h("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,n)))}),r.on("error",function(t){j.aborted||S(f(t,e,null,n))}),r.on("end",function(){var t=Buffer.concat(s);"arraybuffer"!==e.responseType&&(t=t.toString(e.responseEncoding),(!e.responseEncoding||"utf8"===e.responseEncoding)&&(t=a.stripBOM(t))),i.data=t,o(b,S,i)})}}});j.on("error",function(t){j.aborted&&"ERR_FR_TOO_MANY_REDIRECTS"!==t.code||S(f(t,e,null,j))}),e.timeout&&j.setTimeout(e.timeout,function(){j.abort(),S(h("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",j))}),e.cancelToken&&e.cancelToken.promise.then(function(e){j.aborted||(j.abort(),S(e))}),a.isStream(x)?x.on("error",function(t){S(f(t,e,null,j))}).pipe(j):j.end(x)})}},63500:(e,t,r)=>{"use strict";var n=r(19520),a=r(29801),o=r(47536),i=r(87481),s=r(92074),l=r(77912),d=r(11682),p=r(3034);e.exports=function(t){return new Promise(function(e,r){var c=t.data,u=t.headers;n.isFormData(c)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(t.auth){var g=t.auth.username||"",h=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";u.Authorization="Basic "+btoa(g+":"+h)}var f=s(t.baseURL,t.url);if(m.open(t.method.toUpperCase(),i(f,t.params,t.paramsSerializer),!0),m.timeout=t.timeout,m.onreadystatechange=function(){if(m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in m?l(m.getAllResponseHeaders()):null,o=t.responseType&&"text"!==t.responseType?m.response:m.responseText,i={data:o,status:m.status,statusText:m.statusText,headers:n,config:t,request:m};a(e,r,i),m=null}},m.onabort=function(){m&&(r(p("Request aborted",t,"ECONNABORTED",m)),m=null)},m.onerror=function(){r(p("Network Error",t,null,m)),m=null},m.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),r(p(e,t,"ECONNABORTED",m)),m=null},n.isStandardBrowserEnv()){var y=(t.withCredentials||d(f))&&t.xsrfCookieName?o.read(t.xsrfCookieName):void 0;y&&(u[t.xsrfHeaderName]=y)}if("setRequestHeader"in m&&n.forEach(u,function(e,t){"undefined"==typeof c&&"content-type"===t.toLowerCase()?delete u[t]:m.setRequestHeader(t,e)}),n.isUndefined(t.withCredentials)||(m.withCredentials=!!t.withCredentials),t.responseType)try{m.responseType=t.responseType}catch(r){if("json"!==t.responseType)throw r}"function"==typeof t.onDownloadProgress&&m.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(e){m&&(m.abort(),r(e),m=null)}),c||(c=null),m.send(c)})}},64579:(e,t,r)=>{"use strict";function n(e){var t=new i(e),r=o(i.prototype.request,t);return a.extend(r,i.prototype,t),a.extend(r,t),r}var a=r(19520),o=r(69339),i=r(10353),s=r(59807),l=r(6769),d=n(l);d.Axios=i,d.create=function(e){return n(s(d.defaults,e))},d.Cancel=r(56305),d.CancelToken=r(99576),d.isCancel=r(57822),d.all=function(e){return Promise.all(e)},d.spread=r(83202),d.isAxiosError=r(34722),e.exports=d,e.exports.default=d},56305:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},99576:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new a(e),t(r.reason))})}var a=r(56305);n.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},n.source=function(){var e=new n(function(e){t=e}),t;return{token:e,cancel:t}},e.exports=n},57822:e=>{"use strict";e.exports=function(e){return!!(e&&e.__CANCEL__)}},10353:(e,t,r)=>{"use strict";function n(e){this.defaults=e,this.interceptors={request:new i,response:new i}}var a=r(19520),o=r(87481),i=r(88030),s=r(18944),l=r(59807);n.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=l(this.defaults,e),e.method=e.method?e.method.toLowerCase():this.defaults.method?this.defaults.method.toLowerCase():"get";var t=[s,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)r=r.then(t.shift(),t.shift());return r},n.prototype.getUri=function(e){return e=l(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},a.forEach(["delete","get","head","options"],function(e){n.prototype[e]=function(t,r){return this.request(l(r||{},{method:e,url:t,data:(r||{}).data}))}}),a.forEach(["post","put","patch"],function(e){n.prototype[e]=function(t,r,n){return this.request(l(n||{},{method:e,url:t,data:r}))}}),e.exports=n},88030:(e,t,r)=>{"use strict";function n(){this.handlers=[]}var a=r(19520);n.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},n.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},n.prototype.forEach=function(e){a.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=n},92074:(e,t,r)=>{"use strict";var n=r(55470),a=r(65824);e.exports=function(e,t){return e&&!n(t)?a(e,t):t}},3034:(e,t,r)=>{"use strict";var n=r(95261);e.exports=function(e,t,r,a,o){var i=new Error(e);return n(i,t,r,a,o)}},18944:(e,t,r)=>{"use strict";function n(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var a=r(19520),o=r(62479),i=r(57822),s=r(6769);e.exports=function(e){n(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=a.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),a.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=e.adapter||s.adapter;return t(e).then(function(t){return n(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(n(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},95261:e=>{"use strict";e.exports=function(e,t,r,n,a){return e.config=t,r&&(e.code=r),e.request=n,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},59807:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){function r(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function a(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(e[a],t[a])}t=t||{};var o={},i=["url","method","data"],s=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],d=["validateStatus"];n.forEach(i,function(e){n.isUndefined(t[e])||(o[e]=r(void 0,t[e]))}),n.forEach(s,a),n.forEach(l,function(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(void 0,t[a])}),n.forEach(d,function(n){n in t?o[n]=r(e[n],t[n]):n in e&&(o[n]=r(void 0,e[n]))});var p=i.concat(s).concat(l).concat(d),c=Object.keys(e).concat(Object.keys(t)).filter(function(e){return-1===p.indexOf(e)});return n.forEach(c,a),o}},29801:(e,t,r)=>{"use strict";var n=r(3034);e.exports=function(e,t,r){var a=r.config.validateStatus;r.status&&a&&!a(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},62479:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t,r){return n.forEach(r,function(r){e=r(e,t)}),e}},6769:(e,t,r)=>{"use strict";function n(e,t){!a.isUndefined(e)&&a.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a=r(19520),o=r(53293),i={"Content-Type":"application/x-www-form-urlencoded"},s={adapter:function(){var e;return"undefined"==typeof XMLHttpRequest?"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)&&(e=r(38007)):e=r(63500),e}(),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),a.isFormData(e)||a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)?e:a.isArrayBufferView(e)?e.buffer:a.isURLSearchParams(e)?(n(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):a.isObject(e)?(n(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return 200<=e&&300>e}};s.headers={common:{Accept:"application/json, text/plain, */*"}},a.forEach(["delete","get","head"],function(e){s.headers[e]={}}),a.forEach(["post","put","patch"],function(e){s.headers[e]=a.merge(i)}),e.exports=s},69339:e=>{"use strict";e.exports=function(e,t){return function(){for(var r=Array(arguments.length),n=0;n{"use strict";function n(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var a=r(19520);e.exports=function(e,t,r){if(!t)return e;var o;if(r)o=r(t);else if(a.isURLSearchParams(t))o=t.toString();else{var i=[];a.forEach(t,function(e,t){null===e||"undefined"==typeof e||(a.isArray(e)?t+="[]":e=[e],a.forEach(e,function(e){a.isDate(e)?e=e.toISOString():a.isObject(e)&&(e=JSON.stringify(e)),i.push(n(t)+"="+n(e))}))}),o=i.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},65824:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},47536:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){return{write:function(e,t,r,a,o,i){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(a)&&s.push("path="+a),n.isString(o)&&s.push("domain="+o),!0===i&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},55470:e=>{"use strict";e.exports=function(e){return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},34722:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},11682:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){function e(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),a;return a=e(window.location.href),function(t){var r=n.isString(t)?e(t):t;return r.protocol===a.protocol&&r.host===a.host}}():function(){return function(){return!0}}()},53293:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){n.forEach(e,function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])})}},77912:(e,t,r)=>{"use strict";var n=r(19520),a=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t={},r,o,s;return e?(n.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),r=n.trim(e.substr(0,s)).toLowerCase(),o=n.trim(e.substr(s+1)),r){if(t[r]&&0<=a.indexOf(r))return;t[r]="set-cookie"===r?(t[r]?t[r]:[]).concat([o]):t[r]?t[r]+", "+o:o}}),t):t}},83202:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},19520:(e,t,r)=>{"use strict";function n(e){return"[object Array]"===u.call(e)}function a(e){return"undefined"==typeof e}function o(e){return null!==e&&"object"==typeof e}function i(e){if("[object Object]"!==u.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function s(e){return"[object Function]"===u.call(e)}function d(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),n(e))for(var r=0,a=e.length;r{"use strict";function t(e,t,i){e instanceof RegExp&&(e=n(e,i)),t instanceof RegExp&&(t=n(t,i));var s=o(e,t,i);return s&&{start:s[0],end:s[1],pre:i.slice(0,s[0]),body:i.slice(s[0]+e.length,s[1]),post:i.slice(s[1]+t.length)}}function n(e,t){var r=t.match(e);return r?r[0]:null}function o(e,t,r){var n=r.indexOf(e),a=r.indexOf(t,n+1),o=n,s,l,d,p,c;if(0<=n&&0{function n(e,t,r){var n=p(l,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(n){var a=r?[t,n,r]:[t,n];e[n]=e.api[n]=p(s,null).apply(null,a)})}function a(){var e={registry:{}},t=i.bind(null,e);return n(t,e),t}function o(){return c||(console.warn("[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4"),c=!0),a()}var i=r(27798),s=r(82446),l=r(16436),d=Function.bind,p=d.bind(d),c=!1;o.Singular=function(){var e={registry:{}},t=i.bind(null,e,"h");return n(t,e,"h"),t}.bind(),o.Collection=a.bind(),e.exports=o,e.exports.Hook=o,e.exports.Singular=o.Singular,e.exports.Collection=o.Collection},82446:e=>{e.exports=function(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),"before"===t&&(n=function(e,t){return Promise.resolve().then(a.bind(null,t)).then(e.bind(null,t))}),"after"===t&&(n=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then(function(e){return r=e,a(r,t)}).then(function(){return r})}),"error"===t&&(n=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch(function(e){return a(e,t)})}),e.registry[r].push({hook:n,orig:a})}},27798:e=>{function t(e,r,n,a){if("function"!=typeof n)throw new Error("method for before hook must be a function");return a||(a={}),Array.isArray(r)?r.reverse().reduce(function(r,n){return t.bind(null,e,n,r,a)},n)():Promise.resolve().then(function(){return e.registry[r]?e.registry[r].reduce(function(e,t){return t.hook.bind(null,e,a)},n)():n(a)})}e.exports=t},16436:e=>{e.exports=function(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(e){return e.orig}).indexOf(r);-1===n||e.registry[t].splice(n,1)}}},66616:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void n._init.call(this,e):new n(e)}const{Buffer:a}=r(64293),o=Symbol.for("BufferList");n._init=function(e){Object.defineProperty(this,o,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)},n.prototype._new=function(e){return new n(e)},n.prototype._offset=function(e){if(0===e)return[0,0];let t=0;for(let r=0;rthis.length||0>e)){const t=this._offset(e);return this._bufs[t[0]][t[1]]}},n.prototype.slice=function(e,t){return"number"==typeof e&&0>e&&(e+=this.length),"number"==typeof t&&0>t&&(t+=this.length),this.copy(null,0,e,t)},n.prototype.copy=function e(t,r,n,o){if(("number"!=typeof n||0>n)&&(n=0),("number"!=typeof o||o>this.length)&&(o=this.length),n>=this.length)return t||a.alloc(0);if(0>=o)return t||a.alloc(0);const e=!!t,s=this._offset(n),l=o-n;let d=l,p=e&&r||0,c=s[1];if(0===n&&o===this.length){if(!e)return 1===this._bufs.length?this._bufs[0]:a.concat(this._bufs,this.length);for(let e=0;er)this._bufs[e].copy(t,p,c),p+=r;else{this._bufs[e].copy(t,p,c,c+d),p+=r;break}d-=r,c&&(c=0)}return t.length>p?t.slice(0,p):t},n.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"==typeof t?t:this.length,0>e&&(e+=this.length),0>t&&(t+=this.length),e===t)return this._new();const r=this._offset(e),n=this._offset(t),a=this._bufs.slice(r[0],n[0]+1);return 0===n[1]?a.pop():a[a.length-1]=a[a.length-1].slice(0,n[1]),0!==r[1]&&(a[0]=a[0].slice(r[1])),this._new(a)},n.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},n.prototype.consume=function(e){var t=Number.isNaN,r=Math.trunc;if(e=r(e),t(e)||0>=e)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this},n.prototype.duplicate=function(){const e=this._new();for(let t=0;tt&&(t=this.length+t),0>t&&(t=0),0===e.length)return t>this.length?this.length:t;const n=this._offset(t);let o=n[0],i=n[1];for(;o=e.length){const r=t.indexOf(e,i);if(-1!==r)return this._reverseOffset([o,r]);i=t.length-e.length+1}else{const t=this._reverseOffset([o,i]);if(this._match(t,e))return t;i++}}i=0}return-1},n.prototype._match=function(e,t){if(this.length-e{"use strict";function n(e){if(!(this instanceof n))return new n(e);if("function"==typeof e){this._callback=e;const t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",function(e){e.on("error",t)}),this.on("unpipe",function(e){e.removeListener("error",t)}),e=null}i._init.call(this,e),a.call(this)}const a=r(30009).Duplex,o=r(94835),i=r(66616);o(n,a),Object.assign(n.prototype,i.prototype),n.prototype._new=function(e){return new n(e)},n.prototype._write=function(e,t,r){this._appendBuffer(e),"function"==typeof r&&r()},n.prototype._read=function(e){return this.length?void(e=_Mathmin(e,this.length),this.push(this.slice(0,e)),this.consume(e)):this.push(null)},n.prototype.end=function(e){a.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},n.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)},n.prototype._isBufferList=function(e){return e instanceof n||e instanceof i||n.isBufferList(e)},n.isBufferList=i.isBufferList,e.exports=n,e.exports.BufferListStream=n,e.exports.BufferList=i},94835:(t,r,n)=>{try{var a=n(31669);if("function"!=typeof a.inherits)throw"";t.exports=a.inherits}catch(r){t.exports=n(72739)}},72739:e=>{e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},71947:e=>{"use strict";function t(e,t,r){function n(e,r,n){return"string"==typeof t?t:t(e,r,n)}r||(r=Error);class a extends r{constructor(e,t,r){super(n(e,t,r))}}a.prototype.name=r.name,a.prototype.code=e,i[e]=a}function r(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>e+""),2r?0:+r,t.length)===t}function a(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function o(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}const i={};t("ERR_INVALID_OPT_VALUE",function(e,t){return"The value \""+t+"\" is invalid for option \""+e+"\""},TypeError),t("ERR_INVALID_ARG_TYPE",function(e,t,i){let s;"string"==typeof t&&n(t,"not ")?(s="must not be",t=t.replace(/^not /,"")):s="must be";let l;if(a(e," argument"))l=`The ${e} ${s} ${r(t,"type")}`;else{const n=o(e,".")?"property":"argument";l=`The "${e}" ${n} ${s} ${r(t,"type")}`}return l+=`. Received type ${typeof i}`,l},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=i},18084:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void(s.call(this,e),l.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",a)))):new n(e)}function a(){this._writableState.ended||process.nextTick(o,this)}function o(e){e.end()}var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=n;var s=r(11864),l=r(92042);r(94835)(n,s);for(var d=i(l.prototype),p=0,c;p{"use strict";function n(e){return this instanceof n?void a.call(this,e):new n(e)}e.exports=n;var a=r(57173);r(94835)(n,a),n.prototype._transform=function(e,t,r){r(null,e)}},11864:(e,t,r)=>{"use strict";function n(e){return z.from(e)}function a(e){return z.isBuffer(e)||e instanceof R}function o(e,t,r){return"function"==typeof e.prependListener?e.prependListener(t,r):void(e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r))}function i(e,t,n){A=A||r(18084),e=e||{},"boolean"!=typeof n&&(n=t instanceof A),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=N(this,e,"readableHighWaterMark",n),this.buffer=new W,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(!H&&(H=r(84882).s),this.decoder=new H(e.encoding),this.encoding=e.encoding)}function s(e){if(A=A||r(18084),!(this instanceof s))return new s(e);var t=this instanceof A;this._readableState=new i(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),L.call(this)}function l(e,t,r,a,o){M("readableAddChunk",t);var i=e._readableState;if(null===t)i.reading=!1,m(e,i);else{var s;if(o||(s=p(i,t)),s)Y(e,s);else if(!(i.objectMode||t&&0>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function u(e,t){return 0>=e||0===t.length&&t.ended?0:t.objectMode?1:e===e?(e>t.highWaterMark&&(t.highWaterMark=c(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0)):t.flowing&&t.length?t.buffer.head.data.length:t.length}function m(e,t){if(M("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?g(e):(t.needReadable=!1,!t.emittedReadable&&(t.emittedReadable=!0,h(e)))}}function g(e){var t=e._readableState;M("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(M("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;M("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,C(e)}function f(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(y,e,t))}function y(e,t){for(;!t.reading&&!t.ended&&(t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function w(e){var t=e._readableState;M("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(M("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function E(e,t){for(var r=0,n=e.length;r=t.highWaterMark)||t.ended))return M("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?w(this):g(this),null;if(e=u(e,t),0===e&&t.ended)return 0===t.length&&w(this),null;var a=t.needReadable;M("need readable",a),(0===t.length||t.length-e{"use strict";function n(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new d);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){w(t,e)}}function a(e){return O.from(e)}function o(e){return O.isBuffer(e)||e instanceof P}function i(){}function s(e,t,a){T=T||r(18084),e=e||{},"boolean"!=typeof a&&(a=t instanceof T),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=R(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){f(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function l(e){T=T||r(18084);var t=this instanceof T;return t||j.call(l,this)?void(this._writableState=new s(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),A.call(this)):new l(e)}function d(e,t){var r=new F;U(e,r),process.nextTick(t,r)}function p(e,t,r,n){var a;return null===r?a=new D:"string"!=typeof r&&!t.objectMode&&(a=new M("chunk",["string","Buffer"],r)),!a||(U(e,a),process.nextTick(n,a),!1)}function c(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=O.from(t,r)),t}function u(e,t,r,n,a,o){if(!r){var i=c(t,n,a);n!==i&&(r=!0,a="buffer",n=i)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return{value:e,done:t}}function o(e){var t=e[d];if(null!==t){var r=e[h].read();null!==r&&(e[m]=null,e[d]=null,e[p]=null,t(a(r,!1)))}}function i(e){process.nextTick(o,e)}function s(e,t){return function(r,n){e.then(function(){return t[u]?void r(a(void 0,!0)):void t[g](r,n)},n)}}var l=r(26052),d=Symbol("lastResolve"),p=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),m=Symbol("lastPromise"),g=Symbol("handlePromise"),h=Symbol("stream"),f=Object.getPrototypeOf(function(){}),y=Object.setPrototypeOf((b={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(a(void 0,!0));if(this[h].destroyed)return new Promise(function(t,r){process.nextTick(function(){e[c]?r(e[c]):t(a(void 0,!0))})});var r=this[m],n;if(r)n=new Promise(s(r,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(a(o,!1));n=new Promise(this[g])}return this[m]=n,n}},n(b,Symbol.asyncIterator,function(){return this}),n(b,"return",function(){var e=this;return new Promise(function(t,r){e[h].destroy(null,function(e){return e?void r(e):void t(a(void 0,!0))})})}),b),f),b;e.exports=function(e){var t=Object.create(y,(r={},n(r,h,{value:e,writable:!0}),n(r,d,{value:null,writable:!0}),n(r,p,{value:null,writable:!0}),n(r,c,{value:null,writable:!0}),n(r,u,{value:e._readableState.endEmitted,writable:!0}),n(r,g,{value:function(e,r){var n=t[h].read();n?(t[m]=null,t[d]=null,t[p]=null,e(a(n,!1))):(t[d]=e,t[p]=r)},writable:!0}),r)),r;return t[m]=null,l(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var r=t[p];return null!==r&&(t[m]=null,t[d]=null,t[p]=null,r(e)),void(t[c]=e)}var n=t[d];null!==n&&(t[m]=null,t[d]=null,t[p]=null,n(a(void 0,!0))),t[u]=!0}),e.on("readable",i.bind(null,t)),t}},38568:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1,r;t>>0),r=this.head,n=0;r;)d(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(a+=i===o.length?o:o.slice(0,e),e-=i,0===e){i===o.length?(++r,this.head=t.next?t.next:this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),e-=i,0===e){i===o.length?(++a,this.head=r.next?r.next:this.tail=null):(this.head=r,r.data=o.slice(i));break}++a}return this.length-=a,t}},{key:h,value:function(e,t){return g(this,a({},t,{depth:0,customInspect:!1}))}}]),e}()},22126:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(a?a(e):e&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!a&&e?o._writableState?o._writableState.errorEmitted?process.nextTick(r,o):(o._writableState.errorEmitted=!0,process.nextTick(t,o,e)):process.nextTick(t,o,e):a?(process.nextTick(r,o),a(e)):process.nextTick(r,o)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},26052:(e,t,r)=>{"use strict";function n(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=Array(r),a=0;a{"use strict";function n(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(a,o){function i(e){n(l,a,o,i,s,"next",e)}function s(e){n(l,a,o,i,s,"throw",e)}var l=e.apply(t,r);i(void 0)})}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1,r;t{"use strict";function n(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}function a(e){if(e)throw e}function o(e){return e.setHeader&&"function"==typeof e.abort}function s(e,t,a,i){i=n(i);var s=!1;e.on("close",function(){s=!0}),void 0===g&&(g=r(26052)),g(e,{readable:t,writable:a},function(e){return e?i(e):void(s=!0,i())});var l=!1;return function(t){if(!s)return l?void 0:(l=!0,o(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new m("pipe")))}}function l(e){e()}function d(e,t){return e.pipe(t)}function p(e){return e.length?"function"==typeof e[e.length-1]?e.pop():a:a}var c=r(71947).q,u=c.ERR_MISSING_ARGS,m=c.ERR_STREAM_DESTROYED,g;e.exports=function(){for(var e=arguments.length,t=Array(e),r=0;rt.length)throw new u("streams");var a=t.map(function(e,r){var i=r{"use strict";function n(e,t,r){return null==e.highWaterMark?t?e[r]:null:e.highWaterMark}var a=r(71947).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,o){var i=n(t,o,r);if(null!=i){if(!(isFinite(i)&&_Mathfloor(i)===i)||0>i){var s=o?r:"highWaterMark";throw new a(s,i)}return _Mathfloor(i)}return e.objectMode?16:16384}}},47640:(e,t,r)=>{e.exports=r(92413)},30009:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):(t=e.exports=r(11864),t.Stream=n||t,t.Readable=t,t.Writable=r(92042),t.Duplex=r(18084),t.Transform=r(57173),t.PassThrough=r(11798),t.finished=r(26052),t.pipeline=r(14705))},27510:e=>{e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},63726:(e,t,r)=>{function a(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function o(e){return e.split("\\\\").join(y).split("\\{").join(b).split("\\}").join(S).split("\\,").join(x).split("\\.").join(v)}function i(e){return e.split(y).join("\\").split(b).join("{").split(S).join("}").split(x).join(",").split(v).join(".")}function s(e){if(!e)return[""];var t=[],r=f("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,i=n.split(",");i[i.length-1]+="{"+a+"}";var l=s(o);return o.length&&(i[i.length-1]+=l.shift(),i.push.apply(i,l)),t.push.apply(t,i),t}function l(e){return"{"+e+"}"}function d(e){return /^-?0\d/.test(e)}function p(e,t){return e<=t}function u(e,t){return e>=t}function g(e,t){var r=[],o=f("{","}",e);if(!o||/\$$/.test(o.pre))return[e];var m=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(o.body),b=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(o.body),v=m||b,C=0<=o.body.indexOf(",");if(!v&&!C)return o.post.match(/,.*\}/)?(e=o.pre+"{"+o.body+S+o.post,g(e)):[e];var _;if(v)_=o.body.split(/\.\./);else if(_=s(o.body),1===_.length&&(_=g(_[0],!1).map(l),1===_.length)){var w=o.post.length?g(o.post,!1):[""];return w.map(function(e){return o.pre+_[0]+e})}var T=o.pre,w=o.post.length?g(o.post,!1):[""],E;if(v){var A=a(_[0]),x=a(_[1]),y=_Mathmax(_[0].length,_[1].length),O=3==_.length?_Mathabs(a(_[2])):1,P=p;xR?"-"+W+I.slice(1):W+I}}E.push(I)}}else E=h(_,function(e){return g(e,!1)});for(var z=0;z{function a(e){if(l.isBuffer(e))return e;var t="function"==typeof l.alloc&&"function"==typeof l.from;if("number"==typeof e)return t?l.alloc(e):new l(e);if("string"==typeof e)return t?l.from(e):new l(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function o(e){var t=a(4);return t.writeInt32BE(e,0),t}function i(e,t){e=a(e),l.isBuffer(t)&&(t=t.readUInt32BE(0));for(var r=-1^~~t,o=0;o>>8;return-1^r}function s(){return o(i.apply(null,arguments))}var l=r(64293).Buffer,d=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(d=new Int32Array(d)),s.signed=function(){return i.apply(null,arguments)},s.unsigned=function(){return i.apply(null,arguments)>>>0},e.exports=s},95418:(e,t,r)=>{"use strict";var n=r(24888),a=r(37721),o=a(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&-1{"use strict";var n=r(10373),a=r(24888),o=a("%Function.prototype.apply%"),i=a("%Function.prototype.call%"),s=a("%Reflect.apply%",!0)||n.call(i,o),l=a("%Object.defineProperty%",!0);if(l)try{l({},"a",{value:1})}catch(t){l=null}e.exports=function(){return s(n,i,arguments)};var d=function(){return s(n,o,arguments)};l?l(e.exports,"apply",{value:d}):e.exports.apply=d},28729:(e,t,r)=>{"use strict";const n=r(35747),a=r(85622),o=n.lchown?"lchown":"chown",i=n.lchownSync?"lchownSync":"chownSync",s=n.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),l=(e,t,r)=>{try{return n[i](e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},d=(e,t,r)=>{try{return n.chownSync(e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},p=s?(e,t,r,a)=>o=>{o&&"EISDIR"===o.code?n.chown(e,t,r,a):a(o)}:(e,t,r,n)=>n,c=s?(e,t,r)=>{try{return l(e,t,r)}catch(n){if("EISDIR"!==n.code)throw n;d(e,t,r)}}:(e,t,r)=>l(e,t,r),u=process.version;let m=(e,t,r)=>n.readdir(e,t,r),g=(e,t)=>n.readdirSync(e,t);/^v4\./.test(u)&&(m=(e,t,r)=>n.readdir(e,r));const h=(e,t,r,a)=>{n[o](e,t,r,p(e,t,r,e=>{a(e&&"ENOENT"!==e.code?e:null)}))},f=(e,t,r,o,i)=>{if("string"==typeof t)return n.lstat(a.resolve(e,t),(n,a)=>n?i("ENOENT"===n.code?null:n):void(a.name=t,f(e,a,r,o,i)));if(t.isDirectory())y(a.resolve(e,t.name),r,o,n=>{if(n)return i(n);const s=a.resolve(e,t.name);h(s,r,o,i)});else{const n=a.resolve(e,t.name);h(n,r,o,i)}},y=(e,t,r,n)=>{m(e,{withFileTypes:!0},(a,o)=>{if(a){if("ENOENT"===a.code)return n();if("ENOTDIR"!==a.code&&"ENOTSUP"!==a.code)return n(a)}if(a||!o.length)return h(e,t,r,n);let i=o.length,s=null;const l=a=>s?void 0:a?n(s=a):0==--i?h(e,t,r,n):void 0;o.forEach(n=>f(e,n,t,r,l))})},b=(e,t,r,o)=>{if("string"==typeof t)try{const r=n.lstatSync(a.resolve(e,t));r.name=t,t=r}catch(e){if("ENOENT"===e.code)return;throw e}t.isDirectory()&&S(a.resolve(e,t.name),r,o),c(a.resolve(e,t.name),r,o)},S=(e,t,r)=>{let n;try{n=g(e,{withFileTypes:!0})}catch(n){if("ENOENT"===n.code)return;if("ENOTDIR"===n.code||"ENOTSUP"===n.code)return c(e,t,r);throw n}return n&&n.length&&n.forEach(n=>b(e,n,t,r)),c(e,t,r)};e.exports=y,y.sync=S},16755:e=>{e.exports=function(e,r){for(var n=[],a=0,o;a{"use strict";function t(e){if(!e)throw new TypeError("Expected implementation");var t=l.filter(function(t){return"function"!=typeof e[t]});if(t.length){var r="("+t.join(", ")+")";throw new Error("Expected functions "+r+" to be implemented")}}function r(e,t){for(var r=t.length,n,a,o;-1<--r;){for(n=a=t[r],t[r]=null,o=!0;a;){if(-1{"use strict";function n(e){return function(t,r,n){return r=r||{},r.adapter=r.adapter||l,e(t,r,n)}}function a(e){return function(t,r,n){return n=n||{},n.adapter=n.adapter||l,"function"!=typeof t&&(t=u(t,n,r)),t.shouldTestNextSiblings&&(r=i(n&&n.context||r,n.adapter)),r=Array.isArray(r)?n.adapter.removeSubsets(r):n.adapter.getChildren(r),e(t,r,n)}}function o(e,t){var r=t.getSiblings(e);if(!Array.isArray(r))return[];for(r=r.slice(0);r.shift()!==e;);return r}function i(e,t){Array.isArray(e)||(e=[e]);for(var r=e.slice(0),n=0,a=e.length,s;n{var n=r(27510).falseFunc,a=/[-[\]{}()*+?.,\\^$|#\s]/g,o={__proto__:null,equals:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()===a&&e(t)}):function(t){return o.getAttributeValue(t,n)===a&&e(t)}},hyphen:function(e,t,r){var n=t.name,a=t.value,o=a.length,i=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=i.getAttributeValue(t,n);return null!=r&&(r.length===o||"-"===r.charAt(o))&&r.substr(0,o).toLowerCase()===a&&e(t)}):function(t){var r=i.getAttributeValue(t,n);return null!=r&&r.substr(0,o)===a&&(r.length===o||"-"===r.charAt(o))&&e(t)}},element:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(/\s/.test(i))return n;i=i.replace(a,"\\$&");var l="(?:^|\\s)"+i+"(?:$|\\s)",d=t.ignoreCase?"i":"",p=new RegExp(l,d);return function(t){var r=s.getAttributeValue(t,o);return null!=r&&p.test(r)&&e(t)}},exists:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.hasAttrib(t,n)&&e(t)}},start:function(e,t,r){var a=t.name,o=t.value,i=o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i)===o&&e(t)}},end:function(e,t,r){var a=t.name,o=t.value,i=-o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i)===o&&e(t)}},any:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(""===i)return n;if(t.ignoreCase){var l=new RegExp(i.replace(a,"\\$&"),"i");return function(t){var r=s.getAttributeValue(t,o);return null!=r&&l.test(r)&&e(t)}}return function(t){var r=s.getAttributeValue(t,o);return null!=r&&0<=r.indexOf(i)&&e(t)}},not:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return""===a?function(t){return!!o.getAttributeValue(t,n)&&e(t)}:t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()!==a&&e(t)}):function(t){return o.getAttributeValue(t,n)!==a&&e(t)}}};e.exports={compile:function(e,t,r){if(r&&r.strict&&(t.ignoreCase||"not"===t.action))throw new Error("Unsupported attribute selector");return o[t.action](e,t,r)},rules:o}},22365:(e,t,r)=>{function n(e,t,r){var n=o(e,t,r);return a(n,t)}function a(e,t){var r=t.adapter;return function(t){return r.isTag(t)&&e(t)}}function o(e,t,r){var n=m(e,t);return l(n,t,r)}function i(e){return"pseudo"===e.type&&("scope"===e.name||Array.isArray(e.data)&&e.data.some(function(e){return e.some(i)}))}function s(e,t,r){var n=t.adapter,a=!!r&&!!r.length&&r.every(function(t){return t===w||!!n.getParent(t)});e.forEach(function(e){if(0f[e.type]}function p(e,t,r){return e.reduce(function(e,n){if(e===x)return e;if(!(n.type in y))throw new Error("Rule type "+n.type+" is not supported by css-select");return y[n.type](e,n,t,r)},t&&t.rootFunc||S)}function c(e,t){return t===x||e===S?e:e===x||t===S?t:function(r){return e(r)||t(r)}}function u(e){return e.some(d)}e.exports=n;var m=r(17525).parse,g=r(27510),h=r(65426),f=r(86721),y=r(35890),b=r(65582),S=g.trueFunc,x=g.falseFunc,v=b.filters,k={type:"descendant"},C={type:"_flexibleDescendant"},_={type:"pseudo",name:"scope"},w={};v.not=function(e,t,r,n){var a={xmlMode:!!(r&&r.xmlMode),strict:!!(r&&r.strict),adapter:r.adapter};if(a.strict&&(1{var n=r(91221),a=r(65582);e.exports={__proto__:null,attribute:n.compile,pseudo:a.compile,tag:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.getName(t)===n&&e(t)}},descendant:function(e,t,r){var n="undefined"==typeof WeakSet?null:new WeakSet,a=r.adapter;return function(t){for(var r=!1;!r&&(t=a.getParent(t));)n&&n.has(t)||(r=e(t),!r&&n&&n.add(t));return r}},_flexibleDescendant:function(e,t,r){var n=r.adapter;return function(t){for(var r=e(t);!r&&(t=n.getParent(t));)r=e(t);return r}},parent:function(e,t,r){function n(t){return a.isTag(t)&&e(t)}if(r&&r.strict)throw new Error("Parent selector isn't part of CSS3");var a=r.adapter;return function(e){return a.getChildren(e).some(n)}},child:function(e,t,r){var n=r.adapter;return function(t){var r=n.getParent(t);return!!r&&e(r)}},sibling:function(e,t,r){var n=r.adapter;return function(t){for(var r=n.getSiblings(t),a=0;a{function n(e,t){var r={name:e,value:t};return function(e,t,n){return m(e,r,n)}}function a(e,t){return function(r){return!!t.getParent(r)&&e(r)}}function o(e,t){for(var r=0;e&&r{function n(e){var t=a[e.type];if(t===a.attribute)t=o[e.action],t===o.equals&&"id"===e.name&&(t=9),e.ignoreCase&&(t>>=1);else if(t===a.pseudo)if(!e.data)t=3;else if("has"===e.name||"contains"===e.name)t=0;else if("matches"===e.name||"not"===e.name){t=0;for(var r=0;rt&&(t=s)}1a))for(var o=r-1,s;0<=o&&a{function n(e,t){var r={};for(var n in e)r[n]=e[n].syntax;for(var n in t)n in e?t[n].syntax?r[n]=t[n].syntax:delete r[n]:t[n].syntax&&(r[n]=t[n].syntax);return r}var a=r(81515),o=r(58933),i=r(74291);e.exports={properties:n(a,i.properties),types:n(o,i.syntaxes)}},5355:e=>{function t(e){return{prev:null,next:null,data:e}}function r(e,t,r){var n;return null===a?n={prev:t,next:r,cursor:e.cursor}:(n=a,a=a.cursor,n.prev=t,n.next=r,n.cursor=e.cursor),e.cursor=n,n}function n(e){var t=e.cursor;e.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=a,a=t}var a=null,o=function(){this.cursor=null,this.head=null,this.tail=null};o.createItem=t,o.prototype.createItem=t,o.prototype.updateCursors=function(e,t,r,n){for(var a=this.cursor;null!==a;)a.prev===e&&(a.prev=t),a.next===r&&(a.next=n),a=a.cursor},o.prototype.getSize=function(){for(var e=0,t=this.head;t;)e++,t=t.next;return e},o.prototype.fromArray=function(e){var r=null;this.head=null;for(var n=0,a;n{function n(e,t){for(var r=t.length,n=a(e.lines,r),s=e.startLine,l=a(e.columns,r),d=e.startColumn,p=0{function n(e,t){function r(e,t){return n.slice(e,t).map(function(t,r){for(var n=e+r+1+"";n.lengthp?"\u2026":"")+n[c].substr(p,98)+(n[c].length>p+100-1?"\u2026":""));return[r(s,a),Array(o+d+2).join("-")+"^",r(a,l)].filter(Boolean).join("\n")}var a=r(41187);e.exports=function(e,t,r,o,i){var s=a("SyntaxError",e);return s.source=t,s.offset=r,s.line=o,s.column=i,s.sourceFragment=function(e){return n(s,isNaN(e)?0:e)},Object.defineProperty(s,"formattedMessage",{get:function(){return"Parse error: "+s.message+"\n"+n(s,2)}}),s.parseError={offset:r,line:o,column:i},s}},83058:(e,t,r)=>{var n=r(21713),a=n.TYPE,o=n.NAME,i=r(86716),s=i.cmpStr,l=a.EOF,d=a.WhiteSpace,p=a.Comment,c=16777215,u=24,m=function(){this.offsetAndType=null,this.balance=null,this.reset()};m.prototype={reset:function(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset},lookupType:function(e){return e+=this.tokenIndex,e>u:l},lookupOffset:function(e){return e+=this.tokenIndex,e>u,t(o,this.source,n)){case 1:break loop;case 2:r++;break loop;default:n=this.offsetAndType[r]&c,this.balance[a]===r&&(r=a);}}return r-this.tokenIndex},isBalanceEdge:function(e){return this.balance[this.tokenIndex]>u===d;e++,t++);0>u,this.tokenEnd=t&c):(this.tokenIndex=this.tokenCount,this.next())},next:function(){var e=this.tokenIndex+1;e>u,this.tokenEnd=e&c):(this.tokenIndex=this.tokenCount,this.eof=!0,this.tokenType=l,this.tokenStart=this.tokenEnd=this.source.length)},dump:function(){var e=this.firstCharOffset;return Array.prototype.slice.call(this.offsetAndType,0,this.tokenCount).map(function(t,r){var n=e,a=t&c;return e=a,{idx:r,type:o[t>>u],chunk:this.source.substring(n,a),balance:this.balance[r]}},this)}},e.exports=m},58248:e=>{var t="undefined"==typeof Uint32Array?Array:Uint32Array;e.exports=function(e,r){return null===e||e.length{var n=r(5355);e.exports=function(e){return{fromPlainObject:function(t){return e(t,{enter:function(e){e.children&&!1==e.children instanceof n&&(e.children=new n().fromArray(e.children))}}),t},toPlainObject:function(t){return e(t,{leave:function(e){e.children&&e.children instanceof n&&(e.children=e.children.toArray())}}),t}}}},59437:(e,t,r)=>{var n=r(41187);e.exports=function(e,t,r){var a=n("SyntaxError",e);return a.input=t,a.offset=r,a.rawMessage=e,a.message=a.rawMessage+"\n "+a.input+"\n--"+Array((a.offset||a.input.length)+1).join("-")+"^",a}},95561:e=>{function t(e){return e}function r(e){return 0===e.min&&0===e.max?"*":0===e.min&&1===e.max?"?":1===e.min&&0===e.max?e.comma?"#":"+":1===e.min&&1===e.max?"":(e.comma?"#":"")+(e.min===e.max?"{"+e.min+"}":"{"+e.min+","+(0===e.max?"":e.max)+"}")}function n(e){switch(e.type){case"Range":return" ["+(null===e.min?"-\u221E":e.min)+","+(null===e.max?"\u221E":e.max)+"]";default:throw new Error("Unknown node type `"+e.type+"`");}}function a(e,t,r,n){var a=" "===e.combinator||n?e.combinator:" "+e.combinator+" ",i=e.terms.map(function(e){return o(e,t,r,n)}).join(a);return(e.explicit||r)&&(i=(n||","===i[0]?"[":"[ ")+i+(n?"]":" ]")),i}function o(e,t,i,s){var l;switch(e.type){case"Group":l=a(e,t,i,s)+(e.disallowEmpty?"!":"");break;case"Multiplier":return o(e.term,t,i,s)+t(r(e),e);case"Type":l="<"+e.name+(e.opts?t(n(e.opts),e.opts):"")+">";break;case"Property":l="<'"+e.name+"'>";break;case"Keyword":l=e.name;break;case"AtKeyword":l="@"+e.name;break;case"Function":l=e.name+"(";break;case"String":case"Token":l=e.value;break;case"Comma":l=",";break;default:throw new Error("Unknown node type `"+e.type+"`");}return t(l,e)}e.exports=function(e,r){var n=t,a=!1,i=!1;return"function"==typeof r?n=r:r&&(a=!!r.forceBraces,i=!!r.compact,"function"==typeof r.decorate&&(n=r.decorate)),o(e,n,a,i)}},98333:(e,t,r)=>{e.exports={SyntaxError:r(59437),parse:r(81550),generate:r(95561),walk:r(55872)}},81550:(e,t,r)=>{function n(e){return e.substringToPos(e.findWsEnd(e.pos))}function a(e){for(var t=e.pos,r;tr||57t&&1===v[t])return g(e);switch(t){case 93:break;case 91:return d(e,y(e));case 60:return 39===e.nextCharCode()?c(e):m(e);case 124:return{type:"Combinator",value:e.substringToPos(124===e.nextCharCode()?e.pos+2:e.pos+1)};case 38:return e.pos++,e.eat(38),{type:"Combinator",value:"&&"};case 44:return e.pos++,{type:"Comma"};case 39:return d(e,{type:"String",value:i(e)});case 32:case 9:case 10:case 13:case 12:return{type:"Spaces",value:n(e)};case 64:return t=e.nextCharCode(),128>t&&1===v[t]?(e.pos++,{type:"AtKeyword",name:a(e)}):p(e);case 42:case 43:case 63:case 35:case 33:break;case 123:if(t=e.nextCharCode(),48>t||57r;r++)t[r]=e(_StringfromCharCode(r))?1:0;return t}(function(e){return /[a-zA-Z0-9\-]/.test(e)}),k={" ":1,"&&":2,"||":3,"|":4};S("[a&&#|<'c'>*||e() f{2} /,(% g#{1,2} h{2,})]!"),e.exports=S},22059:(e,t,r)=>{var n=r(59437),a=function(e){this.str=e,this.pos=0};a.prototype={charCodeAt:function(e){return e{function t(e){return"function"==typeof e?e:r}var r=function(){};e.exports=function(e,n,a){function o(e){switch(i.call(a,e),e.type){case"Group":e.terms.forEach(o);break;case"Multiplier":o(e.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+e.type);}s.call(a,e)}var i=r,s=r;if("function"==typeof n?i=n:n&&(i=t(n.enter),s=t(n.leave)),i===r&&s===r)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");o(e,a)}},31010:(e,t,r)=>{function n(e,t){var r=e.children,n=null;"function"==typeof t?r.forEach(function(e){null!==n&&t.call(this,n),this.node(e),n=e},this):r.forEach(this.node,this)}var a=r(95137),o=Object.prototype.hasOwnProperty;e.exports=function(e){function t(e){if(o.call(r,e.type))r[e.type].call(this,e);else throw new Error("Unknown node type: "+e.type)}var r={};if(e.node)for(var i in e.node)r[i]=e.node[i].generate;return function(e,r){var o="",i={children:n,node:t,chunk:function(e){o+=e},result:function(){return o}};return r&&("function"==typeof r.decorator&&(i=r.decorator(i)),r.sourceMap&&(i=a(i))),i.node(e),i.result()}}},95137:(e,t,r)=>{var n=r(52234).h,a={Atrule:!0,Selector:!0,Declaration:!0};e.exports=function(e){var t=new n,r=1,o=0,i={line:1,column:0},s={line:0,column:0},l=!1,d={line:1,column:0},p={generated:d},c=e.node;e.node=function(e){if(e.loc&&e.loc.start&&a.hasOwnProperty(e.type)){var n=e.loc.start.line,u=e.loc.start.column-1;(s.line!==n||s.column!==u)&&(s.line=n,s.column=u,i.line=r,i.column=o,l&&(l=!1,(i.line!==d.line||i.column!==d.column)&&t.addMapping(p)),l=!0,t.addMapping({source:e.loc.source,original:s,generated:i}))}c.call(this,e),l&&a.hasOwnProperty(e.type)&&(d.line=r,d.column=o)};var u=e.chunk;e.chunk=function(e){for(var t=0;t{e.exports=r(30826)},42164:(e,t,r)=>{function n(e,t,r){var n={};for(var a in e)e[a].syntax&&(n[a]=r?e[a].syntax:u(e[a].syntax,{compact:t}));return n}function a(e){for(var t=0;t"),k=function(e,t,r){if(this.valueCommonSyntax=x,this.syntax=t,this.generic=!1,this.properties={},this.types={},this.structure=r||S(e),e){if(e.types)for(var n in e.types)this.addType_(n,e.types[n]);if(e.generic)for(var n in this.generic=!0,p)this.addType_(n,p[n]);if(e.properties)for(var n in e.properties)this.addProperty_(n,e.properties[n])}};k.prototype={structure:{},checkStructure:function(e){function t(e,t){n.push({node:e,message:t})}var r=this.structure,n=[];return this.syntax.walk(e,function(e){r.hasOwnProperty(e.type)?r[e.type].check(e,t):t(e,"Unknown node type `"+e.type+"`")}),!!n.length&&n},createDescriptor:function(e,t,r){var n={type:t,name:r},a={type:t,name:r,syntax:null,match:null};return"function"==typeof e?a.match=h(e,n):("string"==typeof e?Object.defineProperty(a,"syntax",{get:function(){return Object.defineProperty(a,"syntax",{value:c(e)}),a.syntax}}):a.syntax=e,Object.defineProperty(a,"match",{get:function(){return Object.defineProperty(a,"match",{value:h(a.syntax,n)}),a.match}})),a},addProperty_:function(e,t){this.properties[e]=this.createDescriptor(t,"Property",e)},addType_:function(e,t){this.types[e]=this.createDescriptor(t,"Type",e),t===p["-ms-legacy-expression"]&&(this.valueCommonSyntax=v)},matchDeclaration:function(e){return"Declaration"===e.type?this.matchProperty(e.property,e.value):o(null,new Error("Not a Declaration node"))},matchProperty:function(e,t){var r=d.property(e);if(r.custom)return o(null,new Error("Lexer matching doesn't applicable for custom properties"));var n=r.vendor?this.getProperty(r.name)||this.getProperty(r.basename):this.getProperty(r.name);return n?i(this,n,t,!0):o(null,new s("Unknown property",e))},matchType:function(e,t){var r=this.getType(e);return r?i(this,r,t,!1):o(null,new s("Unknown type",e))},match:function(e,t){return"string"==typeof e||e&&e.type?("string"!=typeof e&&e.match||(e=this.createDescriptor(e,"Type","anonymous")),i(this,e,t,!1)):o(null,new s("Bad syntax"))},findValueFragments:function(e,t,r,n){return b.matchFragments(this,t,this.matchProperty(e,t),r,n)},findDeclarationValueFragments:function(e,t,r){return b.matchFragments(this,e.value,this.matchDeclaration(e),t,r)},findAllFragments:function(e,t,r){var n=[];return this.syntax.walk(e,{visit:"Declaration",enter:function(e){n.push.apply(n,this.findDeclarationValueFragments(e,t,r))}.bind(this)}),n},getProperty:function(e){return this.properties.hasOwnProperty(e)?this.properties[e]:null},getType:function(e){return this.types.hasOwnProperty(e)?this.types[e]:null},validate:function(){function e(n,a,o,i){return o.hasOwnProperty(a)?o[a]:void(o[a]=!1,null!==i.syntax&&m(i.syntax,function(i){if("Type"===i.type||"Property"===i.type){var s="Type"===i.type?n.types:n.properties,l="Type"===i.type?t:r;(!s.hasOwnProperty(i.name)||e(n,i.name,l,s[i.name]))&&(o[a]=!0)}},this))}var t={},r={};for(var n in this.types)e(this,n,t,this.types[n]);for(var n in this.properties)e(this,n,r,this.properties[n]);return t=Object.keys(t).filter(function(e){return t[e]}),r=Object.keys(r).filter(function(e){return r[e]}),t.length||r.length?{types:t,properties:r}:null},dump:function(e,t){return{generic:this.generic,types:n(this.types,!t,e),properties:n(this.properties,!t,e)}},toString:function(){return JSON.stringify(this.dump())}},e.exports=k},16044:(e,t,r)=>{function n(e){for(var t=e.tokens,r=e.longestMatch,n=r",l.css=g,l.mismatchOffset=p,l.loc={source:c&&c.loc&&c.loc.source||"",start:m,end:u},l.line=m?m.line:void 0,l.column=m?m.column:void 0,l.offset=m?m.offset:void 0,l.message=e+"\n syntax: "+l.syntax+"\n value: "+(l.css||"")+"\n --------"+Array(l.mismatchOffset+1).join("-")+"^",l}}},23479:(e,t,r)=>{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t,r){for(;null!==e&&(e.type===u||e.type===m);)e=r(++t);return t}function o(e,t,r,n){if(!e)return 0;var a=e.value.charCodeAt(t);if(43===a||45===a){if(r)return 0;t++}for(;t{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t){return e.value.charCodeAt(0)===t}function o(e,t,r){for(var n=t,a=0,i;n{function n(e,t){return te.max)return!0}return!1}function l(e,t){var r=e.index,n=0;do if(n++,e.balance<=r)break;while(e=t(n));return n}function d(e){return function(t,r,n){return null===t?0:t.type===S.Function&&o(t.value,C)?l(t,r):e(t,r,n)}}function p(e){return function(t){return null===t||t.type!==e?0:1}}function c(e){return function(t,r,n){if(null===t||t.type!==S.Dimension)return 0;var a=b(t.value,0);if(null!==e){var o=t.value.indexOf("\\",a),l=-1!==o&&i(t.value,o)?t.value.substring(a,o):t.value.substr(a);if(!1===e.hasOwnProperty(l.toLowerCase()))return 0}return s(n,t.value,a)?0:1}}function u(e){return"function"!=typeof e&&(e=function(){return 0}),function(t,r,n){return null!==t&&t.type===S.Number&&0===+t.value?1:e(t,r,n)}}var m=r(61063),g=m.isIdentifierStart,h=m.isHexDigit,f=m.isDigit,y=m.cmpStr,b=m.consumeNumber,S=m.TYPE,x=r(23479),v=r(77088),k=["unset","initial","inherit"],C=["calc(","-moz-calc(","-webkit-calc("];e.exports={"ident-token":p(S.Ident),"function-token":p(S.Function),"at-keyword-token":p(S.AtKeyword),"hash-token":p(S.Hash),"string-token":p(S.String),"bad-string-token":p(S.BadString),"url-token":p(S.Url),"bad-url-token":p(S.BadUrl),"delim-token":p(S.Delim),"number-token":p(S.Number),"percentage-token":p(S.Percentage),"dimension-token":p(S.Dimension),"whitespace-token":p(S.WhiteSpace),"CDO-token":p(S.CDO),"CDC-token":p(S.CDC),"colon-token":p(S.Colon),"semicolon-token":p(S.Semicolon),"comma-token":p(S.Comma),"[-token":p(S.LeftSquareBracket),"]-token":p(S.RightSquareBracket),"(-token":p(S.LeftParenthesis),")-token":p(S.RightParenthesis),"{-token":p(S.LeftCurlyBracket),"}-token":p(S.RightCurlyBracket),string:p(S.String),ident:p(S.Ident),"custom-ident":function(e){if(null===e||e.type!==S.Ident)return 0;var t=e.value.toLowerCase();return o(t,k)?0:a(t,"default")?0:1},"custom-property-name":function(e){return null===e||e.type!==S.Ident?0:45!==n(e.value,0)||45!==n(e.value,1)?0:1},"hex-color":function(e){if(null===e||e.type!==S.Hash)return 0;var t=e.value.length;if(4!==t&&5!==t&&7!==t&&9!==t)return 0;for(var r=1;re.index||e.balancee.index||e.balance{function n(e,t,r){return t===c&&r===u?e:e===c&&t===c&&r===c?e:("If"===e.type&&e.else===u&&t===c&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:r})}function a(e){return 2{function n(e){for(var t=null,r=null,n=e;null!==n;)r=n.prev,n.prev=t,t=n,n=r;return t}function a(e,t){if(e.length!==t.length)return!1;for(var r=0;r=n&&(n|=32),n!==a)return!1}return!0}function o(e){return null===e||e.type===m.Comma||e.type===m.Function||e.type===m.LeftParenthesis||e.type===m.LeftSquareBracket||e.type===m.LeftCurlyBracket||e.type===m.Delim}function i(e){return null===e||e.type===m.RightParenthesis||e.type===m.RightSquareBracket||e.type===m.RightCurlyBracket||e.type===m.Delim}function s(e,t,r){function n(){do E++,T=EA&&(A=E)}function b(){x={syntax:t.syntax,opts:t.syntax.opts||null!==x&&x.opts||null,prev:x},O={type:2,syntax:t.syntax,token:O.token,prev:O}}function S(){O=2===O.type?O.prev:{type:3,syntax:x.syntax,token:O.token,prev:O},x=x.prev}var x=null,v=null,k=null,C=null,_=0,w=null,T=null,E=-1,A=0,O={type:0,syntax:null,token:null,prev:null};for(n();null===w&&15000>++_;)switch(t.type){case"Match":if(null===v){if(null!==T&&(E!==e.length-1||"\\0"!==T.value&&"\\9"!==T.value)){t=c;break}w="Match";break}if(t=v.nextState,t===u)if(v.matchStack===O){t=c;break}else t=p;for(;v.syntaxStack!==x;)S();v=v.prev;break;case"Mismatch":if(null!==C&&!1!==C)(null===k||E>k.tokenIndex)&&(k=C,C=!1);else if(null===k){w="Mismatch";break}t=k.nextState,v=k.thenStack,x=k.syntaxStack,O=k.matchStack,E=k.tokenIndex,T=EE){for(;E":"<'"+t.name+"'>"));if(!1!==C&&null!==T&&"Type"===t.type){var q="custom-ident"===t.name&&T.type===m.Ident||"length"===t.name&&"0"===T.value;if(q){null===C&&(C=d(t,k)),t=c;break}}b(),t=W.match;break;case"Keyword":var z=t.name;if(null!==T){var B=T.value;if(-1!==B.indexOf("\\")&&(B=B.replace(/\\[09].*$/,"")),a(B,z)){y(),t=p;break}}t=c;break;case"AtKeyword":case"Function":if(null!==T&&a(T.value,t.name)){y(),t=p;break}t=c;break;case"Token":if(null!==T&&T.value===t.value){y(),t=p;break}t=c;break;case"Comma":null!==T&&T.type===m.Comma?o(O.token)?t=c:(y(),t=i(T)?c:p):t=o(O.token)||i(T)?p:c;break;case"String":for(var N="",I=E;I{function n(e,t){var r=[],n=0,o=0,s=t?t[o].node:null;for(a(e,i);!i.eof;){if(t)for(;o{function n(e){return"node"in e?e.node:n(e.match[0])}function a(e){return"node"in e?e.node:a(e.match[e.match.length-1])}var o=r(5355);e.exports={matchFragments:function(e,t,r,i,s){function l(r){if(null!==r.syntax&&r.syntax.type===i&&r.syntax.name===s){var p=n(r),c=a(r);e.syntax.walk(t,function(e,t,r){if(e===p){var n=new o;do{if(n.appendData(t.data),t.data===c)break;t=t.next}while(null!==t);d.push({parent:r,nodes:n})}})}Array.isArray(r.match)&&r.match.forEach(l)}var d=[];return null!==r.matched&&l(r.matched),d}}},25791:(e,t,r)=>{function n(e){return"number"==typeof e&&isFinite(e)&&_Mathfloor(e)===e&&0<=e}function a(e){return!!e&&n(e.offset)&&n(e.line)&&n(e.column)}function o(e,t){return function(r,n){if(!r||r.constructor!==Object)return n(r,"Type of node should be an Object");for(var o in r){var d=!0;if(!1!==l.call(r,o)){if("type"==o)r.type!==e&&n(r,"Wrong node type `"+r.type+"`, expected `"+e+"`");else if("loc"===o){if(null===r.loc)continue;else if(r.loc&&r.loc.constructor===Object)if("string"!=typeof r.loc.source)o+=".source";else if(!a(r.loc.start))o+=".start";else if(!a(r.loc.end))o+=".end";else continue;d=!1}else if(t.hasOwnProperty(o))for(var p=0,d=!1,c;!d&&p");else if(Array.isArray(u))d.push("List");else throw new Error("Wrong value `"+u+"` in `"+e+"."+s+"` structure definition");a[s]=d.join(" | ")}return{docs:a,check:o(e,n)}}var s=r(5355),l=Object.prototype.hasOwnProperty;e.exports={getStructureFromConfig:function(e){var t={};if(e.node)for(var r in e.node)if(l.call(e.node,r)){var n=e.node[r];if(n.structure)t[r]=i(r,n);else throw new Error("Missed `structure` field in `"+r+"` node type definition")}return t}}},29833:e=>{function t(e){function t(e){return null!==e&&("Type"===e.type||"Property"===e.type||"Keyword"===e.type)}function r(a){if(Array.isArray(a.match)){for(var o=0;o{function n(e){return function(){return this[e]()}}function a(e){var t={context:{},scope:{},atrule:{},pseudo:{}};if(e.parseContext)for(var r in e.parseContext)switch(typeof e.parseContext[r]){case"function":t.context[r]=e.parseContext[r];break;case"string":t.context[r]=n(e.parseContext[r]);}if(e.scope)for(var r in e.scope)t.scope[r]=e.scope[r];if(e.atrule)for(var r in e.atrule){var a=e.atrule[r];a.parse&&(t.atrule[r]=a.parse)}if(e.pseudo)for(var r in e.pseudo){var o=e.pseudo[r];o.parse&&(t.pseudo[r]=o.parse)}if(e.node)for(var r in e.node)t[r]=e.node[r].parse;return t}var o=r(70404),i=r(51708),s=r(83058),l=r(5355),d=r(61063),p=r(21713),c=r(86716).findWhiteSpaceStart,u=r(27190),m=function(){},g=p.TYPE,h=p.NAME,f=g.WhiteSpace,y=g.Ident,b=g.Function,S=g.Url,x=g.Hash,v=g.Percentage,k=g.Number,C=0;e.exports=function(e){var t={scanner:new s,locationMap:new o,filename:"",needPositions:!1,onParseError:m,onParseErrorThrow:!1,parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:u,createList:function(){return new l},createSingleNodeList:function(e){return new l().appendData(e)},getFirstListNode:function(e){return e&&e.first()},getLastListNode:function(e){return e.last()},parseWithFallback:function(e,t){var r=this.scanner.tokenIndex;try{return e.call(this)}catch(a){if(this.onParseErrorThrow)throw a;var n=t.call(this,r);return this.onParseErrorThrow=!0,this.onParseError(a,n),this.onParseErrorThrow=!1,n}},lookupNonWSType:function(e){do{var t=this.scanner.lookupType(e++);if(t!==f)return t}while(t!==C);return C},eat:function(e){if(this.scanner.tokenType!==e){var t=this.scanner.tokenStart,r=h[e]+" is expected";e===y?this.scanner.tokenType===b||this.scanner.tokenType===S?(t=this.scanner.tokenEnd-1,r="Identifier is expected but function found"):r="Identifier is expected":e===x?this.scanner.isDelim(35)&&(this.scanner.next(),t++,r="Name is expected"):e===v?this.scanner.tokenType===k&&(t=this.scanner.tokenEnd,r="Percent sign is expected"):this.scanner.source.charCodeAt(this.scanner.tokenStart)===e&&++t,this.error(r,t)}this.scanner.next()},consume:function(e){var t=this.scanner.getTokenValue();return this.eat(e),t},consumeFunctionName:function(){var e=this.scanner.source.substring(this.scanner.tokenStart,this.scanner.tokenEnd-1);return this.eat(b),e},getLocation:function(e,t){return this.needPositions?this.locationMap.getLocationRange(e,t,this.filename):null},getLocationFromList:function(e){if(this.needPositions){var t=this.getFirstListNode(e),r=this.getLastListNode(e);return this.locationMap.getLocationRange(null===t?this.scanner.tokenStart:t.loc.start.offset-this.locationMap.startOffset,null===r?this.scanner.tokenStart:r.loc.end.offset-this.locationMap.startOffset,this.filename)}return null},error:function(e,t){var r="undefined"!=typeof t&&t",t.needPositions=!!r.positions,t.onParseError="function"==typeof r.onParseError?r.onParseError:m,t.onParseErrorThrow=!1,t.parseAtrulePrelude=!("parseAtrulePrelude"in r)||!!r.parseAtrulePrelude,t.parseRulePrelude=!("parseRulePrelude"in r)||!!r.parseRulePrelude,t.parseValue=!("parseValue"in r)||!!r.parseValue,t.parseCustomProperty=!!("parseCustomProperty"in r)&&!!r.parseCustomProperty,!t.context.hasOwnProperty(n))throw new Error("Unknown context `"+n+"`");return a=t.context[n].call(t,r),t.scanner.eof||t.error(),a}}},27190:(e,t,r)=>{var n=r(61063).TYPE,a=n.WhiteSpace,o=n.Comment;e.exports=function(e){var t=this.createList(),r=null,n={recognizer:e,space:null,ignoreWS:!1,ignoreWSAfter:!1};for(this.scanner.skipSC();!this.scanner.eof;){switch(this.scanner.tokenType){case o:this.scanner.next();continue;case a:n.ignoreWS?this.scanner.next():n.space=this.WhiteSpace();continue;}if(r=e.getNode.call(this,n),void 0===r)break;null!==n.space&&(t.push(n.space),n.space=null),t.push(r),n.ignoreWSAfter?(n.ignoreWSAfter=!1,n.ignoreWS=!0):n.ignoreWS=!1}return t}},91849:e=>{e.exports={parse:{prelude:null,block:function(){return this.Block(!0)}}}},29864:(e,t,r)=>{var n=r(61063).TYPE,a=n.String,o=n.Ident,i=n.Url,s=n.Function,l=n.LeftParenthesis;e.exports={parse:{prelude:function(){var e=this.createList();switch(this.scanner.skipSC(),this.scanner.tokenType){case a:e.push(this.String());break;case i:case s:e.push(this.Url());break;default:this.error("String or url() is expected");}return(this.lookupNonWSType(0)===o||this.lookupNonWSType(0)===l)&&(e.push(this.WhiteSpace()),e.push(this.MediaQueryList())),e},block:null}}},20264:(e,t,r)=>{e.exports={"font-face":r(91849),import:r(29864),media:r(16258),page:r(46661),supports:r(19901)}},16258:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.MediaQueryList())},block:function(){return this.Block(!1)}}}},46661:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.SelectorList())},block:function(){return this.Block(!0)}}}},19901:(e,t,r)=>{function n(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}function a(){return this.scanner.skipSC(),this.scanner.tokenType===d&&this.lookupNonWSType(1)===c?this.createSingleNodeList(this.Declaration()):o.call(this)}function o(){var e=this.createList(),t=null,r;this.scanner.skipSC();scan:for(;!this.scanner.eof;){switch(this.scanner.tokenType){case s:t=this.WhiteSpace();continue;case l:this.scanner.next();continue;case p:r=this.Function(n,this.scope.AtrulePrelude);break;case d:r=this.Identifier();break;case u:r=this.Parentheses(a,this.scope.AtrulePrelude);break;default:break scan;}null!==t&&(e.push(t),t=null),e.push(r)}return e}var i=r(61063).TYPE,s=i.WhiteSpace,l=i.Comment,d=i.Ident,p=i.Function,c=i.Colon,u=i.LeftParenthesis;e.exports={parse:{prelude:function(){var e=o.call(this);return null===this.getFirstListNode(e)&&this.error("Condition is expected"),e},block:function(){return this.Block(!1)}}}},87526:(e,t,r)=>{var n=r(26577);e.exports={generic:!0,types:n.types,properties:n.properties,node:r(85369)}},88845:e=>{function t(e){return e&&e.constructor===Object}function r(e){if(t(e)){var r={};for(var n in e)o.call(e,n)&&(r[n]=e[n]);return r}return e}function n(e,a){for(var i in a)o.call(a,i)&&(t(e[i])?n(e[i],r(a[i])):e[i]=r(a[i]))}function a(e,i,s){for(var l in s)if(!1!==o.call(s,l))if(!0===s[l])l in i&&o.call(i,l)&&(e[l]=r(i[l]));else if(s[l])if(t(s[l])){var d={};n(d,e[l]),n(d,i[l]),e[l]=d}else if(Array.isArray(s[l])){var d={},p=s[l].reduce(function(e,t){return e[t]=!0,e},{});for(var c in e[l])o.call(e[l],c)&&(d[c]={},e[l]&&e[l][c]&&a(d[c],e[l][c],p));for(var c in i[l])o.call(i[l],c)&&(d[c]||(d[c]={}),i[l]&&i[l][c]&&a(d[c],i[l][c],p));e[l]=d}return e}var o=Object.prototype.hasOwnProperty,i={generic:!0,types:{},properties:{},parseContext:{},scope:{},atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};e.exports=function(e,t){return a(e,t,i)}},46808:(e,t,r)=>{e.exports={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude:function(e){return this.AtrulePrelude(e.atrule?e.atrule+"":null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block:function(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:r(38141),atrule:r(20264),pseudo:r(69302),node:r(85369)}},50997:(e,t,r)=>{e.exports={node:r(85369)}},66330:(e,t,r)=>{function n(e,t){for(var r in t)e[r]=t[r];return e}function a(e){var t=c(e),r=g(e),b=u(e),S=m(r),x={List:o,SyntaxError:i,TokenStream:s,Lexer:l,vendorPrefix:f.vendorPrefix,keyword:f.keyword,property:f.property,isCustomProperty:f.isCustomProperty,definitionSyntax:d,lexer:null,createLexer:function(e){return new l(e,x,x.lexer.structure)},tokenize:p,parse:t,walk:r,generate:b,find:r.find,findLast:r.findLast,findAll:r.findAll,clone:h,fromPlainObject:S.fromPlainObject,toPlainObject:S.toPlainObject,createSyntax:function(e){return a(y({},e))},fork:function(t){var r=y({},e);return a("function"==typeof t?t(r,n):y(r,t))}};return x.lexer=new l({generic:!0,types:e.types,properties:e.properties,node:e.node},x),x}var o=r(5355),i=r(51708),s=r(83058),l=r(42164),d=r(98333),p=r(61063),c=r(40283),u=r(31010),m=r(57208),g=r(87760),h=r(55933),f=r(87453),y=r(88845);t.create=function(e){return a(y({},e))}},59537:e=>{e.exports=function(){this.scanner.skipSC();var e=this.createSingleNodeList(this.IdSelector());return this.scanner.skipSC(),e}},21264:e=>{e.exports=function(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}},88036:(e,t,r)=>{var n=r(61063).TYPE,a=r(18204).mode,o=n.Comma;e.exports=function(){var e=this.createList();return this.scanner.skipSC(),e.push(this.Identifier()),this.scanner.skipSC(),this.scanner.tokenType===o&&(e.push(this.Operator()),e.push(this.parseCustomProperty?this.Value(null):this.Raw(this.scanner.tokenIndex,a.exclamationMarkOrSemicolon,!1))),e}},30826:(e,t,r)=>{e.exports=r(66330).create(function(){for(var e={},t=0,r;t{function n(e,t){var r=this.scanner.tokenStart+e,n=this.scanner.source.charCodeAt(r);for((43===n||45===n)&&(t&&this.error("Number sign is not allowed"),r++);r{function n(e){return this.Raw(e,i.leftCurlyBracketOrSemicolon,!0)}function a(){for(var e=1,t;t=this.scanner.lookupType(e);e++){if(t===p)return!0;if(t===d||t===s)return!1}return!1}var o=r(61063).TYPE,i=r(18204).mode,s=o.AtKeyword,l=o.Semicolon,d=o.LeftCurlyBracket,p=o.RightCurlyBracket;e.exports={name:"Atrule",structure:{name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o,i;switch(this.eat(s),o=this.scanner.substrToCursor(e+1),i=o.toLowerCase(),this.scanner.skipSC(),!1===this.scanner.eof&&this.scanner.tokenType!==d&&this.scanner.tokenType!==l&&(this.parseAtrulePrelude?(t=this.parseWithFallback(this.AtrulePrelude.bind(this,o),n),"AtrulePrelude"===t.type&&null===t.children.head&&(t=null)):t=n.call(this,this.scanner.tokenIndex),this.scanner.skipSC()),this.scanner.tokenType){case l:this.scanner.next();break;case d:r=this.atrule.hasOwnProperty(i)&&"function"==typeof this.atrule[i].block?this.atrule[i].block.call(this):this.Block(a.call(this));}return{type:"Atrule",loc:this.getLocation(e,this.scanner.tokenStart),name:o,prelude:t,block:r}},generate:function(e){this.chunk("@"),this.chunk(e.name),null!==e.prelude&&(this.chunk(" "),this.node(e.prelude)),e.block?this.node(e.block):this.chunk(";")},walkContext:"atrule"}},24272:(e,t,r)=>{var n=r(61063).TYPE,a=n.Semicolon,o=n.LeftCurlyBracket;e.exports={name:"AtrulePrelude",structure:{children:[[]]},parse:function(e){var t=null;return null!==e&&(e=e.toLowerCase()),this.scanner.skipSC(),t=this.atrule.hasOwnProperty(e)&&"function"==typeof this.atrule[e].prelude?this.atrule[e].prelude.call(this):this.readSequence(this.scope.AtrulePrelude),this.scanner.skipSC(),!0!==this.scanner.eof&&this.scanner.tokenType!==o&&this.scanner.tokenType!==a&&this.error("Semicolon or block is expected"),null===t&&(t=this.createList()),{type:"AtrulePrelude",loc:this.getLocationFromList(t),children:t}},generate:function(e){this.children(e)},walkContext:"atrulePrelude"}},33434:(e,t,r)=>{function n(){this.scanner.eof&&this.error("Unexpected end of input");var e=this.scanner.tokenStart,t=!1,r=!0;return this.scanner.isDelim(42)?(t=!0,r=!1,this.scanner.next()):!this.scanner.isDelim(124)&&this.eat(i),this.scanner.isDelim(124)?61===this.scanner.source.charCodeAt(this.scanner.tokenStart+1)?t&&this.error("Identifier is expected",this.scanner.tokenEnd):(this.scanner.next(),this.eat(i)):t&&this.error("Vertical line is expected"),r&&this.scanner.tokenType===l&&(this.scanner.next(),this.eat(i)),{type:"Identifier",loc:this.getLocation(e,this.scanner.tokenStart),name:this.scanner.substrToCursor(e)}}function a(){var e=this.scanner.tokenStart,t=this.scanner.source.charCodeAt(e);return 61!==t&&126!==t&&94!==t&&36!==t&&42!==t&&124!==t&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.scanner.next(),61!==t&&(!this.scanner.isDelim(61)&&this.error("Equal sign is expected"),this.scanner.next()),this.scanner.substrToCursor(e)}var o=r(61063).TYPE,i=o.Ident,s=o.String,l=o.Colon,d=o.LeftSquareBracket,p=o.RightSquareBracket;e.exports={name:"AttributeSelector",structure:{name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o=null,l;return this.eat(d),this.scanner.skipSC(),l=n.call(this),this.scanner.skipSC(),this.scanner.tokenType!==p&&(this.scanner.tokenType!==i&&(t=a.call(this),this.scanner.skipSC(),r=this.scanner.tokenType===s?this.String():this.Identifier(),this.scanner.skipSC()),this.scanner.tokenType===i&&(o=this.scanner.getTokenValue(),this.scanner.next(),this.scanner.skipSC())),this.eat(p),{type:"AttributeSelector",loc:this.getLocation(e,this.scanner.tokenStart),name:l,matcher:t,value:r,flags:o}},generate:function(e){var t=" ";this.chunk("["),this.node(e.name),null!==e.matcher&&(this.chunk(e.matcher),null!==e.value&&(this.node(e.value),"String"===e.value.type&&(t=""))),null!==e.flags&&(this.chunk(t),this.chunk(e.flags)),this.chunk("]")}}},5163:(e,t,r)=>{function n(e){return this.Raw(e,null,!0)}function a(){return this.parseWithFallback(this.Rule,n)}function o(e){return this.Raw(e,l.semicolonIncluded,!0)}function i(){if(this.scanner.tokenType===c)return o.call(this,this.scanner.tokenIndex);var e=this.parseWithFallback(this.Declaration,o);return this.scanner.tokenType===c&&this.scanner.next(),e}var s=r(61063).TYPE,l=r(18204).mode,d=s.WhiteSpace,p=s.Comment,c=s.Semicolon,u=s.AtKeyword,m=s.LeftCurlyBracket,g=s.RightCurlyBracket;e.exports={name:"Block",structure:{children:[["Atrule","Rule","Declaration"]]},parse:function(e){var t=e?i:a,r=this.scanner.tokenStart,o=this.createList();this.eat(m);scan:for(;!this.scanner.eof;)switch(this.scanner.tokenType){case g:break scan;case d:case p:this.scanner.next();break;case u:o.push(this.parseWithFallback(this.Atrule,n));break;default:o.push(t.call(this));}return this.scanner.eof||this.eat(g),{type:"Block",loc:this.getLocation(r,this.scanner.tokenStart),children:o}},generate:function(e){this.chunk("{"),this.children(e,function(e){"Declaration"===e.type&&this.chunk(";")}),this.chunk("}")},walkContext:"block"}},96809:(e,t,r)=>{var n=r(61063).TYPE,a=n.LeftSquareBracket,o=n.RightSquareBracket;e.exports={name:"Brackets",structure:{children:[[]]},parse:function(e,t){var r=this.scanner.tokenStart,n=null;return this.eat(a),n=e.call(this,t),this.scanner.eof||this.eat(o),{type:"Brackets",loc:this.getLocation(r,this.scanner.tokenStart),children:n}},generate:function(e){this.chunk("["),this.children(e),this.chunk("]")}}},4351:(e,t,r)=>{var n=r(61063).TYPE.CDC;e.exports={name:"CDC",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDC",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("-->")}}},37691:(e,t,r)=>{var n=r(61063).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("")}}},58368:(e,t,r)=>{var n=r(22802).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk(""}var p=r(43402),c=r(83982),u=r(53958);u.elementNames.__proto__=null,u.attributeNames.__proto__=null;var m={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0},g={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},h=e.exports=function(e,t){Array.isArray(e)||e.cheerio||(e=[e]),t=t||{};for(var r="",n=0,c;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=void 0,t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"},42515:e=>{e.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(e){return"tag"===e.type||"script"===e.type||"style"===e.type}}},43370:(e,t,r)=>{var n=e.exports;[r(64144),r(86755),r(69009),r(87431),r(75718),r(4614)].forEach(function(e){Object.keys(e).forEach(function(t){n[t]=e[t].bind(n)})})},4614:(e,t)=>{t.removeSubsets=function(e){for(var t=e.length,r,n,a;-1<--t;){for(r=n=e[t],e[t]=null,a=!0;n;){if(-1s.indexOf(d)?i===t?r.FOLLOWING|r.CONTAINED_BY:r.FOLLOWING:i===e?r.PRECEDING|r.CONTAINS:r.PRECEDING)};t.uniqueSort=function(e){var t=e.length,a,o;for(e=e.slice();-1<--t;)a=e[t],o=e.indexOf(a),-1{function n(e,t){return"function"==typeof t?function(r){return r.attribs&&t(r.attribs[e])}:function(r){return r.attribs&&r.attribs[e]===t}}function a(e,t){return function(r){return e(r)||t(r)}}var o=r(42515),i=t.isTag=o.isTag;t.testElement=function(e,t){for(var r in e)if(!e.hasOwnProperty(r));else if("tag_name"===r){if(!i(t)||!e.tag_name(t.name))return!1;}else if("tag_type"===r){if(!e.tag_type(t.type))return!1;}else if("tag_contains"===r){if(i(t)||!e.tag_contains(t.data))return!1;}else if(!t.attribs||!e[r](t.attribs[r]))return!1;return!0};var s={tag_name:function(e){return"function"==typeof e?function(t){return i(t)&&e(t.name)}:"*"===e?i:function(t){return i(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return!i(t)&&e(t.data)}:function(t){return!i(t)&&t.data===e}}};t.getElements=function(e,t,r,o){var i=Object.keys(e).map(function(t){var r=e[t];return t in s?s[t](r):n(t,r)});return 0===i.length?[]:this.filter(i.reduce(a),t,r,o)},t.getElementById=function(e,t,r){return Array.isArray(t)||(t=[t]),this.findOne(n("id",e),t,!1!==r)},t.getElementsByTagName=function(e,t,r,n){return this.filter(s.tag_name(e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return this.filter(s.tag_type(e),t,r,n)}},69009:(e,t)=>{t.removeElement=function(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}},t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var a=t.parent=e.parent;if(a){var o=a.children;o[o.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(t.parent=e,1!==e.children.push(t)){var r=e.children[e.children.length-2];r.next=t,t.prev=r,t.next=null}},t.append=function(e,t){var r=e.parent,n=e.next;if(t.next=n,t.prev=e,e.next=t,t.parent=r,!n)r&&r.children.push(t);else if(n.prev=t,r){var a=r.children;a.splice(a.lastIndexOf(n),0,t)}},t.prepend=function(e,t){var r=e.parent;if(r){var n=r.children;n.splice(n.lastIndexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},87431:(e,t,r)=>{function n(e,t,r,a){for(var o=[],s=0,l=t.length,d;s=--a))&&(d=t[s].children,!(r&&d&&0=a)));s++);return o}function a(e,t){for(var r=null,n=0,o=t.length;n{function n(e){return Array.isArray(e)?e.map(n).join(""):i(e)?"br"===e.name?"\n":n(e.children):e.type===a.CDATA?n(e.children):e.type===a.Text?e.data:""}var a=r(42515),o=r(1702),i=a.isTag;e.exports={getInnerHTML:function(e,t){return e.children?e.children.map(function(e){return o(e,t)}).join(""):""},getOuterHTML:o,getText:n}},86755:(e,t)=>{var r=t.getChildren=function(e){return e.children},n=t.getParent=function(e){return e.parent};t.getSiblings=function(e){var t=n(e);return t?r(t):[e]},t.getAttributeValue=function(e,t){return e.attribs&&e.attribs[t]},t.hasAttrib=function(e,t){return!!e.attribs&&hasOwnProperty.call(e.attribs,t)},t.getName=function(e){return e.name}},58509:(e,t,r)=>{"use strict";/** + `);o=e}catch(e){console.debug(e)}console.log(`Previous render sha | ${o??"(none)"}`),await a.repos.createOrUpdateFileContents({...t.context.repo,path:m,message:`Update ${m} - [Skip GitHub Action]`,content:Buffer.from(T).toString("base64"),...(o?{sha:o}:{})}),console.log(`Commit to repo | ok`)}console.log(`Success, thanks for using metrics !`),process.exit(0)}catch(t){if(console.error(t),!i(e.getInput("debug")))for(const e of["_".repeat(64),"An error occured, logging debug message :",...s])console.log(e);e.setFailed(t.message),process.exit(1)}})().catch(()=>process.exit(1))},12541:function(e,t,r){"use strict";function n(e,t,r){const n=new p(e,t,r);process.stdout.write(n.toString()+s.EOL)}function a(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function o(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(12087)),l=r(74332);t.issueCommand=n,t.issue=function(e,t=""){n(e,{},t)};const d="::";class p{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r}toString(){let e=d+this.command;if(this.properties&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toCommandValue=function(e){return null===e||void 0===e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e)}},84873:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(35747),a=r(12087);class o{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(n.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(n.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${a.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:t}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}t.Context=o},29483:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokit=t.context=void 0;const i=o(r(84873)),s=r(24864);t.context=new i.Context,t.getOctokit=function(e,t){return new s.GitHub(s.getOctokitOptions(e,t))}},18145:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getApiBaseUrl=t.getProxyAgent=t.getAuthString=void 0;const i=o(r(66305));t.getAuthString=function(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");else if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return"string"==typeof t.auth?t.auth:`token ${e}`},t.getProxyAgent=function(e){const t=new i.HttpClient;return t.getAgent(e)},t.getApiBaseUrl=function(){return process.env.GITHUB_API_URL||"https://api.github.com"}},24864:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokitOptions=t.GitHub=t.context=void 0;const i=o(r(84873)),s=o(r(18145)),l=r(40812),d=r(5462),p=r(19227);t.context=new i.Context;const c=s.getApiBaseUrl(),u={baseUrl:c,request:{agent:s.getProxyAgent(c)}};t.GitHub=l.Octokit.plugin(d.restEndpointMethods,p.paginateRest).defaults(u),t.getOctokitOptions=function(e,t){const r=Object.assign({},t||{}),n=s.getAuthString(e,r);return n&&(r.auth=n),r}},66305:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98605),a=r(57211),o=r(92901);let i;var s;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(s=t.HttpCodes||(t.HttpCodes={}));var l;(function(e){e.Accept="accept",e.ContentType="content-type"})(l=t.Headers||(t.Headers={}));var d;(function(e){e.ApplicationJson="application/json"})(d=t.MediaTypes||(t.MediaTypes={})),t.getProxyUrl=function(e){let t=o.getProxyUrl(new URL(e));return t?t.href:""};const p=[s.MovedPermanently,s.ResourceMoved,s.SeeOther,s.TemporaryRedirect,s.PermanentRedirect],c=[s.BadGateway,s.ServiceUnavailable,s.GatewayTimeout],u=["OPTIONS","GET","DELETE","HEAD"];class m extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,m.prototype)}}t.HttpClientError=m;class g{constructor(e){this.message=e}readBody(){return new Promise(async e=>{let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e])}),this.message.on("end",()=>{e(t.toString())})})}}t.HttpClientResponse=g,t.isHttps=function(e){let t=new URL(e);return"https:"===t.protocol};class h{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=_Mathmax(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries))}options(e,t){return this.request("OPTIONS",e,null,t||{})}get(e,t){return this.request("GET",e,null,t||{})}del(e,t){return this.request("DELETE",e,null,t||{})}post(e,t,r){return this.request("POST",e,t,r||{})}patch(e,t,r){return this.request("PATCH",e,t,r||{})}put(e,t,r){return this.request("PUT",e,t,r||{})}head(e,t){return this.request("HEAD",e,null,t||{})}sendStream(e,t,r,n){return this.request(e,t,r,n)}async getJson(e,t={}){t[l.Accept]=this._getExistingOrDefaultHeader(t,l.Accept,d.ApplicationJson);let r=await this.get(e,t);return this._processResponse(r,this.requestOptions)}async postJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.post(e,n,r);return this._processResponse(a,this.requestOptions)}async putJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.put(e,n,r);return this._processResponse(a,this.requestOptions)}async patchJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.patch(e,n,r);return this._processResponse(a,this.requestOptions)}async request(e,t,r,n){if(this._disposed)throw new Error("Client has already been disposed.");let a=new URL(t),o=this._prepareRequest(e,a,n),i=this._allowRetries&&-1!=u.indexOf(e)?this._maxRetries+1:1,l=0,d;for(;l{this.requestRawWithCallback(e,t,function(e,t){e&&n(e),r(t)})})}requestRawWithCallback(e,t,r){let n;"string"==typeof t&&(e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let a=!1,o=(e,t)=>{a||(a=!0,r(e,t))},i=e.httpModule.request(e.options,e=>{let t=new g(e);o(null,t)});i.on("socket",e=>{n=e}),i.setTimeout(this._socketTimeout||180000,()=>{n&&n.end(),o(new Error("Request timeout: "+e.options.path),null)}),i.on("error",function(e){o(e,null)}),t&&"string"==typeof t&&i.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){i.end()}),t.pipe(i)):i.end()}getAgent(e){let t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const o={parsedUrl:t},i="https:"===o.parsedUrl.protocol;o.httpModule=i?a:n;const s=i?443:80;return o.options={},o.options.host=o.parsedUrl.hostname,o.options.port=o.parsedUrl.port?parseInt(o.parsedUrl.port):s,o.options.path=(o.parsedUrl.pathname||"")+(o.parsedUrl.search||""),o.options.method=e,o.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(o.options.headers["user-agent"]=this.userAgent),o.options.agent=this._getAgent(o.parsedUrl),this.handlers&&this.handlers.forEach(e=>{e.prepareRequest(o.options)}),o}_mergeHeaders(e){const t=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},t(this.requestOptions.headers),t(e)):t(e||{})}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=(e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}))(this.requestOptions.headers)[t]),e[t]||n||r}_getAgent(e){let t=o.getProxyUrl(e),s=t&&t.hostname,l;if(this._keepAlive&&s&&(l=this._proxyAgent),this._keepAlive&&!s&&(l=this._agent),!!l)return l;const d="https:"===e.protocol;let p=100;if(!this.requestOptions||(p=this.requestOptions.maxSockets||n.globalAgent.maxSockets),s){i||(i=r(34603));const e={maxSockets:p,keepAlive:this._keepAlive,proxy:{proxyAuth:`${t.username}:${t.password}`,host:t.hostname,port:t.port}};let n;const a="https:"===t.protocol;n=d?a?i.httpsOverHttps:i.httpsOverHttp:a?i.httpOverHttps:i.httpOverHttp,l=n(e),this._proxyAgent=l}if(this._keepAlive&&!l){const e={keepAlive:this._keepAlive,maxSockets:p};l=d?new a.Agent(e):new n.Agent(e),this._agent=l}return l||(l=d?a.globalAgent:n.globalAgent),d&&this._ignoreSslError&&(l.options=Object.assign(l.options||{},{rejectUnauthorized:!1})),l}_performExponentialBackoff(e){e=_Mathmin(10,e);const t=5*_Mathpow(2,e);return new Promise(e=>setTimeout(()=>e(),t))}static dateTimeDeserializer(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e}return t}async _processResponse(e,t){return new Promise(async(r,n)=>{const a=e.message.statusCode,o={statusCode:a,result:null,headers:{}};a==s.NotFound&&r(o);let i,l;try{l=await e.readBody(),l&&0{"use strict";function r(e){if(!e.hostname)return!1;let t=process.env.no_proxy||process.env.NO_PROXY||"";if(!t)return!1;let r;e.port?r=+e.port:"http:"===e.protocol?r=80:"https:"===e.protocol&&(r=443);let n=[e.hostname.toUpperCase()];"number"==typeof r&&n.push(`${n[0]}:${r}`);for(let r of t.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e))if(n.some(e=>e===r))return!0;return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.getProxyUrl=function(e){let t="https:"===e.protocol,n;if(r(e))return n;let a;return a=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY,a&&(n=new URL(a)),n},t.checkBypass=r},22899:(e,t)=>{"use strict";async function r(e){const t=3===e.split(/\./).length?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:t}}function n(e){return 3===e.split(/\./).length?`bearer ${e}`:`token ${e}`}async function a(e,t,r,a){const o=t.endpoint.merge(r,a);return o.headers.authorization=n(e),t(o)}Object.defineProperty(t,"__esModule",{value:!0});t.createTokenAuth=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if("string"!=typeof e)throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(r.bind(null,e),{hook:a.bind(null,e)})}},40812:(e,t,r)=>{"use strict";function n(e,t){if(null==e)return{};var r={},n=Object.keys(e),a,o;for(o=0;o{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),this.hook=t,!!e.authStrategy){const{authStrategy:r}=e,n=a(e,["authStrategy"]),o=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",o.hook),this.auth=o}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{const r=d.createTokenAuth(e.auth);t.wrap("request",r.hook),this.auth=r}const n=this.constructor;n.plugins.forEach(t=>{Object.assign(this,t(this,e))})}static defaults(e){const t=class extends this{constructor(...t){const r=t[0]||{};return"function"==typeof e?void super(e(r)):void super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugin(...e){var t;const r=this.plugins,n=(t=class extends this{},t.plugins=r.concat(e.filter(e=>!r.includes(e))),t);return n}}p.VERSION="3.2.4",p.plugins=[],t.Octokit=p},70412:(e,t,r)=>{"use strict";function n(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function a(e,t){const r=Object.assign({},e);return Object.keys(t).forEach(n=>{k.isPlainObject(t[n])?n in e?r[n]=a(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function o(e){for(const t in e)void 0===e[t]&&delete e[t];return e}function i(e,t,r){if("string"==typeof t){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else r=Object.assign({},t);r.headers=n(r.headers),o(r),o(r.headers);const i=a(e||{},r);return e&&e.mediaType.previews.length&&(i.mediaType.previews=e.mediaType.previews.filter(e=>!i.mediaType.previews.includes(e)).concat(i.mediaType.previews)),i.mediaType.previews=i.mediaType.previews.map(e=>e.replace(/-preview/,"")),i}function s(e,t){const r=/\?/.test(e)?"&":"?",n=Object.keys(t);return 0===n.length?e:e+r+n.map(e=>"q"===e?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${e}=${encodeURIComponent(t[e])}`).join("&")}function l(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function d(e){const t=e.match(_);return t?t.map(l).reduce((e,t)=>e.concat(t),[]):[]}function p(e,t){return Object.keys(e).filter(e=>!t.includes(e)).reduce((t,r)=>(t[r]=e[r],t),{})}function c(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(e){return /%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")),e}).join("")}function u(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function m(e,t,r){return t="+"===e||"#"===e?c(t):u(t),r?u(r)+"="+t:t}function g(e){return void 0!==e&&null!==e}function h(e){return";"===e||"&"===e||"?"===e}function f(e,t,r,n){var a=e[r],o=[];if(!(g(a)&&""!==a))";"===t?g(a)&&o.push(u(r)):""===a&&("&"===t||"?"===t)?o.push(u(r)+"="):""===a&&o.push("");else if("string"==typeof a||"number"==typeof a||"boolean"==typeof a)a=a.toString(),n&&"*"!==n&&(a=a.substring(0,parseInt(n,10))),o.push(m(t,a,h(t)?r:""));else if("*"===n)Array.isArray(a)?a.filter(g).forEach(function(e){o.push(m(t,e,h(t)?r:""))}):Object.keys(a).forEach(function(e){g(a[e])&&o.push(m(t,a[e],e))});else{const e=[];Array.isArray(a)?a.filter(g).forEach(function(r){e.push(m(t,r))}):Object.keys(a).forEach(function(r){g(a[r])&&(e.push(u(r)),e.push(m(t,a[r].toString())))}),h(t)?o.push(u(r)+"="+e.join(",")):0!==e.length&&o.push(e.join(","))}return o}function y(e){return{expand:b.bind(null,e)}}function b(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(e,n,a){if(n){let e="";const a=[];if(-1!==r.indexOf(n.charAt(0))&&(e=n.charAt(0),n=n.substr(1)),n.split(/,/g).forEach(function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);a.push(f(t,e,n[1],n[2]||n[3]))}),e&&"+"!==e){var o=",";return"?"===e?o="&":"#"!==e&&(o=e),(0===a.length?"":e)+a.join(o)}return a.join(",")}return c(a)})}function S(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a=p(e,["method","baseUrl","url","headers","request","mediaType"]),o;const i=d(r);r=y(r).expand(a),/^http/.test(r)||(r=e.baseUrl+r);const l=Object.keys(e).filter(e=>i.includes(e)).concat("baseUrl"),c=p(a,l),u=/application\/octet-stream/i.test(n.accept);if(!u&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),e.mediaType.previews.length)){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map(t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`}).join(",")}return["GET","HEAD"].includes(t)?r=s(r,c):"data"in c?o=c.data:Object.keys(c).length?o=c:n["content-length"]=0,n["content-type"]||"undefined"==typeof o||(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&"undefined"==typeof o&&(o=""),Object.assign({method:t,url:r,headers:n},"undefined"==typeof o?null:{body:o},e.request?{request:e.request}:null)}function x(e,t,r){return S(i(e,t,r))}function v(e,t){const r=i(e,t),n=x.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:v.bind(null,r),merge:i.bind(null,r),parse:S})}Object.defineProperty(t,"__esModule",{value:!0});var k=r(80641),C=r(1857);const _=/\{[^}]+\}/g,w=`octokit-endpoint.js/${"6.0.10"} ${C.getUserAgent()}`,T=v(null,{method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":w},mediaType:{format:"",previews:[]}});t.endpoint=T},3584:(e,t,r)=>{"use strict";function n(e,t,r){if("string"==typeof t&&r&&"query"in r)return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`));const n="string"==typeof t?Object.assign({query:t},r):t,a=Object.keys(n).reduce((e,t)=>l.includes(t)?(e[t]=n[t],e):(e.variables||(e.variables={}),e.variables[t]=n[t],e),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return d.test(o)&&(a.url=o.replace(d,"/api/graphql")),e(a).then(e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers))t[r]=e.headers[r];throw new s(a,{headers:t,data:e.data})}return e.data.data})}function a(e,t){const r=e.defaults(t);return Object.assign((e,t)=>n(r,e,t),{defaults:a.bind(null,r),endpoint:o.request.endpoint})}Object.defineProperty(t,"__esModule",{value:!0});var o=r(48826),i=r(1857);class s extends Error{constructor(e,t){const r=t.data.errors[0].message;super(r),Object.assign(this,t.data),Object.assign(this,{headers:t.headers}),this.name="GraphqlError",this.request=e,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const l=["method","baseUrl","url","headers","request","query","mediaType"],d=/\/api\/v3\/?$/,p=a(o.request,{headers:{"user-agent":`octokit-graphql.js/${"4.5.8"} ${i.getUserAgent()}`},method:"POST",url:"/graphql"});t.graphql=p,t.withCustomRequest=function(e){return a(e,{method:"POST",url:"/graphql"})}},19227:(e,t)=>{"use strict";function r(e){const t="total_count"in e.data&&!("url"in e.data);if(!t)return e;const r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;const o=Object.keys(e.data)[0],i=e.data[o];return e.data=i,"undefined"!=typeof r&&(e.data.incomplete_results=r),"undefined"!=typeof n&&(e.data.repository_selection=n),e.data.total_count=a,e}function n(e,t,n){const a="function"==typeof t?t.endpoint(n):e.request.endpoint(t,n),o="function"==typeof t?t:e.request,i=a.method,s=a.headers;let l=a.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!l)return{done:!0};const e=await o({method:i,url:l,headers:s}),t=r(e);return l=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:t}}})}}function a(e,t,r,a){return"function"==typeof r&&(a=r,r=void 0),o(e,[],n(e,t,r)[Symbol.asyncIterator](),a)}function o(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let i=!1;return t=t.concat(n?n(a.value,function(){i=!0}):a.value.data),i?t:o(e,t,r,n)})}function i(e){return{paginate:Object.assign(a.bind(null,e),{iterator:n.bind(null,e)})}}Object.defineProperty(t,"__esModule",{value:!0});const s=Object.assign(a,{iterator:n});i.VERSION="2.6.2",t.composePaginateRest=s,t.paginateRest=i},5462:(e,t)=>{"use strict";function r(e,t){const r={};for(const[a,o]of Object.entries(t))for(const[t,i]of Object.entries(o)){const[o,s,l]=i,[d,p]=o.split(/ /),c=Object.assign({method:d,url:p},s);r[a]||(r[a]={});const u=r[a];if(l){u[t]=n(e,a,t,c,l);continue}u[t]=e.request.defaults(c)}return r}function n(e,t,r,n,a){function o(...n){let o=i.endpoint.merge(...n);if(a.mapToData)return o=Object.assign({},o,{data:o[a.mapToData],[a.mapToData]:void 0}),i(o);if(a.renamed){const[n,o]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){const o=i.endpoint.merge(...n);for(const[n,i]of Object.entries(a.renamedParameters))n in o&&(e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${i}" instead`),i in o||(o[i]=o[n]),delete o[n]);return i(o)}return i(...n)}const i=e.request.defaults(n);return Object.assign(o,i)}function a(e){return r(e,o)}Object.defineProperty(t,"__esModule",{value:!0});const o={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits"]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};a.VERSION="4.4.1",t.restEndpointMethods=a},48364:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}Object.defineProperty(t,"__esModule",{value:!0});var a=r(86649),o=n(r(86343));const i=o(e=>console.warn(e));class s extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t,Object.defineProperty(this,"code",{get(){return i(new a.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),this.headers=r.headers||{};const n=Object.assign({},r.request);r.request.headers.authorization&&(n.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),n.url=n.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=n}}t.RequestError=s},48826:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}function a(e){return e.arrayBuffer()}function o(e){(d.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let t={},r,n;const o=e.request&&e.request.fetch||p;return o(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(o=>{n=o.url,r=o.status;for(const e of o.headers)t[e[0]]=e[1];if(204!==r&&205!==r){if("HEAD"===e.method){if(400>r)return;throw new c.RequestError(o.statusText,r,{headers:t,request:e})}if(304===r)throw new c.RequestError("Not modified",r,{headers:t,request:e});if(400<=r)return o.text().then(n=>{const a=new c.RequestError(n,r,{headers:t,request:e});try{let e=JSON.parse(a.message);Object.assign(a,e);let t=e.errors;a.message=a.message+": "+t.map(JSON.stringify).join(", ")}catch(t){}throw a});const n=o.headers.get("content-type");return /application\/json/.test(n)?o.json():!n||/^text\/|charset=utf-8$/.test(n)?o.text():a(o)}}).then(e=>({status:r,url:n,headers:t,data:e})).catch(r=>{if(r instanceof c.RequestError)throw r;throw new c.RequestError(r.message,500,{headers:t,request:e})})}function i(e,t){const r=e.defaults(t);return Object.assign(function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook)return o(r.parse(n));const a=(e,t)=>o(r.parse(r.merge(e,t)));return Object.assign(a,{endpoint:r,defaults:i.bind(null,r)}),n.request.hook(a,n)},{endpoint:r,defaults:i.bind(null,r)})}Object.defineProperty(t,"__esModule",{value:!0});var s=r(70412),l=r(1857),d=r(80641),p=n(r(22434)),c=r(48364);const u=i(s.endpoint,{headers:{"user-agent":`octokit-request.js/${"5.4.12"} ${l.getUserAgent()}`}});t.request=u},67208:function(e,t,r){"use strict";function n(e){return!!e&&"function"==typeof e.addRequest}function a(e){return!!e&&"function"==typeof e.addRequest}function o(){const{stack:e}=new Error;return"string"==typeof e&&e.split("\n").some(e=>-1!==e.indexOf("(https.js:"))}function i(e,t){return new i.Agent(e,t)}var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const l=r(28614),d=s(r(2929));(function(e){class t extends l.EventEmitter{constructor(e,t){super(),this.promisifiedCallback=void 0;let r=t;"function"==typeof e?this.callback=e:e&&(r=e),this.timeout=null,r&&"number"==typeof r.timeout&&(this.timeout=r.timeout),this.options=r||{},this.maxFreeSockets=1,this.maxSockets=1,this.sockets=[],this.requests=[]}get defaultPort(){return"number"==typeof this.explicitDefaultPort?this.explicitDefaultPort:o()?443:80}set defaultPort(e){this.explicitDefaultPort=e}get protocol(){return"string"==typeof this.explicitProtocol?this.explicitProtocol:o()?"https:":"http:"}set protocol(e){this.explicitProtocol=e}callback(){throw new Error("\"agent-base\" has no default implementation, you must subclass and override `callback()`")}addRequest(e,t){function r(t){e._hadError||(e.emit("error",t),e._hadError=!0)}function i(e){c||(null!==u&&(clearTimeout(u),u=null),r(e))}function s(t){function o(){g(i,p)}let i;if(!c){if(null!=u&&(clearTimeout(u),u=null),n(t)||a(t))return void t.addRequest(e,p);if(t)return i=t,i.on("free",o),void e.onSocket(i);const s=new Error(`no Duplex stream was returned to agent-base for \`${e.method} ${e.path}\``);r(s)}}const l=Object.assign({},t);"boolean"!=typeof l.secureEndpoint&&(l.secureEndpoint=o()),null==l.host&&(l.host="localhost"),null==l.port&&(l.port=l.secureEndpoint?443:80);const p=Object.assign(Object.assign({},this.options),l);p.host&&p.path&&delete p.path,delete p.agent,delete p.hostname,delete p._defaultAgent,delete p.defaultPort,delete p.createConnection,e._last=!0,e.shouldKeepAlive=!1;let c=!1,u=null;const m=this.timeout,g=this.freeSocket;if("function"!=typeof this.callback)return void r(new Error("`callback` is not defined"));this.promisifiedCallback||(3<=this.callback.length?this.promisifiedCallback=d.default(this.callback):this.promisifiedCallback=this.callback),"number"==typeof m&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,r){return new Promise((n,a)=>{e.call(this,t,r,(e,t)=>{e?a(e):n(t)})})}}},2390:(e,t,r)=>{e.exports=r(64579)},38007:(e,t,r)=>{"use strict";function n(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var a=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(e){e.headers.host=e.host,n(e,t,e.href)}}var a=r(19520),o=r(29801),i=r(92074),s=r(87481),l=r(98605),d=r(57211),p=r(75955).http,c=r(75955).https,u=r(78835),m=r(78761),g=r(35131),h=r(3034),f=r(95261),y=/https:?/;e.exports=function(e){return new Promise(function(t,r){var b=function(e){t(e)},S=function(e){r(e)},x=e.data,v=e.headers;if(v["User-Agent"]||v["user-agent"]||(v["User-Agent"]="axios/"+g.version),x&&!a.isStream(x)){if(Buffer.isBuffer(x));else if(a.isArrayBuffer(x))x=Buffer.from(new Uint8Array(x));else if(a.isString(x))x=Buffer.from(x,"utf-8");else return S(h("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));v["Content-Length"]=x.length}var k;if(e.auth){var C=e.auth.username||"",_=e.auth.password||"";k=C+":"+_}var w=i(e.baseURL,e.url),T=u.parse(w),E=T.protocol||"http:";if(!k&&T.auth){var A=T.auth.split(":"),O=A[0]||"",P=A[1]||"";k=O+":"+P}k&&delete v.Authorization;var L=y.test(E),z=L?e.httpsAgent:e.httpAgent,R={path:s(T.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:v,agent:z,agents:{http:e.httpAgent,https:e.httpsAgent},auth:k};e.socketPath?R.socketPath=e.socketPath:(R.hostname=T.hostname,R.port=T.port);var I=e.proxy;if(!I&&!1!==I){var M=E.slice(0,-1)+"_proxy",W=process.env[M]||process.env[M.toUpperCase()];if(W){var q=u.parse(W),B=process.env.no_proxy||process.env.NO_PROXY,N=!0;if(B){var D=B.split(",").map(function(e){return e.trim()});N=!D.some(function(e){return!!e&&("*"===e||"."===e[0]&&T.hostname.substr(T.hostname.length-e.length)===e||T.hostname===e)})}if(N&&(I={host:q.hostname,port:q.port,protocol:q.protocol},q.auth)){var F=q.auth.split(":");I.auth={username:F[0],password:F[1]}}}}I&&(R.headers.host=T.hostname+(T.port?":"+T.port:""),n(R,I,E+"//"+T.hostname+(T.port?":"+T.port:"")+R.path));var G=L&&(!I||y.test(I.protocol)),U;e.transport?U=e.transport:0===e.maxRedirects?U=G?d:l:(e.maxRedirects&&(R.maxRedirects=e.maxRedirects),U=G?c:p),-1e.maxContentLength&&(r.destroy(),S(h("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,n)))}),r.on("error",function(t){j.aborted||S(f(t,e,null,n))}),r.on("end",function(){var t=Buffer.concat(s);"arraybuffer"!==e.responseType&&(t=t.toString(e.responseEncoding),(!e.responseEncoding||"utf8"===e.responseEncoding)&&(t=a.stripBOM(t))),i.data=t,o(b,S,i)})}}});j.on("error",function(t){j.aborted&&"ERR_FR_TOO_MANY_REDIRECTS"!==t.code||S(f(t,e,null,j))}),e.timeout&&j.setTimeout(e.timeout,function(){j.abort(),S(h("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",j))}),e.cancelToken&&e.cancelToken.promise.then(function(e){j.aborted||(j.abort(),S(e))}),a.isStream(x)?x.on("error",function(t){S(f(t,e,null,j))}).pipe(j):j.end(x)})}},63500:(e,t,r)=>{"use strict";var n=r(19520),a=r(29801),o=r(47536),i=r(87481),s=r(92074),l=r(77912),d=r(11682),p=r(3034);e.exports=function(t){return new Promise(function(e,r){var c=t.data,u=t.headers;n.isFormData(c)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(t.auth){var g=t.auth.username||"",h=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";u.Authorization="Basic "+btoa(g+":"+h)}var f=s(t.baseURL,t.url);if(m.open(t.method.toUpperCase(),i(f,t.params,t.paramsSerializer),!0),m.timeout=t.timeout,m.onreadystatechange=function(){if(m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in m?l(m.getAllResponseHeaders()):null,o=t.responseType&&"text"!==t.responseType?m.response:m.responseText,i={data:o,status:m.status,statusText:m.statusText,headers:n,config:t,request:m};a(e,r,i),m=null}},m.onabort=function(){m&&(r(p("Request aborted",t,"ECONNABORTED",m)),m=null)},m.onerror=function(){r(p("Network Error",t,null,m)),m=null},m.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),r(p(e,t,"ECONNABORTED",m)),m=null},n.isStandardBrowserEnv()){var y=(t.withCredentials||d(f))&&t.xsrfCookieName?o.read(t.xsrfCookieName):void 0;y&&(u[t.xsrfHeaderName]=y)}if("setRequestHeader"in m&&n.forEach(u,function(e,t){"undefined"==typeof c&&"content-type"===t.toLowerCase()?delete u[t]:m.setRequestHeader(t,e)}),n.isUndefined(t.withCredentials)||(m.withCredentials=!!t.withCredentials),t.responseType)try{m.responseType=t.responseType}catch(r){if("json"!==t.responseType)throw r}"function"==typeof t.onDownloadProgress&&m.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(e){m&&(m.abort(),r(e),m=null)}),c||(c=null),m.send(c)})}},64579:(e,t,r)=>{"use strict";function n(e){var t=new i(e),r=o(i.prototype.request,t);return a.extend(r,i.prototype,t),a.extend(r,t),r}var a=r(19520),o=r(69339),i=r(10353),s=r(59807),l=r(6769),d=n(l);d.Axios=i,d.create=function(e){return n(s(d.defaults,e))},d.Cancel=r(56305),d.CancelToken=r(99576),d.isCancel=r(57822),d.all=function(e){return Promise.all(e)},d.spread=r(83202),d.isAxiosError=r(34722),e.exports=d,e.exports.default=d},56305:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},99576:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new a(e),t(r.reason))})}var a=r(56305);n.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},n.source=function(){var e=new n(function(e){t=e}),t;return{token:e,cancel:t}},e.exports=n},57822:e=>{"use strict";e.exports=function(e){return!!(e&&e.__CANCEL__)}},10353:(e,t,r)=>{"use strict";function n(e){this.defaults=e,this.interceptors={request:new i,response:new i}}var a=r(19520),o=r(87481),i=r(88030),s=r(18944),l=r(59807);n.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=l(this.defaults,e),e.method=e.method?e.method.toLowerCase():this.defaults.method?this.defaults.method.toLowerCase():"get";var t=[s,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)r=r.then(t.shift(),t.shift());return r},n.prototype.getUri=function(e){return e=l(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},a.forEach(["delete","get","head","options"],function(e){n.prototype[e]=function(t,r){return this.request(l(r||{},{method:e,url:t,data:(r||{}).data}))}}),a.forEach(["post","put","patch"],function(e){n.prototype[e]=function(t,r,n){return this.request(l(n||{},{method:e,url:t,data:r}))}}),e.exports=n},88030:(e,t,r)=>{"use strict";function n(){this.handlers=[]}var a=r(19520);n.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},n.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},n.prototype.forEach=function(e){a.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=n},92074:(e,t,r)=>{"use strict";var n=r(55470),a=r(65824);e.exports=function(e,t){return e&&!n(t)?a(e,t):t}},3034:(e,t,r)=>{"use strict";var n=r(95261);e.exports=function(e,t,r,a,o){var i=new Error(e);return n(i,t,r,a,o)}},18944:(e,t,r)=>{"use strict";function n(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var a=r(19520),o=r(62479),i=r(57822),s=r(6769);e.exports=function(e){n(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=a.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),a.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=e.adapter||s.adapter;return t(e).then(function(t){return n(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(n(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},95261:e=>{"use strict";e.exports=function(e,t,r,n,a){return e.config=t,r&&(e.code=r),e.request=n,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},59807:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){function r(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function a(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(e[a],t[a])}t=t||{};var o={},i=["url","method","data"],s=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],d=["validateStatus"];n.forEach(i,function(e){n.isUndefined(t[e])||(o[e]=r(void 0,t[e]))}),n.forEach(s,a),n.forEach(l,function(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(void 0,t[a])}),n.forEach(d,function(n){n in t?o[n]=r(e[n],t[n]):n in e&&(o[n]=r(void 0,e[n]))});var p=i.concat(s).concat(l).concat(d),c=Object.keys(e).concat(Object.keys(t)).filter(function(e){return-1===p.indexOf(e)});return n.forEach(c,a),o}},29801:(e,t,r)=>{"use strict";var n=r(3034);e.exports=function(e,t,r){var a=r.config.validateStatus;r.status&&a&&!a(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},62479:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t,r){return n.forEach(r,function(r){e=r(e,t)}),e}},6769:(e,t,r)=>{"use strict";function n(e,t){!a.isUndefined(e)&&a.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a=r(19520),o=r(53293),i={"Content-Type":"application/x-www-form-urlencoded"},s={adapter:function(){var e;return"undefined"==typeof XMLHttpRequest?"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)&&(e=r(38007)):e=r(63500),e}(),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),a.isFormData(e)||a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)?e:a.isArrayBufferView(e)?e.buffer:a.isURLSearchParams(e)?(n(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):a.isObject(e)?(n(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return 200<=e&&300>e}};s.headers={common:{Accept:"application/json, text/plain, */*"}},a.forEach(["delete","get","head"],function(e){s.headers[e]={}}),a.forEach(["post","put","patch"],function(e){s.headers[e]=a.merge(i)}),e.exports=s},69339:e=>{"use strict";e.exports=function(e,t){return function(){for(var r=Array(arguments.length),n=0;n{"use strict";function n(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var a=r(19520);e.exports=function(e,t,r){if(!t)return e;var o;if(r)o=r(t);else if(a.isURLSearchParams(t))o=t.toString();else{var i=[];a.forEach(t,function(e,t){null===e||"undefined"==typeof e||(a.isArray(e)?t+="[]":e=[e],a.forEach(e,function(e){a.isDate(e)?e=e.toISOString():a.isObject(e)&&(e=JSON.stringify(e)),i.push(n(t)+"="+n(e))}))}),o=i.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},65824:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},47536:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){return{write:function(e,t,r,a,o,i){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(a)&&s.push("path="+a),n.isString(o)&&s.push("domain="+o),!0===i&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},55470:e=>{"use strict";e.exports=function(e){return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},34722:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},11682:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){function e(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),a;return a=e(window.location.href),function(t){var r=n.isString(t)?e(t):t;return r.protocol===a.protocol&&r.host===a.host}}():function(){return function(){return!0}}()},53293:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){n.forEach(e,function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])})}},77912:(e,t,r)=>{"use strict";var n=r(19520),a=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t={},r,o,s;return e?(n.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),r=n.trim(e.substr(0,s)).toLowerCase(),o=n.trim(e.substr(s+1)),r){if(t[r]&&0<=a.indexOf(r))return;t[r]="set-cookie"===r?(t[r]?t[r]:[]).concat([o]):t[r]?t[r]+", "+o:o}}),t):t}},83202:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},19520:(e,t,r)=>{"use strict";function n(e){return"[object Array]"===u.call(e)}function a(e){return"undefined"==typeof e}function o(e){return null!==e&&"object"==typeof e}function i(e){if("[object Object]"!==u.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function s(e){return"[object Function]"===u.call(e)}function d(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),n(e))for(var r=0,a=e.length;r{"use strict";function t(e,t,i){e instanceof RegExp&&(e=n(e,i)),t instanceof RegExp&&(t=n(t,i));var s=o(e,t,i);return s&&{start:s[0],end:s[1],pre:i.slice(0,s[0]),body:i.slice(s[0]+e.length,s[1]),post:i.slice(s[1]+t.length)}}function n(e,t){var r=t.match(e);return r?r[0]:null}function o(e,t,r){var n=r.indexOf(e),a=r.indexOf(t,n+1),o=n,s,l,d,p,c;if(0<=n&&0{function n(e,t,r){var n=p(l,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(n){var a=r?[t,n,r]:[t,n];e[n]=e.api[n]=p(s,null).apply(null,a)})}function a(){var e={registry:{}},t=i.bind(null,e);return n(t,e),t}function o(){return c||(console.warn("[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4"),c=!0),a()}var i=r(27798),s=r(82446),l=r(16436),d=Function.bind,p=d.bind(d),c=!1;o.Singular=function(){var e={registry:{}},t=i.bind(null,e,"h");return n(t,e,"h"),t}.bind(),o.Collection=a.bind(),e.exports=o,e.exports.Hook=o,e.exports.Singular=o.Singular,e.exports.Collection=o.Collection},82446:e=>{e.exports=function(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),"before"===t&&(n=function(e,t){return Promise.resolve().then(a.bind(null,t)).then(e.bind(null,t))}),"after"===t&&(n=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then(function(e){return r=e,a(r,t)}).then(function(){return r})}),"error"===t&&(n=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch(function(e){return a(e,t)})}),e.registry[r].push({hook:n,orig:a})}},27798:e=>{function t(e,r,n,a){if("function"!=typeof n)throw new Error("method for before hook must be a function");return a||(a={}),Array.isArray(r)?r.reverse().reduce(function(r,n){return t.bind(null,e,n,r,a)},n)():Promise.resolve().then(function(){return e.registry[r]?e.registry[r].reduce(function(e,t){return t.hook.bind(null,e,a)},n)():n(a)})}e.exports=t},16436:e=>{e.exports=function(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(e){return e.orig}).indexOf(r);-1===n||e.registry[t].splice(n,1)}}},66616:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void n._init.call(this,e):new n(e)}const{Buffer:a}=r(64293),o=Symbol.for("BufferList");n._init=function(e){Object.defineProperty(this,o,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)},n.prototype._new=function(e){return new n(e)},n.prototype._offset=function(e){if(0===e)return[0,0];let t=0;for(let r=0;rthis.length||0>e)){const t=this._offset(e);return this._bufs[t[0]][t[1]]}},n.prototype.slice=function(e,t){return"number"==typeof e&&0>e&&(e+=this.length),"number"==typeof t&&0>t&&(t+=this.length),this.copy(null,0,e,t)},n.prototype.copy=function e(t,r,n,o){if(("number"!=typeof n||0>n)&&(n=0),("number"!=typeof o||o>this.length)&&(o=this.length),n>=this.length)return t||a.alloc(0);if(0>=o)return t||a.alloc(0);const e=!!t,s=this._offset(n),l=o-n;let d=l,p=e&&r||0,c=s[1];if(0===n&&o===this.length){if(!e)return 1===this._bufs.length?this._bufs[0]:a.concat(this._bufs,this.length);for(let e=0;er)this._bufs[e].copy(t,p,c),p+=r;else{this._bufs[e].copy(t,p,c,c+d),p+=r;break}d-=r,c&&(c=0)}return t.length>p?t.slice(0,p):t},n.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"==typeof t?t:this.length,0>e&&(e+=this.length),0>t&&(t+=this.length),e===t)return this._new();const r=this._offset(e),n=this._offset(t),a=this._bufs.slice(r[0],n[0]+1);return 0===n[1]?a.pop():a[a.length-1]=a[a.length-1].slice(0,n[1]),0!==r[1]&&(a[0]=a[0].slice(r[1])),this._new(a)},n.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},n.prototype.consume=function(e){var t=Number.isNaN,r=Math.trunc;if(e=r(e),t(e)||0>=e)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this},n.prototype.duplicate=function(){const e=this._new();for(let t=0;tt&&(t=this.length+t),0>t&&(t=0),0===e.length)return t>this.length?this.length:t;const n=this._offset(t);let o=n[0],i=n[1];for(;o=e.length){const r=t.indexOf(e,i);if(-1!==r)return this._reverseOffset([o,r]);i=t.length-e.length+1}else{const t=this._reverseOffset([o,i]);if(this._match(t,e))return t;i++}}i=0}return-1},n.prototype._match=function(e,t){if(this.length-e{"use strict";function n(e){if(!(this instanceof n))return new n(e);if("function"==typeof e){this._callback=e;const t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",function(e){e.on("error",t)}),this.on("unpipe",function(e){e.removeListener("error",t)}),e=null}i._init.call(this,e),a.call(this)}const a=r(30009).Duplex,o=r(94835),i=r(66616);o(n,a),Object.assign(n.prototype,i.prototype),n.prototype._new=function(e){return new n(e)},n.prototype._write=function(e,t,r){this._appendBuffer(e),"function"==typeof r&&r()},n.prototype._read=function(e){return this.length?void(e=_Mathmin(e,this.length),this.push(this.slice(0,e)),this.consume(e)):this.push(null)},n.prototype.end=function(e){a.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},n.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)},n.prototype._isBufferList=function(e){return e instanceof n||e instanceof i||n.isBufferList(e)},n.isBufferList=i.isBufferList,e.exports=n,e.exports.BufferListStream=n,e.exports.BufferList=i},94835:(t,r,n)=>{try{var a=n(31669);if("function"!=typeof a.inherits)throw"";t.exports=a.inherits}catch(r){t.exports=n(72739)}},72739:e=>{e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},71947:e=>{"use strict";function t(e,t,r){function n(e,r,n){return"string"==typeof t?t:t(e,r,n)}r||(r=Error);class a extends r{constructor(e,t,r){super(n(e,t,r))}}a.prototype.name=r.name,a.prototype.code=e,i[e]=a}function r(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>e+""),2r?0:+r,t.length)===t}function a(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function o(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}const i={};t("ERR_INVALID_OPT_VALUE",function(e,t){return"The value \""+t+"\" is invalid for option \""+e+"\""},TypeError),t("ERR_INVALID_ARG_TYPE",function(e,t,i){let s;"string"==typeof t&&n(t,"not ")?(s="must not be",t=t.replace(/^not /,"")):s="must be";let l;if(a(e," argument"))l=`The ${e} ${s} ${r(t,"type")}`;else{const n=o(e,".")?"property":"argument";l=`The "${e}" ${n} ${s} ${r(t,"type")}`}return l+=`. Received type ${typeof i}`,l},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=i},18084:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void(s.call(this,e),l.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",a)))):new n(e)}function a(){this._writableState.ended||process.nextTick(o,this)}function o(e){e.end()}var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=n;var s=r(11864),l=r(92042);r(94835)(n,s);for(var d=i(l.prototype),p=0,c;p{"use strict";function n(e){return this instanceof n?void a.call(this,e):new n(e)}e.exports=n;var a=r(57173);r(94835)(n,a),n.prototype._transform=function(e,t,r){r(null,e)}},11864:(e,t,r)=>{"use strict";function n(e){return z.from(e)}function a(e){return z.isBuffer(e)||e instanceof R}function o(e,t,r){return"function"==typeof e.prependListener?e.prependListener(t,r):void(e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r))}function i(e,t,n){A=A||r(18084),e=e||{},"boolean"!=typeof n&&(n=t instanceof A),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=N(this,e,"readableHighWaterMark",n),this.buffer=new W,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(!H&&(H=r(84882).s),this.decoder=new H(e.encoding),this.encoding=e.encoding)}function s(e){if(A=A||r(18084),!(this instanceof s))return new s(e);var t=this instanceof A;this._readableState=new i(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),L.call(this)}function l(e,t,r,a,o){M("readableAddChunk",t);var i=e._readableState;if(null===t)i.reading=!1,m(e,i);else{var s;if(o||(s=p(i,t)),s)Y(e,s);else if(!(i.objectMode||t&&0>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function u(e,t){return 0>=e||0===t.length&&t.ended?0:t.objectMode?1:e===e?(e>t.highWaterMark&&(t.highWaterMark=c(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0)):t.flowing&&t.length?t.buffer.head.data.length:t.length}function m(e,t){if(M("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?g(e):(t.needReadable=!1,!t.emittedReadable&&(t.emittedReadable=!0,h(e)))}}function g(e){var t=e._readableState;M("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(M("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;M("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,C(e)}function f(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(y,e,t))}function y(e,t){for(;!t.reading&&!t.ended&&(t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function w(e){var t=e._readableState;M("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(M("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function E(e,t){for(var r=0,n=e.length;r=t.highWaterMark)||t.ended))return M("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?w(this):g(this),null;if(e=u(e,t),0===e&&t.ended)return 0===t.length&&w(this),null;var a=t.needReadable;M("need readable",a),(0===t.length||t.length-e{"use strict";function n(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new d);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){w(t,e)}}function a(e){return O.from(e)}function o(e){return O.isBuffer(e)||e instanceof P}function i(){}function s(e,t,a){T=T||r(18084),e=e||{},"boolean"!=typeof a&&(a=t instanceof T),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=R(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){f(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function l(e){T=T||r(18084);var t=this instanceof T;return t||j.call(l,this)?void(this._writableState=new s(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),A.call(this)):new l(e)}function d(e,t){var r=new F;U(e,r),process.nextTick(t,r)}function p(e,t,r,n){var a;return null===r?a=new D:"string"!=typeof r&&!t.objectMode&&(a=new M("chunk",["string","Buffer"],r)),!a||(U(e,a),process.nextTick(n,a),!1)}function c(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=O.from(t,r)),t}function u(e,t,r,n,a,o){if(!r){var i=c(t,n,a);n!==i&&(r=!0,a="buffer",n=i)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return{value:e,done:t}}function o(e){var t=e[d];if(null!==t){var r=e[h].read();null!==r&&(e[m]=null,e[d]=null,e[p]=null,t(a(r,!1)))}}function i(e){process.nextTick(o,e)}function s(e,t){return function(r,n){e.then(function(){return t[u]?void r(a(void 0,!0)):void t[g](r,n)},n)}}var l=r(26052),d=Symbol("lastResolve"),p=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),m=Symbol("lastPromise"),g=Symbol("handlePromise"),h=Symbol("stream"),f=Object.getPrototypeOf(function(){}),y=Object.setPrototypeOf((b={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(a(void 0,!0));if(this[h].destroyed)return new Promise(function(t,r){process.nextTick(function(){e[c]?r(e[c]):t(a(void 0,!0))})});var r=this[m],n;if(r)n=new Promise(s(r,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(a(o,!1));n=new Promise(this[g])}return this[m]=n,n}},n(b,Symbol.asyncIterator,function(){return this}),n(b,"return",function(){var e=this;return new Promise(function(t,r){e[h].destroy(null,function(e){return e?void r(e):void t(a(void 0,!0))})})}),b),f),b;e.exports=function(e){var t=Object.create(y,(r={},n(r,h,{value:e,writable:!0}),n(r,d,{value:null,writable:!0}),n(r,p,{value:null,writable:!0}),n(r,c,{value:null,writable:!0}),n(r,u,{value:e._readableState.endEmitted,writable:!0}),n(r,g,{value:function(e,r){var n=t[h].read();n?(t[m]=null,t[d]=null,t[p]=null,e(a(n,!1))):(t[d]=e,t[p]=r)},writable:!0}),r)),r;return t[m]=null,l(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var r=t[p];return null!==r&&(t[m]=null,t[d]=null,t[p]=null,r(e)),void(t[c]=e)}var n=t[d];null!==n&&(t[m]=null,t[d]=null,t[p]=null,n(a(void 0,!0))),t[u]=!0}),e.on("readable",i.bind(null,t)),t}},38568:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1,r;t>>0),r=this.head,n=0;r;)d(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(a+=i===o.length?o:o.slice(0,e),e-=i,0===e){i===o.length?(++r,this.head=t.next?t.next:this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),e-=i,0===e){i===o.length?(++a,this.head=r.next?r.next:this.tail=null):(this.head=r,r.data=o.slice(i));break}++a}return this.length-=a,t}},{key:h,value:function(e,t){return g(this,a({},t,{depth:0,customInspect:!1}))}}]),e}()},22126:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(a?a(e):e&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!a&&e?o._writableState?o._writableState.errorEmitted?process.nextTick(r,o):(o._writableState.errorEmitted=!0,process.nextTick(t,o,e)):process.nextTick(t,o,e):a?(process.nextTick(r,o),a(e)):process.nextTick(r,o)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},26052:(e,t,r)=>{"use strict";function n(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=Array(r),a=0;a{"use strict";function n(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(a,o){function i(e){n(l,a,o,i,s,"next",e)}function s(e){n(l,a,o,i,s,"throw",e)}var l=e.apply(t,r);i(void 0)})}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1,r;t{"use strict";function n(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}function a(e){if(e)throw e}function o(e){return e.setHeader&&"function"==typeof e.abort}function s(e,t,a,i){i=n(i);var s=!1;e.on("close",function(){s=!0}),void 0===g&&(g=r(26052)),g(e,{readable:t,writable:a},function(e){return e?i(e):void(s=!0,i())});var l=!1;return function(t){if(!s)return l?void 0:(l=!0,o(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new m("pipe")))}}function l(e){e()}function d(e,t){return e.pipe(t)}function p(e){return e.length?"function"==typeof e[e.length-1]?e.pop():a:a}var c=r(71947).q,u=c.ERR_MISSING_ARGS,m=c.ERR_STREAM_DESTROYED,g;e.exports=function(){for(var e=arguments.length,t=Array(e),r=0;rt.length)throw new u("streams");var a=t.map(function(e,r){var i=r{"use strict";function n(e,t,r){return null==e.highWaterMark?t?e[r]:null:e.highWaterMark}var a=r(71947).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,o){var i=n(t,o,r);if(null!=i){if(!(isFinite(i)&&_Mathfloor(i)===i)||0>i){var s=o?r:"highWaterMark";throw new a(s,i)}return _Mathfloor(i)}return e.objectMode?16:16384}}},47640:(e,t,r)=>{e.exports=r(92413)},30009:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):(t=e.exports=r(11864),t.Stream=n||t,t.Readable=t,t.Writable=r(92042),t.Duplex=r(18084),t.Transform=r(57173),t.PassThrough=r(11798),t.finished=r(26052),t.pipeline=r(14705))},27510:e=>{e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},63726:(e,t,r)=>{function a(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function o(e){return e.split("\\\\").join(y).split("\\{").join(b).split("\\}").join(S).split("\\,").join(x).split("\\.").join(v)}function i(e){return e.split(y).join("\\").split(b).join("{").split(S).join("}").split(x).join(",").split(v).join(".")}function s(e){if(!e)return[""];var t=[],r=f("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,i=n.split(",");i[i.length-1]+="{"+a+"}";var l=s(o);return o.length&&(i[i.length-1]+=l.shift(),i.push.apply(i,l)),t.push.apply(t,i),t}function l(e){return"{"+e+"}"}function d(e){return /^-?0\d/.test(e)}function p(e,t){return e<=t}function u(e,t){return e>=t}function g(e,t){var r=[],o=f("{","}",e);if(!o||/\$$/.test(o.pre))return[e];var m=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(o.body),b=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(o.body),v=m||b,C=0<=o.body.indexOf(",");if(!v&&!C)return o.post.match(/,.*\}/)?(e=o.pre+"{"+o.body+S+o.post,g(e)):[e];var _;if(v)_=o.body.split(/\.\./);else if(_=s(o.body),1===_.length&&(_=g(_[0],!1).map(l),1===_.length)){var w=o.post.length?g(o.post,!1):[""];return w.map(function(e){return o.pre+_[0]+e})}var T=o.pre,w=o.post.length?g(o.post,!1):[""],E;if(v){var A=a(_[0]),x=a(_[1]),y=_Mathmax(_[0].length,_[1].length),O=3==_.length?_Mathabs(a(_[2])):1,P=p;xR?"-"+W+I.slice(1):W+I}}E.push(I)}}else E=h(_,function(e){return g(e,!1)});for(var z=0;z{function a(e){if(l.isBuffer(e))return e;var t="function"==typeof l.alloc&&"function"==typeof l.from;if("number"==typeof e)return t?l.alloc(e):new l(e);if("string"==typeof e)return t?l.from(e):new l(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function o(e){var t=a(4);return t.writeInt32BE(e,0),t}function i(e,t){e=a(e),l.isBuffer(t)&&(t=t.readUInt32BE(0));for(var r=-1^~~t,o=0;o>>8;return-1^r}function s(){return o(i.apply(null,arguments))}var l=r(64293).Buffer,d=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(d=new Int32Array(d)),s.signed=function(){return i.apply(null,arguments)},s.unsigned=function(){return i.apply(null,arguments)>>>0},e.exports=s},95418:(e,t,r)=>{"use strict";var n=r(24888),a=r(37721),o=a(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&-1{"use strict";var n=r(10373),a=r(24888),o=a("%Function.prototype.apply%"),i=a("%Function.prototype.call%"),s=a("%Reflect.apply%",!0)||n.call(i,o),l=a("%Object.defineProperty%",!0);if(l)try{l({},"a",{value:1})}catch(t){l=null}e.exports=function(){return s(n,i,arguments)};var d=function(){return s(n,o,arguments)};l?l(e.exports,"apply",{value:d}):e.exports.apply=d},28729:(e,t,r)=>{"use strict";const n=r(35747),a=r(85622),o=n.lchown?"lchown":"chown",i=n.lchownSync?"lchownSync":"chownSync",s=n.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),l=(e,t,r)=>{try{return n[i](e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},d=(e,t,r)=>{try{return n.chownSync(e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},p=s?(e,t,r,a)=>o=>{o&&"EISDIR"===o.code?n.chown(e,t,r,a):a(o)}:(e,t,r,n)=>n,c=s?(e,t,r)=>{try{return l(e,t,r)}catch(n){if("EISDIR"!==n.code)throw n;d(e,t,r)}}:(e,t,r)=>l(e,t,r),u=process.version;let m=(e,t,r)=>n.readdir(e,t,r),g=(e,t)=>n.readdirSync(e,t);/^v4\./.test(u)&&(m=(e,t,r)=>n.readdir(e,r));const h=(e,t,r,a)=>{n[o](e,t,r,p(e,t,r,e=>{a(e&&"ENOENT"!==e.code?e:null)}))},f=(e,t,r,o,i)=>{if("string"==typeof t)return n.lstat(a.resolve(e,t),(n,a)=>n?i("ENOENT"===n.code?null:n):void(a.name=t,f(e,a,r,o,i)));if(t.isDirectory())y(a.resolve(e,t.name),r,o,n=>{if(n)return i(n);const s=a.resolve(e,t.name);h(s,r,o,i)});else{const n=a.resolve(e,t.name);h(n,r,o,i)}},y=(e,t,r,n)=>{m(e,{withFileTypes:!0},(a,o)=>{if(a){if("ENOENT"===a.code)return n();if("ENOTDIR"!==a.code&&"ENOTSUP"!==a.code)return n(a)}if(a||!o.length)return h(e,t,r,n);let i=o.length,s=null;const l=a=>s?void 0:a?n(s=a):0==--i?h(e,t,r,n):void 0;o.forEach(n=>f(e,n,t,r,l))})},b=(e,t,r,o)=>{if("string"==typeof t)try{const r=n.lstatSync(a.resolve(e,t));r.name=t,t=r}catch(e){if("ENOENT"===e.code)return;throw e}t.isDirectory()&&S(a.resolve(e,t.name),r,o),c(a.resolve(e,t.name),r,o)},S=(e,t,r)=>{let n;try{n=g(e,{withFileTypes:!0})}catch(n){if("ENOENT"===n.code)return;if("ENOTDIR"===n.code||"ENOTSUP"===n.code)return c(e,t,r);throw n}return n&&n.length&&n.forEach(n=>b(e,n,t,r)),c(e,t,r)};e.exports=y,y.sync=S},16755:e=>{e.exports=function(e,r){for(var n=[],a=0,o;a{"use strict";function t(e){if(!e)throw new TypeError("Expected implementation");var t=l.filter(function(t){return"function"!=typeof e[t]});if(t.length){var r="("+t.join(", ")+")";throw new Error("Expected functions "+r+" to be implemented")}}function r(e,t){for(var r=t.length,n,a,o;-1<--r;){for(n=a=t[r],t[r]=null,o=!0;a;){if(-1{"use strict";function n(e){return function(t,r,n){return r=r||{},r.adapter=r.adapter||l,e(t,r,n)}}function a(e){return function(t,r,n){return n=n||{},n.adapter=n.adapter||l,"function"!=typeof t&&(t=u(t,n,r)),t.shouldTestNextSiblings&&(r=i(n&&n.context||r,n.adapter)),r=Array.isArray(r)?n.adapter.removeSubsets(r):n.adapter.getChildren(r),e(t,r,n)}}function o(e,t){var r=t.getSiblings(e);if(!Array.isArray(r))return[];for(r=r.slice(0);r.shift()!==e;);return r}function i(e,t){Array.isArray(e)||(e=[e]);for(var r=e.slice(0),n=0,a=e.length,s;n{var n=r(27510).falseFunc,a=/[-[\]{}()*+?.,\\^$|#\s]/g,o={__proto__:null,equals:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()===a&&e(t)}):function(t){return o.getAttributeValue(t,n)===a&&e(t)}},hyphen:function(e,t,r){var n=t.name,a=t.value,o=a.length,i=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=i.getAttributeValue(t,n);return null!=r&&(r.length===o||"-"===r.charAt(o))&&r.substr(0,o).toLowerCase()===a&&e(t)}):function(t){var r=i.getAttributeValue(t,n);return null!=r&&r.substr(0,o)===a&&(r.length===o||"-"===r.charAt(o))&&e(t)}},element:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(/\s/.test(i))return n;i=i.replace(a,"\\$&");var l="(?:^|\\s)"+i+"(?:$|\\s)",d=t.ignoreCase?"i":"",p=new RegExp(l,d);return function(t){var r=s.getAttributeValue(t,o);return null!=r&&p.test(r)&&e(t)}},exists:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.hasAttrib(t,n)&&e(t)}},start:function(e,t,r){var a=t.name,o=t.value,i=o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i)===o&&e(t)}},end:function(e,t,r){var a=t.name,o=t.value,i=-o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i)===o&&e(t)}},any:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(""===i)return n;if(t.ignoreCase){var l=new RegExp(i.replace(a,"\\$&"),"i");return function(t){var r=s.getAttributeValue(t,o);return null!=r&&l.test(r)&&e(t)}}return function(t){var r=s.getAttributeValue(t,o);return null!=r&&0<=r.indexOf(i)&&e(t)}},not:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return""===a?function(t){return!!o.getAttributeValue(t,n)&&e(t)}:t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()!==a&&e(t)}):function(t){return o.getAttributeValue(t,n)!==a&&e(t)}}};e.exports={compile:function(e,t,r){if(r&&r.strict&&(t.ignoreCase||"not"===t.action))throw new Error("Unsupported attribute selector");return o[t.action](e,t,r)},rules:o}},22365:(e,t,r)=>{function n(e,t,r){var n=o(e,t,r);return a(n,t)}function a(e,t){var r=t.adapter;return function(t){return r.isTag(t)&&e(t)}}function o(e,t,r){var n=m(e,t);return l(n,t,r)}function i(e){return"pseudo"===e.type&&("scope"===e.name||Array.isArray(e.data)&&e.data.some(function(e){return e.some(i)}))}function s(e,t,r){var n=t.adapter,a=!!r&&!!r.length&&r.every(function(t){return t===w||!!n.getParent(t)});e.forEach(function(e){if(0f[e.type]}function p(e,t,r){return e.reduce(function(e,n){if(e===x)return e;if(!(n.type in y))throw new Error("Rule type "+n.type+" is not supported by css-select");return y[n.type](e,n,t,r)},t&&t.rootFunc||S)}function c(e,t){return t===x||e===S?e:e===x||t===S?t:function(r){return e(r)||t(r)}}function u(e){return e.some(d)}e.exports=n;var m=r(17525).parse,g=r(27510),h=r(65426),f=r(86721),y=r(35890),b=r(65582),S=g.trueFunc,x=g.falseFunc,v=b.filters,k={type:"descendant"},C={type:"_flexibleDescendant"},_={type:"pseudo",name:"scope"},w={};v.not=function(e,t,r,n){var a={xmlMode:!!(r&&r.xmlMode),strict:!!(r&&r.strict),adapter:r.adapter};if(a.strict&&(1{var n=r(91221),a=r(65582);e.exports={__proto__:null,attribute:n.compile,pseudo:a.compile,tag:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.getName(t)===n&&e(t)}},descendant:function(e,t,r){var n="undefined"==typeof WeakSet?null:new WeakSet,a=r.adapter;return function(t){for(var r=!1;!r&&(t=a.getParent(t));)n&&n.has(t)||(r=e(t),!r&&n&&n.add(t));return r}},_flexibleDescendant:function(e,t,r){var n=r.adapter;return function(t){for(var r=e(t);!r&&(t=n.getParent(t));)r=e(t);return r}},parent:function(e,t,r){function n(t){return a.isTag(t)&&e(t)}if(r&&r.strict)throw new Error("Parent selector isn't part of CSS3");var a=r.adapter;return function(e){return a.getChildren(e).some(n)}},child:function(e,t,r){var n=r.adapter;return function(t){var r=n.getParent(t);return!!r&&e(r)}},sibling:function(e,t,r){var n=r.adapter;return function(t){for(var r=n.getSiblings(t),a=0;a{function n(e,t){var r={name:e,value:t};return function(e,t,n){return m(e,r,n)}}function a(e,t){return function(r){return!!t.getParent(r)&&e(r)}}function o(e,t){for(var r=0;e&&r{function n(e){var t=a[e.type];if(t===a.attribute)t=o[e.action],t===o.equals&&"id"===e.name&&(t=9),e.ignoreCase&&(t>>=1);else if(t===a.pseudo)if(!e.data)t=3;else if("has"===e.name||"contains"===e.name)t=0;else if("matches"===e.name||"not"===e.name){t=0;for(var r=0;rt&&(t=s)}1a))for(var o=r-1,s;0<=o&&a{function n(e,t){var r={};for(var n in e)r[n]=e[n].syntax;for(var n in t)n in e?t[n].syntax?r[n]=t[n].syntax:delete r[n]:t[n].syntax&&(r[n]=t[n].syntax);return r}var a=r(81515),o=r(58933),i=r(74291);e.exports={properties:n(a,i.properties),types:n(o,i.syntaxes)}},5355:e=>{function t(e){return{prev:null,next:null,data:e}}function r(e,t,r){var n;return null===a?n={prev:t,next:r,cursor:e.cursor}:(n=a,a=a.cursor,n.prev=t,n.next=r,n.cursor=e.cursor),e.cursor=n,n}function n(e){var t=e.cursor;e.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=a,a=t}var a=null,o=function(){this.cursor=null,this.head=null,this.tail=null};o.createItem=t,o.prototype.createItem=t,o.prototype.updateCursors=function(e,t,r,n){for(var a=this.cursor;null!==a;)a.prev===e&&(a.prev=t),a.next===r&&(a.next=n),a=a.cursor},o.prototype.getSize=function(){for(var e=0,t=this.head;t;)e++,t=t.next;return e},o.prototype.fromArray=function(e){var r=null;this.head=null;for(var n=0,a;n{function n(e,t){for(var r=t.length,n=a(e.lines,r),s=e.startLine,l=a(e.columns,r),d=e.startColumn,p=0{function n(e,t){function r(e,t){return n.slice(e,t).map(function(t,r){for(var n=e+r+1+"";n.lengthp?"\u2026":"")+n[c].substr(p,98)+(n[c].length>p+100-1?"\u2026":""));return[r(s,a),Array(o+d+2).join("-")+"^",r(a,l)].filter(Boolean).join("\n")}var a=r(41187);e.exports=function(e,t,r,o,i){var s=a("SyntaxError",e);return s.source=t,s.offset=r,s.line=o,s.column=i,s.sourceFragment=function(e){return n(s,isNaN(e)?0:e)},Object.defineProperty(s,"formattedMessage",{get:function(){return"Parse error: "+s.message+"\n"+n(s,2)}}),s.parseError={offset:r,line:o,column:i},s}},83058:(e,t,r)=>{var n=r(21713),a=n.TYPE,o=n.NAME,i=r(86716),s=i.cmpStr,l=a.EOF,d=a.WhiteSpace,p=a.Comment,c=16777215,u=24,m=function(){this.offsetAndType=null,this.balance=null,this.reset()};m.prototype={reset:function(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset},lookupType:function(e){return e+=this.tokenIndex,e>u:l},lookupOffset:function(e){return e+=this.tokenIndex,e>u,t(o,this.source,n)){case 1:break loop;case 2:r++;break loop;default:n=this.offsetAndType[r]&c,this.balance[a]===r&&(r=a);}}return r-this.tokenIndex},isBalanceEdge:function(e){return this.balance[this.tokenIndex]>u===d;e++,t++);0>u,this.tokenEnd=t&c):(this.tokenIndex=this.tokenCount,this.next())},next:function(){var e=this.tokenIndex+1;e>u,this.tokenEnd=e&c):(this.tokenIndex=this.tokenCount,this.eof=!0,this.tokenType=l,this.tokenStart=this.tokenEnd=this.source.length)},dump:function(){var e=this.firstCharOffset;return Array.prototype.slice.call(this.offsetAndType,0,this.tokenCount).map(function(t,r){var n=e,a=t&c;return e=a,{idx:r,type:o[t>>u],chunk:this.source.substring(n,a),balance:this.balance[r]}},this)}},e.exports=m},58248:e=>{var t="undefined"==typeof Uint32Array?Array:Uint32Array;e.exports=function(e,r){return null===e||e.length{var n=r(5355);e.exports=function(e){return{fromPlainObject:function(t){return e(t,{enter:function(e){e.children&&!1==e.children instanceof n&&(e.children=new n().fromArray(e.children))}}),t},toPlainObject:function(t){return e(t,{leave:function(e){e.children&&e.children instanceof n&&(e.children=e.children.toArray())}}),t}}}},59437:(e,t,r)=>{var n=r(41187);e.exports=function(e,t,r){var a=n("SyntaxError",e);return a.input=t,a.offset=r,a.rawMessage=e,a.message=a.rawMessage+"\n "+a.input+"\n--"+Array((a.offset||a.input.length)+1).join("-")+"^",a}},95561:e=>{function t(e){return e}function r(e){return 0===e.min&&0===e.max?"*":0===e.min&&1===e.max?"?":1===e.min&&0===e.max?e.comma?"#":"+":1===e.min&&1===e.max?"":(e.comma?"#":"")+(e.min===e.max?"{"+e.min+"}":"{"+e.min+","+(0===e.max?"":e.max)+"}")}function n(e){switch(e.type){case"Range":return" ["+(null===e.min?"-\u221E":e.min)+","+(null===e.max?"\u221E":e.max)+"]";default:throw new Error("Unknown node type `"+e.type+"`");}}function a(e,t,r,n){var a=" "===e.combinator||n?e.combinator:" "+e.combinator+" ",i=e.terms.map(function(e){return o(e,t,r,n)}).join(a);return(e.explicit||r)&&(i=(n||","===i[0]?"[":"[ ")+i+(n?"]":" ]")),i}function o(e,t,i,s){var l;switch(e.type){case"Group":l=a(e,t,i,s)+(e.disallowEmpty?"!":"");break;case"Multiplier":return o(e.term,t,i,s)+t(r(e),e);case"Type":l="<"+e.name+(e.opts?t(n(e.opts),e.opts):"")+">";break;case"Property":l="<'"+e.name+"'>";break;case"Keyword":l=e.name;break;case"AtKeyword":l="@"+e.name;break;case"Function":l=e.name+"(";break;case"String":case"Token":l=e.value;break;case"Comma":l=",";break;default:throw new Error("Unknown node type `"+e.type+"`");}return t(l,e)}e.exports=function(e,r){var n=t,a=!1,i=!1;return"function"==typeof r?n=r:r&&(a=!!r.forceBraces,i=!!r.compact,"function"==typeof r.decorate&&(n=r.decorate)),o(e,n,a,i)}},98333:(e,t,r)=>{e.exports={SyntaxError:r(59437),parse:r(81550),generate:r(95561),walk:r(55872)}},81550:(e,t,r)=>{function n(e){return e.substringToPos(e.findWsEnd(e.pos))}function a(e){for(var t=e.pos,r;tr||57t&&1===v[t])return g(e);switch(t){case 93:break;case 91:return d(e,y(e));case 60:return 39===e.nextCharCode()?c(e):m(e);case 124:return{type:"Combinator",value:e.substringToPos(124===e.nextCharCode()?e.pos+2:e.pos+1)};case 38:return e.pos++,e.eat(38),{type:"Combinator",value:"&&"};case 44:return e.pos++,{type:"Comma"};case 39:return d(e,{type:"String",value:i(e)});case 32:case 9:case 10:case 13:case 12:return{type:"Spaces",value:n(e)};case 64:return t=e.nextCharCode(),128>t&&1===v[t]?(e.pos++,{type:"AtKeyword",name:a(e)}):p(e);case 42:case 43:case 63:case 35:case 33:break;case 123:if(t=e.nextCharCode(),48>t||57r;r++)t[r]=e(_StringfromCharCode(r))?1:0;return t}(function(e){return /[a-zA-Z0-9\-]/.test(e)}),k={" ":1,"&&":2,"||":3,"|":4};S("[a&&#|<'c'>*||e() f{2} /,(% g#{1,2} h{2,})]!"),e.exports=S},22059:(e,t,r)=>{var n=r(59437),a=function(e){this.str=e,this.pos=0};a.prototype={charCodeAt:function(e){return e{function t(e){return"function"==typeof e?e:r}var r=function(){};e.exports=function(e,n,a){function o(e){switch(i.call(a,e),e.type){case"Group":e.terms.forEach(o);break;case"Multiplier":o(e.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+e.type);}s.call(a,e)}var i=r,s=r;if("function"==typeof n?i=n:n&&(i=t(n.enter),s=t(n.leave)),i===r&&s===r)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");o(e,a)}},31010:(e,t,r)=>{function n(e,t){var r=e.children,n=null;"function"==typeof t?r.forEach(function(e){null!==n&&t.call(this,n),this.node(e),n=e},this):r.forEach(this.node,this)}var a=r(95137),o=Object.prototype.hasOwnProperty;e.exports=function(e){function t(e){if(o.call(r,e.type))r[e.type].call(this,e);else throw new Error("Unknown node type: "+e.type)}var r={};if(e.node)for(var i in e.node)r[i]=e.node[i].generate;return function(e,r){var o="",i={children:n,node:t,chunk:function(e){o+=e},result:function(){return o}};return r&&("function"==typeof r.decorator&&(i=r.decorator(i)),r.sourceMap&&(i=a(i))),i.node(e),i.result()}}},95137:(e,t,r)=>{var n=r(52234).h,a={Atrule:!0,Selector:!0,Declaration:!0};e.exports=function(e){var t=new n,r=1,o=0,i={line:1,column:0},s={line:0,column:0},l=!1,d={line:1,column:0},p={generated:d},c=e.node;e.node=function(e){if(e.loc&&e.loc.start&&a.hasOwnProperty(e.type)){var n=e.loc.start.line,u=e.loc.start.column-1;(s.line!==n||s.column!==u)&&(s.line=n,s.column=u,i.line=r,i.column=o,l&&(l=!1,(i.line!==d.line||i.column!==d.column)&&t.addMapping(p)),l=!0,t.addMapping({source:e.loc.source,original:s,generated:i}))}c.call(this,e),l&&a.hasOwnProperty(e.type)&&(d.line=r,d.column=o)};var u=e.chunk;e.chunk=function(e){for(var t=0;t{e.exports=r(30826)},42164:(e,t,r)=>{function n(e,t,r){var n={};for(var a in e)e[a].syntax&&(n[a]=r?e[a].syntax:u(e[a].syntax,{compact:t}));return n}function a(e){for(var t=0;t"),k=function(e,t,r){if(this.valueCommonSyntax=x,this.syntax=t,this.generic=!1,this.properties={},this.types={},this.structure=r||S(e),e){if(e.types)for(var n in e.types)this.addType_(n,e.types[n]);if(e.generic)for(var n in this.generic=!0,p)this.addType_(n,p[n]);if(e.properties)for(var n in e.properties)this.addProperty_(n,e.properties[n])}};k.prototype={structure:{},checkStructure:function(e){function t(e,t){n.push({node:e,message:t})}var r=this.structure,n=[];return this.syntax.walk(e,function(e){r.hasOwnProperty(e.type)?r[e.type].check(e,t):t(e,"Unknown node type `"+e.type+"`")}),!!n.length&&n},createDescriptor:function(e,t,r){var n={type:t,name:r},a={type:t,name:r,syntax:null,match:null};return"function"==typeof e?a.match=h(e,n):("string"==typeof e?Object.defineProperty(a,"syntax",{get:function(){return Object.defineProperty(a,"syntax",{value:c(e)}),a.syntax}}):a.syntax=e,Object.defineProperty(a,"match",{get:function(){return Object.defineProperty(a,"match",{value:h(a.syntax,n)}),a.match}})),a},addProperty_:function(e,t){this.properties[e]=this.createDescriptor(t,"Property",e)},addType_:function(e,t){this.types[e]=this.createDescriptor(t,"Type",e),t===p["-ms-legacy-expression"]&&(this.valueCommonSyntax=v)},matchDeclaration:function(e){return"Declaration"===e.type?this.matchProperty(e.property,e.value):o(null,new Error("Not a Declaration node"))},matchProperty:function(e,t){var r=d.property(e);if(r.custom)return o(null,new Error("Lexer matching doesn't applicable for custom properties"));var n=r.vendor?this.getProperty(r.name)||this.getProperty(r.basename):this.getProperty(r.name);return n?i(this,n,t,!0):o(null,new s("Unknown property",e))},matchType:function(e,t){var r=this.getType(e);return r?i(this,r,t,!1):o(null,new s("Unknown type",e))},match:function(e,t){return"string"==typeof e||e&&e.type?("string"!=typeof e&&e.match||(e=this.createDescriptor(e,"Type","anonymous")),i(this,e,t,!1)):o(null,new s("Bad syntax"))},findValueFragments:function(e,t,r,n){return b.matchFragments(this,t,this.matchProperty(e,t),r,n)},findDeclarationValueFragments:function(e,t,r){return b.matchFragments(this,e.value,this.matchDeclaration(e),t,r)},findAllFragments:function(e,t,r){var n=[];return this.syntax.walk(e,{visit:"Declaration",enter:function(e){n.push.apply(n,this.findDeclarationValueFragments(e,t,r))}.bind(this)}),n},getProperty:function(e){return this.properties.hasOwnProperty(e)?this.properties[e]:null},getType:function(e){return this.types.hasOwnProperty(e)?this.types[e]:null},validate:function(){function e(n,a,o,i){return o.hasOwnProperty(a)?o[a]:void(o[a]=!1,null!==i.syntax&&m(i.syntax,function(i){if("Type"===i.type||"Property"===i.type){var s="Type"===i.type?n.types:n.properties,l="Type"===i.type?t:r;(!s.hasOwnProperty(i.name)||e(n,i.name,l,s[i.name]))&&(o[a]=!0)}},this))}var t={},r={};for(var n in this.types)e(this,n,t,this.types[n]);for(var n in this.properties)e(this,n,r,this.properties[n]);return t=Object.keys(t).filter(function(e){return t[e]}),r=Object.keys(r).filter(function(e){return r[e]}),t.length||r.length?{types:t,properties:r}:null},dump:function(e,t){return{generic:this.generic,types:n(this.types,!t,e),properties:n(this.properties,!t,e)}},toString:function(){return JSON.stringify(this.dump())}},e.exports=k},16044:(e,t,r)=>{function n(e){for(var t=e.tokens,r=e.longestMatch,n=r",l.css=g,l.mismatchOffset=p,l.loc={source:c&&c.loc&&c.loc.source||"",start:m,end:u},l.line=m?m.line:void 0,l.column=m?m.column:void 0,l.offset=m?m.offset:void 0,l.message=e+"\n syntax: "+l.syntax+"\n value: "+(l.css||"")+"\n --------"+Array(l.mismatchOffset+1).join("-")+"^",l}}},23479:(e,t,r)=>{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t,r){for(;null!==e&&(e.type===u||e.type===m);)e=r(++t);return t}function o(e,t,r,n){if(!e)return 0;var a=e.value.charCodeAt(t);if(43===a||45===a){if(r)return 0;t++}for(;t{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t){return e.value.charCodeAt(0)===t}function o(e,t,r){for(var n=t,a=0,i;n{function n(e,t){return te.max)return!0}return!1}function l(e,t){var r=e.index,n=0;do if(n++,e.balance<=r)break;while(e=t(n));return n}function d(e){return function(t,r,n){return null===t?0:t.type===S.Function&&o(t.value,C)?l(t,r):e(t,r,n)}}function p(e){return function(t){return null===t||t.type!==e?0:1}}function c(e){return function(t,r,n){if(null===t||t.type!==S.Dimension)return 0;var a=b(t.value,0);if(null!==e){var o=t.value.indexOf("\\",a),l=-1!==o&&i(t.value,o)?t.value.substring(a,o):t.value.substr(a);if(!1===e.hasOwnProperty(l.toLowerCase()))return 0}return s(n,t.value,a)?0:1}}function u(e){return"function"!=typeof e&&(e=function(){return 0}),function(t,r,n){return null!==t&&t.type===S.Number&&0===+t.value?1:e(t,r,n)}}var m=r(61063),g=m.isIdentifierStart,h=m.isHexDigit,f=m.isDigit,y=m.cmpStr,b=m.consumeNumber,S=m.TYPE,x=r(23479),v=r(77088),k=["unset","initial","inherit"],C=["calc(","-moz-calc(","-webkit-calc("];e.exports={"ident-token":p(S.Ident),"function-token":p(S.Function),"at-keyword-token":p(S.AtKeyword),"hash-token":p(S.Hash),"string-token":p(S.String),"bad-string-token":p(S.BadString),"url-token":p(S.Url),"bad-url-token":p(S.BadUrl),"delim-token":p(S.Delim),"number-token":p(S.Number),"percentage-token":p(S.Percentage),"dimension-token":p(S.Dimension),"whitespace-token":p(S.WhiteSpace),"CDO-token":p(S.CDO),"CDC-token":p(S.CDC),"colon-token":p(S.Colon),"semicolon-token":p(S.Semicolon),"comma-token":p(S.Comma),"[-token":p(S.LeftSquareBracket),"]-token":p(S.RightSquareBracket),"(-token":p(S.LeftParenthesis),")-token":p(S.RightParenthesis),"{-token":p(S.LeftCurlyBracket),"}-token":p(S.RightCurlyBracket),string:p(S.String),ident:p(S.Ident),"custom-ident":function(e){if(null===e||e.type!==S.Ident)return 0;var t=e.value.toLowerCase();return o(t,k)?0:a(t,"default")?0:1},"custom-property-name":function(e){return null===e||e.type!==S.Ident?0:45!==n(e.value,0)||45!==n(e.value,1)?0:1},"hex-color":function(e){if(null===e||e.type!==S.Hash)return 0;var t=e.value.length;if(4!==t&&5!==t&&7!==t&&9!==t)return 0;for(var r=1;re.index||e.balancee.index||e.balance{function n(e,t,r){return t===c&&r===u?e:e===c&&t===c&&r===c?e:("If"===e.type&&e.else===u&&t===c&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:r})}function a(e){return 2{function n(e){for(var t=null,r=null,n=e;null!==n;)r=n.prev,n.prev=t,t=n,n=r;return t}function a(e,t){if(e.length!==t.length)return!1;for(var r=0;r=n&&(n|=32),n!==a)return!1}return!0}function o(e){return null===e||e.type===m.Comma||e.type===m.Function||e.type===m.LeftParenthesis||e.type===m.LeftSquareBracket||e.type===m.LeftCurlyBracket||e.type===m.Delim}function i(e){return null===e||e.type===m.RightParenthesis||e.type===m.RightSquareBracket||e.type===m.RightCurlyBracket||e.type===m.Delim}function s(e,t,r){function n(){do E++,T=EA&&(A=E)}function b(){x={syntax:t.syntax,opts:t.syntax.opts||null!==x&&x.opts||null,prev:x},O={type:2,syntax:t.syntax,token:O.token,prev:O}}function S(){O=2===O.type?O.prev:{type:3,syntax:x.syntax,token:O.token,prev:O},x=x.prev}var x=null,v=null,k=null,C=null,_=0,w=null,T=null,E=-1,A=0,O={type:0,syntax:null,token:null,prev:null};for(n();null===w&&15000>++_;)switch(t.type){case"Match":if(null===v){if(null!==T&&(E!==e.length-1||"\\0"!==T.value&&"\\9"!==T.value)){t=c;break}w="Match";break}if(t=v.nextState,t===u)if(v.matchStack===O){t=c;break}else t=p;for(;v.syntaxStack!==x;)S();v=v.prev;break;case"Mismatch":if(null!==C&&!1!==C)(null===k||E>k.tokenIndex)&&(k=C,C=!1);else if(null===k){w="Mismatch";break}t=k.nextState,v=k.thenStack,x=k.syntaxStack,O=k.matchStack,E=k.tokenIndex,T=EE){for(;E":"<'"+t.name+"'>"));if(!1!==C&&null!==T&&"Type"===t.type){var q="custom-ident"===t.name&&T.type===m.Ident||"length"===t.name&&"0"===T.value;if(q){null===C&&(C=d(t,k)),t=c;break}}b(),t=W.match;break;case"Keyword":var z=t.name;if(null!==T){var B=T.value;if(-1!==B.indexOf("\\")&&(B=B.replace(/\\[09].*$/,"")),a(B,z)){y(),t=p;break}}t=c;break;case"AtKeyword":case"Function":if(null!==T&&a(T.value,t.name)){y(),t=p;break}t=c;break;case"Token":if(null!==T&&T.value===t.value){y(),t=p;break}t=c;break;case"Comma":null!==T&&T.type===m.Comma?o(O.token)?t=c:(y(),t=i(T)?c:p):t=o(O.token)||i(T)?p:c;break;case"String":for(var N="",I=E;I{function n(e,t){var r=[],n=0,o=0,s=t?t[o].node:null;for(a(e,i);!i.eof;){if(t)for(;o{function n(e){return"node"in e?e.node:n(e.match[0])}function a(e){return"node"in e?e.node:a(e.match[e.match.length-1])}var o=r(5355);e.exports={matchFragments:function(e,t,r,i,s){function l(r){if(null!==r.syntax&&r.syntax.type===i&&r.syntax.name===s){var p=n(r),c=a(r);e.syntax.walk(t,function(e,t,r){if(e===p){var n=new o;do{if(n.appendData(t.data),t.data===c)break;t=t.next}while(null!==t);d.push({parent:r,nodes:n})}})}Array.isArray(r.match)&&r.match.forEach(l)}var d=[];return null!==r.matched&&l(r.matched),d}}},25791:(e,t,r)=>{function n(e){return"number"==typeof e&&isFinite(e)&&_Mathfloor(e)===e&&0<=e}function a(e){return!!e&&n(e.offset)&&n(e.line)&&n(e.column)}function o(e,t){return function(r,n){if(!r||r.constructor!==Object)return n(r,"Type of node should be an Object");for(var o in r){var d=!0;if(!1!==l.call(r,o)){if("type"==o)r.type!==e&&n(r,"Wrong node type `"+r.type+"`, expected `"+e+"`");else if("loc"===o){if(null===r.loc)continue;else if(r.loc&&r.loc.constructor===Object)if("string"!=typeof r.loc.source)o+=".source";else if(!a(r.loc.start))o+=".start";else if(!a(r.loc.end))o+=".end";else continue;d=!1}else if(t.hasOwnProperty(o))for(var p=0,d=!1,c;!d&&p");else if(Array.isArray(u))d.push("List");else throw new Error("Wrong value `"+u+"` in `"+e+"."+s+"` structure definition");a[s]=d.join(" | ")}return{docs:a,check:o(e,n)}}var s=r(5355),l=Object.prototype.hasOwnProperty;e.exports={getStructureFromConfig:function(e){var t={};if(e.node)for(var r in e.node)if(l.call(e.node,r)){var n=e.node[r];if(n.structure)t[r]=i(r,n);else throw new Error("Missed `structure` field in `"+r+"` node type definition")}return t}}},29833:e=>{function t(e){function t(e){return null!==e&&("Type"===e.type||"Property"===e.type||"Keyword"===e.type)}function r(a){if(Array.isArray(a.match)){for(var o=0;o{function n(e){return function(){return this[e]()}}function a(e){var t={context:{},scope:{},atrule:{},pseudo:{}};if(e.parseContext)for(var r in e.parseContext)switch(typeof e.parseContext[r]){case"function":t.context[r]=e.parseContext[r];break;case"string":t.context[r]=n(e.parseContext[r]);}if(e.scope)for(var r in e.scope)t.scope[r]=e.scope[r];if(e.atrule)for(var r in e.atrule){var a=e.atrule[r];a.parse&&(t.atrule[r]=a.parse)}if(e.pseudo)for(var r in e.pseudo){var o=e.pseudo[r];o.parse&&(t.pseudo[r]=o.parse)}if(e.node)for(var r in e.node)t[r]=e.node[r].parse;return t}var o=r(70404),i=r(51708),s=r(83058),l=r(5355),d=r(61063),p=r(21713),c=r(86716).findWhiteSpaceStart,u=r(27190),m=function(){},g=p.TYPE,h=p.NAME,f=g.WhiteSpace,y=g.Ident,b=g.Function,S=g.Url,x=g.Hash,v=g.Percentage,k=g.Number,C=0;e.exports=function(e){var t={scanner:new s,locationMap:new o,filename:"",needPositions:!1,onParseError:m,onParseErrorThrow:!1,parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:u,createList:function(){return new l},createSingleNodeList:function(e){return new l().appendData(e)},getFirstListNode:function(e){return e&&e.first()},getLastListNode:function(e){return e.last()},parseWithFallback:function(e,t){var r=this.scanner.tokenIndex;try{return e.call(this)}catch(a){if(this.onParseErrorThrow)throw a;var n=t.call(this,r);return this.onParseErrorThrow=!0,this.onParseError(a,n),this.onParseErrorThrow=!1,n}},lookupNonWSType:function(e){do{var t=this.scanner.lookupType(e++);if(t!==f)return t}while(t!==C);return C},eat:function(e){if(this.scanner.tokenType!==e){var t=this.scanner.tokenStart,r=h[e]+" is expected";e===y?this.scanner.tokenType===b||this.scanner.tokenType===S?(t=this.scanner.tokenEnd-1,r="Identifier is expected but function found"):r="Identifier is expected":e===x?this.scanner.isDelim(35)&&(this.scanner.next(),t++,r="Name is expected"):e===v?this.scanner.tokenType===k&&(t=this.scanner.tokenEnd,r="Percent sign is expected"):this.scanner.source.charCodeAt(this.scanner.tokenStart)===e&&++t,this.error(r,t)}this.scanner.next()},consume:function(e){var t=this.scanner.getTokenValue();return this.eat(e),t},consumeFunctionName:function(){var e=this.scanner.source.substring(this.scanner.tokenStart,this.scanner.tokenEnd-1);return this.eat(b),e},getLocation:function(e,t){return this.needPositions?this.locationMap.getLocationRange(e,t,this.filename):null},getLocationFromList:function(e){if(this.needPositions){var t=this.getFirstListNode(e),r=this.getLastListNode(e);return this.locationMap.getLocationRange(null===t?this.scanner.tokenStart:t.loc.start.offset-this.locationMap.startOffset,null===r?this.scanner.tokenStart:r.loc.end.offset-this.locationMap.startOffset,this.filename)}return null},error:function(e,t){var r="undefined"!=typeof t&&t",t.needPositions=!!r.positions,t.onParseError="function"==typeof r.onParseError?r.onParseError:m,t.onParseErrorThrow=!1,t.parseAtrulePrelude=!("parseAtrulePrelude"in r)||!!r.parseAtrulePrelude,t.parseRulePrelude=!("parseRulePrelude"in r)||!!r.parseRulePrelude,t.parseValue=!("parseValue"in r)||!!r.parseValue,t.parseCustomProperty=!!("parseCustomProperty"in r)&&!!r.parseCustomProperty,!t.context.hasOwnProperty(n))throw new Error("Unknown context `"+n+"`");return a=t.context[n].call(t,r),t.scanner.eof||t.error(),a}}},27190:(e,t,r)=>{var n=r(61063).TYPE,a=n.WhiteSpace,o=n.Comment;e.exports=function(e){var t=this.createList(),r=null,n={recognizer:e,space:null,ignoreWS:!1,ignoreWSAfter:!1};for(this.scanner.skipSC();!this.scanner.eof;){switch(this.scanner.tokenType){case o:this.scanner.next();continue;case a:n.ignoreWS?this.scanner.next():n.space=this.WhiteSpace();continue;}if(r=e.getNode.call(this,n),void 0===r)break;null!==n.space&&(t.push(n.space),n.space=null),t.push(r),n.ignoreWSAfter?(n.ignoreWSAfter=!1,n.ignoreWS=!0):n.ignoreWS=!1}return t}},91849:e=>{e.exports={parse:{prelude:null,block:function(){return this.Block(!0)}}}},29864:(e,t,r)=>{var n=r(61063).TYPE,a=n.String,o=n.Ident,i=n.Url,s=n.Function,l=n.LeftParenthesis;e.exports={parse:{prelude:function(){var e=this.createList();switch(this.scanner.skipSC(),this.scanner.tokenType){case a:e.push(this.String());break;case i:case s:e.push(this.Url());break;default:this.error("String or url() is expected");}return(this.lookupNonWSType(0)===o||this.lookupNonWSType(0)===l)&&(e.push(this.WhiteSpace()),e.push(this.MediaQueryList())),e},block:null}}},20264:(e,t,r)=>{e.exports={"font-face":r(91849),import:r(29864),media:r(16258),page:r(46661),supports:r(19901)}},16258:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.MediaQueryList())},block:function(){return this.Block(!1)}}}},46661:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.SelectorList())},block:function(){return this.Block(!0)}}}},19901:(e,t,r)=>{function n(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}function a(){return this.scanner.skipSC(),this.scanner.tokenType===d&&this.lookupNonWSType(1)===c?this.createSingleNodeList(this.Declaration()):o.call(this)}function o(){var e=this.createList(),t=null,r;this.scanner.skipSC();scan:for(;!this.scanner.eof;){switch(this.scanner.tokenType){case s:t=this.WhiteSpace();continue;case l:this.scanner.next();continue;case p:r=this.Function(n,this.scope.AtrulePrelude);break;case d:r=this.Identifier();break;case u:r=this.Parentheses(a,this.scope.AtrulePrelude);break;default:break scan;}null!==t&&(e.push(t),t=null),e.push(r)}return e}var i=r(61063).TYPE,s=i.WhiteSpace,l=i.Comment,d=i.Ident,p=i.Function,c=i.Colon,u=i.LeftParenthesis;e.exports={parse:{prelude:function(){var e=o.call(this);return null===this.getFirstListNode(e)&&this.error("Condition is expected"),e},block:function(){return this.Block(!1)}}}},87526:(e,t,r)=>{var n=r(26577);e.exports={generic:!0,types:n.types,properties:n.properties,node:r(85369)}},88845:e=>{function t(e){return e&&e.constructor===Object}function r(e){if(t(e)){var r={};for(var n in e)o.call(e,n)&&(r[n]=e[n]);return r}return e}function n(e,a){for(var i in a)o.call(a,i)&&(t(e[i])?n(e[i],r(a[i])):e[i]=r(a[i]))}function a(e,i,s){for(var l in s)if(!1!==o.call(s,l))if(!0===s[l])l in i&&o.call(i,l)&&(e[l]=r(i[l]));else if(s[l])if(t(s[l])){var d={};n(d,e[l]),n(d,i[l]),e[l]=d}else if(Array.isArray(s[l])){var d={},p=s[l].reduce(function(e,t){return e[t]=!0,e},{});for(var c in e[l])o.call(e[l],c)&&(d[c]={},e[l]&&e[l][c]&&a(d[c],e[l][c],p));for(var c in i[l])o.call(i[l],c)&&(d[c]||(d[c]={}),i[l]&&i[l][c]&&a(d[c],i[l][c],p));e[l]=d}return e}var o=Object.prototype.hasOwnProperty,i={generic:!0,types:{},properties:{},parseContext:{},scope:{},atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};e.exports=function(e,t){return a(e,t,i)}},46808:(e,t,r)=>{e.exports={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude:function(e){return this.AtrulePrelude(e.atrule?e.atrule+"":null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block:function(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:r(38141),atrule:r(20264),pseudo:r(69302),node:r(85369)}},50997:(e,t,r)=>{e.exports={node:r(85369)}},66330:(e,t,r)=>{function n(e,t){for(var r in t)e[r]=t[r];return e}function a(e){var t=c(e),r=g(e),b=u(e),S=m(r),x={List:o,SyntaxError:i,TokenStream:s,Lexer:l,vendorPrefix:f.vendorPrefix,keyword:f.keyword,property:f.property,isCustomProperty:f.isCustomProperty,definitionSyntax:d,lexer:null,createLexer:function(e){return new l(e,x,x.lexer.structure)},tokenize:p,parse:t,walk:r,generate:b,find:r.find,findLast:r.findLast,findAll:r.findAll,clone:h,fromPlainObject:S.fromPlainObject,toPlainObject:S.toPlainObject,createSyntax:function(e){return a(y({},e))},fork:function(t){var r=y({},e);return a("function"==typeof t?t(r,n):y(r,t))}};return x.lexer=new l({generic:!0,types:e.types,properties:e.properties,node:e.node},x),x}var o=r(5355),i=r(51708),s=r(83058),l=r(42164),d=r(98333),p=r(61063),c=r(40283),u=r(31010),m=r(57208),g=r(87760),h=r(55933),f=r(87453),y=r(88845);t.create=function(e){return a(y({},e))}},59537:e=>{e.exports=function(){this.scanner.skipSC();var e=this.createSingleNodeList(this.IdSelector());return this.scanner.skipSC(),e}},21264:e=>{e.exports=function(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}},88036:(e,t,r)=>{var n=r(61063).TYPE,a=r(18204).mode,o=n.Comma;e.exports=function(){var e=this.createList();return this.scanner.skipSC(),e.push(this.Identifier()),this.scanner.skipSC(),this.scanner.tokenType===o&&(e.push(this.Operator()),e.push(this.parseCustomProperty?this.Value(null):this.Raw(this.scanner.tokenIndex,a.exclamationMarkOrSemicolon,!1))),e}},30826:(e,t,r)=>{e.exports=r(66330).create(function(){for(var e={},t=0,r;t{function n(e,t){var r=this.scanner.tokenStart+e,n=this.scanner.source.charCodeAt(r);for((43===n||45===n)&&(t&&this.error("Number sign is not allowed"),r++);r{function n(e){return this.Raw(e,i.leftCurlyBracketOrSemicolon,!0)}function a(){for(var e=1,t;t=this.scanner.lookupType(e);e++){if(t===p)return!0;if(t===d||t===s)return!1}return!1}var o=r(61063).TYPE,i=r(18204).mode,s=o.AtKeyword,l=o.Semicolon,d=o.LeftCurlyBracket,p=o.RightCurlyBracket;e.exports={name:"Atrule",structure:{name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o,i;switch(this.eat(s),o=this.scanner.substrToCursor(e+1),i=o.toLowerCase(),this.scanner.skipSC(),!1===this.scanner.eof&&this.scanner.tokenType!==d&&this.scanner.tokenType!==l&&(this.parseAtrulePrelude?(t=this.parseWithFallback(this.AtrulePrelude.bind(this,o),n),"AtrulePrelude"===t.type&&null===t.children.head&&(t=null)):t=n.call(this,this.scanner.tokenIndex),this.scanner.skipSC()),this.scanner.tokenType){case l:this.scanner.next();break;case d:r=this.atrule.hasOwnProperty(i)&&"function"==typeof this.atrule[i].block?this.atrule[i].block.call(this):this.Block(a.call(this));}return{type:"Atrule",loc:this.getLocation(e,this.scanner.tokenStart),name:o,prelude:t,block:r}},generate:function(e){this.chunk("@"),this.chunk(e.name),null!==e.prelude&&(this.chunk(" "),this.node(e.prelude)),e.block?this.node(e.block):this.chunk(";")},walkContext:"atrule"}},24272:(e,t,r)=>{var n=r(61063).TYPE,a=n.Semicolon,o=n.LeftCurlyBracket;e.exports={name:"AtrulePrelude",structure:{children:[[]]},parse:function(e){var t=null;return null!==e&&(e=e.toLowerCase()),this.scanner.skipSC(),t=this.atrule.hasOwnProperty(e)&&"function"==typeof this.atrule[e].prelude?this.atrule[e].prelude.call(this):this.readSequence(this.scope.AtrulePrelude),this.scanner.skipSC(),!0!==this.scanner.eof&&this.scanner.tokenType!==o&&this.scanner.tokenType!==a&&this.error("Semicolon or block is expected"),null===t&&(t=this.createList()),{type:"AtrulePrelude",loc:this.getLocationFromList(t),children:t}},generate:function(e){this.children(e)},walkContext:"atrulePrelude"}},33434:(e,t,r)=>{function n(){this.scanner.eof&&this.error("Unexpected end of input");var e=this.scanner.tokenStart,t=!1,r=!0;return this.scanner.isDelim(42)?(t=!0,r=!1,this.scanner.next()):!this.scanner.isDelim(124)&&this.eat(i),this.scanner.isDelim(124)?61===this.scanner.source.charCodeAt(this.scanner.tokenStart+1)?t&&this.error("Identifier is expected",this.scanner.tokenEnd):(this.scanner.next(),this.eat(i)):t&&this.error("Vertical line is expected"),r&&this.scanner.tokenType===l&&(this.scanner.next(),this.eat(i)),{type:"Identifier",loc:this.getLocation(e,this.scanner.tokenStart),name:this.scanner.substrToCursor(e)}}function a(){var e=this.scanner.tokenStart,t=this.scanner.source.charCodeAt(e);return 61!==t&&126!==t&&94!==t&&36!==t&&42!==t&&124!==t&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.scanner.next(),61!==t&&(!this.scanner.isDelim(61)&&this.error("Equal sign is expected"),this.scanner.next()),this.scanner.substrToCursor(e)}var o=r(61063).TYPE,i=o.Ident,s=o.String,l=o.Colon,d=o.LeftSquareBracket,p=o.RightSquareBracket;e.exports={name:"AttributeSelector",structure:{name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o=null,l;return this.eat(d),this.scanner.skipSC(),l=n.call(this),this.scanner.skipSC(),this.scanner.tokenType!==p&&(this.scanner.tokenType!==i&&(t=a.call(this),this.scanner.skipSC(),r=this.scanner.tokenType===s?this.String():this.Identifier(),this.scanner.skipSC()),this.scanner.tokenType===i&&(o=this.scanner.getTokenValue(),this.scanner.next(),this.scanner.skipSC())),this.eat(p),{type:"AttributeSelector",loc:this.getLocation(e,this.scanner.tokenStart),name:l,matcher:t,value:r,flags:o}},generate:function(e){var t=" ";this.chunk("["),this.node(e.name),null!==e.matcher&&(this.chunk(e.matcher),null!==e.value&&(this.node(e.value),"String"===e.value.type&&(t=""))),null!==e.flags&&(this.chunk(t),this.chunk(e.flags)),this.chunk("]")}}},5163:(e,t,r)=>{function n(e){return this.Raw(e,null,!0)}function a(){return this.parseWithFallback(this.Rule,n)}function o(e){return this.Raw(e,l.semicolonIncluded,!0)}function i(){if(this.scanner.tokenType===c)return o.call(this,this.scanner.tokenIndex);var e=this.parseWithFallback(this.Declaration,o);return this.scanner.tokenType===c&&this.scanner.next(),e}var s=r(61063).TYPE,l=r(18204).mode,d=s.WhiteSpace,p=s.Comment,c=s.Semicolon,u=s.AtKeyword,m=s.LeftCurlyBracket,g=s.RightCurlyBracket;e.exports={name:"Block",structure:{children:[["Atrule","Rule","Declaration"]]},parse:function(e){var t=e?i:a,r=this.scanner.tokenStart,o=this.createList();this.eat(m);scan:for(;!this.scanner.eof;)switch(this.scanner.tokenType){case g:break scan;case d:case p:this.scanner.next();break;case u:o.push(this.parseWithFallback(this.Atrule,n));break;default:o.push(t.call(this));}return this.scanner.eof||this.eat(g),{type:"Block",loc:this.getLocation(r,this.scanner.tokenStart),children:o}},generate:function(e){this.chunk("{"),this.children(e,function(e){"Declaration"===e.type&&this.chunk(";")}),this.chunk("}")},walkContext:"block"}},96809:(e,t,r)=>{var n=r(61063).TYPE,a=n.LeftSquareBracket,o=n.RightSquareBracket;e.exports={name:"Brackets",structure:{children:[[]]},parse:function(e,t){var r=this.scanner.tokenStart,n=null;return this.eat(a),n=e.call(this,t),this.scanner.eof||this.eat(o),{type:"Brackets",loc:this.getLocation(r,this.scanner.tokenStart),children:n}},generate:function(e){this.chunk("["),this.children(e),this.chunk("]")}}},4351:(e,t,r)=>{var n=r(61063).TYPE.CDC;e.exports={name:"CDC",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDC",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("-->")}}},37691:(e,t,r)=>{var n=r(61063).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("")}}},58368:(e,t,r)=>{var n=r(22802).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk(""}var p=r(43402),c=r(83982),u=r(53958);u.elementNames.__proto__=null,u.attributeNames.__proto__=null;var m={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0},g={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},h=e.exports=function(e,t){Array.isArray(e)||e.cheerio||(e=[e]),t=t||{};for(var r="",n=0,c;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=void 0,t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"},42515:e=>{e.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(e){return"tag"===e.type||"script"===e.type||"style"===e.type}}},43370:(e,t,r)=>{var n=e.exports;[r(64144),r(86755),r(69009),r(87431),r(75718),r(4614)].forEach(function(e){Object.keys(e).forEach(function(t){n[t]=e[t].bind(n)})})},4614:(e,t)=>{t.removeSubsets=function(e){for(var t=e.length,r,n,a;-1<--t;){for(r=n=e[t],e[t]=null,a=!0;n;){if(-1s.indexOf(d)?i===t?r.FOLLOWING|r.CONTAINED_BY:r.FOLLOWING:i===e?r.PRECEDING|r.CONTAINS:r.PRECEDING)};t.uniqueSort=function(e){var t=e.length,a,o;for(e=e.slice();-1<--t;)a=e[t],o=e.indexOf(a),-1{function n(e,t){return"function"==typeof t?function(r){return r.attribs&&t(r.attribs[e])}:function(r){return r.attribs&&r.attribs[e]===t}}function a(e,t){return function(r){return e(r)||t(r)}}var o=r(42515),i=t.isTag=o.isTag;t.testElement=function(e,t){for(var r in e)if(!e.hasOwnProperty(r));else if("tag_name"===r){if(!i(t)||!e.tag_name(t.name))return!1;}else if("tag_type"===r){if(!e.tag_type(t.type))return!1;}else if("tag_contains"===r){if(i(t)||!e.tag_contains(t.data))return!1;}else if(!t.attribs||!e[r](t.attribs[r]))return!1;return!0};var s={tag_name:function(e){return"function"==typeof e?function(t){return i(t)&&e(t.name)}:"*"===e?i:function(t){return i(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return!i(t)&&e(t.data)}:function(t){return!i(t)&&t.data===e}}};t.getElements=function(e,t,r,o){var i=Object.keys(e).map(function(t){var r=e[t];return t in s?s[t](r):n(t,r)});return 0===i.length?[]:this.filter(i.reduce(a),t,r,o)},t.getElementById=function(e,t,r){return Array.isArray(t)||(t=[t]),this.findOne(n("id",e),t,!1!==r)},t.getElementsByTagName=function(e,t,r,n){return this.filter(s.tag_name(e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return this.filter(s.tag_type(e),t,r,n)}},69009:(e,t)=>{t.removeElement=function(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}},t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var a=t.parent=e.parent;if(a){var o=a.children;o[o.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(t.parent=e,1!==e.children.push(t)){var r=e.children[e.children.length-2];r.next=t,t.prev=r,t.next=null}},t.append=function(e,t){var r=e.parent,n=e.next;if(t.next=n,t.prev=e,e.next=t,t.parent=r,!n)r&&r.children.push(t);else if(n.prev=t,r){var a=r.children;a.splice(a.lastIndexOf(n),0,t)}},t.prepend=function(e,t){var r=e.parent;if(r){var n=r.children;n.splice(n.lastIndexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},87431:(e,t,r)=>{function n(e,t,r,a){for(var o=[],s=0,l=t.length,d;s=--a))&&(d=t[s].children,!(r&&d&&0=a)));s++);return o}function a(e,t){for(var r=null,n=0,o=t.length;n{function n(e){return Array.isArray(e)?e.map(n).join(""):i(e)?"br"===e.name?"\n":n(e.children):e.type===a.CDATA?n(e.children):e.type===a.Text?e.data:""}var a=r(42515),o=r(1702),i=a.isTag;e.exports={getInnerHTML:function(e,t){return e.children?e.children.map(function(e){return o(e,t)}).join(""):""},getOuterHTML:o,getText:n}},86755:(e,t)=>{var r=t.getChildren=function(e){return e.children},n=t.getParent=function(e){return e.parent};t.getSiblings=function(e){var t=n(e);return t?r(t):[e]},t.getAttributeValue=function(e,t){return e.attribs&&e.attribs[t]},t.hasAttrib=function(e,t){return!!e.attribs&&hasOwnProperty.call(e.attribs,t)},t.getName=function(e){return e.name}},58509:(e,t,r)=>{"use strict";/** * @file Embedded JavaScript templating engine. {@link http://ejs.co} * @author Matthew Eernisse * @author Tiancheng "Timothy" Gu diff --git a/action/index.mjs b/action/index.mjs index dec1bec9..d63e718c 100644 --- a/action/index.mjs +++ b/action/index.mjs @@ -72,7 +72,7 @@ console.debug = message => debugged.push(message) console.log(`Debug mode | ${debug}`) const dflags = (core.getInput("debug_flags") || "").split(" ").filter(flag => flag) - console.log(`Debug flags | ${dflags.join(" ")}`) + console.log(`Debug flags | ${dflags.join(" ") || "(none)"}`) //Base elements const base = {} @@ -85,7 +85,7 @@ const config = { "config.timezone":core.getInput("config_timezone") || "" } - console.log(`Timezone | ${config["config.timezone"] || "(none)"}`) + console.log(`Timezone | ${config["config.timezone"] || "(system default)"}`) //Additional plugins const plugins = { @@ -117,8 +117,8 @@ if (plugins.languages.enabled) { for (const option of ["ignored", "skipped"]) q[`languages.${option}`] = core.getInput(`plugin_languages_${option}`) || null - console.log(`Languages ignored | ${q["languages.ignored"]}`) - console.log(`Languages skipped repos | ${q["languages.skipped"]}`) + console.log(`Languages ignored | ${q["languages.ignored"] || "(none)"}`) + console.log(`Languages skipped repos | ${q["languages.skipped"] || "(none)"}`) } //Habits if (plugins.habits.enabled) { @@ -128,26 +128,26 @@ q[`habits.charts`] = bool(core.getInput(`plugin_habits_charts`)) console.log(`Habits facts | ${q["habits.facts"]}`) console.log(`Habits charts | ${q["habits.charts"]}`) - console.log(`Habits events to use | ${q["habits.from"]}`) - console.log(`Habits days to keep | ${q["habits.days"]}`) + console.log(`Habits events to use | ${q["habits.from"] || "(default)"}`) + console.log(`Habits days to keep | ${q["habits.days"] || "(default)"}`) } //Music if (plugins.music.enabled) { plugins.music.token = core.getInput("plugin_music_token") || "" for (const option of ["provider", "mode", "playlist", "limit"]) q[`music.${option}`] = core.getInput(`plugin_music_${option}`) || null - console.log(`Music provider | ${q["music.provider"]}`) - console.log(`Music plugin mode | ${q["music.mode"]}`) - console.log(`Music playlist | ${q["music.playlist"]}`) - console.log(`Music tracks limit | ${q["music.limit"]}`) + console.log(`Music provider | ${q["music.provider"] || "(none)"}`) + console.log(`Music plugin mode | ${q["music.mode"] || "(none)"}`) + console.log(`Music playlist | ${q["music.playlist"] || "(none)"}`) + console.log(`Music tracks limit | ${q["music.limit"] || "(default)"}`) console.log(`Music token | ${plugins.music.token ? "provided" : "missing"}`) } //Posts if (plugins.posts.enabled) { for (const option of ["source", "limit"]) q[`posts.${option}`] = core.getInput(`plugin_posts_${option}`) || null - console.log(`Posts provider | ${q["posts.provider"]}`) - console.log(`Posts limit | ${q["posts.limit"]}`) + console.log(`Posts source | ${q["posts.source"] || "(none)"}`) + console.log(`Posts limit | ${q["posts.limit"] || "(default)"}`) } //Isocalendar if (plugins.isocalendar.enabled) { @@ -158,14 +158,14 @@ if (plugins.topics.enabled) { for (const option of ["sort", "limit"]) q[`topics.${option}`] = core.getInput(`plugin_topics_${option}`) || null - console.log(`Topics sort mode | ${q["topics.sort"]}`) - console.log(`Topics limit | ${q["topics.limit"]}`) + console.log(`Topics sort mode | ${q["topics.sort"] || "(default)"}`) + console.log(`Topics limit | ${q["topics.limit"] || "(default)"}`) } //Projects if (plugins.projects.enabled) { for (const option of ["limit"]) q[`projects.${option}`] = core.getInput(`plugin_projects_${option}`) || null - console.log(`Projects limit | ${q["projects.limit"]}`) + console.log(`Projects limit | ${q["projects.limit"] || "(default)"}`) } //Tweets if (plugins.tweets.enabled) { @@ -173,7 +173,7 @@ for (const option of ["limit"]) q[`tweets.${option}`] = core.getInput(`plugin_tweets_${option}`) || null console.log(`Twitter token | ${plugins.tweets.token ? "provided" : "missing"}`) - console.log(`Tweets limit | ${q["tweets.limit"]}`) + console.log(`Tweets limit | ${q["tweets.limit"] || "(default)"}`) } //Repositories to use @@ -182,7 +182,7 @@ //Die on plugins errors const die = bool(core.getInput("plugins_errors_fatal")) - console.log(`Plugin errors | ${die ? "die" : "ignore"}`) + console.log(`Plugin errors | ${die ? "die" : "warn"}`) //Built query q = {...q, base:false, ...base, ...config, repositories, template} @@ -222,7 +222,7 @@ console.log(`Committer | ${(await rest.users.getAuthenticated()).data.login}`) } catch { - console.log(`Committer | (unknown)`) + console.log(`Committer | (github-actions)`) } //Retrieve previous render SHA to be able to update file content through API let sha = null @@ -237,7 +237,7 @@ ) sha = oid } catch (error) { console.debug(error) } - console.log(`Previous render sha | ${sha ?? "none"}`) + console.log(`Previous render sha | ${sha ?? "(none)"}`) //Update file content through API await rest.repos.createOrUpdateFileContents({ ...github.context.repo, path:filename, message:`Update ${filename} - [Skip GitHub Action]`, @@ -248,7 +248,7 @@ } //Success - console.log(`Success !`) + console.log(`Success, thanks for using metrics !`) process.exit(0) } diff --git a/src/metrics.mjs b/src/metrics.mjs index 763e0ef0..24f04b97 100644 --- a/src/metrics.mjs +++ b/src/metrics.mjs @@ -58,10 +58,16 @@ const promised = await Promise.all(pending) //Check plugins errors - if (die) { - const errors = promised.filter(({result = null}) => !!result?.error).length - if (errors) - throw new Error(`${errors} error${s(errors)} found...`) + { + const errors = promised.filter(({result = null}) => result?.error) + if (die) { + if (errors.length) + throw new Error(`${errors.length} error${s(errors.length)} found...`) + } + else { + console.warn(`${errors.length} error${s(errors.length)} found, ignoring...`) + console.warn(util.inspect(errors, {depth:Infinity, maxStringLength:256})) + } } } diff --git a/src/plugins/habits/index.mjs b/src/plugins/habits/index.mjs index db8bdcd6..9fa1924c 100644 --- a/src/plugins/habits/index.mjs +++ b/src/plugins/habits/index.mjs @@ -6,7 +6,7 @@ if ((!enabled)||(!q.habits)) return null //Parameters override - let {"habits.from":from = defaults.from ?? 500, "habits.days":days = 30, "habits.facts":facts = true, "habits.charts":charts = false} = q + let {"habits.from":from = defaults.from ?? 500, "habits.days":days = 14, "habits.facts":facts = true, "habits.charts":charts = false} = q //Events from = Math.max(1, Math.min(1000, Number(from))) //Days