@co0ontty/wand 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-info.json +3 -3
- package/dist/config.d.ts +1 -1
- package/dist/config.js +29 -0
- package/dist/server-session-routes.js +17 -5
- package/dist/session-ai-context.d.ts +2 -0
- package/dist/session-ai-context.js +9 -0
- package/dist/structured-session-manager.d.ts +10 -0
- package/dist/structured-session-manager.js +43 -0
- package/dist/types.d.ts +4 -0
- package/dist/web-ui/content/scripts.js +34 -33
- package/dist/web-ui/embedded-assets.d.ts +1 -1
- package/dist/web-ui/embedded-assets.js +2 -2
- package/package.json +1 -1
|
@@ -3,9 +3,9 @@ import { Buffer } from "node:buffer";
|
|
|
3
3
|
function decode(value) {
|
|
4
4
|
return Buffer.from(value, "base64").toString("utf8");
|
|
5
5
|
}
|
|
6
|
-
export const EMBEDDED_WEB_ASSET_VERSION = "
|
|
6
|
+
export const EMBEDDED_WEB_ASSET_VERSION = "9415c73ef4da";
|
|
7
7
|
export const EMBEDDED_WEB_ASSETS = {
|
|
8
|
-
scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciBxdT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLHNkPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uIEpyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIGxkKGUpe3JldHVybiBKcihlLmluc3RhbGxpbmcpfHxKcihlLndhaXRpbmcpfHxKcihlLmFjdGl2ZSl9ZnVuY3Rpb24gZGQoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHF1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gY2QoKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0ocXUsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIGZkKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcihsZCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIHBkKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT5zZC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIHZkKCl7aWYoZGQoKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJkpyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFtmZCgpLHBkKCldKTshdHx8IW58fChjZCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX12ZCgpO3ZhciBQZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsWGk9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLFlyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPFlyLmxlbmd0aDtpKyspdHJ5e1lyW2ldKCl9Y2F0Y2h7fW48WXIubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZyhZci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBaaShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiBTZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjpaaSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOlppKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDpaaSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWxzOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIiO3JldHVybntjbGF1ZGU6bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtY2hhdC1tb2RlbC1jbGF1ZGUiKXx8ZSxjb2RleDpsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsLWNvZGV4Iil8fCIifX1jYXRjaHtyZXR1cm57Y2xhdWRlOiIiLGNvZGV4OiIifX19KSgpLGNoYXRNb2RlbDooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiKXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fSkoKSxjaGF0VGhpbmtpbmc6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIpfHwib2ZmIjtyZXR1cm4gZT09PSJvZmYifHxlPT09InN0YW5kYXJkInx8ZT09PSJkZWVwInx8ZT09PSJtYXgiP2U6Im9mZiJ9Y2F0Y2h7cmV0dXJuIm9mZiJ9fSkoKSxhdmFpbGFibGVNb2RlbHM6W10sYXZhaWxhYmxlQ29kZXhNb2RlbHM6W10sbW9kZWxzUmVmcmVzaGluZzohMSxzZXNzaW9uQ3JlYXRlS2luZDoic3RydWN0dXJlZCIsc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlOiExLHNlc3Npb25Ub29sOiJjbGF1ZGUiLGFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ6bnVsbCx3b3JrdHJlZU1lcmdlQ2hlY2tSZXN1bHQ6bnVsbCx3b3JrdHJlZU1lcmdlTG9hZGluZzohMSx3b3JrdHJlZU1lcmdlU3VibWl0dGluZzohMSx3b3JrdHJlZU1lcmdlRXJyb3I6IiIscHJlZmVycmVkQ29tbWFuZDoiY2xhdWRlIixzdHJ1Y3R1cmVkUnVubmVyOiJjbGF1ZGUtY2xpLXByaW50IixsYXN0UmVzaXplOntjb2xzOjAscm93czowfSxpc09ubGluZTpuYXZpZ2F0b3Iub25MaW5lLHdzOm51bGwsd3NDb25uZWN0ZWQ6ITEsbGFzdFdzTWVzc2FnZUF0OjAsd3NIZWFydGJlYXRDaGVja1RpbWVyOm51bGwsX3VwZGF0ZUJ1YmJsZVNob3duOiExLG5vdGlmaWNhdGlvbkhpc3Rvcnk6e30sZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyOm51bGwsbm90aWZTb3VuZDooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtc291bmQiKTtyZXR1cm4gZT09PW51bGw/ITA6ZT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMH19KSgpLG5vdGlmVm9sdW1lOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiKTtyZXR1cm4gZT09PW51bGw/ODA6TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAscGFyc2VJbnQoZSwxMCl8fDgwKSl9Y2F0Y2h7cmV0dXJuIDgwfX0pKCksbm90aWZCdWJibGU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLWJ1YmJsZSIpO3JldHVybiBlPT09bnVsbD8hMDplPT09InRydWUifWNhdGNoe3JldHVybiEwfX0pKCksdG9vbENvbnRlbnRDYWNoZTp7fSxsYXN0U2VxQnlTZXNzaW9uOnt9LGN1cnJlbnRWaWV3OiJ0ZXJtaW5hbCIsdGVybWluYWxTY2FsZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtdGVybWluYWwtc2NhbGUiKTtyZXR1cm4gZT9wYXJzZUZsb2F0KGUpOjF9Y2F0Y2h7cmV0dXJuIDF9fSkoKSx0ZXJtaW5hbEJhc2VGb250U2l6ZToxMyxrZXlib2FyZFBvcHVwT3BlbjohMSxmaWxlUGFuZWxPcGVuOihmdW5jdGlvbigpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtZmlsZS1wYW5lbC1vcGVuIik9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITF9fSkoKSx0b3BiYXJNb3JlT3BlbjohMSxnaXRTdGF0dXM6bnVsbCxnaXRTdGF0dXNTZXNzaW9uSWQ6bnVsbCxnaXRTdGF0dXNMb2FkaW5nOiExLGdpdFN0YXR1c0luZmxpZ2h0Om51bGwsZ2l0U3RhdHVzTGFzdEZldGNoQXQ6MCxxdWlja0NvbW1pdE9wZW46ITEscXVpY2tDb21taXRTdWJtaXR0aW5nOiExLHF1aWNrQ29tbWl0R2VuZXJhdGluZzohMSxxdWlja0NvbW1pdEVycm9yOiIiLHF1aWNrQ29tbWl0Rm9ybTp7Y3VzdG9tTWVzc2FnZToiIix0YWc6IiIsdGFnRWRpdGVkOiExfSxxdWlja0NvbW1pdFB1c2hpbmc6ITEscXVpY2tDb21taXRQdXNoRXJyb3I6IiIscXVpY2tDb21taXRSZXN1bHQ6bnVsbCxxdWlja0NvbW1pdERyYWdBY3Rpb246ImNvbW1pdCIscXVpY2tDb21taXRTdWJtb2R1bGVJbnRlbnQ6ITEsY2hhdFN0aWNrVG9Cb3R0b206ITAsY2hhdEF1dG9Gb2xkRW5hYmxlZDohMSxjaGF0QXV0b0ZvbGRTbmFwc2hvdDpudWxsLGNoYXRVbnJlYWRDb3VudDowLGNoYXRVbnJlYWRTdGFydEluZGV4Oi0xLGNoYXRTY3JvbGxUaHJlc2hvbGQ6MTYwLGNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbDohMSxjaGF0UHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCxjaGF0U2Nyb2xsRWxlbWVudDpudWxsLGNoYXRTY3JvbGxIYW5kbGVyOm51bGwsY2hhdFNjcm9sbFdoZWVsSGFuZGxlcjpudWxsLGNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcjpudWxsLGNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyOm51bGwsY2hhdFRvdWNoU3RhcnRZOjAsY2hhdEluaXRpYWxSZW5kZXJEb25lOiExLGxhc3RGb3JlZ3JvdW5kU3luY0F0OjAsZm9yZWdyb3VuZFN5bmNUaW1lcjpudWxsLHdzUmVjb25uZWN0QXR0ZW1wdHM6MCx3c1JlY29ubmVjdFRpbWVyOm51bGwsY3VycmVudE1lc3NhZ2VzOltdLGxhc3RSZW5kZXJlZEhhc2g6MCxsYXN0UmVuZGVyZWRNc2dDb3VudDowLGxhc3RSZW5kZXJlZEVtcHR5Om51bGwscmVuZGVyUGVuZGluZzohMSxjaGF0UGFnZVNpemU6MjAsY2hhdFJlbmRlcmVkQ291bnQ6MjAsY3VycmVudFRhc2s6bnVsbCx0ZXJtaW5hbEludGVyYWN0aXZlOiExLG1pbmlLZXlib2FyZFZpc2libGU6ITEsbW9kaWZpZXJzOntjdHJsOiExLGFsdDohMSxzaGlmdDohMX0sam95c3RpY2tQb3M6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWJhbGwtcG9zIik7aWYoIWUpcmV0dXJuIG51bGw7dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLGpveXN0aWNrUGlubmVkT3BlbjohMSxqb3lzdGlja1Jvb3RFbDpudWxsLGpveXN0aWNrUGFuZWxFbDpudWxsLGpveXN0aWNrQmFja2Ryb3BFbDpudWxsLGpveXN0aWNrQmFsbEVsOm51bGwsam95c3RpY2tQb2ludGVySWQ6bnVsbCxqb3lzdGlja0dlc3R1cmU6bnVsbCxqb3lzdGlja1ByZXNzU3RhcnQ6bnVsbCxqb3lzdGlja0xvbmdQcmVzc1RpbWVyOm51bGwsam95c3RpY2tNb3ZlSGFuZGxlcjpudWxsLGpveXN0aWNrVXBIYW5kbGVyOm51bGwsam95c3RpY2tSZXNpemVIYW5kbGVyOm51bGwsZmlsZVNlYXJjaFF1ZXJ5OiIiLGZpbGVFeHBsb3JlckxvYWRpbmc6ITEsYWxsRmlsZXM6W10sZmlsZUV4cGxvcmVyQ3dkOiIiLGZpbGVFeHBsb3JlclRydW5jYXRlZDohMSxmaWxlRXhwbG9yZXJUb3RhbDowLGNsYXVkZUhpc3Rvcnk6W10sY2xhdWRlSGlzdG9yeUxvYWRlZDohMSxjbGF1ZGVIaXN0b3J5RXhwYW5kZWQ6ITEsY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyczp7fSxhcmNoaXZlZEV4cGFuZGVkOiExLHNlc3Npb25zTWFuYWdlTW9kZTohMSxzZWxlY3RlZFNlc3Npb25JZHM6e30sc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzOnt9LGNvZGV4SGlzdG9yeTpbXSxjb2RleEhpc3RvcnlMb2FkZWQ6ITEsY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzOnt9LHNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzOnt9LGFza1VzZXJTZWxlY3Rpb25zOnt9LHF1ZXVlRXBvY2g6MCxwZW5kaW5nQXR0YWNobWVudHM6W10sd29ya2luZ0RpcjooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiKTtyZXR1cm4gZXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fSkoKX0sZWE9Ilx1NEUyRFx1NjU4NyIsR3I9e1x1NEUyRFx1NjU4Nzp7InN1YmFnZW50LnRhZyI6Ilx1NUI1MFx1NEVFM1x1NzQwNiIsInN1YmFnZW50LmhhbmRvZmYiOiJ7cGFyZW50fSBcdThCQTkge3N1Yn0gXHU1RTJFXHU1RkQ5Iiwic3ViYWdlbnQuaGFuZG9mZi53aXRoX2Rlc2MiOiJ7cGFyZW50fSBcdThCQTkge3N1Yn0gXHU1RTJFXHU1RkQ5XHVGRjFBIiwic3ViYWdlbnQuY29udGludWVkIjoiXHU3RUU3XHU3RUVEXHU4RjkzXHU1MUZBIiwic3ViYWdlbnQudGFzay5kb25lIjoiXHU0RUZCXHU1MkExXHU1QjhDXHU2MjEwIiwic3ViYWdlbnQudGFzay5mYWlsZWQiOiJcdTRFRkJcdTUyQTFcdTU5MzFcdThEMjUiLCJzdWJhZ2VudC5ydW5uaW5nIjoiXHU4RkQwXHU4ODRDXHU0RTJEIiwic3ViYWdlbnQubm9fb3V0cHV0IjoiXHVGRjA4XHU2NUUwXHU4RjkzXHU1MUZBXHVGRjA5Iiwic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCI6Ilx1NTM0Rlx1NEY1Q1x1NzMyQlx4QjciLCJzdWJhZ2VudC50aXRsZV9hcmlhIjoiXHU3MEI5XHU1MUZCXHU1QzU1XHU1RjAwIC8gXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwic3ViYWdlbnQudGFnX3RpdGxlIjoiXHU1QjUwXHU0RUUzXHU3NDA2IC8gc3ViYWdlbnQiLCJ1aS5leHBhbmQiOiJcdTVDNTVcdTVGMDAiLCJ1aS5jb2xsYXBzZSI6Ilx1NjUzNlx1OEQ3NyIsInVpLmV4cGFuZF9wYW5lbF9hcmlhIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwidWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsImhpc3RvcnkuZXhwYW5kIjoiXHU1QzU1XHU1RjAwXHU1Mzg2XHU1M0YyXHU1QkY5XHU4QkREIiwiaGlzdG9yeS5jb2xsYXBzZSI6Ilx1NjUzNlx1OEQ3N1x1NTM4Nlx1NTNGMlx1NUJGOVx1OEJERCIsImhpc3Rvcnkucm91bmRzIjoie259IFx1OEY2RVx1NUJGOVx1OEJERCIsImhpc3RvcnkudG9vbHMiOiJ7bn0gXHU2QjIxXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4IiwiaGlzdG9yeS5hZ2VudHMiOiJ7bn0gXHU0RTJBXHU1QjUwXHU0RUUzXHU3NDA2IiwiaGlzdG9yeS5lcnJvcnMiOiJ7bn0gXHU0RTJBXHU1OTMxXHU4RDI1Iiwic3RvcC5jb25maXJtLnRpdGxlIjoiXHU1MDVDXHU2QjYyXHU0RUZCXHU1MkExIiwic3RvcC5jb25maXJtLm1lc3NhZ2UiOiJcdTc4NkVcdTVCOUFcdTg5ODFcdTUwNUNcdTZCNjJcdTVGNTNcdTUyNERcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTc2ODRcdTRFRkJcdTUyQTFcdTU0MTdcdUZGMUYiLCJzdG9wLmNvbmZpcm0ub2siOiJcdTUwNUNcdTZCNjIiLCJzdG9wLmNvbmZpcm0uY2FuY2VsIjoiXHU1M0Q2XHU2RDg4In0sRW5nbGlzaDp7InN1YmFnZW50LnRhZyI6IlN1YmFnZW50Iiwic3ViYWdlbnQuaGFuZG9mZiI6IntwYXJlbnR9IGFza2VkIHtzdWJ9IGZvciBoZWxwIiwic3ViYWdlbnQuaGFuZG9mZi53aXRoX2Rlc2MiOiJ7cGFyZW50fSBhc2tlZCB7c3VifSBmb3IgaGVscCB3aXRoOiAiLCJzdWJhZ2VudC5jb250aW51ZWQiOiJjb250aW51ZWQiLCJzdWJhZ2VudC50YXNrLmRvbmUiOiJUYXNrIGNvbXBsZXRlIiwic3ViYWdlbnQudGFzay5mYWlsZWQiOiJUYXNrIGZhaWxlZCIsInN1YmFnZW50LnJ1bm5pbmciOiJSdW5uaW5nIiwic3ViYWdlbnQubm9fb3V0cHV0IjoiKG5vIG91dHB1dCkiLCJzdWJhZ2VudC5oZWxwZXJfZmFsbGJhY2tfcHJlZml4IjoiSGVscGVyXHhCNyIsInN1YmFnZW50LnRpdGxlX2FyaWEiOiJDbGljayB0byBleHBhbmQgLyBjb2xsYXBzZSBzdWJhZ2VudCBvdXRwdXQiLCJzdWJhZ2VudC50YWdfdGl0bGUiOiJTdWJhZ2VudCIsInVpLmV4cGFuZCI6IkV4cGFuZCIsInVpLmNvbGxhcHNlIjoiQ29sbGFwc2UiLCJ1aS5leHBhbmRfcGFuZWxfYXJpYSI6IkV4cGFuZCBzdWJhZ2VudCBvdXRwdXQiLCJ1aS5jb2xsYXBzZV9wYW5lbF9hcmlhIjoiQ29sbGFwc2Ugc3ViYWdlbnQgb3V0cHV0IiwiaGlzdG9yeS5leHBhbmQiOiJTaG93IGVhcmxpZXIgY29udmVyc2F0aW9uIiwiaGlzdG9yeS5jb2xsYXBzZSI6IkhpZGUgZWFybGllciBjb252ZXJzYXRpb24iLCJoaXN0b3J5LnJvdW5kcyI6IntufSByb3VuZHMiLCJoaXN0b3J5LnRvb2xzIjoie259IHRvb2wgY2FsbHMiLCJoaXN0b3J5LmFnZW50cyI6IntufSBzdWJhZ2VudHMiLCJoaXN0b3J5LmVycm9ycyI6IntufSBmYWlsZWQiLCJzdG9wLmNvbmZpcm0udGl0bGUiOiJTdG9wIHRhc2siLCJzdG9wLmNvbmZpcm0ubWVzc2FnZSI6IlN0b3AgdGhlIHRhc2sgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nPyIsInN0b3AuY29uZmlybS5vayI6IlN0b3AiLCJzdG9wLmNvbmZpcm0uY2FuY2VsIjoiQ2FuY2VsIn19O2Z1bmN0aW9uIE91KCl7dmFyIGU9ci5jb25maWcmJnR5cGVvZiByLmNvbmZpZy5sYW5ndWFnZT09InN0cmluZyI/ci5jb25maWcubGFuZ3VhZ2UudHJpbSgpOiIiO2lmKCFlKXJldHVybiBlYTtpZihHcltlXSlyZXR1cm4gZTt2YXIgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ9PT0iZW5nbGlzaCJ8fHQ9PT0iZW4ifHx0LmluZGV4T2YoImVuZ2xpc2giKT09PTB8fHQuaW5kZXhPZigiXHU4MkYxIik9PT0wPyJFbmdsaXNoIjp0PT09Ilx1NEUyRFx1NjU4NyJ8fHQ9PT0iemgifHx0LmluZGV4T2YoInpoIik9PT0wfHx0LmluZGV4T2YoIlx1NEUyRCIpPT09MHx8dC5pbmRleE9mKCJjaGluZXNlIik9PT0wPyJcdTRFMkRcdTY1ODciOiJFbmdsaXNoIn1mdW5jdGlvbiBEZShlLHQpe3ZhciBuPU91KCksaT1HcltuXXx8R3JbZWFdLGE9aSYmZSBpbiBpP2lbZV06bnVsbDtpZihhPT1udWxsKXt2YXIgdT1HcltlYV07YT11JiZlIGluIHU/dVtlXTplfWlmKHQmJnR5cGVvZiBhPT0ic3RyaW5nIilmb3IodmFyIG8gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmKGE9YS5zcGxpdCgieyIrbysifSIpLmpvaW4odFtvXSkpO3JldHVybiBhfXZhciBtZD17c2hpZWxkOic8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+JyxzaGllbGRDaGVjazonPHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjxwb2x5bGluZSBwb2ludHM9IjkgMTIgMTEgMTQgMTUgMTAiLz4nLGxvY2s6JzxyZWN0IHg9IjUiIHk9IjEwIiB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIHJ4PSIyIi8+PHBhdGggZD0iTTggMTBWN2E0IDQgMCAwIDEgOCAwdjMiLz48cGF0aCBkPSJNMTIgMTR2MyIvPicsY2VydGlmaWNhdGU6JzxwYXRoIGQ9Ik02IDNoMTJ2MTRINnoiLz48cGF0aCBkPSJNOSA3aDYiLz48cGF0aCBkPSJNOSAxMWg0Ii8+PHBhdGggZD0ibTEwIDE3LTEgNCAzLTEgMyAxLTEtNCIvPicsY3B1Oic8cmVjdCB4PSI3IiB5PSI3IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIi8+PHBhdGggZD0iTTkgMXYzIi8+PHBhdGggZD0iTTE1IDF2MyIvPjxwYXRoIGQ9Ik05IDIwdjMiLz48cGF0aCBkPSJNMTUgMjB2MyIvPjxwYXRoIGQ9Ik0yMCA5aDMiLz48cGF0aCBkPSJNMjAgMTVoMyIvPjxwYXRoIGQ9Ik0xIDloMyIvPjxwYXRoIGQ9Ik0xIDE1aDMiLz48cmVjdCB4PSIxMCIgeT0iMTAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHJ4PSIxIi8+JyxicmFpbjonPHBhdGggZD0iTTkuNSA0LjVhMyAzIDAgMCAwLTQuNyAzLjEgMy4zIDMuMyAwIDAgMCAuMyA2LjFBMyAzIDAgMCAwIDggMTloMS41VjQuNXoiLz48cGF0aCBkPSJNMTQuNSA0LjVhMyAzIDAgMCAxIDQuNyAzLjEgMy4zIDMuMyAwIDAgMS0uMyA2LjFBMyAzIDAgMCAxIDE2IDE5aC0xLjVWNC41eiIvPjxwYXRoIGQ9Ik05LjUgOEg3LjgiLz48cGF0aCBkPSJNMTQuNSA4aDEuNyIvPjxwYXRoIGQ9Ik05LjUgMTNINy42Ii8+PHBhdGggZD0iTTE0LjUgMTNoMS45Ii8+JyxrZXlib2FyZDonPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEyIiByeD0iMiIvPjxsaW5lIHgxPSI2IiB5MT0iMTAiIHgyPSI2IiB5Mj0iMTAiLz48bGluZSB4MT0iMTAiIHkxPSIxMCIgeDI9IjEwIiB5Mj0iMTAiLz48bGluZSB4MT0iMTQiIHkxPSIxMCIgeDI9IjE0IiB5Mj0iMTAiLz48bGluZSB4MT0iMTgiIHkxPSIxMCIgeDI9IjE4IiB5Mj0iMTAiLz48bGluZSB4MT0iNiIgeTE9IjE0IiB4Mj0iNiIgeTI9IjE0Ii8+PGxpbmUgeDE9IjE4IiB5MT0iMTQiIHgyPSIxOCIgeTI9IjE0Ii8+PGxpbmUgeDE9IjkiIHkxPSIxNCIgeDI9IjE1IiB5Mj0iMTQiLz4nLHRlcm1pbmFsOic8cG9seWxpbmUgcG9pbnRzPSI0IDcgOSAxMiA0IDE3Ii8+PGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIyMCIgeTI9IjE3Ii8+JyxjaGF0Oic8cGF0aCBkPSJNMjEgMTJhOCA4IDAgMCAxLTEyLjkgNi4zTDMgMjBsMS43LTUuMUE4IDggMCAxIDEgMjEgMTJ6Ii8+Jyxmb2xkZXI6JzxwYXRoIGQ9Ik0zIDdhMiAyIDAgMCAxIDItMmg0bDIgMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiLz4nLHRyYXNoOic8cG9seWxpbmUgcG9pbnRzPSIzIDYgNSA2IDIxIDYiLz48cGF0aCBkPSJNMTkgNmwtMSAxM2EyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMkw1IDYiLz48cGF0aCBkPSJNMTAgMTF2NiIvPjxwYXRoIGQ9Ik0xNCAxMXY2Ii8+PHBhdGggZD0iTTkgNlY0YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIiLz4nLGNoZXZyb25Eb3duOic8cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPicsYmVsbDonPHBhdGggZD0iTTE4IDE2di01YTYgNiAwIDEgMC0xMiAwdjVsLTIgMmgxNnoiLz48cGF0aCBkPSJNMTAgMjFhMiAyIDAgMCAwIDQgMCIvPicsbXVzaWM6JzxwYXRoIGQ9Ik05IDE4VjVsMTItMnYxMyIvPjxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTYiIHI9IjMiLz4nLHZpYnJhdGU6JzxyZWN0IHg9IjkiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiByeD0iMSIvPjxwYXRoIGQ9Ik01IDh2OCIvPjxwYXRoIGQ9Ik0zIDEwdjQiLz48cGF0aCBkPSJNMTkgOHY4Ii8+PHBhdGggZD0iTTIxIDEwdjQiLz4nLGdsb2JlOic8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PGxpbmUgeDE9IjMiIHkxPSIxMiIgeDI9IjIxIiB5Mj0iMTIiLz48cGF0aCBkPSJNMTIgM2ExNCAxNCAwIDAgMSAwIDE4Ii8+PHBhdGggZD0iTTEyIDNhMTQgMTQgMCAwIDAgMCAxOCIvPicsc21hcnRwaG9uZTonPHJlY3QgeD0iNiIgeT0iMiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIwIiByeD0iMi41Ii8+PGxpbmUgeDE9IjExIiB5MT0iMTgiIHgyPSIxMyIgeTI9IjE4Ii8+JyxkZXNrdG9wOic8cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PGxpbmUgeDE9IjgiIHkxPSIyMCIgeDI9IjE2IiB5Mj0iMjAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMjAiLz4nLGxpbms6JzxwYXRoIGQ9Ik0xMCAxNGE0LjUgNC41IDAgMCAwIDYuMzYgMGwzLTNhNC41IDQuNSAwIDEgMC02LjM2LTYuMzZsLTEuNDIgMS40MSIvPjxwYXRoIGQ9Ik0xNCAxMGE0LjUgNC41IDAgMCAwLTYuMzYgMGwtMyAzYTQuNSA0LjUgMCAxIDAgNi4zNiA2LjM2bDEuNDItMS40MSIvPicscGFsZXR0ZTonPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjYuNSIgcj0iMSIvPjxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxMC41IiByPSIxIi8+PGNpcmNsZSBjeD0iOC41IiBjeT0iNy41IiByPSIxIi8+PGNpcmNsZSBjeD0iNi41IiBjeT0iMTIuNSIgcj0iMSIvPjxwYXRoIGQ9Ik0xMiAzYTkgOSAwIDEgMCAwIDE4IDEuNSAxLjUgMCAwIDAgMS4xLTIuNSAxLjUgMS41IDAgMCAxIDEuMS0yLjVoMi4zQTQuNSA0LjUgMCAwIDAgMjEgMTEuNUMyMSA2LjggMTYuOTcgMyAxMiAzeiIvPicscGxheTonPHBvbHlnb24gcG9pbnRzPSI2IDQgMjAgMTIgNiAyMCA2IDQiLz4nLHdyZW5jaDonPHBhdGggZD0iTTE0LjcgNi4zYTQgNCAwIDEgMSA0IDRsLTkgOS0zLjUgMSAxLTMuNSA3LjUtNy41eiIvPicscGF3Oic8Y2lyY2xlIGN4PSI3LjUiIGN5PSI5IiByPSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNi44IiByPSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxjaXJjbGUgY3g9IjE2LjUiIGN5PSI5IiByPSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTMuMyIgcj0iMS44IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxwYXRoIGQ9Ik03LjIgMTYuM2MuNS0yLjkgMi4zLTQuOCA0LjgtNC44czQuMyAxLjkgNC44IDQuOGMuMyAxLjgtLjkgMy4yLTIuNiAyLjYtLjgtLjMtMS40LS42LTIuMi0uNnMtMS40LjMtMi4yLjZjLTEuNy42LTIuOS0uOC0yLjYtMi42eiIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiLz4nLGVkaXQ6JzxwYXRoIGQ9Ik0xMiAyMGg5Ii8+PHBhdGggZD0iTTE2LjUgMy41YTIuMTIgMi4xMiAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNHoiLz4nLHNpZ25hbDonPHBhdGggZD0iTTIgMTJhMTUgMTUgMCAwIDEgMjAgMCIvPjxwYXRoIGQ9Ik01IDE2YTEwIDEwIDAgMCAxIDE0IDAiLz48cGF0aCBkPSJNOSAyMGE0IDQgMCAwIDEgNiAwIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIyMCIgcj0iMC41IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4nLGZpbGU6JzxwYXRoIGQ9Ik0xNCAzSDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOXoiLz48cG9seWxpbmUgcG9pbnRzPSIxNCAzIDE0IDkgMjAgOSIvPicsc2lnbWE6Jzxwb2x5bGluZSBwb2ludHM9IjE4IDQgNiA0IDEzIDEyIDYgMjAgMTggMjAiLz4nLHg6JzxwYXRoIGQ9Ik0xOCA2IDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+JyxwbHVzOic8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSIvPjxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+JyxtaWM6JzxyZWN0IHg9IjkiIHk9IjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjExIiByeD0iMyIvPjxwYXRoIGQ9Ik01IDExYTcgNyAwIDAgMCAxNCAwIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTgiIHgyPSIxMiIgeTI9IjIxIi8+PGxpbmUgeDE9IjkiIHkxPSIyMSIgeDI9IjE1IiB5Mj0iMjEiLz4nLHBhcGVyY2xpcDonPHBhdGggZD0iTTIxLjQ0IDExLjA1IDEyLjI1IDIwLjI0YTYgNiAwIDAgMS04LjQ5LTguNDlsOC44NC04Ljg0YTQgNCAwIDEgMSA1LjY2IDUuNjZMOS40MSAxNy40MWEyIDIgMCAxIDEtMi44My0yLjgzbDguODQtOC44MyIvPid9O2Z1bmN0aW9uIFUoZSx0KXt2YXIgbj1tZFtlXTtpZighbilyZXR1cm4iIjt0PXR8fHt9O3ZhciBpPXQuc2l6ZXx8MTQsYT10LnN0cm9rZVdpZHRofHwxLjgsdT10LmNscz8nIGNsYXNzPSInK3QuY2xzKyciJzoiIixvPXQuZmlsbHx8Im5vbmUiO3JldHVybiI8c3ZnIit1Kycgd2lkdGg9IicraSsnIiBoZWlnaHQ9IicraSsnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IicrbysnIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSInK2ErJyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytuKyI8L3N2Zz4ifWZ1bmN0aW9uIG9uKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7aWYoIWUpcmV0dXJuIHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxudWxsO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtyZXR1cm4gdD8oci5jaGF0U2Nyb2xsRWxlbWVudD10LHQpOihyLmNoYXRTY3JvbGxFbGVtZW50PW51bGwsbnVsbCl9ZnVuY3Rpb24gdGEoZSl7dmFyIHQ9ZXx8b24oKTtyZXR1cm4gdD9NYXRoLmFicyh0LnNjcm9sbFRvcCk8ci5jaGF0U2Nyb2xsVGhyZXNob2xkOiEwfWZ1bmN0aW9uIEhnKGUpe3IuY2hhdFN0aWNrVG9Cb3R0b209ISFlLHIuY2hhdFN0aWNrVG9Cb3R0b20mJkRuKHtyZW1vdmVEaXZpZGVyOiEwfSksR2UoKX1mdW5jdGlvbiBEbihlKXtlPWV8fHt9O3ZhciB0PXIuY2hhdFVucmVhZENvdW50PjB8fHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg+PTA7aWYoci5jaGF0VW5yZWFkQ291bnQ9MCxyLmNoYXRVbnJlYWRTdGFydEluZGV4PS0xLGUucmVtb3ZlRGl2aWRlciE9PSExKXt2YXIgbj1vbigpO2lmKG4pe3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWRpdmlkZXIiKTtpJiZpLnBhcmVudE5vZGUmJmkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpKX19dCYmR2UoKX1mdW5jdGlvbiBuYShlKXtpZihlfHwoZT1vbigpKSwhIWUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWRpdmlkZXIiKTtpZihyLmNoYXRVbnJlYWRTdGFydEluZGV4PDB8fHIuY2hhdFVucmVhZENvdW50PD0wKXt0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KTtyZXR1cm59Zm9yKHZhciBuPXIuY2hhdFVucmVhZFN0YXJ0SW5kZXgsaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UiKSxhPW51bGwsdT0wO3U8aS5sZW5ndGg7dSsrKXt2YXIgbz1pW3VdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZihvIT09bnVsbCl7dmFyIHM9cGFyc2VJbnQobywxMCk7aWYoIWlzTmFOKHMpJiZzPG4pe2E9aVt1XTticmVha319fXZhciBsPXIuY2hhdFVucmVhZENvdW50KyIgXHU2NzYxXHU2NUIwXHU2RDg4XHU2MDZGIjt0fHwodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0LmNsYXNzTmFtZT0iY2hhdC11bnJlYWQtZGl2aWRlciIsdC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJzZXBhcmF0b3IiKSx0LmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGluZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1kaXZpZGVyLWxhYmVsIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGluZSI+PC9zcGFuPicpLHQucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWRpdmlkZXItbGFiZWwiKS50ZXh0Q29udGVudD1sLGE/KHQubmV4dFNpYmxpbmchPT1hfHx0LnBhcmVudE5vZGUhPT1lKSYmZS5pbnNlcnRCZWZvcmUodCxhKToodC5wYXJlbnROb2RlIT09ZXx8dC5uZXh0U2libGluZyE9PW51bGwpJiZlLmFwcGVuZENoaWxkKHQpfX1mdW5jdGlvbiBHZSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LXVucmVhZC1idWJibGUiKTtpZihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPSF0YSgpLGk9ISF0JiZyLmN1cnJlbnRWaWV3PT09ImNoYXQiJiZuO2UuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsaSksZS5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdW5yZWFkIixyLmNoYXRVbnJlYWRDb3VudD4wKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXVucmVhZC1idWJibGUtY291bnQiKTthJiYoci5jaGF0VW5yZWFkQ291bnQ+MD8oYS50ZXh0Q29udGVudD1yLmNoYXRVbnJlYWRDb3VudD45OT8iOTkrIjpTdHJpbmcoci5jaGF0VW5yZWFkQ291bnQpLGEuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpKTooYS50ZXh0Q29udGVudD0iIixhLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSkpO3ZhciB1PXIuY2hhdFVucmVhZENvdW50PjA/ci5jaGF0VW5yZWFkQ291bnQrIiBcdTY3NjFcdTY1QjBcdTZEODhcdTYwNkZcdUZGMENcdTcwQjlcdTUxRkJcdTY3RTVcdTc3MEIiOiJcdTU2REVcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiO2Uuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix1KSxlLnNldEF0dHJpYnV0ZSgidGl0bGUiLHUpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpO28mJm8uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLWp1bXAtYnRuIixpKX19ZnVuY3Rpb24gUXIoKXtyYSgpfWZ1bmN0aW9uIHJhKGUpe3ZhciB0PWV8fG9uKCk7aWYodCl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1waW4tc3BhY2VyIik7biYmbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9fWZ1bmN0aW9uIFB1KGUpe3ZhciB0PW9uKCk7aWYoISghdHx8IXQuaXNDb25uZWN0ZWQpKXtRcigpLHJhKHQpLHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwO3ZhciBuPWZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITEsci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxEbih7cmVtb3ZlRGl2aWRlcjohMH0pLEdlKCl9O2lmKGUmJnR5cGVvZiB0LnNjcm9sbFRvPT0iZnVuY3Rpb24iKXt0LnNjcm9sbFRvKHt0b3A6MCxiZWhhdmlvcjoic21vb3RoIn0pLHNldFRpbWVvdXQobiwyNjApO3JldHVybn10LnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShuKX19ZnVuY3Rpb24gSHUoKXt2YXIgZT1vbigpO1FyKCksZSYmcmEoZSksci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxEbih7cmVtb3ZlRGl2aWRlcjohMH0pLGUmJmUuaXNDb25uZWN0ZWQmJihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMCxyLmNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1EYXRlLm5vdygpKzE4MCxlLnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpLEdlKCl9ZnVuY3Rpb24gb3IoKXt2YXIgZT1vbigpO2lmKCFlfHwhZS5pc0Nvbm5lY3RlZClyZXR1cm47aWYoci5jaGF0U2Nyb2xsRWxlbWVudD09PWUmJnIuY2hhdFNjcm9sbEhhbmRsZXIpe0dlKCk7cmV0dXJufXIuY2hhdFNjcm9sbEVsZW1lbnQmJihyLmNoYXRTY3JvbGxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci5jaGF0U2Nyb2xsSGFuZGxlciksci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcikpLHIuY2hhdFNjcm9sbEVsZW1lbnQ9ZTtmdW5jdGlvbiB0KCl7UXIoKSxyLmNoYXRTdGlja1RvQm90dG9tPSExLGUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5IikmJnplKCEwKSxHZSgpfXIuY2hhdFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihlLmlzQ29ubmVjdGVkKXtpZihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8RGF0ZS5ub3coKTxyLmNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7R2UoKTtyZXR1cm59dmFyIG49dGEoZSk7aWYobilRcigpLHIuY2hhdFN0aWNrVG9Cb3R0b209ITAsRG4oe3JlbW92ZURpdmlkZXI6ITB9KTtlbHNle3QoKTtyZXR1cm59R2UoKX19LHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlcj1mdW5jdGlvbihuKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8bi5kZWx0YVk8MCYmdCgpfSxyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcj1mdW5jdGlvbihuKXshbi50b3VjaGVzfHxuLnRvdWNoZXMubGVuZ3RoPT09MHx8KHIuY2hhdFRvdWNoU3RhcnRZPW4udG91Y2hlc1swXS5jbGllbnRZKX0sci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcj1mdW5jdGlvbihuKXtpZighci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGwmJiEoIW4udG91Y2hlc3x8bi50b3VjaGVzLmxlbmd0aD09PTApKXt2YXIgaT1uLnRvdWNoZXNbMF0uY2xpZW50WS1yLmNoYXRUb3VjaFN0YXJ0WTtpPjQmJnQoKX19LGUuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcix7cGFzc2l2ZTohMH0pLGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyLHtwYXNzaXZlOiEwfSksR2UoKX1mdW5jdGlvbiBfdSgpe2lmKHIuY2hhdFJlbmRlcmVkQ291bnQ8ci5jdXJyZW50TWVzc2FnZXMubGVuZ3RoKXtyLmNoYXRSZW5kZXJlZENvdW50Kz1yLmNoYXRQYWdlU2l6ZSx6ZSghMCk7cmV0dXJufXZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO2UmJnR5cGVvZiBlLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZlLm1lc3NhZ2VPZmZzZXQ+MCYmVG0oKX12YXIgc3I9bnVsbDtmdW5jdGlvbiBnZCgpe3NyJiYoc3IuZGlzY29ubmVjdCgpLHNyPW51bGwpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCIpO2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbG9hZC1tb3JlLWJ0biIpO3QmJih0Lm9uY2xpY2s9ZnVuY3Rpb24oKXtfdSgpfSk7dmFyIG49ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXMpLGk9d2luZG93LmlubmVyV2lkdGg8PTc2ODtufHxpfHx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHx3aW5kb3cuX193YW5kSW9zTmF0aXZlfHx0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI+InUifHwoc3I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0uaXNJbnRlcnNlY3Rpbmcpe191KCk7YnJlYWt9fSx7cm9vdDpvbigpLHJvb3RNYXJnaW46IjIwMHB4In0pLHNyLm9ic2VydmUoZSkpfX1mdW5jdGlvbiBFZSgpe3RyeXtyLnNlbGVjdGVkSWQ/bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc2VsZWN0ZWQtc2Vzc2lvbiIsci5zZWxlY3RlZElkKTpsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIil9Y2F0Y2h7fX1mdW5jdGlvbiBpYShlKXtyZXR1cm4gZSYmQXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzOnIuc3RydWN0dXJlZElucHV0UXVldWV9ZnVuY3Rpb24gaGQoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gaWEoZSl9ZnVuY3Rpb24gJHIoZSl7dmFyIHQ9aWEoZSk7ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1BcnJheS5pc0FycmF5KHQpP3Quc2xpY2UoKTpbXX1mdW5jdGlvbiBOdShlLHQpe3JldHVybiEhKGUmJkFycmF5LmlzQXJyYXkoZS5jb250ZW50KSYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4mJnR5cGVvZiBuPT0ib2JqZWN0IiYmblt0XX0pKX1mdW5jdGlvbiB5ZChlKXtyZXR1cm4hIShlJiZlLnJvbGU9PT0idXNlciImJk51KGUsIl9fcXVldWVkIikpfWZ1bmN0aW9uIGJkKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJhc3Npc3RhbnQiJiZOdShlLCJfX3Byb2Nlc3NpbmciKSl9ZnVuY3Rpb24gbHIoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuW107Zm9yKHZhciB0PSExLG49W10saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldO2lmKHlkKGEpfHxiZChhKSl7dD0hMDtjb250aW51ZX1uLnB1c2goYSl9cmV0dXJuIHQ/bjplfWZ1bmN0aW9uIEVkKGUsdCl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpKXJldHVybiBlO3ZhciBuPWUuc2Vzc2lvbktpbmR8fHQmJnQuc2Vzc2lvbktpbmQ7aWYobiE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gZTt2YXIgaT1scihlLm1lc3NhZ2VzKTtyZXR1cm4gaT09PWUubWVzc2FnZXM/ZTpPYmplY3QuYXNzaWduKHt9LGUse21lc3NhZ2VzOml9KX1mdW5jdGlvbiBqdSgpe3RyeXt2YXIgZT1oZCgpO2lmKCFyLnNlbGVjdGVkSWR8fGUubGVuZ3RoPT09MClyZXR1cm47bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaXRlbXM6ZX0pKX1jYXRjaHt9fWZ1bmN0aW9uIFJ1KGUpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7KCFlfHwhbnx8bi5zZXNzaW9uSWQ9PT1lKSYmbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfWNhdGNoe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKX19ZnVuY3Rpb24gV3UoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpKXskcihlKSxqdSgpO3JldHVybn10cnl7dmFyIHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpO2lmKCF0KXJldHVybjt2YXIgbj1KU09OLnBhcnNlKHQpO2lmKCFufHxuLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZHx8IUFycmF5LmlzQXJyYXkobi5pdGVtcykpcmV0dXJuO3Iuc3RydWN0dXJlZElucHV0UXVldWU9bi5pdGVtcy5zbGljZSgwLDEwKX1jYXRjaHtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPVtdfX1mdW5jdGlvbiBRdCgpe3RyeXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTApe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKTtyZXR1cm59bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoci5jcm9zc1Nlc3Npb25RdWV1ZSkpfWNhdGNoe319ZnVuY3Rpb24gc24oKXtyZXR1cm4gci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRDd2R8fCIvdG1wIn1mdW5jdGlvbiB6dSgpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShYaSk7aWYoIWUpcmV0dXJue307dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e319Y2F0Y2h7cmV0dXJue319fWZ1bmN0aW9uIEZkKGUpe3RyeXtpZighZXx8T2JqZWN0LmtleXMoZSkubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oWGkpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbShYaSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2h7fX1mdW5jdGlvbiB3ZCgpe3ZhciBlPXIuc2VsZWN0ZWRJZDtpZighZSlyZXR1cm57fTt2YXIgdD16dSgpLG49dFtlXTtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiP246e319ZnVuY3Rpb24gRXQoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIG51bGw7dmFyIHQ9d2QoKTtyZXR1cm4gdHlwZW9mIHRbZV09PSJib29sZWFuIj90W2VdOm51bGx9ZnVuY3Rpb24gVnUoZSx0KXtpZighKCFlfHwhci5zZWxlY3RlZElkKSl7dmFyIG49enUoKSxpPXIuc2VsZWN0ZWRJZCxhPW5baV07KCFhfHx0eXBlb2YgYSE9Im9iamVjdCIpJiYoYT17fSksYVtlXT0hIXQsbltpXT1hLEZkKG4pfX1mdW5jdGlvbiBVdShlLHQpe3JldHVybiBlP2UudXVpZD8ibXNnOiIrZS51dWlkOmUuaWQ/Im1zZzoiK2UuaWQ6ZS5tZXNzYWdlSWQ/Im1zZzoiK2UubWVzc2FnZUlkOmUudHVybklkPyJtc2c6IitlLnR1cm5JZDoibXNnOiIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApOiJtc2c6dW5rbm93bi0iKyh0eXBlb2YgdD09Im51bWJlciI/dDowKX1mdW5jdGlvbiBNdChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07YT09bnVsbHx8YT09PSIifHxuLnB1c2goU3RyaW5nKGEpKX1yZXR1cm4gZSsiOiIrbi5qb2luKCI6Iil9ZnVuY3Rpb24gYWEoZSl7cmV0dXJuIWV8fCFlLmRhdGFzZXQ/IiI6ZS5kYXRhc2V0LmV4cGFuZEtleXx8IiJ9ZnVuY3Rpb24gQ2QoZSx0KXtpZighZSlyZXR1cm4hMTtzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6cmV0dXJuIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlInRoaW5raW5nIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cGFuZGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7Y2FzZSJpbmxpbmUtdG9vbCI6cmV0dXJuIGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJpbmxpbmUtdG9vbC1vcGVuIik7Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO3JldHVybiBuP24uc3R5bGUuZGlzcGxheSE9PSJub25lIjplLmRhdGFzZXQuZXhwYW5kZWQ9PT0idHJ1ZSJ9Y2FzZSJ0b29sLWdyb3VwIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXJlcGx5IjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXBhbmVsIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBLdShlLHQsbil7aWYoZSlzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbik7YnJlYWt9Y2FzZSJ0aGlua2luZyI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbiksZS5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFuKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpO2lmKGkpe3ZhciBhPWUuZGF0YXNldC50aGlua2luZ3x8IiIsdT1hLnNsaWNlKDAsNTcpKyhhLmxlbmd0aD42MD8iXHUyMDI2IjoiIik7aS50ZXh0Q29udGVudD1uP2E6dX12YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7byYmKG8udGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7YnJlYWt9Y2FzZSJpbmxpbmUtdG9vbCI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIsISFuKTt2YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO3MmJihzLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7YnJlYWt9Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2wmJihsLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIiksZS5kYXRhc2V0LmV4cGFuZGVkPW4/InRydWUiOiJmYWxzZSI7dmFyIGQ9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2QmJihkLnRleHRDb250ZW50PW4/Ilx1MjVCQyI6Ilx1MjVCNiIpO2JyZWFrfWNhc2UidG9vbC1ncm91cCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgZj1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWJvZHkiKTtmJiYoZi5zdHlsZS5kaXNwbGF5PW4/ImJsb2NrIjoibm9uZSIpO3ZhciBjPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtY2hldnJvbiIpO2MmJihjLnN0eWxlLnRyYW5zZm9ybT1uPyJyb3RhdGUoMTgwZGVnKSI6IiIpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcmVwbHkiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7dmFyIHY9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlLWxhYmVsIik7diYmKHYudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7dmFyIGg9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlIik7aCYmKGguc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSxoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEXHU1MTY4XHU2NTg3IikpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcGFuZWwiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7Zm9yKHZhciBnPWUucXVlcnlTZWxlY3RvckFsbCgiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZSIpLG09MDttPGcubGVuZ3RoO20rKyl7dmFyIHk9Z1ttXTt5LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIikseS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG4/Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIpO3ZhciB3PXkucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZS1sYWJlbCIpO3cmJih3LnRleHRDb250ZW50PW4/Ilx1NjUzNlx1OEQ3NyI6Ilx1NUM1NVx1NUYwMCIpfXZhciBFPWUucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtFJiYobj9FLnNjcm9sbFRvcD0wOkUuc2Nyb2xsVG9wPUUuc2Nyb2xsSGVpZ2h0KTticmVha319fWZ1bmN0aW9uIF9uKGUsdCl7dmFyIG49YWEoZSk7biYmVnUobixDZChlLHQpKX1mdW5jdGlvbiB1YShlKXshZXx8IXIuc2VsZWN0ZWRJZHx8ZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1leHBhbmQta2V5XSIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49YWEodCksaT10LmRhdGFzZXQuZXhwYW5kS2luZHx8IiIsYT1FdChuKTthPT09bnVsbHx8IWl8fEt1KHQsaSxhKX0pfWZ1bmN0aW9uIGplKCl7cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoPD03Njh9ZnVuY3Rpb24gSnUoKXtyZXR1cm4hIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiYoamUoKXx8IXIuc2lkZWJhclBpbm5lZCl9ZnVuY3Rpb24gb2EoZSl7ci5maWxlUGFuZWxPcGVuPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsU3RyaW5nKHIuZmlsZVBhbmVsT3BlbikpfWNhdGNoe31yLmZpbGVQYW5lbE9wZW4mJmplKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSksbG4oKSxyLmZpbGVQYW5lbE9wZW4mJnF0KCl9ZnVuY3Rpb24gWHIoKXtvYSghci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiBCZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWNvbnRlbnQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiZmlsZS1wYW5lbC1vcGVuIixyLmZpbGVQYW5lbE9wZW4pLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5maWxlUGFuZWxPcGVuKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiBsbigpe0hyKCksQmQoKX1mdW5jdGlvbiBEZChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1jd2QiKTtpZih0KXt2YXIgbj1lJiZlLmN3ZD9lLmN3ZDpzbigpO3QudGFnTmFtZT09PSJJTlBVVCI/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXQmJih0LnZhbHVlPW4sTGcodCkpOnQudGV4dENvbnRlbnQ9bix0LnRpdGxlPW47dmFyIGk9dC5jbG9zZXN0KCIuZmlsZS1leHBsb3Jlci1oZWFkZXIiKTtpJiZpcihpKX19ZnVuY3Rpb24gWXUoKXtyLmZpbGVQYW5lbE9wZW4mJm9hKCExKX1mdW5jdGlvbiBHdShlKXt2YXIgdD1yLnRlcm1pbmFsU2NhbGUrZTtpZih0PU1hdGgubWF4KC41LE1hdGgubWluKDIsdCkpLHQ9TWF0aC5yb3VuZCh0KjQpLzQsdCE9PXIudGVybWluYWxTY2FsZSl7ci50ZXJtaW5hbFNjYWxlPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIixTdHJpbmcodCkpfWNhdGNoe31RdSgpLGtkKCl9fWZ1bmN0aW9uIFF1KCl7aWYoISghci50ZXJtaW5hbHx8IXIudGVybWluYWwuZWxlbWVudCkpe3ZhciBlPXIudGVybWluYWxCYXNlRm9udFNpemUqci50ZXJtaW5hbFNjYWxlLHQ9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUpKSxuPU1hdGgubWF4KDEsTWF0aC5yb3VuZChlKjEuNSkpO3IudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLWZvbnQtc2l6ZSIsdCsicHgiKSxyLnRlcm1pbmFsLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGVybS1yb3ctaGVpZ2h0IixuKyJweCIpLHR5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pfX1mdW5jdGlvbiBrZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiKTtlJiYoZS50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyIlIil9dmFyIEFkPXsiY2hldnJvbi1sZWZ0IjonPHBhdGggZD0iTTE1IDE4bC02LTYgNi02Ii8+JywiYXJyb3ctdXAiOic8cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz4nLHJlZnJlc2g6JzxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAxIDEtMy02LjciLz48cGF0aCBkPSJNMjEgNHY1aC01Ii8+JyxleWU6JzxwYXRoIGQ9Ik0xIDEyczQtNyAxMS03IDExIDcgMTEgNy00IDctMTEgN1MxIDEyIDEgMTJ6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPicsImV5ZS1vZmYiOic8cGF0aCBkPSJNMTcuOTQgMTcuOTRBMTAuOTQgMTAuOTQgMCAwIDEgMTIgMTljLTcgMC0xMS03LTExLTdhMTkuODYgMTkuODYgMCAwIDEgNC4yMi01LjE4Ii8+PHBhdGggZD0iTTEgMWwyMiAyMiIvPjxwYXRoIGQ9Ik05LjkgNC4yNEExMC45NCAxMC45NCAwIDAgMSAxMiA0YzcgMCAxMSA3IDExIDdhMTkuODMgMTkuODMgMCAwIDEtMy4zNiA0LjI3Ii8+PHBhdGggZD0iTTE0LjEyIDE0LjEyYTMgMyAwIDEgMS00LjI0LTQuMjQiLz4nLHg6JzxwYXRoIGQ9Ik0xOCA2TDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+JyxzZWFyY2g6JzxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjciLz48cGF0aCBkPSJNMjEgMjFsLTQuMy00LjMiLz4nLGNvcHk6JzxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgcng9IjIiLz48cGF0aCBkPSJNNSAxNVY1YTIgMiAwIDAgMSAyLTJoMTAiLz4nLGNsaXBib2FyZDonPHJlY3QgeD0iOCIgeT0iMyIgd2lkdGg9IjgiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTYgNWgyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIiLz4nLGRvd25sb2FkOic8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTUiLz48cGF0aCBkPSJNMTIgMTVWMyIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMjEgMi4xMjEgMCAwIDEgMyAzTDcgMTlsLTQgMSAxLTR6Ii8+JyxzYXZlOic8cGF0aCBkPSJNMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMWw1IDV2MTFhMiAyIDAgMCAxLTIgMnoiLz48cGF0aCBkPSJNMTcgMjF2LThIN3Y4Ii8+PHBhdGggZD0iTTcgM3Y1aDgiLz4nLCJyb3RhdGUtY2N3IjonPHBhdGggZD0iTTMgMTJhOSA5IDAgMSAwIDMtNi43Ii8+PHBhdGggZD0iTTMgNHY1aDUiLz4nLCJ3cmFwLXRleHQiOic8cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTMgMTJoMTVhMyAzIDAgMSAxIDAgNmgtNCIvPjxwYXRoIGQ9Ik0xNiAxNmwtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0zIDE4aDYiLz4nLHR5cGU6JzxwYXRoIGQ9Ik00IDdWNGgxNnYzIi8+PHBhdGggZD0iTTkgMjBoNiIvPjxwYXRoIGQ9Ik0xMiA0djE2Ii8+JyxtaW51czonPHBhdGggZD0iTTUgMTJoMTQiLz4nLHBsdXM6JzxwYXRoIGQ9Ik0xMiA1djE0Ii8+PHBhdGggZD0iTTUgMTJoMTQiLz4nLCJzZW5kLXRvLWlucHV0IjonPHBhdGggZD0iTTIyIDJMMTEgMTMiLz48cGF0aCBkPSJNMjIgMmwtNyAyMC00LTktOS00eiIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ii8+PGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ii8+JywiZm9sZGVyLW9wZW4iOic8cGF0aCBkPSJNNiAxNGwxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiIvPicsaW5mbzonPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIuMDEiIHkyPSI4Ii8+J307ZnVuY3Rpb24gTWUoZSx0KXt0PXR8fHt9O3ZhciBuPUFkW2VdfHwiIixpPXQuc2l6ZXx8MTYsYT10LmNsYXNzTmFtZT8iICIrdC5jbGFzc05hbWU6IiI7cmV0dXJuJzxzdmcgY2xhc3M9IndhbmQtaWNvbiB3YW5kLWljb24tJytlK2ErJyIgd2lkdGg9IicraSsnIiBoZWlnaHQ9IicraSsnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPicrbisiPC9zdmc+In1mdW5jdGlvbiB4ZChlKXt2YXIgdD1lfHxzbigpO3JldHVybiB0Pyc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nOic8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTY3MkFcdTkxNERcdTdGNkVcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nfXZhciBTZD17cG5nOiJcdXsxRjVCQ31cdUZFMEYiLGpwZzoiXHV7MUY1QkN9XHVGRTBGIixqcGVnOiJcdXsxRjVCQ31cdUZFMEYiLGdpZjoiXHV7MUY1QkN9XHVGRTBGIix3ZWJwOiJcdXsxRjVCQ31cdUZFMEYiLHN2ZzoiXHV7MUY1QkN9XHVGRTBGIixhdmlmOiJcdXsxRjVCQ31cdUZFMEYiLGJtcDoiXHV7MUY1QkN9XHVGRTBGIixpY286Ilx1ezFGNUJDfVx1RkUwRiIsaGVpYzoiXHV7MUY1QkN9XHVGRTBGIixoZWlmOiJcdXsxRjVCQ31cdUZFMEYiLHBkZjoiXHV7MUY0RDV9Iixkb2M6Ilx1ezFGNEQ4fSIsZG9jeDoiXHV7MUY0RDh9IixvZHQ6Ilx1ezFGNEQ4fSIseGxzOiJcdXsxRjRDQX0iLHhsc3g6Ilx1ezFGNENBfSIsY3N2OiJcdXsxRjRDQX0iLHRzdjoiXHV7MUY0Q0F9IixwcHQ6Ilx1ezFGNEQ5fSIscHB0eDoiXHV7MUY0RDl9IixtcDQ6Ilx1ezFGM0FDfSIsd2VibToiXHV7MUYzQUN9Iixtb3Y6Ilx1ezFGM0FDfSIsbWt2OiJcdXsxRjNBQ30iLG00djoiXHV7MUYzQUN9IixvZ3Y6Ilx1ezFGM0FDfSIsbXAzOiJcdXsxRjNCNX0iLHdhdjoiXHV7MUYzQjV9IixvZ2c6Ilx1ezFGM0I1fSIsbTRhOiJcdXsxRjNCNX0iLGZsYWM6Ilx1ezFGM0I1fSIsYWFjOiJcdXsxRjNCNX0iLG9wdXM6Ilx1ezFGM0I1fSIsemlwOiJcdXsxRjRFNn0iLHRhcjoiXHV7MUY0RTZ9IixnejoiXHV7MUY0RTZ9Iix0Z3o6Ilx1ezFGNEU2fSIsYnoyOiJcdXsxRjRFNn0iLCI3eiI6Ilx1ezFGNEU2fSIscmFyOiJcdXsxRjRFNn0iLHh6OiJcdXsxRjRFNn0iLG1kOiJcdXsxRjRERH0iLG1hcmtkb3duOiJcdXsxRjRERH0iLG1keDoiXHV7MUY0RER9Iixyc3Q6Ilx1ezFGNEREfSIsdHh0OiJcdXsxRjRERH0iLGxvZzoiXHV7MUY0RER9IixodG1sOiJcdXsxRjMxMH0iLGh0bToiXHV7MUYzMTB9Iix4bWw6Ilx1ezFGMzEwfSIsY3NzOiJcdXsxRjNBOH0iLHNjc3M6Ilx1ezFGM0E4fSIsbGVzczoiXHV7MUYzQTh9Iixqc29uOiJcdTI2OTlcdUZFMEYiLGpzb25jOiJcdTI2OTlcdUZFMEYiLHlhbWw6Ilx1MjY5OVx1RkUwRiIseW1sOiJcdTI2OTlcdUZFMEYiLHRvbWw6Ilx1MjY5OVx1RkUwRiIsaW5pOiJcdTI2OTlcdUZFMEYiLGNmZzoiXHUyNjk5XHVGRTBGIixjb25mOiJcdTI2OTlcdUZFMEYiLGVudjoiXHUyNjk5XHVGRTBGIixlZGl0b3Jjb25maWc6Ilx1MjY5OVx1RkUwRiIsdHM6Ilx1ezFGNERDfSIsdHN4OiJcdXsxRjREQ30iLGpzOiJcdXsxRjREQ30iLGpzeDoiXHV7MUY0REN9IixtanM6Ilx1ezFGNERDfSIsY2pzOiJcdXsxRjREQ30iLHB5OiJcdXsxRjREQ30iLHJiOiJcdXsxRjREQ30iLGdvOiJcdXsxRjREQ30iLHJzOiJcdXsxRjREQ30iLGphdmE6Ilx1ezFGNERDfSIsYzoiXHV7MUY0REN9IixjcHA6Ilx1ezFGNERDfSIsaDoiXHV7MUY0REN9IixocHA6Ilx1ezFGNERDfSIsY3M6Ilx1ezFGNERDfSIsc3dpZnQ6Ilx1ezFGNERDfSIsa3Q6Ilx1ezFGNERDfSIsc2NhbGE6Ilx1ezFGNERDfSIscGhwOiJcdXsxRjREQ30iLHNoOiJcdXsxRjREQ30iLGJhc2g6Ilx1ezFGNERDfSIsenNoOiJcdXsxRjREQ30iLGZpc2g6Ilx1ezFGNERDfSIsbHVhOiJcdXsxRjREQ30iLHNxbDoiXHV7MUY0REN9IixncmFwaHFsOiJcdXsxRjREQ30iLHByb3RvOiJcdXsxRjREQ30iLHZ1ZToiXHV7MUY0REN9IixzdmVsdGU6Ilx1ezFGNERDfSIsZGlmZjoiXHV7MUY0REN9IixwYXRjaDoiXHV7MUY0REN9Iix0dGY6Ilx1ezFGNTI0fSIsb3RmOiJcdXsxRjUyNH0iLHdvZmY6Ilx1ezFGNTI0fSIsd29mZjI6Ilx1ezFGNTI0fSIsZW90OiJcdXsxRjUyNH0ifTtmdW5jdGlvbiAkdShlKXtpZighZSlyZXR1cm4iXHV7MUY0QzR9IjtpZihlLnR5cGU9PT0iZGlyIilyZXR1cm4iXHV7MUY0QzF9Ijt2YXIgdD0oZS5uYW1lfHwiIikudG9Mb3dlckNhc2UoKTtpZih0PT09ImRvY2tlcmZpbGUiKXJldHVybiJcdXsxRjQzM30iO2lmKHQ9PT0ibWFrZWZpbGUiKXJldHVybiJcdXsxRjZFMH1cdUZFMEYiO2lmKHQ9PT0ibGljZW5zZSIpcmV0dXJuIlx1ezFGNERDfSI7aWYodD09PSJyZWFkbWUiKXJldHVybiJcdXsxRjRERH0iO3ZhciBuPXQubGFzdEluZGV4T2YoIi4iKTtpZihuPDB8fG49PT10Lmxlbmd0aC0xKXJldHVybiJcdXsxRjRDNH0iO3ZhciBpPXQuc2xpY2UobisxKTtyZXR1cm4gU2RbaV18fCJcdXsxRjRDNH0ifWZ1bmN0aW9uIE5uKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIiI7aWYoZTwxMDI0KXJldHVybiBlKyIgQiI7dmFyIHQ9ZS8xMDI0O2lmKHQ8MTAyNClyZXR1cm4odD49MTA/TWF0aC5yb3VuZCh0KTp0LnRvRml4ZWQoMSkpKyIgS0IiO3ZhciBuPXQvMTAyNDtpZihuPDEwMjQpcmV0dXJuKG4+PTEwP01hdGgucm91bmQobik6bi50b0ZpeGVkKDEpKSsiIE1CIjt2YXIgaT1uLzEwMjQ7cmV0dXJuKGk+PTEwP01hdGgucm91bmQoaSk6aS50b0ZpeGVkKDEpKSsiIEdCIn1mdW5jdGlvbiBJZChlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLnBhcnNlKGUpO3JldHVybiBpc05hTih0KT8iIjpuZXcgRGF0ZSh0KS50b0xvY2FsZVN0cmluZygpfWZ1bmN0aW9uIFh1KCl7aWYoci5maWxlRXhwbG9yZXJDd2QpcmV0dXJuIHIuZmlsZUV4cGxvcmVyQ3dkO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSYmZS5jd2QpcmV0dXJuIGUuY3dkfXJldHVybiBzbigpfWZ1bmN0aW9uIHF0KGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBpPWUuY3dkfHxYdSgpO2lmKCFpKXt0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2NjNFXHU3OTNBXHU3Njg0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9kaXY+JztyZXR1cm59ci5maWxlRXhwbG9yZXJDd2Q9aSxyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITAsci5hbGxGaWxlcz1bXSxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD0hMSxyLmZpbGVFeHBsb3JlclRvdGFsPTAsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiPjxkaXYgY2xhc3M9InRyZWUtbG9hZGluZyIgc3R5bGU9InBhZGRpbmc6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MC44MTI1cmVtOyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PC9kaXY+JyxuJiYobi50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09biYmKG4udmFsdWU9aSk6bi50ZXh0Q29udGVudD1pLG4udGl0bGU9aSk7dmFyIGE9Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQoaSkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2goYSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7aWYoIXUub2spdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkuIik7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbih1KXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITE7dmFyIG8scyxsO2lmKEFycmF5LmlzQXJyYXkodSk/KG89dSxzPSExLGw9dS5sZW5ndGgpOihvPXUmJnUuaXRlbXN8fFtdLHM9ISEodSYmdS50cnVuY2F0ZWQpLGw9dSYmdS50b3RhbHx8by5sZW5ndGgpLCFvfHxvLmxlbmd0aD09PTApe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTdBN0FcdTc2RUVcdTVGNTVcdTYyMTZcdTY1RTBcdTZDRDVcdThCQkZcdTk1RUVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmFsbEZpbGVzPW8sci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQ9cyxyLmZpbGVFeHBsb3JlclRvdGFsPWwsWnUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5maWxlRXhwbG9yZXJMb2FkaW5nPSExLHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTY4QzBcdTY3RTVcdThERUZcdTVGODRcdTYyMTZcdTY3NDNcdTk2NTBcdTMwMDI8L2Rpdj4nfSl9fWZ1bmN0aW9uIFp1KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKTtpZihlKXt2YXIgdD1yLmZpbGVFeHBsb3JlckN3ZHx8IiI7aWYodCl7dmFyIG49ci5maWxlU2VhcmNoUXVlcnksaT1yLmFsbEZpbGVzfHxbXSxhPWk7aWYobil7dmFyIHU9bi50b0xvd2VyQ2FzZSgpO2E9aS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIGwubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodSkhPT0tMX0pfWlmKGEubGVuZ3RoPT09MCl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPicrKG4/Ilx1NkNBMVx1NjcwOVx1NjI3RVx1NTIzMFx1NTMzOVx1OTE0RFx1NzY4NFx1NjU4N1x1NEVGNiI6Ilx1N0E3QVx1NzZFRVx1NUY1NSIpKyI8L2Rpdj4iO3JldHVybn12YXIgbz0iIjtpZighbiYmci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQpe3ZhciBzPWkubGVuZ3RoO289JzxkaXYgY2xhc3M9InRyZWUtdHJ1bmNhdGVkIiB0aXRsZT0iXHU1NDBFXHU3QUVGXHU2MzA5XHU1QjU3XHU2QkNEXHU1RThGXHU2NzAwXHU1OTFBXHU4RkQ0XHU1NkRFICcrcysnIFx1OTg3OSI+XHU2NjNFXHU3OTNBXHU1MjREICcrcysiIFx1OTg3OSAvIFx1NTE3MSAiK3IuZmlsZUV4cGxvcmVyVG90YWwrIiBcdTk4Nzk8L2Rpdj4ifWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+JythLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gZW8obCl9KS5qb2luKCIiKSsiPC9kaXY+IitvLHRvKCl9fX1mdW5jdGlvbiBlbyhlLHQpe3Q9dHx8MDt2YXIgbj1wKGUubmFtZSksaT1lLnR5cGU9PT0iZGlyIixhPSR1KGUpLHU9aT8iXHUyNUI4IjoiIixvPWk/IiI6IiBlbXB0eSIscz1lLmdpdFN0YXR1cyxsPVRkKHMpLGQ9IiI7cmV0dXJuIWkmJnR5cGVvZiBlLnNpemU9PSJudW1iZXIiJiYoZD0nPHNwYW4gY2xhc3M9InRyZWUtbWV0YSIgdGl0bGU9Ilx1NTkyN1x1NUMwRlx1RkYxQScrcChObihlLnNpemUpKSsoZS5tdGltZT9gClx1NEZFRVx1NjUzOVx1NjVGNlx1OTVGNFx1RkYxQWArcChJZChlLm10aW1lKSk6IiIpKyciPicrcChObihlLnNpemUpKSsiPC9zcGFuPiIpLCc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIGRhdGEtcGF0aD0iJytwKGUucGF0aCkrJyIgZGF0YS10eXBlPSInK3AoZS50eXBlKSsnIiBkYXRhLW5hbWU9IicrcChlLm5hbWUpKyciIHRhYmluZGV4PSIwIj48c3BhbiBjbGFzcz0idHJlZS10b2dnbGUnK28rJyI+Jyt1Kyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtaWNvbiI+JythKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+JytuKyI8L3NwYW4+IitkKyhsPyc8c3BhbiBjbGFzcz0iZ2l0LXN0YXR1cy1iYWRnZSAnK2wuY2xhc3MrJyIgdGl0bGU9IicrbC50aXRsZSsnIj4nK2wudGV4dCsiPC9zcGFuPiI6IiIpKyI8L2Rpdj4ifWZ1bmN0aW9uIFRkKGUpe3JldHVybiBlP2Uuc3RhZ2VkPT09ImFkZGVkIj97dGV4dDoiQSIsY2xhc3M6ImdpdC1hZGRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NjVCMFx1NTg5RVx1RkYwOSJ9OmUuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC1tb2RpZmllZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LWRlbGV0ZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnN0YWdlZD09PSJyZW5hbWVkIj97dGV4dDoiUiIsY2xhc3M6ImdpdC1yZW5hbWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU5MUNEXHU1NDdEXHU1NDBEXHVGRjA5In06ZS51bnN0YWdlZD09PSJtb2RpZmllZCI/e3RleHQ6Ik0iLGNsYXNzOiJnaXQtdW5zdGFnZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTRGRUVcdTY1MzlcdUZGMDkifTplLnVuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LXVuc3RhZ2VkLWRlbGV0ZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnVudHJhY2tlZD97dGV4dDoiPyIsY2xhc3M6ImdpdC11bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTpudWxsOm51bGx9ZnVuY3Rpb24gdG8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS10cmVlIik7aWYoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIudHJlZS1pdGVtW2RhdGEtdHlwZT0nZGlyJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe0xkKGkpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdmaWxlJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPWZ1bmN0aW9uKCl7ZWkoaS5kYXRhc2V0LnBhdGgpfTtpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhKSxpLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixhKX0pO3ZhciB0PW51bGwsbj0hMTtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxubyhhLmNsaWVudFgsYS5jbGllbnRZLGkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXtuPSExLHQ9c2V0VGltZW91dChmdW5jdGlvbigpe249ITA7dmFyIHU9YS50b3VjaGVzJiZhLnRvdWNoZXNbMF07bm8odT91LmNsaWVudFg6MCx1P3UuY2xpZW50WTowLGkpfSw1MDApfSx7cGFzc2l2ZTohMH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSl9KX19ZnVuY3Rpb24gTGQoZSl7dmFyIHQ9ZS5kYXRhc2V0LnBhdGgsbj1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLXRvZ2dsZSIpLGk9ZS5uZXh0RWxlbWVudFNpYmxpbmc7aWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoInRyZWUtY2hpbGRyZW4iKSl7dmFyIGE9aS5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTtpLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLCFhKTt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTt1JiYodS50ZXh0Q29udGVudD1hPyJcdXsxRjRDMX0iOiJcdXsxRjRDMn0iKTtyZXR1cm59biYmbi5jbGFzc0xpc3QuYWRkKCJvcGVuIik7dmFyIG89ZS5xdWVyeVNlbGVjdG9yKCIudHJlZS1pY29uIik7byYmKG8udGV4dENvbnRlbnQ9Ilx1ezFGNEMyfSIpO3ZhciBzPSIvYXBpL2RpcmVjdG9yeT9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyImZ2l0U3RhdHVzPXRydWUiO2ZldGNoKHMse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obCl7dmFyIGQ7QXJyYXkuaXNBcnJheShsKT9kPWw6ZD1sJiZsLml0ZW1zfHxbXTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTmFtZT0idHJlZS1jaGlsZHJlbiBvcGVuIiwhZHx8ZC5sZW5ndGg9PT0wP2YuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6ZGVmYXVsdDsiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZSBlbXB0eSI+XHUyNUI4PC9zcGFuPjxzcGFuIGNsYXNzPSJ0cmVlLW5hbWUiPlx1RkYwOFx1N0E3QVx1NzZFRVx1NUY1NVx1RkYwOTwvc3Bhbj48L2Rpdj4nOmYuaW5uZXJIVE1MPWQubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBlbyhjKX0pLmpvaW4oIiIpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZixlLm5leHRTaWJsaW5nKSx0bygpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBNZCgpe3ZhciBlPVh1KCk7aWYoZSl7dmFyIHQ9ZS5yZXBsYWNlKC9cLyskLywiIikucmVwbGFjZSgvXC9bXlwvXSskLywiIik7dHx8KHQ9Ii8iKSx0IT09ZSYmcXQoe2N3ZDp0fSl9fWZ1bmN0aW9uIHNhKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighdClyZXR1cm4hMTt2YXIgbj10LnZhbHVlfHwiIixpPW4mJiFuLmVuZHNXaXRoKCIgIikmJiFuLmVuZHNXaXRoKGAKYCk/IiAiOiIiO3QudmFsdWU9bitpK2UsdC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpO3RyeXt0LmZvY3VzKCksdC5zZXRTZWxlY3Rpb25SYW5nZSh0LnZhbHVlLmxlbmd0aCx0LnZhbHVlLmxlbmd0aCl9Y2F0Y2h7fXJldHVybiEwfWZ1bmN0aW9uIFpyKGUpe2lmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KXJldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0KCl9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQoKSk7ZnVuY3Rpb24gdCgpe3RyeXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO24udmFsdWU9ZSxuLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbi5zdHlsZS5sZWZ0PSItOTk5OXB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLG4uc2VsZWN0KCk7dmFyIGk9ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSxpfWNhdGNoe3JldHVybiExfX19ZnVuY3Rpb24gRnQoZSl7aWYodHlwZW9mIHdpbmRvdy5zaG93VG9hc3Q9PSJmdW5jdGlvbiIpe3dpbmRvdy5zaG93VG9hc3QoZSk7cmV0dXJufXZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLW1pbmktdG9hc3QiLHQudGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5hZGQoInNob3ciKX0sMTApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmUoKX0sMjIwKX0sMTYwMCl9ZnVuY3Rpb24gam4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1jb250ZXh0LW1lbnUiKTtlJiZlLnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixqbiwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixqbiwhMCl9ZnVuY3Rpb24gbm8oZSx0LG4pe2puKCk7dmFyIGk9bi5kYXRhc2V0LnBhdGh8fCIiLGE9bi5kYXRhc2V0LnR5cGV8fCJmaWxlIix1PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIixvPWk7dSYmaS5pbmRleE9mKHUpPT09MCYmKG89aS5zbGljZSh1Lmxlbmd0aCkucmVwbGFjZSgvXlwvKy8sIiIpfHwiLiIpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuaWQ9ImZpbGUtY29udGV4dC1tZW51IixzLmNsYXNzTmFtZT0iZmlsZS1jb250ZXh0LW1lbnUiO3ZhciBsPVtdO2E9PT0iZmlsZSI/bC5wdXNoKHtsYWJlbDoiXHU2MjUzXHU1RjAwXHU5ODg0XHU4OUM4IixpY29uOiJcdXsxRjQ0MX0iLHJ1bjpmdW5jdGlvbigpe2VpKGkpfX0pOmwucHVzaCh7bGFiZWw6Ilx1OEZEQlx1NTE2NVx1NkI2NFx1NzZFRVx1NUY1NSIsaWNvbjoiXHV7MUY0QzJ9IixydW46ZnVuY3Rpb24oKXtxdCh7Y3dkOml9KX19KSxsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTVCOENcdTY1NzRcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7WnIoaSkudGhlbihmdW5jdGlvbigpe0Z0KCJcdTVERjJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiKX0pfX0pLG8mJm8hPT1pJiZsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7WnIobykudGhlbihmdW5jdGlvbigpe0Z0KCJcdTVERjJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiKX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1N0M5OFx1OEQzNFx1OERFRlx1NUY4NFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIsaWNvbjoiXHUyNzBGXHVGRTBGIixydW46ZnVuY3Rpb24oKXtzYShpKSYmRnQoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGE9PT0iZmlsZSImJmwucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNiIsaWNvbjoiXHUyQjA3IixydW46ZnVuY3Rpb24oKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Zy5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChpKSxnLnJlbD0ibm9vcGVuZXIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZyksZy5jbGljaygpLGcucmVtb3ZlKCl9fSkscy5pbm5lckhUTUw9bC5tYXAoZnVuY3Rpb24oZyxtKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmaWxlLWNvbnRleHQtbWVudS1pdGVtIiBkYXRhLWlkeD0iJyttKyciPjxzcGFuIGNsYXNzPSJjdHgtaWNvbiI+JytnLmljb24rJzwvc3Bhbj48c3BhbiBjbGFzcz0iY3R4LWxhYmVsIj4nK3AoZy5sYWJlbCkrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTt2YXIgZD13aW5kb3cuaW5uZXJXaWR0aCxmPXdpbmRvdy5pbm5lckhlaWdodCxjPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1NYXRoLm1pbihlLGQtYy53aWR0aC04KSxoPU1hdGgubWluKHQsZi1jLmhlaWdodC04KTtzLnN0eWxlLmxlZnQ9TWF0aC5tYXgoOCx2KSsicHgiLHMuc3R5bGUudG9wPU1hdGgubWF4KDgsaCkrInB4IixzLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLWNvbnRleHQtbWVudS1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihnKXtnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihtKXttLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB5PXBhcnNlSW50KGcuZGF0YXNldC5pZHgsMTApO2puKCksbFt5XSYmbFt5XS5ydW4oKX0pfSksc2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixqbiwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixqbiwhMCl9LDApfXZhciBIPW51bGw7ZnVuY3Rpb24gZWkoZSl7dmFyIHQ9SCYmSC5vdmVybGF5O2lmKHQpe0gucGF0aD1lLEguZWRpdGluZz0hMSxILmRpcnR5PSExO3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpO28mJihvLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PicrdnQoIiIsImZpbGUtcHJldmlldy1wYXRoIikrIjwvZGl2PiIpO3ZhciBzPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7cyYmKHMuaW5uZXJIVE1MPSIiKTt2YXIgbD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO0l1KGwsIiIpO3ZhciBkPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7ZCYmKGQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+Jyl9ZWxzZXt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctb3ZlcmxheSIsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1tb2RhbCIgdGFiaW5kZXg9Ii0xIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdGl0bGUiPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctaWNvbiI+XHV7MUY0QzR9PC9zcGFuPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLWJsb2NrIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1yb3ciPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctZmlsZW5hbWUiPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvc3Bhbj48L2Rpdj4nK3Z0KCIiLCJmaWxlLXByZXZpZXctcGF0aCIpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdG9vbGJhciI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWNsb3NlIiB0aXRsZT0iXHU1MTczXHU5NUVEIChFc2MpIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPicrTWUoIngiLHtzaXplOjE4fSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1jbG9zZSIpLGk9ZnVuY3Rpb24oKXtpZihIJiZILmRpcnR5JiZ0eXBlb2YgZG49PSJmdW5jdGlvbiIpe2RuKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTUxNzNcdTk1RURcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbihjKXtjJiZhKCl9KTtyZXR1cm59YSgpfSxhPWZ1bmN0aW9uKCl7dC5yZW1vdmUoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix1KSxIPW51bGx9O24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGMpe2MudGFyZ2V0PT09dCYmaSgpfSk7dmFyIHU9ZnVuY3Rpb24oYyl7aWYoKGMua2V5PT09InMifHxjLmtleT09PSJTIikmJihjLmN0cmxLZXl8fGMubWV0YUtleSkmJkgmJkguZWRpdGluZyl7Yy5wcmV2ZW50RGVmYXVsdCgpLHNvKCk7cmV0dXJufWlmKGMua2V5PT09IkVzY2FwZSIpe2lmKEgmJkguZWRpdGluZyl7Yy5wcmV2ZW50RGVmYXVsdCgpLG9vKCk7cmV0dXJufWkoKTtyZXR1cm59SCYmKGMudGFyZ2V0JiYoYy50YXJnZXQudGFnTmFtZT09PSJJTlBVVCJ8fGMudGFyZ2V0LnRhZ05hbWU9PT0iVEVYVEFSRUEiKXx8SC5lZGl0aW5nfHwoYy5rZXk9PT0iQXJyb3dMZWZ0Ij8oYy5wcmV2ZW50RGVmYXVsdCgpLHJvKC0xKSk6Yy5rZXk9PT0iQXJyb3dSaWdodCImJihjLnByZXZlbnREZWZhdWx0KCkscm8oMSkpKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLEg9e292ZXJsYXk6dCxjbG9zZTppLHBhdGg6ZSxkYXRhOm51bGwsZWRpdGluZzohMSxkaXJ0eTohMX19dmFyIGY9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXBhdGgiKTtJdShmLGUpLGZldGNoKCIvYXBpL2ZpbGUtcHJldmlldz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gYy5qc29uKCkudGhlbihmdW5jdGlvbih2KXtyZXR1cm57b2s6Yy5vayxzdGF0dXM6Yy5zdGF0dXMsZGF0YTp2fX0pfSkudGhlbihmdW5jdGlvbihjKXt2YXIgdj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2lmKCFjLm9rfHxjLmRhdGEmJmMuZGF0YS5lcnJvcil7dmFyIGg9Yy5kYXRhJiZjLmRhdGEuZXJyb3J8fCJcdTUyQTBcdThGN0RcdTU5MzFcdThEMjUiO2Muc3RhdHVzPT09NDEzJiZjLmRhdGEmJmMuZGF0YS5zaXplJiYoaCs9Ilx1RkYwOFx1NjU4N1x1NEVGNlx1NTkyN1x1NUMwRlx1RkYxQSIrTm4oYy5kYXRhLnNpemUpKyJcdUZGMDkiKSx2LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWVycm9yIj48c3BhbiBjbGFzcz0icHJldmlldy1lcnJvci1pY29uIj5cdTI2QTA8L3NwYW4+PHNwYW4+JytwKGgpKyI8L3NwYW4+PC9kaXY+IixjLnN0YXR1cz09PTQxMyYmbGEodCx7a2luZDoiYmluYXJ5IixwYXRoOmUsbmFtZTplLnNwbGl0KCIvIikucG9wKCl8fGUsZXh0OiIiLHNpemU6Yy5kYXRhJiZjLmRhdGEuc2l6ZXx8MH0pO3JldHVybn1ILmRhdGE9Yy5kYXRhLGlvKHQsYy5kYXRhKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGM9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtjLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWVycm9yIj48c3BhbiBjbGFzcz0icHJldmlldy1lcnJvci1pY29uIj5cdTI2QTA8L3NwYW4+PHNwYW4+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHU1OTMxXHU4RDI1PC9zcGFuPjwvZGl2Pid9KX1mdW5jdGlvbiBybyhlKXtpZihIKXt2YXIgdD0oci5hbGxGaWxlc3x8W10pLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gcy50eXBlPT09ImZpbGUifSk7aWYodC5sZW5ndGgpe2Zvcih2YXIgbj1ILnBhdGgsaT0tMSxhPTA7YTx0Lmxlbmd0aDthKyspaWYodFthXS5wYXRoPT09bil7aT1hO2JyZWFrfWlmKCEoaTwwKSl7dmFyIHU9KGkrZSt0Lmxlbmd0aCkldC5sZW5ndGgsbz10W3VdLnBhdGg7byYmbyE9PW4mJmVpKG8pfX19fWZ1bmN0aW9uIGlvKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWZpbGVuYW1lIik7biYmKG4udGV4dENvbnRlbnQ9dC5uYW1lKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctaWNvbiIpO2kmJihpLnRleHRDb250ZW50PSR1KHtuYW1lOnQubmFtZSx0eXBlOiJmaWxlIn0pKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdGl0bGUiKSx1PWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1sYW5nIik7dSYmdS5yZW1vdmUoKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7by5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1sYW5nIjt2YXIgcz17aW1hZ2U6Ilx1NTZGRVx1NzI0NyIscGRmOiJQREYiLHZpZGVvOiJcdTg5QzZcdTk4OTEiLGF1ZGlvOiJcdTk3RjNcdTk4OTEiLGJpbmFyeToiXHU0RThDXHU4RkRCXHU1MjM2In07dC5raW5kPT09InRleHQiP28udGV4dENvbnRlbnQ9dC5sYW5nfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fCJ0ZXh0IjpvLnRleHRDb250ZW50PXNbdC5raW5kXXx8KHQuZXh0fHwiIikucmVwbGFjZSgiLiIsIiIpfHx0LmtpbmQsYSYmYS5hcHBlbmRDaGlsZChvKSxsYShlLHQpO3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7bC5pbm5lckhUTUw9IiIsbC5jbGFzc0xpc3QucmVtb3ZlKCJraW5kLXRleHQiLCJraW5kLWltYWdlIiwia2luZC1wZGYiLCJraW5kLXZpZGVvIiwia2luZC1hdWRpbyIsImtpbmQtYmluYXJ5IiksbC5jbGFzc0xpc3QuYWRkKCJraW5kLSIrKHQua2luZHx8InRleHQiKSksdC5raW5kPT09ImltYWdlIj9PZChsLHQpOnQua2luZD09PSJwZGYiP1BkKGwsdCk6dC5raW5kPT09InZpZGVvIj9IZChsLHQpOnQua2luZD09PSJhdWRpbyI/X2QobCx0KTp0LmtpbmQ9PT0iYmluYXJ5Ij9OZChsLHQpOnQubGFuZz09PSJtYXJrZG93biJ8fC9cLihtZHxtYXJrZG93bnxtZHgpJC9pLnRlc3QodC5uYW1lfHwiIik/bC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im1hcmtkb3duLXByZXZpZXciPicremQodC5jb250ZW50fHwiIikrIjwvZGl2PiI6cWQobCx0KX1mdW5jdGlvbiBxZChlLHQpe3ZhciBuPWNvKHQuY29udGVudHx8IiIsdC5sYW5nKSxpPW4uc3BsaXQoYApgKSxhPWkubWFwKGZ1bmN0aW9uKHUsbyl7cmV0dXJuIG8rMX0pO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctd3JhcHBlciI+PGRpdiBjbGFzcz0iY29kZS1wcmV2aWV3LWxpbmVzIj4nK2Euam9pbihgCmApKyc8L2Rpdj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctY29udGVudCI+PHByZT4nK2kuam9pbihgCmApKyI8L3ByZT48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIE9kKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJpbWFnZS1wcmV2aWV3LXdyYXBwZXIiPjxpbWcgY2xhc3M9ImltYWdlLXByZXZpZXctaW1nIiBzcmM9IicrbisnIiBhbHQ9IicrcCh0Lm5hbWUpKyciIC8+PC9kaXY+Jzt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1wcmV2aWV3LWltZyIpO2lmKGkpe3ZhciBhPSExO2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7YT0hYSxpLmNsYXNzTGlzdC50b2dnbGUoInpvb21lZCIsYSl9KX19ZnVuY3Rpb24gUGQoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxpZnJhbWUgY2xhc3M9InBkZi1wcmV2aWV3LWZyYW1lIiBzcmM9IicrbisnIiB0aXRsZT0iJytwKHQubmFtZSkrJyI+PC9pZnJhbWU+J31mdW5jdGlvbiBIZChlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy13cmFwcGVyIj48dmlkZW8gY2xhc3M9Im1lZGlhLXByZXZpZXctdmlkZW8iIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzcmM9IicrbisnIj5cdTYwQThcdTc2ODRcdTZENEZcdTg5QzhcdTU2NjhcdTRFMERcdTY1MkZcdTYzMDEgdmlkZW8gXHU2ODA3XHU3QjdFXHUzMDAyPC92aWRlbz48ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LW1ldGEiPicrcChObih0LnNpemUpKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBfZChlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy13cmFwcGVyIGF1ZGlvIj48ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LWljb24iPlx1ezFGM0I1fTwvZGl2PjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxhdWRpbyBjbGFzcz0ibWVkaWEtcHJldmlldy1hdWRpbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSBhdWRpbyBcdTY4MDdcdTdCN0VcdTMwMDI8L2F1ZGlvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKE5uKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIE5kKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWNhcmQiPjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWljb24iPlx1ezFGNEU2fTwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW5hbWUiPicrcCh0Lm5hbWUpKyc8L2Rpdj48ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1tZXRhIj48c3Bhbj4nK3AoKHQuZXh0fHwiIikucmVwbGFjZSgvXlwuLywiIil8fCJcdTY3MkFcdTc3RTVcdTY4M0NcdTVGMEYiKSsiPC9zcGFuPjxzcGFuPlx4Qjc8L3NwYW4+PHNwYW4+IitwKE5uKHQuc2l6ZSkpKyI8L3NwYW4+PC9kaXY+Iit2dCh0LnBhdGgsImJpbmFyeS1wcmV2aWV3LXBhdGgiKSsnPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctYWN0aW9ucyI+PGEgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWJ0biIgaHJlZj0iJytuKyciIGRvd25sb2FkPSInK3AodC5uYW1lKSsnIj5cdTRFMEJcdThGN0RcdTY1ODdcdTRFRjY8L2E+PGJ1dHRvbiBjbGFzcz0iYmluYXJ5LXByZXZpZXctYnRuIiB0eXBlPSJidXR0b24iIGRhdGEtYWN0aW9uPSJ2aWV3LWNhdCI+XHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU2N0U1XHU3NzBCPC9idXR0b24+PC9kaXY+PC9kaXY+JyxWdChlKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFjdGlvbj0idmlldy1jYXQiXScpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7c2EoJ2NhdCAtLSAiJyt0LnBhdGgrJyInKSYmRnQoIlx1NTQ3RFx1NEVFNFx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfSl9ZnVuY3Rpb24gbGEoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdG9vbGJhciIpO2lmKG4pe2lmKG4uaW5uZXJIVE1MPSIiLG4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLEgmJkguZWRpdGluZyl7bi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksZHIoZSx0KTtyZXR1cm59dmFyIGk9W107dC5raW5kPT09InRleHQiJiZpLnB1c2goe2xhYmVsOiJcdTdGMTZcdThGOTFcdTY1ODdcdTRFRjYgKEUpIixpY29uOk1lKCJlZGl0IikscHJpbWFyeTohMCxhY3Rpb246ZnVuY3Rpb24oKXtqZCgpfX0pLGkucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIsaWNvbjpNZSgiY2xpcGJvYXJkIiksYWN0aW9uOmZ1bmN0aW9uKCl7WnIodC5wYXRoKS50aGVuKGZ1bmN0aW9uKCl7RnQoIlx1NURGMlx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIpfSl9fSksaS5wdXNoKHtsYWJlbDoiXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2IixpY29uOk1lKCJzZW5kLXRvLWlucHV0IiksYWN0aW9uOmZ1bmN0aW9uKCl7c2EodC5wYXRoKSYmRnQoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGkucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RCIsaWNvbjpNZSgiZG93bmxvYWQiKSxhY3Rpb246ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YS5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpLGEuZG93bmxvYWQ9dC5uYW1lfHwiIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuY2xpY2soKSxhLnJlbW92ZSgpfX0pLHQua2luZD09PSJ0ZXh0IiYmKGkucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NTE2OFx1OTBFOFx1NTE4NVx1NUJCOSIsaWNvbjpNZSgiY29weSIpLGFjdGlvbjpmdW5jdGlvbigpe1pyKHQuY29udGVudHx8IiIpLnRoZW4oZnVuY3Rpb24oKXtGdCgiXHU1REYyXHU1OTBEXHU1MjM2XHU1MTg1XHU1QkI5Iil9KX19KSxpLnB1c2goe2xhYmVsOiJcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYzNjJcdTg4NEMiLGljb246TWUoIndyYXAtdGV4dCIpLHRvZ2dsZUNsYXNzOiJ0b29sYmFyLWFjdGl2ZSIsZ2V0SW5pdGlhbDpmdW5jdGlvbigpe3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1jb250ZW50IHByZSIpO3JldHVybiBhJiZhLmNsYXNzTGlzdC5jb250YWlucygid3JhcCIpfSxhY3Rpb246ZnVuY3Rpb24oYSl7dmFyIHU9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIik7dSYmKHUuY2xhc3NMaXN0LnRvZ2dsZSgid3JhcCIpLGEuY2xhc3NMaXN0LnRvZ2dsZSgidG9vbGJhci1hY3RpdmUiLHUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3cmFwIikpKX19KSxpLnB1c2goe2tpbmQ6Imdyb3VwIixjbGFzc05hbWU6InRvb2xiYXItZ3JvdXAtZm9udHNpemUiLGNoaWxkcmVuOlt7bGFiZWw6Ilx1N0YyOVx1NUMwRlx1NUI1N1x1NTNGNyIsaWNvbjpNZSgibWludXMiKSxhY3Rpb246ZnVuY3Rpb24oKXtsbyhlLC0xKX19LHtraW5kOiJsYWJlbCIsaWNvbjpNZSgidHlwZSIpLGxhYmVsOiJcdTVCNTdcdTUzRjcifSx7bGFiZWw6Ilx1NjUzRVx1NTkyN1x1NUI1N1x1NTNGNyIsaWNvbjpNZSgicGx1cyIpLGFjdGlvbjpmdW5jdGlvbigpe2xvKGUsMSl9fV19KSksYW8obixpLGUpfX1mdW5jdGlvbiBhbyhlLHQsbil7dC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2lmKGkua2luZD09PSJncm91cCIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1ncm91cCIrKGkuY2xhc3NOYW1lPyIgIitpLmNsYXNzTmFtZToiIiksaS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKHUua2luZD09PSJsYWJlbCIpe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtvLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXBsYWJlbCIsby50aXRsZT11LmxhYmVsfHwiIixvLmlubmVySFRNTD11Lmljb258fCIiLGEuYXBwZW5kQ2hpbGQobyk7cmV0dXJufWEuYXBwZW5kQ2hpbGQodW8odSkpfSksZS5hcHBlbmRDaGlsZChhKTtyZXR1cm59ZS5hcHBlbmRDaGlsZCh1byhpKSl9KX1mdW5jdGlvbiB1byhlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtyZXR1cm4gdC50eXBlPSJidXR0b24iLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1idG4iLGUucHJpbWFyeSYmdC5jbGFzc0xpc3QuYWRkKCJwcmltYXJ5IiksZS5kYW5nZXImJnQuY2xhc3NMaXN0LmFkZCgiZGFuZ2VyIiksdC50aXRsZT1lLmxhYmVsLHQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlLmxhYmVsKSx0LmlubmVySFRNTD0nPHNwYW4gY2xhc3M9InRvb2xiYXItaWNvbiI+JysoZS5pY29ufHwiIikrIjwvc3Bhbj4iKyhlLnRleHQ/JzxzcGFuIGNsYXNzPSJ0b29sYmFyLXRleHQiPicrcChlLnRleHQpKyI8L3NwYW4+IjoiIiksZS5nZXRJbml0aWFsJiZlLmdldEluaXRpYWwoKSYmdC5jbGFzc0xpc3QuYWRkKCJ0b29sYmFyLWFjdGl2ZSIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG4pe24uc3RvcFByb3BhZ2F0aW9uKCksdHlwZW9mIGUuYWN0aW9uPT0iZnVuY3Rpb24iJiZlLmFjdGlvbih0KX0pLHR9ZnVuY3Rpb24gZHIoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdG9vbGJhciIpO2lmKG4pe24uaW5uZXJIVE1MPSIiO3ZhciBpPUgmJkguc2F2aW5nLGE9W3tsYWJlbDoiXHU0RkREXHU1QjU4IChDdHJsK1MpIixpY29uOk1lKCJzYXZlIiksdGV4dDoiXHU0RkREXHU1QjU4IixwcmltYXJ5OiEwLGFjdGlvbjpmdW5jdGlvbigpe3NvKCl9fSx7bGFiZWw6Ilx1NjRBNFx1OTUwMFx1NjUzOVx1NTJBOCIsaWNvbjpNZSgicm90YXRlLWNjdyIpLGFjdGlvbjpmdW5jdGlvbigpe1JkKCl9fSx7bGFiZWw6Ilx1OTAwMFx1NTFGQVx1N0YxNlx1OEY5MSAoRXNjKSIsaWNvbjpNZSgieCIpLGFjdGlvbjpmdW5jdGlvbigpe29vKCl9fV07YW8obixhLGUpLGkmJm4ucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtcHJldmlldy10b29sYmFyLWJ0biIpLmZvckVhY2goZnVuY3Rpb24odSl7dS5kaXNhYmxlZD0hMH0pfX1mdW5jdGlvbiBqZCgpe2lmKCEoIUh8fCFILmRhdGEpKXt2YXIgZT1ILmRhdGE7aWYoZS5raW5kPT09InRleHQiKXtILmVkaXRpbmc9ITAsSC5kaXJ0eT0hMSxILm9yaWdpbmFsQ29udGVudD1lLmNvbnRlbnR8fCIiO3ZhciB0PUgub3ZlcmxheSxuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYobil7bi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksbi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtZWRpdG9yLXdyYXBwZXIiPjx0ZXh0YXJlYSBjbGFzcz0iY29kZS1lZGl0b3ItdGV4dGFyZWEiIHNwZWxsY2hlY2s9ImZhbHNlIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgd3JhcD0ib2ZmIj48L3RleHRhcmVhPjwvZGl2Pic7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTtpJiYoaS52YWx1ZT1lLmNvbnRlbnR8fCIiLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7dmFyIGE9aS52YWx1ZSE9PShILm9yaWdpbmFsQ29udGVudHx8IiIpO2EhPT1ILmRpcnR5JiYoSC5kaXJ0eT1hLGNyKCkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihhKXtpZihhLmtleT09PSJUYWIiKXthLnByZXZlbnREZWZhdWx0KCk7dmFyIHU9aS5zZWxlY3Rpb25TdGFydCxvPWkuc2VsZWN0aW9uRW5kLHM9IiAgIjtpLnZhbHVlPWkudmFsdWUuc2xpY2UoMCx1KStzK2kudmFsdWUuc2xpY2UobyksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD11K3MubGVuZ3RoLGkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpfX0pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmZvY3VzKCksaS5zZXRTZWxlY3Rpb25SYW5nZSgwLDApLGkuc2Nyb2xsVG9wPTB9LDMwKSksbGEodCxlKSxjcigpfX19fWZ1bmN0aW9uIG9vKCl7aWYoISghSHx8IUguZWRpdGluZykpe3ZhciBlPWZ1bmN0aW9uKCl7SC5lZGl0aW5nPSExLEguZGlydHk9ITE7dmFyIHQ9SC5vdmVybGF5LG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSxpbyh0LEguZGF0YSksY3IoKX07aWYoSC5kaXJ0eSYmdHlwZW9mIGRuPT0iZnVuY3Rpb24iKXtkbih7dHlwZToid2FybmluZyIsdGl0bGU6Ilx1NjUzRVx1NUYwM1x1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NEZFRVx1NjUzOVx1RkYxRiIsbWVzc2FnZToiXHU1RjUzXHU1MjREXHU2NTg3XHU0RUY2XHU2NzA5XHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU2NTM5XHU1MkE4XHVGRjBDXHU5MDAwXHU1MUZBXHU3RjE2XHU4RjkxXHU1NDBFXHU0RjFBXHU0RTIyXHU1OTMxXHUzMDAyIixidXR0b25zOlt7bGFiZWw6Ilx1N0VFN1x1N0VFRFx1N0YxNlx1OEY5MSIsdmFsdWU6ITEsa2luZDoiZ2hvc3QifSx7bGFiZWw6Ilx1NjUzRVx1NUYwM1x1NEZFRVx1NjUzOSIsdmFsdWU6ITAsa2luZDoiZGFuZ2VyIixhdXRvZm9jdXM6ITB9XSxjYW5jZWxWYWx1ZTohMX0pLnRoZW4oZnVuY3Rpb24odCl7dCYmZSgpfSk7cmV0dXJufWUoKX19ZnVuY3Rpb24gUmQoKXtpZighKCFIfHwhSC5lZGl0aW5nKSl7dmFyIGU9SC5vdmVybGF5LHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTt0JiYodC52YWx1ZT1ILm9yaWdpbmFsQ29udGVudHx8IiIsSC5kaXJ0eT0hMSxjcigpLHQuZm9jdXMoKSl9fWZ1bmN0aW9uIHNvKCl7aWYoISghSHx8IUguZWRpdGluZykmJiFILnNhdmluZyl7dmFyIGU9SC5vdmVybGF5LHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTtpZih0KXt2YXIgbj10LnZhbHVlO2lmKG49PT0oSC5vcmlnaW5hbENvbnRlbnR8fCIiKSl7RnQoIlx1NkNBMVx1NjcwOVx1NjUzOVx1NTJBOCIpO3JldHVybn1ILnNhdmluZz0hMCxkcihlLEguZGF0YSksZmV0Y2goIi9hcGkvZmlsZS13cml0ZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3BhdGg6SC5wYXRoLGNvbnRlbnQ6bn0pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCkudGhlbihmdW5jdGlvbihhKXtyZXR1cm57b2s6aS5vayxzdGF0dXM6aS5zdGF0dXMsZGF0YTphfX0pfSkudGhlbihmdW5jdGlvbihpKXtpZihILnNhdmluZz0hMSwhaS5va3x8aS5kYXRhJiZpLmRhdGEuZXJyb3Ipe3ZhciBhPWkuZGF0YSYmaS5kYXRhLmVycm9yfHwiXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1ICgiK2kuc3RhdHVzKyIpIjtGdChhKSxkcihlLEguZGF0YSk7cmV0dXJufWlmKEguZGF0YS5jb250ZW50PW4sSC5kYXRhLnNpemU9aS5kYXRhJiZpLmRhdGEuc2l6ZXx8bi5sZW5ndGgsSC5vcmlnaW5hbENvbnRlbnQ9bixILmRpcnR5PSExLEZ0KCJcdTVERjJcdTRGRERcdTVCNTgiKSxjcigpLGRyKGUsSC5kYXRhKSx0eXBlb2YgcXQ9PSJmdW5jdGlvbiIpdHJ5e3F0KCl9Y2F0Y2h7fX0pLmNhdGNoKGZ1bmN0aW9uKGkpe0guc2F2aW5nPSExLEZ0KCJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdUZGMUEiKyhpJiZpLm1lc3NhZ2U/aS5tZXNzYWdlOiJcdTdGNTFcdTdFRENcdTk1MTlcdThCRUYiKSksZHIoZSxILmRhdGEpfSl9fX1mdW5jdGlvbiBjcigpe2lmKEgpe3ZhciBlPUgub3ZlcmxheTtpZihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctbmFtZS1yb3ciKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZGlydHkiKTtpZihILmRpcnR5KXtpZighbil7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2kuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctZGlydHkiLGkudGl0bGU9Ilx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NEZFRVx1NjUzOSIsaS50ZXh0Q29udGVudD0iXHUyNUNGIFx1NjcyQVx1NEZERFx1NUI1OCIsdC5hcHBlbmRDaGlsZChpKX19ZWxzZSBuJiZuLnJlbW92ZSgpfX19fWZ1bmN0aW9uIGxvKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIiksaT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctbGluZXMiKTtpZihuKXt2YXIgYT1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobikuZm9udFNpemUpfHwxMyx1PU1hdGgubWF4KDEwLE1hdGgubWluKDIyLGErdCkpO24uc3R5bGUuZm9udFNpemU9dSsicHgiLGkmJihpLnN0eWxlLmZvbnRTaXplPXUrInB4Iil9fWZ1bmN0aW9uIGNvKGUsdCl7dmFyIG49ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksaT1XZCgpO2lmKCFpKXJldHVybiBuO3ZhciBhPVtdO2Zvcih2YXIgdSBpbiBpKXt2YXIgbz1pW3VdO28mJm8ucGF0dGVybiYmYS5wdXNoKHtwYXR0ZXJuOm8ucGF0dGVybixjbHM6by5jbHMscHJpb3JpdHk6by5wcmlvcml0eXx8NX0pfWEuc29ydChmdW5jdGlvbihkLGYpe3JldHVybiBmLnByaW9yaXR5LWQucHJpb3JpdHl9KTt2YXIgcz1hLm1hcChmdW5jdGlvbihkKXtyZXR1cm4iKCIrZC5wYXR0ZXJuLnNvdXJjZSsiKSJ9KSxsPW5ldyBSZWdFeHAocy5qb2luKCJ8IiksImdtIik7cmV0dXJuIG4ucmVwbGFjZShsLGZ1bmN0aW9uKGQpe2Zvcih2YXIgZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgYz1hW2ZdLHY9bmV3IFJlZ0V4cCgiXiIrYy5wYXR0ZXJuLnNvdXJjZSsiJCIsImdtIik7aWYodi50ZXN0KGQpKXJldHVybic8c3BhbiBjbGFzcz0iJytjLmNscysnIj4nK2QrIjwvc3Bhbj4ifXJldHVybiBkfSl9ZnVuY3Rpb24gV2QoKXtyZXR1cm57Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfCNbXlxuXSoveSxjbHM6InN5bnRheC1jb21tZW50Iixwcmlvcml0eToxfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFwuKSoifCcoPzpbXidcXF18XFwuKSonfGAoPzpbXmBcXF18XFwuKSpgL3ksY2xzOiJzeW50YXgtc3RyaW5nIixwcmlvcml0eToyfSxrZXl3b3JkOntwYXR0ZXJuOi9cYig/OmFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVidWdnZXJ8ZGVjbGFyZXxkZWZhdWx0fGRlbGV0ZXxkb3xlbHNlfGVudW18ZXhwb3J0fGV4dGVuZHN8ZmluYWxseXxmb3J8ZnJvbXxmdW5jdGlvbnxnZXR8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5zdGFuY2VvZnxpbnRlcmZhY2V8bGV0fG1vZHVsZXxuYW1lc3BhY2V8bmV3fG51bGx8b2Z8b3ZlcnJpZGV8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJlYWRvbmx5fHJldHVybnxzZXR8c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRocm93fHRyeXx0eXBlfHR5cGVvZnx1bmRlZmluZWR8dmFyfHZvaWR8d2hpbGV8eWllbGR8YWJzdHJhY3R8YXN8YmFzZXxib29sfGJ5dGV8Y2hhcnxkZWNpbWFsfGRvdWJsZXxldmVudHxleHBsaWNpdHxleHRlcm58ZmFsc2V8Zml4ZWR8ZmxvYXR8Zm9yZWFjaHxnb3RvfGltcGxpY2l0fGlufGludHxpbnRlcm5hbHxpc3xsb2NrfGxvbmd8b2JqZWN0fG9wZXJhdG9yfG91dHxwYXJhbXN8cGFydGlhbHxyZWFkb25seXxyZWZ8c2J5dGV8c2VhbGVkfHNob3J0fHNpemVvZnxzdGFja2FsbG9jfHN0cmluZ3xzdHJ1Y3R8c3dpdGNofHRocm93fHRydWV8dHJ5fHVpbnR8dWxvbmd8dW5jaGVja2VkfHVuc2FmZXx1c2hvcnR8dXNpbmd8dmlydHVhbHx2b2xhdGlsZXx3aGVyZXx3aGlsZXx3aXRofHlpZWxkfGRlZnxlbGlmfGVsc2V8ZXhjZXB0fGV4ZWN8ZmluYWxseXxmb3J8ZnJvbXxnbG9iYWx8aWZ8aW1wb3J0fGxhbWJkYXxub25sb2NhbHxub3R8b3J8cGFzc3xwcmludHxyYWlzZXxyZXR1cm58dHJ5fHdoaWxlfHdpdGh8eWllbGR8VHJ1ZXxGYWxzZXxOb25lfGFuZHxpbnxpc3xsYW1iZGF8bm90fG9yfGZufHB1Ynx1c2V8bW9kfGltcGx8dHJhaXR8c3RydWN0fGVudW18bWF0Y2h8bG9vcHx3aGlsZXxmb3J8aWZ8ZWxzZXxyZXR1cm58c2VsZnxzdXBlcnxjcmF0ZXx3aGVyZXxhc3luY3xhd2FpdHxtb3ZlfHJlZnxtdXR8c3RhdGljfGNvbnN0fHVuc2FmZXxleHRlcm58dXNlfGFzfGltcGx8c3RydWN0fGVudW18dHlwZXxmbnxsZXR8bG9vcHxpZnxlbHNlfG1hdGNofHJldHVybnxzZWxmfFNlbGZ8bW9kfHB1YnxjcmF0ZXxtYWNyb3xkZXJpdmV8d2hlcmV8YXN5bmN8YXdhaXR8ZHlufHNlbGZ8cGFja2FnZXxmdW5jfGdvfHJldHVybnxkZWZlcnxnb3xpZnxlbHNlfHN3aXRjaHxjYXNlfGRlZmF1bHR8Zm9yfHJhbmdlfHNlbGVjdHxicmVha3xjb250aW51ZXxmYWxsdGhyb3VnaHxjb25zdHxzdHJ1Y3R8ZW51bXx0eXBlfGludGVyZmFjZXxtYXB8Y2hhbnx2YXJ8bmlsfHRydWV8ZmFsc2V8aW90YXxsZW58Y2FwfGFwcGVuZHxtYWtlfG5ld3xwYW5pY3xyZWNvdmVyfHNlbGVjdHxlbHNlfGlmfGVsaWZ8ZW5kfGZvcnxmdW5jdGlvbnxpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlfGVuZHxhbmR8YmVnaW58ZG98ZW5kfGZhbHNlfGZvcnxmdW5jdGlvbnxpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlKVxiL3ksY2xzOiJzeW50YXgta2V5d29yZCIscHJpb3JpdHk6M30sbnVtYmVyOntwYXR0ZXJuOi9cYig/OjB4W1xkYS1mQS1GXSt8MGJbMDFdK3wwb1swLTddK3xcZCtcLj9cZCooPzplWystXT9cZCspPylcYi95LGNsczoic3ludGF4LW51bWJlciIscHJpb3JpdHk6Mn0sZnVuY3Rpb246e3BhdHRlcm46L1xiW0EtWl1bYS16QS1aMC05XSpbYS16XVx3Kig/PVxzKlwoKS95LGNsczoic3ludGF4LWZ1bmN0aW9uIixwcmlvcml0eTo0fSx0eXBlOntwYXR0ZXJuOi9cYig/OnN0cmluZ3xudW1iZXJ8Ym9vbGVhbnx2b2lkfGFueXx1bmtub3dufG5ldmVyfG9iamVjdHxzeW1ib2x8YmlnaW50fEFycmF5fE9iamVjdHxTdHJpbmd8TnVtYmVyfEJvb2xlYW58TWFwfFNldHxXZWFrTWFwfFdlYWtTZXR8UHJvbWlzZXxFcnJvcnxUeXBlfEludGVyZmFjZXxFbnVtfENsYXNzfFN0cnVjdHxJbXBsfFRyYWl0fGZufGZuY3xmdW5jfGZ1bmN0aW9ufGRlZnxwcm9jfGZ1bnxwdWJ8c3RhdGljfGNvbnN0fGxldHx2YXJ8aW50fGZsb2F0fGRvdWJsZXxib29sfGNoYXJ8Ynl0ZXxzdHJpbmd8dTh8dTE2fHUzMnx1NjR8aTh8aTE2fGkzMnxpNjR8ZjMyfGY2NHx1c2l6ZXxpc2l6ZXxzdHJ8VmVjfEhhc2hNYXB8T3B0aW9ufFJlc3VsdHxCb3h8UmN8QXJjfENlbGx8UmVmQ2VsbClcYi95LGNsczoic3ludGF4LXR5cGUiLHByaW9yaXR5OjR9LG9wZXJhdG9yOntwYXR0ZXJuOi9bK1wtKi8lPTw+ISZ8Xn4/Ol0rfFwuXC5cLj8veSxjbHM6InN5bnRheC1vcGVyYXRvciIscHJpb3JpdHk6NX0scHVuY3R1YXRpb246e3BhdHRlcm46L1t7fVtcXSgpOyxcLl0veSxjbHM6InN5bnRheC1wdW5jdHVhdGlvbiIscHJpb3JpdHk6Nn19fWZ1bmN0aW9uIHpkKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXAoZSk7dD10LnJlcGxhY2UoL2BgYChcdyopXG4oW1xzXFNdKj8pYGBgL2csZnVuY3Rpb24oaSxhLHUpe3ZhciBvPWNvKHUudHJpbSgpLGEpLHM9by5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKTtyZXR1cm4nPHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtJythKyciPicrcysiPC9jb2RlPjwvcHJlPiJ9KSx0PXQucmVwbGFjZSgvYChbXmBdKylgL2csZnVuY3Rpb24oaSxhKXtyZXR1cm4iPGNvZGU+IithLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpKyI8L2NvZGU+In0pLHQ9dC5yZXBsYWNlKC9eIyMjIyMjXHMrKC4qKSQvZ20sIjxoNj4kMTwvaDY+IiksdD10LnJlcGxhY2UoL14jIyMjI1xzKyguKikkL2dtLCI8aDU+JDE8L2g1PiIpLHQ9dC5yZXBsYWNlKC9eIyMjI1xzKyguKikkL2dtLCI8aDQ+JDE8L2g0PiIpLHQ9dC5yZXBsYWNlKC9eIyMjXHMrKC4qKSQvZ20sIjxoMz4kMTwvaDM+IiksdD10LnJlcGxhY2UoL14jI1xzKyguKikkL2dtLCI8aDI+JDE8L2gyPiIpLHQ9dC5yZXBsYWNlKC9eI1xzKyguKikkL2dtLCI8aDE+JDE8L2gxPiIpLHQ9dC5yZXBsYWNlKC9cKlwqXCooLis/KVwqXCpcKi9nLCI8c3Ryb25nPjxlbT4kMTwvZW0+PC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSx0PXQucmVwbGFjZSgvKF58W15cd10pX19fKFxTKD86W15cbl0qP1xTKT8pX19fKD8hXHcpL2csIiQxPHN0cm9uZz48ZW0+JDI8L2VtPjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfXyhcUyg/OlteXG5dKj9cUyk/KV9fKD8hXHcpL2csIiQxPHN0cm9uZz4kMjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfKFxTKD86W15cbl9dKj9cUyk/KV8oPyFcdykvZywiJDE8ZW0+JDI8L2VtPiIpLHQ9dC5yZXBsYWNlKC9+figuKz8pfn4vZywiPGRlbD4kMTwvZGVsPiIpLHQ9dC5yZXBsYWNlKC9cWyhbXlxdXSspXF1cKChbXildKylcKS9nLCc8YSBocmVmPSIkMiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiQxPC9hPicpLHQ9dC5yZXBsYWNlKC8hXFsoW15cXV0qKVxdXCgoW14pXSspXCkvZywnPGltZyBzcmM9IiQyIiBhbHQ9IiQxIj4nKSx0PXQucmVwbGFjZSgvXiZndDtccysoLiopJC9nbSwiPGJsb2NrcXVvdGU+JDE8L2Jsb2NrcXVvdGU+IiksdD10LnJlcGxhY2UoL14tLS0rJC9nbSwiPGhyPiIpLHQ9dC5yZXBsYWNlKC9eXCpcKlwqKyQvZ20sIjxocj4iKSx0PXQucmVwbGFjZSgvXltcLVwqXVxzKyguKikkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZywiPHVsPiQmPC91bD4iKSx0PXQucmVwbGFjZSgvXlxkK1wuXHMrKC4qKSQvZ20sIjxsaT4kMTwvbGk+IiksdD1jbCh0KTt2YXIgbj10LnNwbGl0KC9cbnsyLH0vKTtyZXR1cm4gdD1uLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaT1pLnRyaW0oKSxpPy9ePChoWzEtNl18dWx8b2x8bGl8YmxvY2txdW90ZXxwcmV8dGFibGV8aHJ8ZGl2KS8udGVzdChpKT9pOiI8cD4iK2kucmVwbGFjZSgvXG4vZywiPGJyPiIpKyI8L3A+IjoiIn0pLmpvaW4oYApgKSx0fWZ1bmN0aW9uIGZvKCl7aWYoIXIuc2VsZWN0ZWRJZHx8IXIuZ2l0U3RhdHVzfHwhci5naXRTdGF0dXMuaXNHaXR8fHIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkKXJldHVybiIiO3ZhciBlPXIuZ2l0U3RhdHVzLmJyYW5jaHx8Ij8iLHQ9ci5naXRTdGF0dXMubW9kaWZpZWRDb3VudHx8MCxuPWUrKHQ/IiAgXHhCNyAgIit0KyIgXHU0RTJBXHU2NTg3XHU0RUY2XHU1Rjg1XHU2M0QwXHU0RUE0IjoiICBceEI3ICBcdTVERTVcdTRGNUNcdTUzM0FcdTVFNzJcdTUxQzAiKTtyZXR1cm4nPGJ1dHRvbiBpZD0idG9wYmFyLWdpdC1iYWRnZSIgY2xhc3M9InRvcGJhci1naXQtYmFkZ2UiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrcChuKSsnIiBhcmlhLWxhYmVsPSJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTQiPjxzdmcgY2xhc3M9InRvcGJhci1naXQtaWNvbiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIyIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIyIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSI5IiByPSIyIi8+PHBhdGggZD0iTTYgOHY4Ii8+PHBhdGggZD0iTTE4IDExdjFhMyAzIDAgMCAxLTMgM0g5Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InRvcGJhci1naXQtYnJhbmNoIj4nK3AoZSkrIjwvc3Bhbj4iKyh0PjA/JzxzcGFuIGNsYXNzPSJ0b3BiYXItZ2l0LWNvdW50Ij5ceEI3Jyt0KyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InRvcGJhci1naXQtY2xlYW4iIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTI3MTM8L3NwYW4+JykrIjwvYnV0dG9uPiJ9ZnVuY3Rpb24gZGEoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1zbG90Iik7aWYoZSl7ZS5pbm5lckhUTUw9Zm8oKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1iYWRnZSIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG4pe24ucHJldmVudERlZmF1bHQoKSxwbygpfSl9fWZ1bmN0aW9uIFZkKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXIudG9wYmFyTW9yZU9wZW4sbj0hIWUuY2xhdWRlU2Vzc2lvbklkLGk9ISFlLmN3ZCxhPWUud29ya3RyZWVFbmFibGVkJiZlLndvcmt0cmVlJiZlLndvcmt0cmVlLmJyYW5jaCYmZS53b3JrdHJlZS5wYXRoLHU9ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdlZCImJmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMSxvPWUuc3RhdHVzPT09InJ1bm5pbmcifHxlLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2luZyIscz1hJiZlLndvcmt0cmVlTWVyZ2VTdGF0dXMhPT0ibWVyZ2VkIixsPXUsZD1ufHxpfHwhMCxmPXN8fGx8fCEwLGM9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiLz48cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIi8+PC9zdmc+Jyx2PSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xNy41IDE5YTQuNSA0LjUgMCAxIDAtMS41LTguNzRBNiA2IDAgMSAwIDYgMTRoMTEuNXoiLz48L3N2Zz4nLGg9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+JyxnPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSI0IiB5MT0iOSIgeDI9IjIwIiB5Mj0iOSIvPjxsaW5lIHgxPSI0IiB5MT0iMTUiIHgyPSIyMCIgeTI9IjE1Ii8+PGxpbmUgeDE9IjEwIiB5MT0iMyIgeDI9IjgiIHkyPSIyMSIvPjxsaW5lIHgxPSIxNiIgeTE9IjMiIHgyPSIxNCIgeTI9IjIxIi8+PC9zdmc+JyxtPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik03IDdoMTAiLz48cGF0aCBkPSJNNyAxMmgxMCIvPjxwYXRoIGQ9Ik03IDE3aDEwIi8+PHBhdGggZD0iTTUgN2wtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0xOSAxNWwyIDItMiAyIi8+PC9zdmc+Jyx5PSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPicsdz0iIjtpZihuKXt2YXIgRT1lLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHU1OTBEXHU1MjM2IENvZGV4IHRocmVhZCBJRCI6Ilx1NTkwRFx1NTIzNiBDbGF1ZGUgXHU0RjFBXHU4QkREIElEIjt3Kz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktY2xhdWRlLXNlc3Npb24taWQiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrdisiPHNwYW4+IitFKyI8L3NwYW4+PC9idXR0b24+In1pJiYodys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LWN3ZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytoKyI8c3Bhbj5cdTU5MERcdTUyMzZcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+Iiksdys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LXNlc3Npb24taWQiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrZysiPHNwYW4+XHU1OTBEXHU1MjM2XHU0RjFBXHU4QkREIElEPC9zcGFuPjwvYnV0dG9uPiI7dmFyIEI9IiI7cz9CKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249Indvcmt0cmVlLW1lcmdlIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIicrKG8/IiBkaXNhYmxlZCI6IiIpKyI+IittKyI8c3Bhbj5cdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkZcdTIwMjY8L3NwYW4+PC9idXR0b24+IjpsJiYoQis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1jbGVhbnVwIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK20rIjxzcGFuPlx1OTFDRFx1OEJENSB3b3JrdHJlZSBcdTZFMDVcdTc0MDY8L3NwYW4+PC9idXR0b24+IiksQis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0gdG9wYmFyLW1vcmUtaXRlbS1kYW5nZXIiIGRhdGEtYWN0aW9uPSJkZWxldGUtc2Vzc2lvbiIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+Jyt5KyI8c3Bhbj5cdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCREQ8L3NwYW4+PC9idXR0b24+Ijt2YXIgRD1kJiZmPyc8ZGl2IGNsYXNzPSJ0b3BiYXItbW9yZS1kaXZpZGVyIiByb2xlPSJzZXBhcmF0b3IiPjwvZGl2Pic6IiI7cmV0dXJuJzxkaXYgY2xhc3M9InRvcGJhci1tb3JlLXdyYXAiPjxidXR0b24gaWQ9InRvcGJhci1tb3JlLWJ1dHRvbiIgY2xhc3M9InRvcGJhci1idG4gc3F1YXJlJysodD8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2NENEXHU0RjVDIiBhcmlhLWhhc3BvcHVwPSJtZW51IiBhcmlhLWV4cGFuZGVkPSInKyh0PyJ0cnVlIjoiZmFsc2UiKSsnIiB0aXRsZT0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2NENEXHU0RjVDIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIi8+PC9zdmc+PC9idXR0b24+PGRpdiBpZD0idG9wYmFyLW1vcmUtbWVudSIgY2xhc3M9InRvcGJhci1tb3JlLW1lbnUnKyh0PyIiOiIgaGlkZGVuIikrJyIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIj4nK3crRCtCKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGtuKGUsdCl7aWYoIWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTt2YXIgbj10JiZ0LmZvcmNlLGk9RGF0ZS5ub3coKTtpZighbiYmci5naXRTdGF0dXNTZXNzaW9uSWQ9PT1lJiZyLmdpdFN0YXR1cyYmaS1yLmdpdFN0YXR1c0xhc3RGZXRjaEF0PDFlMylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIuZ2l0U3RhdHVzKTtpZihyLmdpdFN0YXR1c0luZmxpZ2h0JiZyLmdpdFN0YXR1c0luZmxpZ2h0LnNlc3Npb25JZD09PWUpcmV0dXJuIHIuZ2l0U3RhdHVzSW5mbGlnaHQucHJvbWlzZTtyLmdpdFN0YXR1c0xvYWRpbmc9ITA7dmFyIGE9ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi9naXQtc3RhdHVzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUub2s/dS5qc29uKCk6e2lzR2l0OiExfX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHIuZ2l0U3RhdHVzPXV8fHtpc0dpdDohMX0sci5naXRTdGF0dXNTZXNzaW9uSWQ9ZSxyLmdpdFN0YXR1c0xhc3RGZXRjaEF0PURhdGUubm93KCksZGEoKSx1fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gci5naXRTdGF0dXM9e2lzR2l0OiExfSxyLmdpdFN0YXR1c1Nlc3Npb25JZD1lLHIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ9RGF0ZS5ub3coKSxkYSgpLG51bGx9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5naXRTdGF0dXNMb2FkaW5nPSExLHIuZ2l0U3RhdHVzSW5mbGlnaHQmJnIuZ2l0U3RhdHVzSW5mbGlnaHQuc2Vzc2lvbklkPT09ZSYmKHIuZ2l0U3RhdHVzSW5mbGlnaHQ9bnVsbCl9KTtyZXR1cm4gci5naXRTdGF0dXNJbmZsaWdodD17c2Vzc2lvbklkOmUscHJvbWlzZTphfSxhfXZhciBBbj1udWxsLHhuPW51bGwsX2c9bnVsbDtmdW5jdGlvbiBVZChlKXtyZXR1cm4gZT09PSJjb21taXQtdGFnInx8ZT09PSJjb21taXQtdGFnLXB1c2gifHxlPT09ImNvbW1pdC1wdXNoIj9lOiJjb21taXQifWZ1bmN0aW9uIEtkKGUpe3JldHVybiBlPVVkKGUpLGU9PT0iY29tbWl0LXRhZy1wdXNoIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFRhZyArIFB1c2giLHZlcmI6Ilx1NjNEMFx1NEVBNFx1MzAwMVx1NjI1MyBUYWcgXHU1RTc2XHU2M0E4XHU5MDAxIix3aXRoVGFnOiEwLHB1c2g6ITAsdG9uZToiYWxsIn06ZT09PSJjb21taXQtdGFnIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFRhZyIsdmVyYjoiXHU2M0QwXHU0RUE0XHU1RTc2XHU2MjUzIFRhZyIsd2l0aFRhZzohMCxwdXNoOiExLHRvbmU6InRhZyJ9OmU9PT0iY29tbWl0LXB1c2giP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgUHVzaCIsdmVyYjoiXHU2M0QwXHU0RUE0XHU1RTc2XHU2M0E4XHU5MDAxIix3aXRoVGFnOiExLHB1c2g6ITAsdG9uZToicHVzaCJ9OnthY3Rpb246ImNvbW1pdCIsbGFiZWw6IkNvbW1pdCIsdmVyYjoiXHU0RUM1XHU2M0QwXHU0RUE0Iix3aXRoVGFnOiExLHB1c2g6ITEsdG9uZToiY29tbWl0In19ZnVuY3Rpb24gcG8oKXtpZihyLnNlbGVjdGVkSWQpe3IucXVpY2tDb21taXRPcGVuPSEwLHIucXVpY2tDb21taXRTdWJtaXR0aW5nPSExLHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz0hMSxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdEZvcm09e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0sci5xdWlja0NvbW1pdFB1c2hpbmc9ITEsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdCIsZXIoKSxFbigpLHRyKCksT3QoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7ZSYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxWaShlKSksQW4mJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLEFuKSxBbj1mdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnF1aWNrQ29tbWl0T3BlbiYmIXIucXVpY2tDb21taXRTdWJtaXR0aW5nJiYhci5xdWlja0NvbW1pdFB1c2hpbmcmJlJuKCl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEFuKSxrbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZPdCgpfSl9fWZ1bmN0aW9uIFJuKCl7ci5xdWlja0NvbW1pdE9wZW49ITEsci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0Ijt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7ZSYmZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxBbiYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLEFuKSxBbj1udWxsKSx4biYmKHhuKCkseG49bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKX1mdW5jdGlvbiBPdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtpZihlKXt4biYmKHhuKCkseG49bnVsbCk7dmFyIHQ9Z28oKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uaW5uZXJIVE1MPXQ7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIjcXVpY2stY29tbWl0LW1vZGFsIik7aSYmKGUuaW5uZXJIVE1MPWkuaW5uZXJIVE1MLHZvKCkpfX1mdW5jdGlvbiB2bygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtY2xvc2UtYnRuIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsUm4pO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtY2FuY2VsLWJ0biIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJuKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LWFpLWJ0biIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFFkKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtpJiYoaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWkudmFsdWV9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKG8peyhvLm1ldGFLZXl8fG8uY3RybEtleSkmJm8ua2V5PT09IkVudGVyIiYmKG8ucHJldmVudERlZmF1bHQoKSxXbigiY29tbWl0IikpfSkpO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7YSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEZvcm0udGFnPWEudmFsdWUsci5xdWlja0NvbW1pdEZvcm0udGFnRWRpdGVkPSEwfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihvKXtvLmtleT09PSJFbnRlciImJihvLnByZXZlbnREZWZhdWx0KCksV24oImNvbW1pdC10YWciKSl9KSk7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1wdXNoLWFmdGVyLWJ0biIpO3UmJnUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIG89ci5xdWlja0NvbW1pdFJlc3VsdHx8e307JGQoe3B1c2hDb21taXRzOiEwLHB1c2hUYWdzOiEhby50YWdOYW1lLGNsb3NlT25TdWNjZXNzOiEwfSl9KSxHZCgpfWZ1bmN0aW9uIEpkKGUpe3ZhciB0PSEhKGUmJmUudGFnKSxuPSEhKGUmJmUucHVzaCk7cmV0dXJuIHQmJm4/ImNvbW1pdC10YWctcHVzaCI6dD8iY29tbWl0LXRhZyI6bj8iY29tbWl0LXB1c2giOiJjb21taXQifXZhciBZZD01OCx0aT0xMDtmdW5jdGlvbiBtbyhlKXtyZXR1cm4gZT09PSJ0YWciP3thY3Rpb246ImNvbW1pdC10YWciLHN1YjohMX06ZT09PSJwdXNoIj97YWN0aW9uOiJjb21taXQtcHVzaCIsc3ViOiExfTplPT09InN1YiI/e2FjdGlvbjoiY29tbWl0IixzdWI6ITB9OnthY3Rpb246ImNvbW1pdCIsc3ViOiExfX1mdW5jdGlvbiBHZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWZpZWxkIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1zdGFnZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stbGF1bmNoIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1jbHVzdGVyIik7aWYoIWV8fCF0fHwhbnx8IWkpcmV0dXJuO3ZhciBhPVsiY29tbWl0IiwidGFnIiwicHVzaCJdLHU9e307aWYoYS5mb3JFYWNoKGZ1bmN0aW9uKGspe3Vba109ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jaGlwPSInK2srJyJdJyl9KSwhdS5jb21taXR8fCF1LnRhZ3x8IXUucHVzaClyZXR1cm47dS5zdWI9ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jaGlwPSJzdWIiXScpO3ZhciBvPSEhdS5zdWIscz1vP2EuY29uY2F0KFsic3ViIl0pOmE7ZnVuY3Rpb24gbChrKXtyZXR1cm4gdVtrXT91W2tdLm9mZnNldFdpZHRoOjkwfWZ1bmN0aW9uIGQoKXtyZXR1cm4gdS5jb21taXQ/dS5jb21taXQub2Zmc2V0SGVpZ2h0OjM4fWZ1bmN0aW9uIGYoKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3MjBweCkiKS5tYXRjaGVzfWZ1bmN0aW9uIGMoKXt2YXIgaz1lLmNsaWVudFdpZHRoLFQ9ZS5jbGllbnRIZWlnaHQsTT1kKCksSj1sKCJjb21taXQiKSx6PWwoInRhZyIpLEc9bCgicHVzaCIpO2lmKGYoKSYmbyl7dmFyIHNlPU1hdGgubWF4KDgsVCouMi1NLzIpLHRlPU1hdGgubWluKFQtTS04LFQqLjctTS8yKSxaPWZ1bmN0aW9uKGllKXtyZXR1cm4gTWF0aC5tYXgoOCxrKi4yNy1pZS8yKX0scT1mdW5jdGlvbihpZSl7cmV0dXJuIE1hdGgubWluKGstaWUtOCxrKi43My1pZS8yKX07cmV0dXJue2NvbW1pdDp7eDpaKEopLHk6c2V9LHRhZzp7eDpxKHopLHk6c2V9LHB1c2g6e3g6WihHKSx5OnRlfSxzdWI6e3g6cShsKCJzdWIiKSkseTp0ZX19fXZhciBPPWYoKSxfPU8/TWF0aC5tYXgoOCxUKi4xOC1NLzIpOk1hdGgubWF4KDgsVCouMTIpLFk9Tz9NYXRoLm1pbihULU0tOCxUKi43Mi1NLzIpOk1hdGgubWluKFQtTS04LFQqLjg4LU0pLEs9Tz8uMjQ6LjI4LHJlPU8/Ljc2Oi43MixkZT17Y29tbWl0Ont4Ok1hdGgubWF4KDgsKGstSikvMikseTpffSx0YWc6e3g6TWF0aC5tYXgoOCxrKkstei8yKSx5Oll9LHB1c2g6e3g6TWF0aC5taW4oay1HLTgsaypyZS1HLzIpLHk6WX19O2lmKG8pe3ZhciBuZT1sKCJzdWIiKTtkZS5zdWI9e3g6TWF0aC5taW4oay1uZS04LGsqLjk0LW5lLzIpLHk6TWF0aC5tYXgoOCxNYXRoLm1pbihULU0tOCwoVC1NKS8yKSl9fXJldHVybiBkZX12YXIgdj17fTtmdW5jdGlvbiBoKGssVCxNKXt1W2tdJiYodVtrXS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgiK1QudG9GaXhlZCgxKSsicHgsIitNLnRvRml4ZWQoMSkrInB4KSIpfWZ1bmN0aW9uIGcoayl7dj1jKCkscy5mb3JFYWNoKGZ1bmN0aW9uKFQpe3VbVF0uY2xhc3NMaXN0LnRvZ2dsZSgicWMtY2hpcC0tYW5pbSIsISFrKSxoKFQsdltUXS54LHZbVF0ueSl9KX1nKCExKTt2YXIgbT1udWxsO2Z1bmN0aW9uIHkoayxULE0pe3ZhciBKPWQoKSx6PTI0LEc9cy5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIGsuaW5kZXhPZihfKT49MH0pLHNlPUcucmVkdWNlKGZ1bmN0aW9uKF8sWSl7cmV0dXJuIE1hdGgubWF4KF8sbChZKSl9LDApLHRlPXNlK01hdGgubWF4KDAsRy5sZW5ndGgtMSkqeixaPWUuY2xpZW50SGVpZ2h0LHE9VC10ZS8yLE89TWF0aC5tYXgoMixNYXRoLm1pbihaLUotMixNLUovMikpO3JldHVybiBHLmZvckVhY2goZnVuY3Rpb24oXyl7aChfLHEsTykscSs9en0pLHt4OlQtdGUvMi03LHk6Ty03LHc6dGUrMTQsaDpKKzE0fX1mdW5jdGlvbiB3KGspe2kuY2xhc3NMaXN0LmFkZCgiaXMtYWN0aXZlIiksaS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgiK2sueC50b0ZpeGVkKDEpKyJweCwiK2sueS50b0ZpeGVkKDEpKyJweCkiLGkuc3R5bGUud2lkdGg9ay53LnRvRml4ZWQoMSkrInB4IixpLnN0eWxlLmhlaWdodD1rLmgudG9GaXhlZCgxKSsicHgifWZ1bmN0aW9uIEUoKXtpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWFjdGl2ZSIpfWZ1bmN0aW9uIEIoayl7cmV0dXJuIEpkKHtjb21taXQ6ITAsdGFnOmsuaW5kZXhPZigidGFnIik+PTAscHVzaDprLmluZGV4T2YoInB1c2giKT49MH0pfWZ1bmN0aW9uIEQoayl7cmV0dXJuIGsuaW5kZXhPZigic3ViIik+PTB9ZnVuY3Rpb24gRihrKXt2YXIgVD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1sYXVuY2gtbGFiZWwiKTtUJiYoVC50ZXh0Q29udGVudD1rKX1mdW5jdGlvbiBJKGssVCl7dmFyIE09bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaz49TS5sZWZ0JiZrPD1NLnJpZ2h0JiZUPj1NLnRvcCYmVDw9TS5ib3R0b219ZnVuY3Rpb24gTChrKXtyZXR1cm4gZnVuY3Rpb24oVCl7aWYoISh1W2tdLmRpc2FibGVkfHxuaSgpKSl7bT17YW5jaG9yOmsscG9pbnRlcklkOlQucG9pbnRlcklkLHN0YXJ0WDpULmNsaWVudFgsc3RhcnRZOlQuY2xpZW50WSxtb3ZlZDohMSxtZW1iZXJzOltrXX0scy5mb3JFYWNoKGZ1bmN0aW9uKE0pe3VbTV0uY2xhc3NMaXN0LnJlbW92ZSgicWMtY2hpcC0tYW5pbSIpfSksdVtrXS5jbGFzc0xpc3QuYWRkKCJpcy1ncmFiYmluZyIpO3RyeXt1W2tdLnNldFBvaW50ZXJDYXB0dXJlKFQucG9pbnRlcklkKX1jYXRjaHt9dC5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLFQucHJldmVudERlZmF1bHQoKX19fWZ1bmN0aW9uIFAoayl7aWYoISghbXx8bS5wb2ludGVySWQhPT1rLnBvaW50ZXJJZCkpeyhNYXRoLmFicyhrLmNsaWVudFgtbS5zdGFydFgpPjN8fE1hdGguYWJzKGsuY2xpZW50WS1tLnN0YXJ0WSk+MykmJihtLm1vdmVkPSEwKTt2YXIgVD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE09ay5jbGllbnRYLVQubGVmdCxKPWsuY2xpZW50WS1ULnRvcDtpZihhLmZvckVhY2goZnVuY3Rpb24oTyl7aWYoIShtLm1lbWJlcnMuaW5kZXhPZihPKT49MCkpe3ZhciBfPXZbT10ueCtsKE8pLzIsWT12W09dLnkrZCgpLzIsSz1NLV8scmU9Si1ZO01hdGguc3FydChLKksrcmUqcmUpPFlkJiYobS5tZW1iZXJzLnB1c2goTyksdVtPXS5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIiksdVtPXS5jbGFzc0xpc3QuYWRkKCJpcy1hdHRhY2hlZCIpKX19KSxvJiZtLm1lbWJlcnMuaW5kZXhPZigic3ViIik8MCl7dmFyIHo9di5zdWIueC10aSxHPXYuc3ViLnktdGksc2U9di5zdWIueCtsKCJzdWIiKSt0aSx0ZT12LnN1Yi55K2QoKSt0aTtNPj16JiZNPD1zZSYmSj49RyYmSjw9dGUmJihtLm1lbWJlcnMucHVzaCgic3ViIiksdS5zdWIuY2xhc3NMaXN0LnJlbW92ZSgicWMtY2hpcC0tYW5pbSIpLHUuc3ViLmNsYXNzTGlzdC5hZGQoImlzLWF0dGFjaGVkIikpfXZhciBaPXkobS5tZW1iZXJzLE0sSikscT1JKGsuY2xpZW50WCxrLmNsaWVudFkpO3Quc2V0QXR0cmlidXRlKCJkYXRhLWhvdCIscT8iMSI6IjAiKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iLEIobS5tZW1iZXJzKSksbS5tZW1iZXJzLmxlbmd0aD4xP3coWik6RSgpLEYocT8iXHU2NzdFXHU2MjRCXHU2MjY3XHU4ODRDIjoiXHU2M0QwXHU0RUE0Iil9fWZ1bmN0aW9uIFYoayxUKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PWsucG9pbnRlcklkKSl7dmFyIE09bTttPW51bGwsdC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1kcmFnZ2luZyIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWhvdCIsIjAiKSxGKCJcdTYzRDBcdTRFQTQiKSxFKCkscy5mb3JFYWNoKGZ1bmN0aW9uKHope3Vbel0uY2xhc3NMaXN0LnJlbW92ZSgiaXMtZ3JhYmJpbmciLCJpcy1hdHRhY2hlZCIpfSk7dHJ5e3VbTS5hbmNob3JdLnJlbGVhc2VQb2ludGVyQ2FwdHVyZShNLnBvaW50ZXJJZCl9Y2F0Y2h7fWlmKCFUJiYhTS5tb3ZlZCl7dmFyIEo9bW8oTS5hbmNob3IpO1duKEouYWN0aW9uLEouc3ViKTtyZXR1cm59aWYoIVQmJkkoay5jbGllbnRYLGsuY2xpZW50WSkpe1duKEIoTS5tZW1iZXJzKSxEKE0ubWVtYmVycykpO3JldHVybn10LnNldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iLCJjb21taXQiKSxnKCEwKX19dmFyIHg9ZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmIW0mJmcoITEpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix4KSxzLmZvckVhY2goZnVuY3Rpb24oayl7dmFyIFQ9dVtrXTtULmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixMKGspKSxULmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixQKSxULmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZnVuY3Rpb24oTSl7VihNLCExKX0pLFQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsZnVuY3Rpb24oTSl7VihNLCEwKX0pLFQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oTSl7aWYoIShULmRpc2FibGVkfHxuaSgpKSYmKE0ua2V5PT09IkVudGVyInx8TS5rZXk9PT0iICJ8fE0ua2V5PT09IlNwYWNlYmFyIikpe00ucHJldmVudERlZmF1bHQoKTt2YXIgSj1tbyhrKTtXbihKLmFjdGlvbixKLnN1Yil9fSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe24uZGlzYWJsZWR8fG5pKCl8fG18fFduKCJjb21taXQiKX0pLHhuPWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIseCksbT1udWxsfX1mdW5jdGlvbiBRZCgpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdEdlbmVyYXRpbmcpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtlJiYoci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1lLnZhbHVlKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXRhZyIpO3QmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dC52YWx1ZSksci5xdWlja0NvbW1pdEdlbmVyYXRpbmc9ITAsci5xdWlja0NvbW1pdEVycm9yPSIiLE90KCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2dlbmVyYXRlLWNvbW1pdC1tZXNzYWdlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7fSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybntvazpuLm9rLGRhdGE6aX19KX0pLnRoZW4oZnVuY3Rpb24obil7aWYoIW4ub2spdGhyb3cgbmV3IEVycm9yKG4uZGF0YSYmbi5kYXRhLmVycm9yfHwiQUkgXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1XHUzMDAyIik7dmFyIGk9bi5kYXRhfHx7fSxhPXR5cGVvZiBpLm1lc3NhZ2U9PSJzdHJpbmciP2kubWVzc2FnZToiIix1PXR5cGVvZiBpLnN1Z2dlc3RlZFRhZz09InN0cmluZyI/aS5zdWdnZXN0ZWRUYWcudHJpbSgpOiIiLG89KHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2V8fCIiKS50cmltKCk7IW8mJmEmJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWEpLHUmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWdFZGl0ZWR8fChyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dSksci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdC10YWciKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3IucXVpY2tDb21taXRFcnJvcj1uJiZuLm1lc3NhZ2V8fCJBSSBcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjVcdTMwMDIifSkuZmluYWxseShmdW5jdGlvbigpe3IucXVpY2tDb21taXRHZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZPdCgpfSl9fWZ1bmN0aW9uIFduKGUsdCl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0U3VibWl0dGluZykpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO24mJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPW4udmFsdWUpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7aSYmKHIucXVpY2tDb21taXRGb3JtLnRhZz1pLnZhbHVlKTt2YXIgYT1yLnF1aWNrQ29tbWl0Rm9ybXx8e30sdT1LZChlfHxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbnx8ImNvbW1pdCIpLG89dS53aXRoVGFnLHM9bz8oYS50YWd8fCIiKS50cmltKCk6IiIsbD0oYS5jdXN0b21NZXNzYWdlfHwiIikudHJpbSgpLGQ9IWwsZj17YnJhbmNoOihyLmdpdFN0YXR1c3x8e30pLmJyYW5jaHx8IiIsY29tbWl0SGFzaDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaD8oci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaDooci5naXRTdGF0dXN8fHt9KS5oZWFkPyhyLmdpdFN0YXR1c3x8e30pLmhlYWQuc3Vic3RyaW5nKDAsNyk6IiIsY29tbWl0U3ViamVjdDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnN1YmplY3Q/KHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdC5zdWJqZWN0OiIiLHRhZzooci5naXRTdGF0dXN8fHt9KS5sYXRlc3RUYWd8fCIifSxjPXthdXRvTWVzc2FnZTpkLGN1c3RvbU1lc3NhZ2U6ZD8iIjpsLHRhZzpzLGF1dG9UYWc6ISEobyYmIXMpLHB1c2g6ISF1LnB1c2gsc3VibW9kdWxlOiEhdH07ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITAsci5xdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudD0hIXQsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPWR8fGMuYXV0b1RhZyxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249dS5hY3Rpb24sT3QoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvcXVpY2stY29tbWl0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeShjKX0pLnRoZW4oZnVuY3Rpb24odil7cmV0dXJuIHYuanNvbigpLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJue29rOnYub2ssZGF0YTpofX0pfSkudGhlbihmdW5jdGlvbih2KXtpZighdi5vayl0aHJvdyBuZXcgRXJyb3Iodi5kYXRhJiZ2LmRhdGEuZXJyb3J8fCJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTRcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgaD12LmRhdGF8fHt9LGc9aC5jb21taXQmJmguY29tbWl0Lmhhc2g/aC5jb21taXQuaGFzaC5zdWJzdHJpbmcoMCw3KToiIixtPWgudGFnJiZoLnRhZy5uYW1lP2gudGFnLm5hbWU6IiIseT1BcnJheS5pc0FycmF5KGguc3VibW9kdWxlQ29tbWl0cyk/aC5zdWJtb2R1bGVDb21taXRzOltdLHc9eS5sZW5ndGg+MD8iXHU1REYyXHU1MTQ4XHU2M0QwXHU0RUE0ICIreS5sZW5ndGgrIiBcdTRFMkEgc3VibW9kdWxlXHVGRjA4Iit5Lm1hcChmdW5jdGlvbihCKXtyZXR1cm4gQi5wYXRofSkuam9pbigiXHUzMDAxIikrIlx1RkYwOVx1RkYwQyI6IiIsRT13KyJcdTVERjJcdTYzRDBcdTRFQTQiKyhnPyIgIitnOiIiKSsobT8iXHVGRjBDXHU1REYyXHU2MjUzIFRhZyAiK206IiIpO3IucXVpY2tDb21taXRSZXN1bHQ9e2FjdGlvbjp1LmFjdGlvbixpbmNsdWRlU3VibW9kdWxlOiEhdCxwdXNoZWQ6ISFoLnB1c2hlZCxwdXNoRXJyb3I6aC5wdXNoRXJyb3J8fCIiLGNvbW1pdEhhc2g6Zyxjb21taXRNZXNzYWdlOmguY29tbWl0JiZoLmNvbW1pdC5tZXNzYWdlP2guY29tbWl0Lm1lc3NhZ2U6bCx0YWdOYW1lOm0sb2xkVGFnOmYudGFnLG9sZENvbW1pdEhhc2g6Zi5jb21taXRIYXNoLG9sZENvbW1pdFN1YmplY3Q6Zi5jb21taXRTdWJqZWN0LHN1Ym1vZHVsZUNvdW50OnkubGVuZ3RofSx1LnB1c2gmJiFoLnB1c2hFcnJvcj8odHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoRSsiXHVGRjBDXHU1REYyXHU2M0E4XHU5MDAxXHUzMDAyIiwic3VjY2VzcyIpLFJuKCkpOih0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQShFKyhoLnB1c2hFcnJvcj8iXHVGRjFCcHVzaCBcdTU5MzFcdThEMjVcdUZGMUEiK2gucHVzaEVycm9yOiJcdTMwMDIiKSxoLnB1c2hFcnJvcj8iZXJyb3IiOiJzdWNjZXNzIiksci5zZWxlY3RlZElkJiZrbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZPdCgpfSkpfSkuY2F0Y2goZnVuY3Rpb24odil7ci5xdWlja0NvbW1pdEVycm9yPXYmJnYubWVzc2FnZXx8Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZPdCgpfSl9fWZ1bmN0aW9uICRkKGUpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdFB1c2hpbmcpKXt2YXIgdD0hIShlJiZlLnB1c2hDb21taXRzKSxuPSEhKGUmJmUucHVzaFRhZ3MpLGk9ISEoZSYmZS5jbG9zZU9uU3VjY2Vzcyk7aWYoISghdCYmIW4pKXt2YXIgYT1yLnF1aWNrQ29tbWl0UmVzdWx0fHx7fSx1PSEhYS5pbmNsdWRlU3VibW9kdWxlO3IucXVpY2tDb21taXRQdXNoaW5nPSEwLHIucXVpY2tDb21taXRQdXNoRXJyb3I9IiIsT3QoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZ2l0L3B1c2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwdXNoQ29tbWl0czp0LHB1c2hUYWdzOm4sc3VibW9kdWxlOnUsdGFnOmEudGFnTmFtZXx8IiJ9KX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJue29rOm8ub2ssZGF0YTpzfX0pfSkudGhlbihmdW5jdGlvbihvKXt2YXIgcz1vLmRhdGF8fHt9O2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihzJiZzLmVycm9yfHwiXHU2M0E4XHU5MDAxXHU1OTMxXHU4RDI1XHUzMDAyIik7aWYocy5lcnJvcil7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1zLmVycm9yLHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdUZGMUEiK3MuZXJyb3IsImVycm9yIik7cmV0dXJufXZhciBsPVtdO3MucHVzaGVkQ29tbWl0cyYmbC5wdXNoKCJjb21taXRzIikscy5wdXNoZWRUYWdzJiZsLnB1c2goInRhZ3MiKTt2YXIgZD1sLmxlbmd0aD9sLmpvaW4oIiBcdTU0OEMgIik6Ilx1RkYwOFx1NjVFMFx1NTE4NVx1NUJCOVx1RkYwOSI7dHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NURGMlx1NjNBOFx1OTAwMSAiK2QsInN1Y2Nlc3MiKSxyLnF1aWNrQ29tbWl0UmVzdWx0JiYoci5xdWlja0NvbW1pdFJlc3VsdC5wdXNoZWQ9ITApLGk/KFJuKCksci5zZWxlY3RlZElkJiZrbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkpOnIuc2VsZWN0ZWRJZCYma24oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pLnRoZW4oZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmT3QoKX0pfSkuY2F0Y2goZnVuY3Rpb24obyl7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1vJiZvLm1lc3NhZ2V8fCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiLHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKHIucXVpY2tDb21taXRQdXNoRXJyb3IsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFB1c2hpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJk90KCl9KX19fWZ1bmN0aW9uIFhkKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKHQ9PT0iPz8iKXJldHVybntsZXR0ZXI6IlUiLGNsczoidW50cmFja2VkIix0aXRsZToiXHU2NzJBXHU4RERGXHU4RTJBIn07aWYodD09PSIhISIpcmV0dXJue2xldHRlcjoiSSIsY2xzOiJpZ25vcmVkIix0aXRsZToiXHU1REYyXHU1RkZEXHU3NTY1In07Zm9yKHZhciBuPSIiLGk9MDtpPGUubGVuZ3RoO2krKylpZihlW2ldJiZlW2ldIT09Ii4iJiZlW2ldIT09IiAiKXtuPWVbaV07YnJlYWt9bj0obnx8dFswXXx8Ij8iKS50b1VwcGVyQ2FzZSgpO3ZhciBhPXtBOntjbHM6ImFkZCIsdGl0bGU6Ilx1NjVCMFx1NTg5RSJ9LE06e2NsczoibW9kIix0aXRsZToiXHU0RkVFXHU2NTM5In0sRDp7Y2xzOiJkZWwiLHRpdGxlOiJcdTUyMjBcdTk2NjQifSxSOntjbHM6InJlbiIsdGl0bGU6Ilx1OTFDRFx1NTQ3RFx1NTQwRCJ9LEM6e2NsczoicmVuIix0aXRsZToiXHU1OTBEXHU1MjM2In0sVDp7Y2xzOiJtb2QiLHRpdGxlOiJcdTdDN0JcdTU3OEJcdTUzRDhcdTY2RjQifSxVOntjbHM6ImRlbCIsdGl0bGU6Ilx1NTFCMlx1N0E4MSJ9fSx1PWFbbl18fHtjbHM6Im90aGVyIix0aXRsZToiXHU1REYyXHU2NkY0XHU2NTM5In07cmV0dXJue2xldHRlcjpuLGNsczp1LmNscyx0aXRsZTp1LnRpdGxlfX1mdW5jdGlvbiBOZyhlKXt2YXIgdD1lLm1hcChmdW5jdGlvbihuKXt2YXIgaT1YZChuLnN0YXR1c3x8IiIpLGE9bi5wYXRofHwiIix1PWEubGFzdEluZGV4T2YoIi8iKSxvPXU+PTA/YS5zbGljZSgwLHUrMSk6IiIscz11Pj0wP2Euc2xpY2UodSsxKTphLGw9IiI7aWYobi5pc1N1Ym1vZHVsZSl7dmFyIGQ9bi5zdWJtb2R1bGVTdGF0ZXx8e30sZj1bXTtkLmNvbW1pdENoYW5nZWQmJmYucHVzaCgiXHU2NUIwXHU2MzA3XHU5NDg4IiksZC5oYXNUcmFja2VkQ2hhbmdlcyYmZi5wdXNoKCJkaXJ0eSIpLGQuaGFzVW50cmFja2VkJiZmLnB1c2goIlx1NjcyQVx1OERERlx1OEUyQSIpO3ZhciBjPWYubGVuZ3RoPyJzdWJtb2R1bGUgXHhCNyAiK2Yuam9pbigiIC8gIik6InN1Ym1vZHVsZSI7bD0nPHNwYW4gY2xhc3M9InFjLXN1Ym1vZHVsZS1iYWRnZSI+JytwKGMpKyI8L3NwYW4+In1yZXR1cm4nPGRpdiBjbGFzcz0icWMtZmlsZS1yb3ciIHRpdGxlPSInK3AoYSkrJyI+PHNwYW4gY2xhc3M9InFjLWZpbGUtYmFkZ2UgcWMtYmFkZ2UtJytpLmNscysnIiB0aXRsZT0iJytwKGkudGl0bGUpKyciPicrcChpLmxldHRlcikrJzwvc3Bhbj48c3BhbiBjbGFzcz0icWMtZmlsZS1wYXRoIj4nKyhvPyc8c3BhbiBjbGFzcz0icWMtZmlsZS1kaXIiPicrcChvKSsiPC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0icWMtZmlsZS1uYW1lIj4nK3AocykrIjwvc3Bhbj48L3NwYW4+IitsKyI8L2Rpdj4ifSkuam9pbigiIik7cmV0dXJuIHR8fCc8ZGl2IGNsYXNzPSJxYy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2M0QwXHU0RUE0XHU3Njg0XHU2NTM5XHU1MkE4XHUzMDAyPC9kaXY+J31mdW5jdGlvbiBuaSgpe3JldHVybiByLnF1aWNrQ29tbWl0U3VibWl0dGluZ3x8ci5xdWlja0NvbW1pdFB1c2hpbmd9ZnVuY3Rpb24gcmkoZSx0LG4saSl7cmV0dXJuJzxkaXYgY2xhc3M9InFjLXBhaXInKyhpPyIgIitpOiIiKSsnIj48ZGl2IGNsYXNzPSJxYy1wYWlyLWxhYmVsIj4nK3AoZSkrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItZmxvdyI+PGRpdiBjbGFzcz0icWMtcGFpci12YWx1ZSBxYy1wYWlyLXZhbHVlLS1mcm9tIj4nK3QrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTIxOTI8L2Rpdj48ZGl2IGNsYXNzPSJxYy1wYWlyLXZhbHVlIHFjLXBhaXItdmFsdWUtLXRvIj4nK24rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gWmQoKXt2YXIgZT1yLmdpdFN0YXR1c3x8e307aWYoZS5oYXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtmb3IodmFyIHQ9ZS5maWxlc3x8W10sbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0mJnRbbl0uaXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBlYyhlKXt2YXIgdD0hZXx8bmkoKSxuPVpkKCk7aWYoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcpe3ZhciBpPXIucXVpY2tDb21taXRTdWJtb2R1bGVJbnRlbnQ/Ilx1RkYwOFx1NTQyQiBzdWJtb2R1bGVcdUZGMDkiOiIiLGE9KHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz8iQUkgXHU3NTFGXHU2MjEwICsgXHU2M0QwXHU0RUE0XHU0RTJEXHUyMDI2IjoiXHU2MjY3XHU4ODRDXHU0RTJEXHUyMDI2IikraTtyZXR1cm4nPGRpdiBjbGFzcz0icWMtZG9jay13cmFwIj48ZGl2IGNsYXNzPSJxYy1kb2NrLWJ1c3kiIHJvbGU9InN0YXR1cyI+PHNwYW4gY2xhc3M9InFjLWRvY2stYnVzeS1kb3QiPjwvc3Bhbj4nK3AoYSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdShzLGwsZCl7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWMtY2hpcCBxYy1jaGlwLS0nK3MrJyIgZGF0YS1jaGlwPSInK3MrJyInKyhkPycgdGl0bGU9IicrcChkKSsnIic6IiIpKyh0PyIgZGlzYWJsZWQiOiIiKSsnPjxzcGFuIGNsYXNzPSJxYy1jaGlwLWRvdCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48c3BhbiBjbGFzcz0icWMtY2hpcC1sYWJlbCI+JytsKyI8L3NwYW4+PC9idXR0b24+In12YXIgbz10P2U/IiI6Ilx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMFx1RkYwQ1x1NjVFMFx1NTNFRlx1NjNEMFx1NEVBNCI6Ilx1NjJENlx1NTJBOFx1NzhDMVx1NTQzOFx1N0VDNFx1NTQwOCBceEI3IFx1NEUyMlx1OEZEQlx1NjNEMFx1NEVBNFx1NTMzQVx1NjI2N1x1ODg0QyBceEI3IFx1NTM1NVx1NTFGQlx1NzZGNFx1NjNBNVx1NjI2N1x1ODg0Q1x1OEJFNVx1OTg3OSIrKG4/IiBceEI3IFN1YiBcdTc0MDNcdTUzRUZcdTkwMDlcdUZGMENcdTdFQjNcdTUxNjVcdTU0MEVcdTkwMTJcdTVGNTJcdTU5MDRcdTc0MDYgc3VibW9kdWxlIjoiIik7cmV0dXJuJzxkaXYgY2xhc3M9InFjLWRvY2std3JhcCBxYy1kb2NrLXdyYXAtLW1hZ25ldGljIicrKHQ/JyBkYXRhLWRpc2FibGVkPSIxIic6IiIpKyc+PGRpdiBpZD0icWMtZG9jay1zdGFnZSIgY2xhc3M9InFjLWRvY2stc3RhZ2UiIGRhdGEtYWN0aW9uPSJjb21taXQiIGRhdGEtaG90PSIwIj48ZGl2IGlkPSJxYy1kb2NrLWZpZWxkIiBjbGFzcz0icWMtZG9jay1maWVsZCI+PGRpdiBpZD0icWMtZG9jay1jbHVzdGVyIiBjbGFzcz0icWMtZG9jay1jbHVzdGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+Jyt1KCJjb21taXQiLCJDb21taXQiKSt1KCJ0YWciLCJUYWciKSt1KCJwdXNoIiwiUHVzaCIpKyhuP3UoInN1YiIsIlN1YiIsIlx1NjNEMFx1NEVBNFx1NzIzNlx1NEVEM1x1NUU5M1x1NUU3Nlx1OTAxMlx1NUY1Mlx1OEZEQlx1NTE2NSBzdWJtb2R1bGVcdUZGMDhjb21taXQgLyB0YWcgLyBcdTUyMDZcdTUyMkJcdTYzQThcdTkwMDFcdUZGMDkiKToiIikrJzwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icWMtZG9jay1sYXVuY2giIGNsYXNzPSJxYy1kb2NrLWxhdW5jaCInKyh0PyIgZGlzYWJsZWQiOiIiKSsnIGFyaWEtbGFiZWw9Ilx1NjI2N1x1ODg0Q1x1NjNEMFx1NEVBNCI+PHNwYW4gY2xhc3M9InFjLWRvY2stbGF1bmNoLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDEyaDEyTTEzIDZsNiA2LTYgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBpZD0icWMtZG9jay1sYXVuY2gtbGFiZWwiIGNsYXNzPSJxYy1kb2NrLWxhdW5jaC1sYWJlbCI+XHU2M0QwXHU0RUE0PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InFjLWRvY2staGludCI+JytwKG8pKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHRjKCl7dmFyIGU9ci5xdWlja0NvbW1pdFJlc3VsdDtpZighZSlyZXR1cm4iIjt2YXIgdD1lLm9sZENvbW1pdEhhc2g/Ijxjb2RlPiIrcChlLm9sZENvbW1pdEhhc2gpKyI8L2NvZGU+IisoZS5vbGRDb21taXRTdWJqZWN0PyI8c3Bhbj4iK3AoZS5vbGRDb21taXRTdWJqZWN0KSsiPC9zcGFuPiI6IiIpOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMDwvc3Bhbj4nLG49ZS5jb21taXRIYXNoPyI8Y29kZT4iK3AoZS5jb21taXRIYXNoKSsiPC9jb2RlPjxzcGFuPiIrcChlLmNvbW1pdE1lc3NhZ2V8fCIiKSsiPC9zcGFuPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwPC9zcGFuPicsaT1lLm9sZFRhZz8iPGNvZGU+IitwKGUub2xkVGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLGE9ZS50YWdOYW1lPyI8Y29kZT4iK3AoZS50YWdOYW1lKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NzJBXHU2MjUzIHRhZzwvc3Bhbj4nLHU9ZS5wdXNoZWQ/JzxzcGFuIGNsYXNzPSJxYy1yZXN1bHQtcHVzaGVkIj5cdTVERjJcdTYzQThcdTkwMDE8L3NwYW4+JzonPGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LXB1c2gtYWZ0ZXItYnRuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIicrKHIucXVpY2tDb21taXRQdXNoaW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIrKHIucXVpY2tDb21taXRQdXNoaW5nPyJcdTYzQThcdTkwMDFcdTRFMkQuLi4iOiJQdXNoICYgQ2xvc2UiKSsiPC9idXR0b24+IjtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InFjLXJlc3VsdC1wYW5lbCI+JytyaSgiQ29tbWl0Iix0LG4sIiIpK3JpKCJUYWciLGksYSwicWMtcGFpci0tdGFnIikrKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yKSsiPC9wPiI6IiIpKyc8ZGl2IGNsYXNzPSJxYy1yZXN1bHQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj4nK3UrIjwvZGl2Pjwvc2VjdGlvbj4ifWZ1bmN0aW9uIGdvKCl7dmFyIGU9ci5naXRTdGF0dXN8fHt9LHQ9ci5xdWlja0NvbW1pdEZvcm18fHtjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LG49KGUubW9kaWZpZWRDb3VudHx8MCk+MCxpPXIucXVpY2tDb21taXRHZW5lcmF0aW5nLGE9ZS5sYXN0Q29tbWl0fHx7fSx1PWEuc2hvcnRIYXNoPyI8Y29kZT4iK3AoYS5zaG9ydEhhc2gpKyI8L2NvZGU+PHNwYW4+IitwKGEuc3ViamVjdHx8IiIpKyI8L3NwYW4+IjplLmhlYWQ/Ijxjb2RlPiIrcChlLmhlYWQuc3Vic3RyaW5nKDAsNykpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgY29tbWl0PC9zcGFuPicsbz1lLmxhdGVzdFRhZz8iPGNvZGU+IitwKGUubGF0ZXN0VGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLHM9JzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icXVpY2stY29tbWl0LXRhZyIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLXRhZy1maWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NzU1OVx1N0E3QVx1NTIxOSBBSSBcdTc1MUZcdTYyMTAiIHZhbHVlPSInK3AodC50YWd8fCIiKSsnIicrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIsbD0nPHRleHRhcmVhIGlkPSJxdWljay1jb21taXQtbWVzc2FnZSIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLW1lc3NhZ2UtaW5wdXQiIHJvd3M9IjMiIHBsYWNlaG9sZGVyPSJOZXcgY29tbWl0IG1lc3NhZ2UiICcrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyJkaXNhYmxlZCI6IiIpKyI+IitwKHQuY3VzdG9tTWVzc2FnZXx8IiIpKyI8L3RleHRhcmVhPiIsZD1bXTtkLnB1c2goZS5icmFuY2h8fCIobm8gYnJhbmNoKSIpLGQucHVzaChuPyhlLm1vZGlmaWVkQ291bnR8fDApKyIgXHU0RTJBXHU2NTM5XHU1MkE4IjoiXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwIiksdHlwZW9mIGUuYWhlYWQ9PSJudW1iZXIiJiZlLmFoZWFkPjAmJmQucHVzaCgiXHUyMTkxIitlLmFoZWFkKSx0eXBlb2YgZS5iZWhpbmQ9PSJudW1iZXIiJiZlLmJlaGluZD4wJiZkLnB1c2goIlx1MjE5MyIrZS5iZWhpbmQpO3ZhciBmPXIucXVpY2tDb21taXRSZXN1bHQ/IiI6JzxzZWN0aW9uIGNsYXNzPSJxYy1yZWxlYXNlLXBhbmVsIj48ZGl2IGNsYXNzPSJxYy1tZXNzYWdlLWhlYWRlciI+PHNwYW4gY2xhc3M9InFjLXNlY3Rpb24tdGl0bGUiPk5ldzwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InF1aWNrLWNvbW1pdC1haS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBxYy1haS1idG4iJysoaT8iIGRpc2FibGVkIjoiIikrJyB0aXRsZT0iQUkgXHU3NTFGXHU2MjEwIGNvbW1pdCBtZXNzYWdlIFx1NEUwRSB0YWciPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAxLjVsMS40IDMuNkwxMyA2LjUgOS40IDcuOSA4IDExLjUgNi42IDcuOSAzIDYuNWwzLjYtMS40TDggMS41ek0xMi41IDEwLjVsLjcgMS44IDEuOC43LTEuOC43LS43IDEuOC0uNy0xLjgtMS44LS43IDEuOC0uNy43LTEuOHoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPjwvc3ZnPjxzcGFuPicrKGk/Ilx1NzUxRlx1NjIxMFx1NEUyRC4uLiI6IkFJIikrIjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4iK3JpKCJDb21taXQiLHUsbCwicWMtcGFpci0tY29tbWl0IikrcmkoIlRhZyIsbyxzLCJxYy1wYWlyLS10YWciKSsoci5xdWlja0NvbW1pdEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKHIucXVpY2tDb21taXRFcnJvcikrIjwvcD4iOiIiKStlYyhuKSsnPGRpdiBjbGFzcz0icWMtbW9kYWwtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDZcdTZEODg8L2J1dHRvbj48L2Rpdj48L3NlY3Rpb24+JyxjPXRjKCk7cmV0dXJuJzxzZWN0aW9uIGlkPSJxdWljay1jb21taXQtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCcrKHIucXVpY2tDb21taXRPcGVuPyIiOiIgaGlkZGVuIikrJyI+PGRpdiBjbGFzcz0ibW9kYWwgcXVpY2stY29tbWl0LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0icXVpY2stY29tbWl0LXRpdGxlIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGlkPSJxdWljay1jb21taXQtdGl0bGUiIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0PC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPicrcChkLmpvaW4oIiBceEI3ICIpKSsnPC9wPjwvZGl2PjxidXR0b24gaWQ9InF1aWNrLWNvbW1pdC1jbG9zZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4nK2YrYysiPC9kaXY+PC9kaXY+PC9zZWN0aW9uPiJ9ZnVuY3Rpb24gbmMoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9Indvcmt0cmVlLW1lcmdlLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCB3b3JrdHJlZS1tZXJnZS1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NTQwOFx1NUU3NiBXb3JrdHJlZTwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTY4QzBcdTY3RTVcdTVGNTNcdTUyNERcdTRFRkJcdTUyQTFcdTUyMDZcdTY1MkZcdTVFNzZcdTVGRUJcdTYzNzdcdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkZcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utd29ya3RyZWUtbWVyZ2UtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBpZD0id29ya3RyZWUtbWVyZ2UtY29udGVudCIgY2xhc3M9Indvcmt0cmVlLW1lcmdlLWNvbnRlbnQiPjwvZGl2PjxwIGlkPSJ3b3JrdHJlZS1tZXJnZS1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2UtYWN0aW9ucyI+PGJ1dHRvbiBpZD0id29ya3RyZWUtbWVyZ2UtY2FuY2VsLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5Ij5cdTUzRDZcdTZEODg8L2J1dHRvbj48YnV0dG9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU3ODZFXHU4QkE0XHU1NDA4XHU1RTc2XHU1RTc2XHU2RTA1XHU3NDA2PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gcmMoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9InNldHRpbmdzLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBzZXR0aW5ncy1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIHNldHRpbmdzLW1vZGFsLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OEJCRVx1N0Y2RTwvaDI+PHAgY2xhc3M9InNldHRpbmdzLW1vZGFsLXN1YnRpdGxlIj5cdThDMDNcdTY1NzRcdTVFOTRcdTc1MjhcdTkxNERcdTdGNkVcdTMwMDFcdTkwMUFcdTc3RTVcdTMwMDFcdTVCODlcdTUxNjhcdTU0OENcdTY2M0VcdTc5M0FcdTUwNEZcdTU5N0Q8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utc2V0dGluZ3MtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSBzZXR0aW5ncy1tb2RhbC1ib2R5Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYXlvdXQiPjxhc2lkZSBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhciI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItdGl0bGUiPlx1NTA0Rlx1NTk3RFx1OEJCRVx1N0Y2RTwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItaGludCI+XHU1REU2XHU0RkE3XHU1MjA3XHU2MzYyXHU1MjA2XHU1MzNBXHVGRjBDXHU1M0YzXHU0RkE3XHU2N0U1XHU3NzBCXHU4QkU2XHU3RUM2XHU4QkY0XHU2NjBFXHU0RTBFXHU5MDA5XHU5ODc5XHUzMDAyPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdGFicyIgcm9sZT0idGFibGlzdCIgYXJpYS1sYWJlbD0iXHU4QkJFXHU3RjZFXHU1MjA2XHU3RUM0IiBhcmlhLW9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIGFjdGl2ZSIgZGF0YS10YWI9ImFib3V0IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1hYm91dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTUxNzNcdTRFOEU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTcyNDhcdTY3MkNcdTMwMDFcdTY2RjRcdTY1QjBcdTRFMEVcdThGREVcdTYzQTVcdTY1QjlcdTVGMEY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZ2VuZXJhbCIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWdlbmVyYWwiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU2QTIxXHU1NzhCXHUzMDAxXHU2QTIxXHU1RjBGXHU0RTBFXHU4RkQwXHU4ODRDXHU3M0FGXHU1ODgzPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9Im5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1ub3RpZmljYXRpb25zIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1OTAxQVx1NzdFNTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NjNEMFx1NzkzQVx1OTdGM1x1NEUwRVx1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJzZWN1cml0eSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLXNlY3VyaXR5Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NUI4OVx1NTE2ODwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NUJDNlx1NzgwMVx1NEUwRVx1OEJDMVx1NEU2Njwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJwcmVzZXRzIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItcHJlc2V0cyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTY3RTVcdTc3MEJcdTVERjJcdTY3MDlcdTk4ODRcdThCQkU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZGlzcGxheSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU2NjNFXHU3OTNBPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU1MzYxXHU3MjQ3XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU4ODRDXHU0RTNBPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvYXNpZGU+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29udGVudCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwgYWN0aXZlIiBpZD0ic2V0dGluZ3MtdGFiLWFib3V0IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTUxNzNcdTRFOEUgV2FuZDwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjdFNVx1NzcwQlx1NzI0OFx1NjcyQ1x1NEZFMVx1NjA2Rlx1MzAwMVx1NjZGNFx1NjVCMFx1NzJCNlx1NjAwMVx1NTQ4QyBBbmRyb2lkIEFwcCBcdThGREVcdTYzQTVcdTY1QjlcdTVGMEZcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtaW5mbyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NTMwNVx1NTQwRDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1wa2ctbmFtZSI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXZlcnNpb24iPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPk5vZGUuanMgXHU4OTgxXHU2QzQyPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLW5vZGUtcmVxIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTRFRDNcdTVFOTNcdTU3MzBcdTU3NDA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtcmVwby11cmwiPjxhIGhyZWY9IiMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4tPC9hPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiIgaWQ9IndlYi11cGRhdGUtc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1UoImdsb2JlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+V2ViIFx1N0FFRjwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTZENEZcdTg5QzhcdTU2NjhcdThCQkZcdTk1RUVcdTc2ODRcdTY3MERcdTUyQTFcdTcyNDhcdTY3MkM8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtYWN0aW9ucyI+PGJ1dHRvbiBpZD0iY2hlY2stdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSI+XHU2OEMwXHU2N0U1XHU2NkY0XHU2NUIwPC9idXR0b24+PGJ1dHRvbiBpZD0iZG8tdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIj5cdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDg8L2J1dHRvbj48YnV0dG9uIGlkPSJkby1yZXN0YXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc3VjY2VzcyBidG4tc20gaGlkZGVuIj5cdTkxQ0RcdTU0MkZcdTc1MUZcdTY1NDg8L2J1dHRvbj48L2Rpdj48cCBpZD0idXBkYXRlLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5CZXRhIFx1OTAxQVx1OTA1Mzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NjZGNFx1NjVCMFx1NTIzMCBucG0gYmV0YSBcdTcyNDhcdTY3MkNcdUZGMDh0YWcgKyBjb21taXQgXHU1QzNFXHU2ODA3XHVGRjA5XHVGRjBDXHU1QzFEXHU5QzlDXHU2NUIwXHU1MjlGXHU4MEZEXHVGRjBDXHU1M0VGXHU4MEZEXHU0RTBEXHU3QTMzXHU1QjlBXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJiZXRhLWNoYW5uZWwtdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDhcdTY3MkNcdTVDMDZcdTgxRUFcdTUyQThcdTRFMEJcdThGN0RcdTVCODlcdTg4QzVcdTVFNzZcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24gaGlkZGVuIiBpZD0iYW5kcm9pZC1hcGstc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1UoInNtYXJ0cGhvbmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5BbmRyb2lkIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgQVBLIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1jdXJyZW50LXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWN1cnJlbnQiPi08L3NwYW4+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1naXRodWIiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtZ2l0aHViLWFway1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWxvY2FsLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTY3MkNcdTU3MzBcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1hcGstYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWF1dG8tdXBkYXRlLXJvdyIgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3cgaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyIgaWQ9ImFuZHJvaWQtYXV0by11cGRhdGUtaGludCI+XHU2OEMwXHU2RDRCXHU1MjMwXHU2NUIwXHU3MjQ4IEFQSyBcdTY1RjZcdTgxRUFcdTUyQThcdTYyQzlcdThENzdcdTRFMEJcdThGN0RcdUZGMENcdTVCODlcdTg4QzVcdTRFQ0RcdTk3MDBcdTU3MjhcdTdDRkJcdTdFREZcdTRFMkRcdTc4NkVcdThCQTRcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLWFway10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PHAgaWQ9ImFuZHJvaWQtYXBrLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIGhpZGRlbiIgaWQ9Im1hY29zLWRtZy1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVSgiZGVza3RvcCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPm1hY09TIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgRE1HIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctY3VycmVudC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NUY1M1x1NTI0RFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctY3VycmVudCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctZ2l0aHViIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWdpdGh1Yi1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctbG9jYWwtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcyQ1x1NTczMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1yb3ciIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93IGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiIGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1oaW50Ij5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDggRE1HIFx1NUMwNlx1ODFFQVx1NTJBOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NjMwMlx1OEY3RFx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48cCBpZD0ibWFjb3MtZG1nLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIiBpZD0iYW5kcm9pZC1jb25uZWN0LXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytVKCJsaW5rIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+QXBwIFx1OEZERVx1NjNBNVx1NzgwMTwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTdDOThcdThEMzRcdTUyMzAgQW5kcm9pZCBBcHAgXHU1MzczXHU1M0VGXHU4MUVBXHU1MkE4XHU4RkRFXHU2M0E1XHVGRjBDXHU2NUUwXHU5NzAwXHU1QkM2XHU3ODAxXHVGRjFCXHU2NTM5XHU1QkM2XHU3ODAxXHU1NDBFXHU1OTMxXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtdXJsLWJveCI+PGNvZGUgaWQ9ImFuZHJvaWQtY29ubmVjdC1jb2RlIiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC11cmwtdGV4dCI+LTwvY29kZT48YnV0dG9uIGlkPSJjb3B5LWNvbm5lY3QtY29kZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTkwRFx1NTIzNlx1OEZERVx1NjNBNVx1NzgwMSI+XHU1OTBEXHU1MjM2PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1ib3giPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItd3JhcCIgaWQ9ImFuZHJvaWQtY29ubmVjdC1xci13cmFwIiB0aXRsZT0iXHU3MEI5XHU1MUZCXHU2NTNFXHU1OTI3Ij48Y2FudmFzIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXIiIHdpZHRoPSIxODAiIGhlaWdodD0iMTgwIj48L2NhbnZhcz48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWVtcHR5IiBpZD0iYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5Ij5cdTc1MUZcdTYyMTBcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj48cCBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1oaW50Ij5cdTc1MjggV2FuZCBBcHAgXHU2MjZCXHU0RTAwXHU2MjZCXHVGRjBDXHU1MzczXHU1M0VGXHU0RTAwXHU5NTJFXHU1ODZCXHU1MTY1XHU2NzBEXHU1MkExXHU1NjY4XHU1NzMwXHU1NzQwXHU0RTBFXHU4RkRFXHU2M0E1XHU3ODAxXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLW5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1OTAxQVx1NzdFNTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1OEJCRVx1N0Y2RVx1NjNEMFx1NzkzQVx1OTdGM1x1MzAwMVx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NTQ4Q1x1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNVx1NzY4NFx1ODg0Q1x1NEUzQVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1UoImJlbGwiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTkwMUFcdTc3RTVcdTUwNEZcdTU5N0Q8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2M0QwXHU3OTNBXHU5N0YzXHU0RTBFXHU1RTk0XHU3NTI4XHU1MTg1XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtc291bmQiPlx1NjRBRFx1NjUzRVx1NjNEMFx1NzkzQVx1OTdGMzwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTkxQ0RcdTg5ODFcdTkwMUFcdTc3RTVcdUZGMDhcdTcyNDhcdTY3MkNcdTY2RjRcdTY1QjBcdTMwMDFcdTY3NDNcdTk2NTBcdTdCNDlcdTVGODVcdTdCNDlcdUZGMDlcdTY1RjZcdTY0QURcdTY1M0VcdTY3RDRcdTU0OENcdTYzRDBcdTc5M0FcdTk3RjNcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXNvdW5kIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXJhbmdlLXJvdyIgaWQ9Im5vdGlmLXZvbHVtZS1maWVsZCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS1sYWJlbCIgZm9yPSJjZmctbm90aWYtdm9sdW1lIj5cdTk3RjNcdTkxQ0Y8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXZvbHVtZSIgdHlwZT0icmFuZ2UiIG1pbj0iMCIgbWF4PSIxMDAiIHN0ZXA9IjUiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZSIgLz48c3BhbiBpZD0iY2ZnLW5vdGlmLXZvbHVtZS12YWwiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS12YWx1ZSI+ODAlPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtYnViYmxlIj5cdTVFOTRcdTc1MjhcdTUxODVcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTE8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NzI4XHU5ODc1XHU5NzYyXHU5ODc2XHU5MEU4XHU1RjM5XHU1MUZBXHU2RDZFXHU1MkE4XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1ub3RpZi1idWJibGUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmF0aXZlLXNvdW5kLXNlY3Rpb24iIGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytVKCJtdXNpYyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1OTRDM1x1NThGMDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQW5kcm9pZCBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTRGN0ZcdTc1MjhcdTc2ODRcdTk0QzNcdTU4RjA8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uIj48c2VsZWN0IGlkPSJuYXRpdmUtc291bmQtc2VsZWN0IiBjbGFzcz0iZmllbGQtaW5wdXQgZmllbGQtc2VsZWN0Ij48L3NlbGVjdD48YnV0dG9uIGlkPSJuYXRpdmUtc291bmQtcHJldmlldyIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBidG4td2l0aC1pY29uIiB0eXBlPSJidXR0b24iPicrVSgicGxheSIse3NpemU6MTEsc3Ryb2tlV2lkdGg6MS44LGZpbGw6ImN1cnJlbnRDb2xvciJ9KSsnPHNwYW4+XHU4QkQ1XHU1NDJDPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im5hdGl2ZS1oYXB0aWMtc2VjdGlvbiIgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1UoInZpYnJhdGUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTg5RTZcdTYxMUZcdTUzQ0RcdTk5ODg8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2MzA5XHU5NEFFXHU2NENEXHU0RjVDXHU1NDhDXHU0RUZCXHU1MkExXHU1QjhDXHU2MjEwXHU2NUY2XHU2M0QwXHU0RjlCXHU2MzJGXHU1MkE4XHU1M0NEXHU5OTg4PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaGFwdGljLWVuYWJsZWQiPlx1NTQyRlx1NzUyOFx1ODlFNlx1NjExRlx1NTNDRFx1OTk4ODwvbGFiZWw+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWhhcHRpYy1lbmFibGVkIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVSgiZ2xvYmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTZENEZcdTg5QzhcdTU2NjhcdTkwMUFcdTc3RTU8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2NzY1XHU4MUVBXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU0RTJEXHU1RkMzXHU3Njg0XHU1RjM5XHU3QTk3PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTYzODhcdTY3NDNcdTcyQjZcdTYwMDE8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ibm90aWZpY2F0aW9uLXBlcm1pc3Npb24tc3RhdHVzIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTYzODhcdTY3NDNcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVzZXQtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1OTFDRFx1NjVCMFx1NjM4OFx1Njc0MzwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDFcdTkwMDFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj4xMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDE8L2J1dHRvbj48L2Rpdj48cCBpZD0ibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItZ2VuZXJhbCIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU5MTREXHU3RjZFXHU2NzBEXHU1MkExXHU4RkRFXHU2M0E1XHUzMDAxXHU5RUQ4XHU4QkE0XHU2QTIxXHU1NzhCXHUzMDAxXHU2MjY3XHU4ODRDXHU2NUI5XHU1RjBGXHU1NDhDXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWhvc3QiPlx1NzZEMVx1NTQyQ1x1NTczMFx1NTc0MCAoaG9zdCk8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLWhvc3QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9IjEyNy4wLjAuMSIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctcG9ydCI+XHU3QUVGXHU1M0UzIChwb3J0KTwvbGFiZWw+PGlucHV0IGlkPSJjZmctcG9ydCIgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSI4NDQzIiBtaW49IjEiIG1heD0iNjU1MzUiIC8+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1odHRwcyI+XHU1NDJGXHU3NTI4IEhUVFBTPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NEY3Rlx1NzUyOFx1ODFFQVx1N0I3RVx1NTQwRFx1OEJDMVx1NEU2Nlx1NTJBMFx1NUJDNlx1NkQ0Rlx1ODlDOFx1NTY2OFx1NTIzMFx1NjcwRFx1NTJBMVx1NzY4NFx1OEZERVx1NjNBNVx1RkYwQ2hvc3QgXHU0RTNBXHU5NzVFIDEyNy4wLjAuMSBcdTY1RjZcdTVFRkFcdThCQUVcdTVGMDBcdTU0MkZcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWh0dHBzIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLW1vZGUiPlx1OUVEOFx1OEJBNFx1NjI2N1x1ODg0Q1x1NkEyMVx1NUYwRjwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLW1vZGUiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iZGVmYXVsdCI+ZGVmYXVsdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFzc2lzdCI+YXNzaXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQiPmFnZW50PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQtbWF4Ij5hZ2VudC1tYXg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRvLWVkaXQiPmF1dG8tZWRpdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZ1bGwtYWNjZXNzIj5mdWxsLWFjY2Vzczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im5hdGl2ZSI+bmF0aXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibWFuYWdlZCI+bWFuYWdlZDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1sYW5ndWFnZSI+XHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctbGFuZ3VhZ2UiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iIj5cdTgxRUFcdTUyQThcdUZGMDhcdTRFMERcdTYzMDdcdTVCOUFcdUZGMDk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTRFMkRcdTY1ODciPlx1NEUyRFx1NjU4Nzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVuZ2xpc2giPkVuZ2xpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTY1RTVcdTY3MkNcdThBOUUiPlx1NjVFNVx1NjcyQ1x1OEE5RTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1RDU1Q1x1QUQ2RFx1QzVCNCI+XHVENTVDXHVBRDZEXHVDNUI0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRXNwYVx4RjFvbCI+RXNwYVx4RjFvbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZyYW5ceEU3YWlzIj5GcmFuXHhFN2Fpczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRldXRzY2giPkRldXRzY2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzkiPlx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJmaWVsZC1oaW50IiBzdHlsZT0ibWFyZ2luLXRvcDotNHB4OyI+XHU4QkJFXHU3RjZFXHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwXHU1NDBFXHVGRjBDQ2xhdWRlIFx1NUMwNlx1NUMzRFx1OTFDRlx1NEY3Rlx1NzUyOFx1NjMwN1x1NUI5QVx1OEJFRFx1OEEwMFx1NTZERVx1NTkwRFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctc3RydWN0dXJlZC1ydW5uZXIiPlx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERCBSdW5uZXI8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJzZGsiPlNES1x1RkYwOEBhbnRocm9waWMtYWkvY2xhdWRlLWFnZW50LXNka1x1RkYwQ1x1OUVEOFx1OEJBNFx1RkYwOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNsaSI+Q0xJXHVGRjA4c3Bhd24gY2xhdWRlIC1wXHVGRjA5PC9vcHRpb24+PC9zZWxlY3Q+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjRweDsiPlNESyBcdTZBMjFcdTVGMEZcdTRGN0ZcdTc1MjhcdTVCOThcdTY1QjkgQWdlbnQgU0RLIFx1NjZGRlx1NEVFMyBDTEkgc3VicHJvY2Vzc1x1RkYwQ1x1NjNBNVx1NTNFM1x1NjZGNFx1NjU3NFx1NkQwMVx1RkYwQ1x1NTI5Rlx1ODBGRFx1N0I0OVx1NEVGN1x1MzAwMlx1NEZERFx1NUI1OFx1NTQwRVx1NUJGOVx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1N0FDQlx1NTM3M1x1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWluaGVyaXQtZW52Ij5cdTdFRTdcdTYyN0ZcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0Y8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NDJGXHU1MkE4IFBUWSAvIFx1N0VEM1x1Njc4NFx1NTMxNlx1NUI1MFx1OEZEQlx1N0EwQlx1NjVGNlx1RkYwQ1x1NjI4QVx1NUY1M1x1NTI0RFx1NjcwRFx1NTJBMVx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1MzAwMlx1NTE3M1x1OTVFRFx1NTQwRVx1NUI1MFx1OEZEQlx1N0EwQlx1NEVDNVx1ODNCN1x1NUY5N1x1NjcwMFx1NUMwRlx1NTNFRlx1NzUyOFx1NzNBRlx1NTg4M1x1RkYwOFBBVEgvSE9NRS9TSEVMTC9MQU5HL1RFUk0gXHU3QjQ5XHVGRjA5XHVGRjBDXHU1M0VGXHU3NTI4XHU0RThFXHU5Njk0XHU3OUJCIEFQSSBrZXkgXHU3QjQ5XHU2NTRGXHU2MTFGXHU1MUVEXHU2MzZFXHUzMDAyPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1hc2lkZSI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJjZmctdmlldy1lbnYtYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU1QjlFXHU5NjQ1XHU0RjFBXHU2Q0U4XHU1MTY1XHU1MjMwXHU1QjUwXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGIj5cdTY3RTVcdTc3MEI8L2J1dHRvbj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaW5oZXJpdC1lbnYiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PHNlY3Rpb24gY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQiIGFyaWEtbGFiZWxsZWRieT0ic2V0dGluZ3MtbW9kZWwtY2FyZC10aXRsZSI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGluZyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrVSgiY3B1Iix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxkaXY+PGg0IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLXRpdGxlIiBpZD0ic2V0dGluZ3MtbW9kZWwtY2FyZC10aXRsZSI+XHU5RUQ4XHU4QkE0XHU2QTIxXHU1NzhCPC9oND48cCBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1kZXNjIj5cdTRFQ0VcdTVERjJcdTY4QzBcdTZENEJcdTUyMTdcdTg4NjhcdTRFMkRcdTkwMDlcdTYyRTlcdUZGMENcdTYyMTZcdTc2RjRcdTYzQTVcdThGOTNcdTUxNjVcdTgxRUFcdTVCOUFcdTRFNDlcdTZBMjFcdTU3OEJcdTU0MERcdTc5RjAgLyBJRFx1MzAwMjwvcD48L2Rpdj48L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gc2V0dGluZ3MtbW9kZWwtcmVmcmVzaCIgdGl0bGU9Ilx1OTFDRFx1NjVCMFx1NjhDMFx1NkQ0QiBDbGF1ZGUgXHU0RTBFIENvZGV4IFx1NkEyMVx1NTc4QiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIwIDExYTguMSA4LjEgMCAwIDAtMTUuNS0yTTQgNHY1aDUiLz48cGF0aCBkPSJNNCAxM2E4LjEgOC4xIDAgMCAwIDE1LjUgMk0yMCAyMHYtNWgtNSIvPjwvc3ZnPjxzcGFuPlx1NTIzN1x1NjVCMFx1NTIxN1x1ODg2ODwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1ncmlkIj48ZGl2IGNsYXNzPSJmaWVsZCBzZXR0aW5ncy1tb2RlbC1maWVsZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93Ij48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1kZWZhdWx0LW1vZGVsIj5DbGF1ZGU8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciI+Q2xhdWRlIENvZGU8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3giIGRhdGEtcHJvdmlkZXI9ImNsYXVkZSI+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtY29udHJvbCI+PGlucHV0IGlkPSJjZmctZGVmYXVsdC1tb2RlbCIgY2xhc3M9ImZpZWxkLWlucHV0IG1vZGVsLWNvbWJvYm94LWlucHV0IiB0eXBlPSJ0ZXh0IiByb2xlPSJjb21ib2JveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJjZmctZGVmYXVsdC1tb2RlbC1saXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im5vbmUiIGF1dG9jb3JyZWN0PSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0iXHU4RERGXHU5NjhGIENsYXVkZSBDb2RlIFx1OUVEOFx1OEJBNCIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU1QzU1XHU1RjAwIENsYXVkZSBcdTZBMjFcdTU3OEJcdTUyMTdcdTg4NjgiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03IDEwIDUgNSA1LTUiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJjZmctZGVmYXVsdC1tb2RlbC1saXN0Ym94IiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtbWVudSBoaWRkZW4iIHJvbGU9Imxpc3Rib3giIGFyaWEtbGFiZWw9IkNsYXVkZSBcdTZBMjFcdTU3OEIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1zdGF0dXMiIGRhdGEtbW9kZWwtc3RhdHVzPSJjbGF1ZGUiPlx1OERERlx1OTY4RiBDTEkgXHU5RUQ4XHU4QkE0PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1oZWxwIj5cdTRGMUFcdTUzOUZcdTY4MzdcdTRGMjBcdTdFRDkgPGNvZGU+LS1tb2RlbDwvY29kZT48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQgc2V0dGluZ3MtbW9kZWwtZmllbGQiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWxhYmVsLXJvdyI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCI+Q29kZXg8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciI+Q29kZXggQ0xJPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGVsLWNvbWJvYm94IiBkYXRhLXByb3ZpZGVyPSJjb2RleCI+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtY29udHJvbCI+PGlucHV0IGlkPSJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIgY2xhc3M9ImZpZWxkLWlucHV0IG1vZGVsLWNvbWJvYm94LWlucHV0IiB0eXBlPSJ0ZXh0IiByb2xlPSJjb21ib2JveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJjZmctZGVmYXVsdC1jb2RleC1tb2RlbC1saXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im5vbmUiIGF1dG9jb3JyZWN0PSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0iXHU4RERGXHU5NjhGIENvZGV4IFx1OUVEOFx1OEJBNCIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU1QzU1XHU1RjAwIENvZGV4IFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcgMTAgNSA1IDUtNSIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsLWxpc3Rib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveC1tZW51IGhpZGRlbiIgcm9sZT0ibGlzdGJveCIgYXJpYS1sYWJlbD0iQ29kZXggXHU2QTIxXHU1NzhCIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1tZXRhIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtc3RhdHVzIiBkYXRhLW1vZGVsLXN0YXR1cz0iY29kZXgiPlx1OERERlx1OTY4RiBDTEkgXHU5RUQ4XHU4QkE0PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1oZWxwIj5cdTc1NTlcdTdBN0FcdTUyMTlcdTRFMERcdTRGMjBcdTZBMjFcdTU3OEJcdTUzQzJcdTY1NzA8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQgc2V0dGluZ3MtbW9kZWwtdmVyc2lvbiIgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLXZlcnNpb24iPlx1NkEyMVx1NTc4Qlx1NTQwRFx1NzlGMFx1NEVDNVx1NTcyOFx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1NjVGNlx1NEY1Q1x1NEUzQVx1OUVEOFx1OEJBNFx1NTAzQ1x1RkYxQlx1OEZEMFx1ODg0Q1x1NEUyRFx1NzY4NFx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERFx1NEVDRFx1NTNFRlx1NTM1NVx1NzJFQ1x1NTIwN1x1NjM2Mlx1MzAwMjwvcD48L3NlY3Rpb24+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWN3ZCI+XHU5RUQ4XHU4QkE0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1jd2QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9ob21lL3VzZXIiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLXNoZWxsIj5TaGVsbDwvbGFiZWw+PGlucHV0IGlkPSJjZmctc2hlbGwiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9iaW4vYmFzaCIgLz48L2Rpdj4nKyh0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmdldEFwcEljb249PSJmdW5jdGlvbiI/JzxkaXYgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWJsb2NrIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVSgicGFsZXR0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1NUU5NFx1NzUyOFx1NTZGRVx1NjgwNzwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQXBwIFx1NTQyRlx1NTJBOFx1NTY2OFx1NTZGRVx1NjgwN1x1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0ODwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhcHAtaWNvbi1waWNrZXIiIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1waWNrZXIiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249InNob3J0aGFpciI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXByZXZpZXciPicrVGkudXNlcisnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1sYWJlbCI+XHU4RDVCXHU1MzVBXHU4NjRFXHU1OTlFPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249ImdhcmZpZWxkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcHJldmlldyI+JytUaS5hc3Npc3RhbnQrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tbGFiZWwiPlx1NTJFNFx1NTJCM1x1NTIxRFx1NEU4Qzwvc3Bhbj48L2J1dHRvbj48L2Rpdj48cCBpZD0iYXBwLWljb24tbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+JzoiIikrJzxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtY29uZmlnLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NEZERFx1NUI1OFx1OTE0RFx1N0Y2RTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJjb25maWctbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIHNldHRpbmdzLXN0YXR1cy1tZXNzYWdlIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItc2VjdXJpdHkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NUI4OVx1NTE2ODwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1N0JBMVx1NzQwNlx1NzY3Qlx1NUY1NVx1NUJDNlx1NzgwMVx1NEUwRSBTU0wgXHU4QkMxXHU0RTY2XHVGRjBDXHU2NTRGXHU2MTFGXHU1M0Q4XHU2NkY0XHU4QkY3XHU3ODZFXHU4QkE0XHU1NDBFXHU1MThEXHU0RkREXHU1QjU4XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQiPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrVSgibG9jayIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQtdGV4dCI+PGgzIGNsYXNzPSJzZXR0aW5ncy1jYXJkLXRpdGxlIj5cdTRGRUVcdTY1MzlcdTVCQzZcdTc4MDE8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiPlx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYxQlx1NEZERFx1NUI1OFx1NTQwRVx1NEUwQlx1NkIyMVx1NzY3Qlx1NUY1NVx1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48L2Rpdj48Zm9ybSBpZD0iY2hhbmdlLXBhc3N3b3JkLWZvcm0iIGF1dG9jb21wbGV0ZT0ib24iIG9uc3VibWl0PSJyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiIHZhbHVlPSJ3YW5kIiB0YWJpbmRleD0iLTEiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lIiByZWFkb25seSAvPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9Im5ldy1wYXNzd29yZCI+XHU2NUIwXHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9Im5ldy1wYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NjVCMFx1NUJDNlx1NzgwMVx1RkYwOFx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYwOSIgYXV0b2NvbXBsZXRlPSJuZXctcGFzc3dvcmQiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY29uZmlybS1wYXNzd29yZCI+XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9ImNvbmZpcm0tcGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdTUxOERcdTZCMjFcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDEiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiAvPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0ic2F2ZS1wYXNzd29yZC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCI+XHU0RkREXHU1QjU4XHU1QkM2XHU3ODAxPC9idXR0b24+PC9kaXY+PHAgaWQ9InNldHRpbmdzLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48cCBpZD0ic2V0dGluZ3Mtc3VjY2VzcyIgY2xhc3M9ImhpbnQgc2V0dGluZ3Mtc3VjY2Vzcy1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZm9ybT48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK1UoImNlcnRpZmljYXRlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZC10ZXh0Ij48aDMgY2xhc3M9InNldHRpbmdzLWNhcmQtdGl0bGUiPlNTTCBcdThCQzFcdTRFNjY8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiIGlkPSJjZXJ0LXN0YXR1cyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQta2V5LWZpbGUiPlx1NzlDMVx1OTRBNVx1NjU4N1x1NEVGNiAoLmtleSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQta2V5LWZpbGUiIHR5cGU9ImZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci1pbnB1dCIgYWNjZXB0PSIua2V5LC5wZW0iIC8+PGxhYmVsIGZvcj0iY2VydC1rZXktZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLXRyaWdnZXIiPjxzdmcgY2xhc3M9ImZpbGUtcGlja2VyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIxLjQ0IDExLjA1bC05LjE5IDkuMTlhNiA2IDAgMCAxLTguNDktOC40OWw5LjE5LTkuMTlhNCA0IDAgMCAxIDUuNjYgNS42NmwtOS4yIDkuMTlhMiAyIDAgMCAxLTIuODMtMi44M2w4LjQ5LTguNDgiPjwvcGF0aD48L3N2Zz48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbGFiZWwiPlx1OTAwOVx1NjJFOVx1NzlDMVx1OTRBNTwvc3Bhbj48L2xhYmVsPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1uYW1lIiBkYXRhLWRlZmF1bHQ9Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiI+XHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQtY2VydC1maWxlIj5cdThCQzFcdTRFNjZcdTY1ODdcdTRFRjYgKC5jcnQvLnBlbSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQtY2VydC1maWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZS1waWNrZXItaW5wdXQiIGFjY2VwdD0iLmNydCwucGVtLC5jZXJ0IiAvPjxsYWJlbCBmb3I9ImNlcnQtY2VydC1maWxlIiBjbGFzcz0iZmlsZS1waWNrZXItdHJpZ2dlciI+PHN2ZyBjbGFzcz0iZmlsZS1waWNrZXItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiPjwvcG9seWxpbmU+PC9zdmc+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLWxhYmVsIj5cdTkwMDlcdTYyRTlcdThCQzFcdTRFNjY8L3NwYW4+PC9sYWJlbD48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbmFtZSIgZGF0YS1kZWZhdWx0PSJcdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjYiPlx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWFjdGlvbnMiPjxidXR0b24gaWQ9InVwbG9hZC1jZXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU0RTBBXHU0RjIwXHU4QkMxXHU0RTY2PC9idXR0b24+PC9kaXY+PHAgaWQ9ImNlcnQtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItcHJlc2V0cyIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU1RjUzXHU1MjREXHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFXHU0RUNFIGNvbmZpZy5qc29uIFx1OEJGQlx1NTNENlx1RkYwQ1x1NTNFRlx1NTcyOFx1OEZEOVx1OTFDQ1x1NUZFQlx1OTAxRlx1NjdFNVx1NzcwQlx1NURGMlx1NjcwOVx1OTE0RFx1N0Y2RVx1MzAwMjwvcD48L2Rpdj48ZGl2IGlkPSJwcmVzZXRzLWxpc3QiIGNsYXNzPSJwcmVzZXRzLWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NjYzRVx1NzkzQTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjNBN1x1NTIzNlx1ODA0QVx1NTkyOVx1ODlDNlx1NTZGRVx1OTFDQ1x1NEUwRFx1NTQwQ1x1NTM2MVx1NzI0N1x1N0M3Qlx1NTc4Qlx1NzY4NFx1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXRpdGxlIj5cdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDE8L2Rpdj48cCBjbGFzcz0iaGludCBzZXR0aW5ncy1pbmxpbmUtaGludCI+XHU4QkJFXHU3RjZFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU4OUM2XHU1NkZFXHU0RTJEXHU1NDA0XHU3QzdCXHU1MzYxXHU3MjQ3XHU3Njg0XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwL1x1NjI5OFx1NTNFMFx1NzJCNlx1NjAwMVx1MzAwMlx1NjI0Qlx1NTJBOFx1NjRDRFx1NEY1Q1x1NzY4NFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1NEYxOFx1NTE0OFx1NEU4RVx1NkI2NFx1OUVEOFx1OEJBNFx1OEJCRVx1N0Y2RVx1MzAwMjwvcD48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1saXN0Ij48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWVkaXQiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdGMTZcdThGOTFcdTUzNjFcdTcyNDcgKEVkaXQvV3JpdGUpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtZWRpdCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU2NTg3XHU0RUY2XHU3RjE2XHU4RjkxXHU1NDhDXHU1MTk5XHU1MTY1XHU2NENEXHU0RjVDXHU3Njg0IGRpZmYgXHU4OUM2XHU1NkZFPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWlubGluZSI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NTE4NVx1ODA1NFx1NURFNVx1NTE3NyAoUmVhZC9HbG9iL0dyZXApPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtaW5saW5lIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTY1ODdcdTRFRjZcdThCRkJcdTUzRDZcdTMwMDFcdTY0MUNcdTdEMjJcdTdCNDlcdTVERTVcdTUxNzdcdTc2ODRcdTdFRDNcdTY3OUM8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdGVybWluYWwiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdFQzhcdTdBRUZcdThGOTNcdTUxRkEgKEJhc2gpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGVybWluYWwiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NTQ3RFx1NEVFNFx1ODg0Q1x1NjI2N1x1ODg0Q1x1N0VEM1x1Njc5QzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10aGlua2luZyI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NjAxRFx1ODAwM1x1OEZDN1x1N0EwQiAoVGhpbmtpbmcpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGhpbmtpbmciIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPkNsYXVkZSBcdTc2ODRcdTYwMURcdTgwMDNcdThGQzdcdTdBMEJcdTU3NTc8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdG9vbGdyb3VwIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU1REU1XHU1MTc3XHU3RUM0PC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdG9vbGdyb3VwIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdThGREVcdTdFRURcdTU0MENcdTdDN0JcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTc2ODRcdTYyOThcdTUzRTBcdTdFQzQ8L2Rpdj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtZGlzcGxheS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTRGRERcdTVCNThcdTY2M0VcdTc5M0FcdThCQkVcdTdGNkU8L2J1dHRvbj48L2Rpdj48cCBpZD0iZGlzcGxheS1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4gc2V0dGluZ3Mtc3RhdHVzLW1lc3NhZ2UiPjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBqZyhlKXt2YXIgdD0kZSgpO3JldHVybiBlLnNlbGVjdGVkSWQ/IiI6JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdCIgaWQ9ImZvbGRlci1waWNrZXItY29udGFpbmVyIj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93Ij48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb24iPicrVSgiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZm9sZGVyLXBpY2tlci1pbnB1dCIgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dCIgdmFsdWU9IicrcCh0KSsnIiBwbGFjZWhvbGRlcj0iXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1IiBhdXRvY29tcGxldGU9Im9mZiIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImZvbGRlci1waWNrZXItdG9nZ2xlIiBjbGFzcz0iZm9sZGVyLXBpY2tlci10b2dnbGUiIHRpdGxlPSJcdTkwMDlcdTYyRTlcdTc2RUVcdTVGNTUiIGFyaWEtbGFiZWw9Ilx1OTAwOVx1NjJFOVx1NzZFRVx1NUY1NSI+JytVKCJjaGV2cm9uRG93biIse3NpemU6MTEsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiBjbGFzcz0iZm9sZGVyLXBpY2tlci1kcm9wZG93biBoaWRkZW4iPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvdG1wIj5cdTRFMzRcdTY1RjY8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvIj5cdTY4MzlcdTc2RUVcdTVGNTU8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gUmcoZSl7dmFyIHQ9JGUoKSxuPXQ7aWYoZS5zZWxlY3RlZElkKXt2YXIgaT1lLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLnNlbGVjdGVkSWR9KTtuPWkmJmkuY3dkP2kuY3dkOnR9cmV0dXJuJzxkaXYgY2xhc3M9IndvcmtpbmctZGlyLWluZGljYXRvciIgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvciIgdGl0bGU9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcChuKSsnIj48c3BhbiBjbGFzcz0id29ya2luZy1kaXItaW5kaWNhdG9yLWljb24iPicrVSgiZm9sZGVyIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjd9KSsiPC9zcGFuPiIrdnQobiwid29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiLCcgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoIicpKyI8L2Rpdj4ifWZ1bmN0aW9uIGhvKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUubm93KCksbj1uZXcgRGF0ZShlKS5nZXRUaW1lKCksaT1NYXRoLm1heCgwLHQtbiksYT1NYXRoLmZsb29yKGkvMWUzKTtpZihhPDYwKXJldHVybiJcdTUyMUFcdTUyMUEiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTw2MClyZXR1cm4gdSsiXHU1MjA2XHU5NDlGXHU1MjREIjt2YXIgbz1NYXRoLmZsb29yKHUvNjApO2lmKG88MjQpcmV0dXJuIG8rIlx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIHM9TWF0aC5mbG9vcihvLzI0KTtyZXR1cm4gczwzMD9zKyJcdTU5MjlcdTUyNEQiOk1hdGguZmxvb3Iocy8zMCkrIlx1NEUyQVx1NjcwOFx1NTI0RCJ9ZnVuY3Rpb24geW8oZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9RGF0ZS5ub3coKSxuPW5ldyBEYXRlKGUpLmdldFRpbWUoKSxpPU1hdGgubWF4KDAsdC1uKSxhPU1hdGguZmxvb3IoaS8xZTMpLHU9TWF0aC5mbG9vcihhLzYwKSxvPU1hdGguZmxvb3IodS82MCk7cmV0dXJuIG8+MD9vKyJoIisodSU2MD4wP3UlNjArIm0iOiIiKTp1PjA/dSsibSI6YSsicyJ9ZnVuY3Rpb24gZnIoZSl7aWYoIWUpcmV0dXJuIiI7aWYoZS5wZXJtaXNzaW9uQmxvY2tlZClyZXR1cm4iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KXJldHVybiJcdTYwMURcdTgwMDNcdTRFMkQiO3ZhciB0PXtpZGxlOiJcdTdBN0FcdTk1RjIiLHN0b3BwZWQ6Ilx1NURGMlx1NTA1Q1x1NkI2MiIscnVubmluZzoiXHU4RkQwXHU4ODRDXHU0RTJEIixleGl0ZWQ6Ilx1NURGMlx1OTAwMFx1NTFGQSIsZmFpbGVkOiJcdTVERjJcdTU5MzFcdThEMjUifTtyZXR1cm4gdFtlLnN0YXR1c118fGUuc3RhdHVzfWZ1bmN0aW9uIGJvKGUpe3JldHVybiBlP2UucGVybWlzc2lvbkJsb2NrZWQ/InBlcm1pc3Npb24tYmxvY2tlZCI6dWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodD8icnVubmluZyI6ZS5zdGF0dXN8fCIiOiIifWZ1bmN0aW9uIGljKGUpe3JldHVybiBlP2UucGVybWlzc2lvbkJsb2NrZWQ/Ilx1N0I0OVx1NUY4NVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyI6ZS5zdGF0dXMhPT0icnVubmluZyI/IiI6ZS5pZD09PXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50VGFzayYmci5jdXJyZW50VGFzay50aXRsZT9yLmN1cnJlbnRUYXNrLnRpdGxlOmUuY3VycmVudFRhc2tUaXRsZT9lLmN1cnJlbnRUYXNrVGl0bGU6IiI6IiJ9ZnVuY3Rpb24gYWMoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKCEoIWl8fGkucm9sZSE9PSJ1c2VyIikpe3ZhciBhPWkuY29udGVudDtpZih0eXBlb2YgYT09InN0cmluZyIpe3ZhciB1PWEudHJpbSgpO2lmKHUpcmV0dXJuIHU7Y29udGludWV9aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXTtpZighKCFzfHxzLnR5cGUhPT0idGV4dCJ8fCFzLnRleHQpJiYhcy5fX3F1ZXVlZCl7dmFyIGw9U3RyaW5nKHMudGV4dCkudHJpbSgpO2lmKGwpcmV0dXJuIGx9fX19cmV0dXJuIiJ9ZnVuY3Rpb24gdWMoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKGkucm9sZT09PSJhc3Npc3RhbnQiKXtmb3IodmFyIGE9aS5jb250ZW50fHxbXSx1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XS50eXBlPT09InRleHQiJiZhW3VdLnRleHQmJmFbdV0udGV4dC50cmltKCkpe3ZhciBvPWFbdV0udGV4dC50cmltKCk7bz1vLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpO3ZhciBzPW8uc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIHMuc2xpY2UoMCwxMDApfX19cmV0dXJuIiJ9ZnVuY3Rpb24gb2MoZSx0KXt2YXIgbj1lLmlkPT09ci5zZWxlY3RlZElkPyIgYWN0aXZlIjoiIixpPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZyLnNlbGVjdGVkU2Vzc2lvbklkc1tlLmlkXT8iIHNlbGVjdGVkIjoiIixhPWZyKGUpLHU9Ym8oZSksbz0iIixzPVNvKCJzZXNzaW9ucyIsZS5pZCwiXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREICIrZS5jb21tYW5kKTtpZigoZS5wcm92aWRlcj09PSJjbGF1ZGUifHxlLnByb3ZpZGVyPT09ImNvZGV4IikmJmUuY2xhdWRlU2Vzc2lvbklkJiZlLnN0YXR1cyE9PSJydW5uaW5nIiYmIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiYhdWUoZSkpe3ZhciBsPWUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTYwNjJcdTU5MEQgQ29kZXggXHU0RjFBXHU4QkREIjoiXHU2MDYyXHU1OTBEIENsYXVkZSBcdTRGMUFcdThCREQiO289JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biIgZGF0YS1hY3Rpb249InJlc3VtZSIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSInK2wrJyIgdGl0bGU9IicrbCsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xIDR2Nmg2Ii8+PHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMTA1LjY0LTExLjM2TDMgMTAiLz48L3N2Zz48L2J1dHRvbj4nfXZhciBkPSFyLnNlc3Npb25zTWFuYWdlTW9kZSYmZS53b3JrdHJlZUVuYWJsZWQmJmUud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZlLndvcmt0cmVlLnBhdGgsZj1lLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2VkIiYmZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExLGM9ZS5zdGF0dXM9PT0icnVubmluZyJ8fGUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnaW5nIix2PWY/Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSI6Ilx1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRiIsaD1kJiZlLndvcmt0cmVlTWVyZ2VTdGF0dXMhPT0ibWVyZ2VkIj8nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIG1lcmdlLWJ0biIgZGF0YS1hY3Rpb249Indvcmt0cmVlLW1lcmdlIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IicrcCh2KSsnIiB0aXRsZT0iJytwKHYpKyciJysoYz8iIGRpc2FibGVkIjoiIikrJz48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik03IDdoMTAiLz48cGF0aCBkPSJNNyAxMmgxMCIvPjxwYXRoIGQ9Ik03IDE3aDEwIi8+PHBhdGggZD0iTTUgN2wtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0xOSAxNWwyIDItMiAyIi8+PC9zdmc+PC9idXR0b24+JzpmPyc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gbWVyZ2UtYnRuIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtY2xlYW51cCIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiIHRpdGxlPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JzoiIixnPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gZGVsZXRlLWJ0biIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCIgdGl0bGU9Ilx1NTIyMFx1OTY2NFx1NkI2NFx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nLG09JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWFjdGlvbnMiPicrbytoK2crIjwvc3Bhbj4iLHk9ZS50aXRsZXx8ZS5zdW1tYXJ5Pyc8ZGl2IGNsYXNzPSJzZXNzaW9uLXRpdGxlIj4nK3AoZS50aXRsZXx8ZS5zdW1tYXJ5KSsiPC9kaXY+IjonPGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIj4nK3AoZS5yZXN1bWVkRnJvbVNlc3Npb25JZD9lLmNvbW1hbmQucmVwbGFjZSgvXHMrLS1yZXN1bWVccytcUysvLCIiKS5yZXBsYWNlKC9ccytyZXN1bWVccytbMC05YS1mLV0rLywiIik6ZS5jb21tYW5kKSsiPC9kaXY+Iix3PWljKGUpLEU9IiI7ZS5zdGF0dXM9PT0icnVubmluZyImJncmJihFPSc8ZGl2IGNsYXNzPSJzZXNzaW9uLWFjdGl2aXR5Ij4nK3AodykrIjwvZGl2PiIpO3ZhciBCPWUuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9InNlc3Npb24tZGVzY3JpcHRpb24iPicrcChlLmRlc2NyaXB0aW9uKSsiPC9kaXY+IjoiIixEPSIiO2Uuc3RhdHVzPT09InJ1bm5pbmciP0Q9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSJcdTVERjJcdThGRDBcdTg4NEMgJytwKHlvKGUuc3RhcnRlZEF0KSkrJyI+JytwKHlvKGUuc3RhcnRlZEF0KSkrIjwvc3Bhbj4iOmUuZW5kZWRBdD9EPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iJytwKG5ldyBEYXRlKGUuZW5kZWRBdCkudG9Mb2NhbGVTdHJpbmcoKSkrJyI+JytwKGhvKGUuZW5kZWRBdCkpKyI8L3NwYW4+IjplLnN0YXJ0ZWRBdCYmKEQ9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSInK3AobmV3IERhdGUoZS5zdGFydGVkQXQpLnRvTG9jYWxlU3RyaW5nKCkpKyciPicrcChobyhlLnN0YXJ0ZWRBdCkpKyI8L3NwYW4+Iik7dmFyIEY9RW8oZSksST1lLmF1dG9SZWNvdmVyZWQ/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXJlY292ZXJ5LWhpbnQiPlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRDwvc3Bhbj4nOiIiLEw9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxkaXYgY2xhc3M9InNlc3Npb24tc3dpcGUtYmciIGFyaWEtaGlkZGVuPSJ0cnVlIj48YnV0dG9uIGNsYXNzPSJzZXNzaW9uLXN3aXBlLWRlbGV0ZSIgZGF0YS1hY3Rpb249InN3aXBlLWRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjxzcGFuPlx1NTIyMFx1OTY2NDwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0nK24raSsnIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj4nK0wrJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK3MrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi10aXRsZS1yb3ciPicreStEKyI8L2Rpdj4iK0IrRSsnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMgJyt1KyciPicrcChhKSsiPC9zcGFuPiIrRitJKyI8L2Rpdj48L2Rpdj4iK20rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gc2MoZSl7aWYoIWV8fCFlLndvcmt0cmVlTWVyZ2VTdGF0dXMpcmV0dXJuIiI7dmFyIHQ9e3JlYWR5OiJcdTUzRUZcdTU0MDhcdTVFNzYiLGNoZWNraW5nOiJcdTY4QzBcdTY3RTVcdTRFMkQiLG1lcmdpbmc6Ilx1NTQwOFx1NUU3Nlx1NEUyRCIsbWVyZ2VkOmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMT8iXHU1REYyXHU1NDA4XHU1RTc2XHU1Rjg1XHU2RTA1XHU3NDA2IjoiXHU1REYyXHU1NDA4XHU1RTc2IixmYWlsZWQ6Ilx1NTQwOFx1NUU3Nlx1NTkzMVx1OEQyNSJ9O3JldHVybiB0W2Uud29ya3RyZWVNZXJnZVN0YXR1c118fCIifWZ1bmN0aW9uIGxjKGUpe3ZhciB0PXNjKGUpO3JldHVybiB0Pyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHdvcmt0cmVlLW1lcmdlICcrcChlLndvcmt0cmVlTWVyZ2VTdGF0dXN8fCIiKSsnIj4nK3AodCkrIjwvc3Bhbj4iOiIifWZ1bmN0aW9uIEVvKGUpe2lmKCFlfHwhZS53b3JrdHJlZUVuYWJsZWQpcmV0dXJuIiI7dmFyIHQ9W107ZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJnQucHVzaCgiV29ya3RyZWU6ICIrZS53b3JrdHJlZS5icmFuY2gpLGUud29ya3RyZWUmJmUud29ya3RyZWUucGF0aCYmdC5wdXNoKCJQYXRoOiAiK2Uud29ya3RyZWUucGF0aCk7dmFyIG49dC5sZW5ndGg+MD8nIHRpdGxlPSInK3AodC5qb2luKGAKYCkpKyciJzoiIjtyZXR1cm4nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSB3b3JrdHJlZSInK24rIj5Xb3JrdHJlZTwvc3Bhbj4iK2xjKGUpfWZ1bmN0aW9uIFdnKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXVlKGUpPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHN0cnVjdHVyZWQiPlN0cnVjdHVyZWQ8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSBwdHkiPlBUWTwvc3Bhbj4nO3JldHVybiB0K0VvKGUpfWZ1bmN0aW9uIGRjKGUpe3ZhciB0PVt7aWQ6Im1hbmFnZWQiLGxhYmVsOiJcdTYyNThcdTdCQTEiLGRlc2M6Ilx1NTE2OFx1ODFFQVx1NTJBOFx1NUI4Q1x1NjIxMFx1NEVGQlx1NTJBMSJ9LHtpZDoiZnVsbC1hY2Nlc3MiLGxhYmVsOiJcdTUxNjhcdTY3NDNcdTk2NTAiLGRlc2M6Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1Njc0M1x1OTY1MCJ9LHtpZDoiYXV0by1lZGl0IixsYWJlbDoiXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIixkZXNjOiJcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTRGRUVcdTY1MzkifSx7aWQ6ImRlZmF1bHQiLGxhYmVsOiJcdTY4MDdcdTUxQzYiLGRlc2M6Ilx1OTAxMFx1NkI2NVx1Nzg2RVx1OEJBNFx1NjRDRFx1NEY1QyJ9LHtpZDoibmF0aXZlIixsYWJlbDoiXHU1MzlGXHU3NTFGIixkZXNjOiJcdTUzOUZcdTc1MUZcdTdFRDNcdTY3ODRcdTUzMTZcdThGOTNcdTUxRkEifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQnK2krJyIgZGF0YS1tb2RlPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBjYyhlKXt2YXIgdD1be2lkOiJjbGF1ZGUiLGxhYmVsOiJDbGF1ZGUiLGRlc2M6Ilx1NUI4Q1x1NjU3NCBDbGF1ZGUgXHU0RjFBXHU4QkREXHU4MEZEXHU1MjlCIn0se2lkOiJjb2RleCIsbGFiZWw6IkNvZGV4IixkZXNjOiJcdTdFRDNcdTY3ODRcdTUzMTYgSlNPTkwgXHU2MjE2IFBUWSBcdTRGMUFcdThCREQifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgcHJvdmlkZXItY2FyZCcraSsnIiBkYXRhLXByb3ZpZGVyPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBmYyhlKXt2YXIgdD1be2lkOiJzdHJ1Y3R1cmVkIixsYWJlbDoiXHU3RUQzXHU2Nzg0XHU1MzE2IixkZXNjOiJcdTY2N0FcdTgwRkRcdTVCRjlcdThCRERcdTZBMjFcdTVGMEYifSx7aWQ6InB0eSIsbGFiZWw6IlBUWSIsZGVzYzoiXHU0RUE0XHU0RTkyXHU1RjBGXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiIsYT0iIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgc2Vzc2lvbi1raW5kLWNhcmQnK2krYSsnIiBkYXRhLXNlc3Npb24ta2luZD0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gemcoZSl7cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIiBmb3I9InNlc3Npb24td29ya3RyZWUtdG9nZ2xlIiB0aXRsZT0iXHU0RTNBXHU4QkU1XHU0RjFBXHU4QkREXHU1MjFCXHU1RUZBXHU3MkVDXHU3QUNCXHU3Njg0IGdpdCB3b3JrdHJlZSBcdTUyMDZcdTY1MkYiPjxzdmcgY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjYiIHI9IjIuMiIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMi4yIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOCIgcj0iMi4yIi8+PHBhdGggZD0iTTYgOC4ydjMuNGEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4LjIiLz48cGF0aCBkPSJNMTIgMTMuNnYyLjIiLz48L3N2Zz48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWxhYmVsIj5Xb3JrdHJlZSBcdTZBMjFcdTVGMEY8L3NwYW4+PGlucHV0IGlkPSJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIicrKGU/IiBjaGVja2VkIjoiIikrJyAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiBGbyhlKXt2YXIgdD1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIjtyZXR1cm4gZT09PSJzdHJ1Y3R1cmVkIj90PT09ImNvZGV4Ij8iQ29kZXggSlNPTkwgXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjoiXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHUzMDAxXHU2RDQxXHU1RjBGXHU4RjkzXHU1MUZBXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjp0PT09ImNvZGV4Ij8iQ29kZXggUFRZIFx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERFx1RkYxQnRlcm1pbmFsIFx1NjYyRlx1NTM5Rlx1NTlDQlx1OEY5M1x1NTFGQVx1RkYwQ2NoYXQgXHU2NjJGXHU4OUUzXHU2NzkwXHU1NDBFXHU3Njg0XHU5NjA1XHU4QkZCXHU4OUM2XHU1NkZFXHUzMDAyIjoiXHU1MzlGXHU1OUNCIFBUWSBcdTdFQzhcdTdBRUZcdTRGMUFcdThCRERcdUZGMENcdTY1MkZcdTYzMDFcdTYzMDFcdTdFRURcdTRFQTRcdTRFOTJcdTMwMDFcdTdFQzhcdTdBRUZcdTg5QzZcdTU2RkVcdTU0OENcdTY3NDNcdTk2NTBcdTZENDFcdTMwMDIifWZ1bmN0aW9uIHBjKCl7dmFyIGU9WGUoKSx0PWt0KGUsci5tb2RlVmFsdWV8fHIuY2hhdE1vZGV8fCJkZWZhdWx0Iiksbj1yLnNlc3Npb25DcmVhdGVLaW5kfHwic3RydWN0dXJlZCIsaT1yLnNlc3Npb25DcmVhdGVXb3JrdHJlZT09PSEwO3JldHVybic8c2VjdGlvbiBpZD0ic2Vzc2lvbi1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiI+PGRpdiBjbGFzcz0ibW9kYWwgc2Vzc2lvbi1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NjVCMFx1NUJGOVx1OEJERDwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTU0MkZcdTUyQTggQ2xhdWRlIFx1NjIxNiBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdTkwMDlcdTYyRTkgcHJvdmlkZXJcdTMwMDFcdTRGMUFcdThCRERcdTdDN0JcdTU3OEJcdTMwMDFcdTZBMjFcdTVGMEZcdTU0OENcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2UtbW9kYWwtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiPlByb3ZpZGVyPC9sYWJlbD48ZGl2IGlkPSJwcm92aWRlci1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrY2MoZSkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTRGMUFcdThCRERcdTdDN0JcdTU3OEI8L2xhYmVsPjxkaXYgaWQ9InNlc3Npb24ta2luZC1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrZmMobikrJzwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLWhpbnQgc2Vzc2lvbi1raW5kLWhpbnQtcm93Ij48c3BhbiBpZD0ic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIj4nK3AoRm8obikpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY3dkIj5cdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L2xhYmVsPjxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLXdyYXAiPjxpbnB1dCBpZD0iY3dkIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIGF1dG9jb21wbGV0ZT0ib2ZmIiBwbGFjZWhvbGRlcj0iJytwKCRlKCkpKyciIC8+PGRpdiBpZD0iY3dkLXN1Z2dlc3Rpb25zIiBjbGFzcz0ic3VnZ2VzdGlvbnMgaGlkZGVuIj48L2Rpdj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCI+XHU1MjFCXHU1RUZBXHU1MjREXHU1MTQ4XHU3ODZFXHU4QkE0XHU3NkVFXHU1RjU1XHVGRjFCXHU3NTU5XHU3QTdBXHU1MjE5XHU0RjdGXHU3NTI4XHU0RTBBXHU2NUI5XHU3NkVFXHU1RjU1XHVGRjBDXHU2NTJGXHU2MzAxXHU4REVGXHU1Rjg0XHU4MUVBXHU1MkE4XHU4ODY1XHU1MTY4XHUzMDAyPC9wPjxkaXYgaWQ9InJlY2VudC1wYXRocy1idWJibGVzIiBjbGFzcz0icmVjZW50LXBhdGhzLWJ1YmJsZXMiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTZBMjFcdTVGMEY8L2xhYmVsPjxkaXYgaWQ9Im1vZGUtY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK2RjKHQpKyc8L2Rpdj48cCBpZD0ibW9kZS1kZXNjcmlwdGlvbiIgY2xhc3M9ImZpZWxkLWhpbnQiPicrcChtbChlLHQpKSsnPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+PGJ1dHRvbiBpZD0icnVuLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERDwvYnV0dG9uPjxwIGlkPSJtb2RhbC1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gd28oKXt2YXIgZT1bXTtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuc3RhcnRlZEF0P25ldyBEYXRlKHQuc3RhcnRlZEF0KS5nZXRUaW1lKCk6MDtlLnB1c2goe2tpbmQ6InNlc3Npb24iLHJlZjp0LHQ6aXNGaW5pdGUobik/bjowfSl9KSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJnByKCkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LnRpbWVzdGFtcD9uZXcgRGF0ZSh0LnRpbWVzdGFtcCkuZ2V0VGltZSgpOk51bWJlcih0Lm10aW1lTXMpfHwwO2lzRmluaXRlKG4pfHwobj1OdW1iZXIodC5tdGltZU1zKXx8MCksZS5wdXNoKHtraW5kOiJoaXN0b3J5IixyZWY6dCx0Om59KX0pLHIuY29kZXhIaXN0b3J5TG9hZGVkJiZmYSgpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC50aW1lc3RhbXA/bmV3IERhdGUodC50aW1lc3RhbXApLmdldFRpbWUoKTpOdW1iZXIodC5tdGltZU1zKXx8MDtlLnB1c2goe2tpbmQ6ImNvZGV4IixyZWY6dCx0OmlzRmluaXRlKG4pP246MH0pfSksZS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4udC10LnR9KSxlfWZ1bmN0aW9uIHZjKCl7dmFyIGU9W107ZS5wdXNoKENvKCkpO3ZhciB0PXdvKCk7cmV0dXJuIHQubGVuZ3RoPT09MD9DbygpKyc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdThGRDhcdTZDQTFcdTY3MDlcdTRGMUFcdThCRERcdThCQjBcdTVGNTU8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+JzooZS5wdXNoKGhjKHQpKSxlLmpvaW4oIiIpKX1mdW5jdGlvbiBtYygpe3JldHVybiEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZH1mdW5jdGlvbiBnYygpe3ZhciBlPXdvKCksdD1lLm1hcChmdW5jdGlvbihpLGEpe3ZhciB1PWErMTtpZihpLmtpbmQ9PT0ic2Vzc2lvbiIpe3ZhciBvPWkucmVmLHM9by5pZD09PXIuc2VsZWN0ZWRJZD8iIGFjdGl2ZSI6IiIsbD1vLnRpdGxlfHxvLmRlc2NyaXB0aW9ufHxvLnN1bW1hcnl8fG8uY29tbWFuZHx8Ilx1NEYxQVx1OEJERCAiK3U7cmV0dXJuJzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUnK3MrJyIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1zZXNzaW9uLWlkPSInK3Aoby5pZCkrJyIgdGl0bGU9IicrcChsKSsnIj4nK3UrIjwvYnV0dG9uPiJ9dmFyIGQ9aS5yZWYsZj1kLmZpcnN0VXNlck1lc3NhZ2V8fCIoXHU3QTdBXHU0RjFBXHU4QkREKSIsYz1mKyIgXHhCNyAiK0lvKGQudGltZXN0YW1wKTtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic2lkZWJhci1jb2xsYXBzZWQtdGlsZSIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1oaXN0b3J5LWlkPSInK3AoZC5jbGF1ZGVTZXNzaW9uSWQpKyciIGRhdGEtcHJvdmlkZXI9IicrcChpLmtpbmQ9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIpKyciIGRhdGEtY3dkPSInK3AoZC5jd2R8fCIiKSsnIiB0aXRsZT0iJytwKGMpKyciPicrdSsiPC9idXR0b24+In0pLmpvaW4oIiIpLG49JzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUgYWRkIiB0eXBlPSJidXR0b24iIGRhdGEtY29sbGFwc2VkLW5ldy1zZXNzaW9uPSIxIiB0aXRsZT0iXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREIiBhcmlhLWxhYmVsPSJcdTY1QjBcdTVFRkFcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGVzIj4nK3QrbisiPC9kaXY+In1mdW5jdGlvbiBjYSgpe3JldHVybiBtYygpP2djKCk6dmMoKX1mdW5jdGlvbiBDbygpe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYmFyIj48c3BhbiBjbGFzcz0ic2lkZWJhci1pbnRybyI+XHU1MTY4XHU5MEU4XHU0RjFBXHU4QkREPC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIHNlc3Npb24tbWFuYWdlLXRvZ2dsZSIgZGF0YS1hY3Rpb249InRvZ2dsZS1tYW5hZ2UtbW9kZSIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDExbDMgM0wyMiA0Ii8+PHBhdGggZD0iTTIxIDEydjdhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExIi8+PC9zdmc+PHNwYW4+XHU3QkExXHU3NDA2PC9zcGFuPjwvYnV0dG9uPjwvZGl2Pic7dmFyIGU9Qm8oKS5sZW5ndGgsdD1EbygpLmxlbmd0aCxuPWtvKCkubGVuZ3RoLGk9ZSt0K24sYT1pPjAsdT1iYygpLG89dT4wJiZpPj11LHM9bz8iXHU1M0Q2XHU2RDg4XHU1MTY4XHU5MDA5IjoiXHU1MTY4XHU5MDA5IixsPW8/ImNsZWFyLXNlbGVjdGlvbiI6InNlbGVjdC1hbGwtdmlzaWJsZSIsZD11PT09MD8iIGRpc2FibGVkIjoiIixmPSc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1leGl0IiBkYXRhLWFjdGlvbj0idG9nZ2xlLW1hbmFnZS1tb2RlIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPicsYz1hPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY291bnQiPicraSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsIj5cdTVERjJcdTkwMDlcdTYyRTk8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWwgbXV0ZWQiPlx1OTAwOVx1NjJFOVx1ODk4MVx1N0JBMVx1NzQwNlx1NzY4NFx1OTg3OVx1NzZFRTwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1iYXIgYWN0aXZlIj4nK2YrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnkiPicrYysnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4teHMiIGRhdGEtYWN0aW9uPSInK2wrJyIgdHlwZT0iYnV0dG9uIicrZCsiPiIrcysnPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgYnRuLXhzIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlbGVjdGVkIiB0eXBlPSJidXR0b24iJysoYT8iIjoiIGRpc2FibGVkIikrIj5cdTUyMjBcdTk2NjQiKyhhPyIgIitpOiIiKSsiPC9idXR0b24+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBoYyhlKXt2YXIgdD0nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAiPic7cmV0dXJuIHQrPWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmtpbmQ9PT0ic2Vzc2lvbiI/b2Mobi5yZWYsInNlc3Npb25zIik6Q2Mobi5yZWYsbi5raW5kKX0pLmpvaW4oIiIpLHQrPSI8L3NlY3Rpb24+Iix0fWZ1bmN0aW9uIHByKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0NvbnZlcnNhdGlvbiYmIXQubWFuYWdlZEJ5V2FuZCYmIWUuaGFzKHQuY2xhdWRlU2Vzc2lvbklkKX0pfWZ1bmN0aW9uIEJvKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRTZXNzaW9uSWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkU2Vzc2lvbklkc1tlXX0pfWZ1bmN0aW9uIERvKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1tlXX0pfWZ1bmN0aW9uIGtvKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHMpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hIXIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHNbZV19KX1mdW5jdGlvbiBpaSgpe3Iuc2VsZWN0ZWRTZXNzaW9uSWRzPXt9LHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzPXt9LHIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM9e319ZnVuY3Rpb24geWMoZSl7ci5zZXNzaW9uc01hbmFnZU1vZGU9dHlwZW9mIGU9PSJib29sZWFuIj9lOiFyLnNlc3Npb25zTWFuYWdlTW9kZSxyLnNlc3Npb25zTWFuYWdlTW9kZSYmKCFyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fCFyLmNvZGV4SGlzdG9yeUxvYWRlZCkmJmFpKCkudGhlbihmZSksci5zZXNzaW9uc01hbmFnZU1vZGV8fChpaSgpLFRyKCkpLGZlKCl9ZnVuY3Rpb24gQW8oKXtyZXR1cm4gci5zZXNzaW9ucy5zbGljZSgpfWZ1bmN0aW9uIGJjKCl7cmV0dXJuIEFvKCkubGVuZ3RoK3ByKCkubGVuZ3RoK2ZhKCkubGVuZ3RofWZ1bmN0aW9uIHhvKCl7aWYoIXIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8IXIuY29kZXhIaXN0b3J5TG9hZGVkKXthaSgpLnRoZW4oeG8pO3JldHVybn12YXIgZT17fTtBbygpLmZvckVhY2goZnVuY3Rpb24oaSl7ZVtpLmlkXT0hMH0pO3ZhciB0PXt9O3ByKCkuZm9yRWFjaChmdW5jdGlvbihpKXt0W2kuY2xhdWRlU2Vzc2lvbklkXT0hMH0pO3ZhciBuPXt9O2ZhKCkuZm9yRWFjaChmdW5jdGlvbihpKXtuW2kuY2xhdWRlU2Vzc2lvbklkXT0hMH0pLHIuc2VsZWN0ZWRTZXNzaW9uSWRzPWUsci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM9dCxyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzPW4sZmUoKX1mdW5jdGlvbiBFYygpe2lpKCksZmUoKX1mdW5jdGlvbiB2cihlLHQpe2lmKCEoIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlfHwhdCkpe3ZhciBuPWU9PT0iaGlzdG9yeSI/ci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM6ZT09PSJjb2RleCI/ci5zZWxlY3RlZENvZGV4SGlzdG9yeUlkczpyLnNlbGVjdGVkU2Vzc2lvbklkcztuW3RdP2RlbGV0ZSBuW3RdOm5bdF09ITAsZmUoKX19ZnVuY3Rpb24gU28oZSx0LG4pe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4iIjt2YXIgaT1lPT09Imhpc3RvcnkiPyEhci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbdF06ZT09PSJjb2RleCI/ISFyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzW3RdOiEhci5zZWxlY3RlZFNlc3Npb25JZHNbdF07cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY2hlY2siPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1hY3Rpb249InRvZ2dsZS1zZWxlY3Rpb24iIGRhdGEta2luZD0iJytwKGUpKyciIGRhdGEtaWQ9IicrcCh0KSsnIicrKGk/IiBjaGVja2VkIjoiIikrJyBhcmlhLWxhYmVsPSInK3AobikrJyI+PHNwYW4+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiBTbihlLHQpe3JldHVybiBBYShlLE9iamVjdC5hc3NpZ24oe3R5cGU6ImRhbmdlciIsZGFuZ2VyOiEwLG9rTGFiZWw6Ilx1NTIyMFx1OTY2NCJ9LHR8fHt9KSl9ZnVuY3Rpb24gRmMoKXt2YXIgZT1CbygpLHQ9RG8oKSxuPWtvKCksaT1lLmxlbmd0aCt0Lmxlbmd0aCtuLmxlbmd0aDtpJiZTbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5ICIraSsiIFx1OTg3OVx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDkgIitpKyIgXHU5ODc5In0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSl7dmFyIHU9W107ZS5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL3Nlc3Npb25zL2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZHM6ZX0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KSksdC5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6dH0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KSksbi5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkvYmF0Y2gtZGVsZXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2xhdWRlU2Vzc2lvbklkczpufSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmpzb24oKX0pKSxQcm9taXNlLmFsbCh1KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuaW5kZXhPZihyLnNlbGVjdGVkSWQpIT09LTEmJihyLnNlbGVjdGVkSWQ9bnVsbCxFZSgpKSxyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gdC5pbmRleE9mKG8uY2xhdWRlU2Vzc2lvbklkKT09PS0xfSksci5jb2RleEhpc3Rvcnk9ci5jb2RleEhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBuLmluZGV4T2Yoby5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxpaSgpLE50KCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtxZShvLCJcdTY1RTBcdTZDRDVcdTYyNzlcdTkxQ0ZcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTk4NzlcdTc2RUVcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIHdjKCl7dmFyIGU9RGF0ZS5ub3coKS04NjRlNSx0PXByKCkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFuLnRpbWVzdGFtcHx8bmV3IERhdGUobi50aW1lc3RhbXApLmdldFRpbWUoKTw9ZX0pO2lmKHQubGVuZ3RoKXJldHVybiBTbigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU1RjUzXHU1MjREXHU2NjNFXHU3OTNBXHU3Njg0ICIrdC5sZW5ndGgrIiBcdTY3NjEgQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTZFMDVcdTdBN0EgQ2xhdWRlIFx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24obil7aWYobil7dmFyIGk9dC5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhdWRlU2Vzc2lvbklkfSk7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6aX0pfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEmJmEuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGEuZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiBpLmluZGV4T2YodS5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxpaSgpLGZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtxZShhLCJcdTY1RTBcdTZDRDVcdTZFMDVcdTdBN0FcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIENjKGUsdCl7dmFyIG49dD09PSJjb2RleCIsaT1uPyJyZXN1bWUtY29kZXgtaGlzdG9yeSI6InJlc3VtZS1oaXN0b3J5IixhPW4/ImRlbGV0ZS1jb2RleC1oaXN0b3J5IjoiZGVsZXRlLWhpc3RvcnkiLHU9bj9yLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzOnIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzLG89ZS5jbGF1ZGVTZXNzaW9uSWQuc2xpY2UoMCw4KSxzPWUuZmlyc3RVc2VyTWVzc2FnZXx8IihcdTdBN0FcdTRGMUFcdThCREQpIixsPUlvKGUudGltZXN0YW1wKSxkPVNvKHQsZS5jbGF1ZGVTZXNzaW9uSWQsIlx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCAiK3MpLGY9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBkZWxldGUtYnRuIiBkYXRhLWFjdGlvbj0iJythKyciIGRhdGEtY2xhdWRlLXNlc3Npb24taWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiIHRpdGxlPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JyxjPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4iIGRhdGEtYWN0aW9uPSInK2krJyIgZGF0YS1jbGF1ZGUtc2Vzc2lvbi1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLWN3ZD0iJytwKGUuY3dkKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERCIgdGl0bGU9IicrKG4/Ilx1NjA2Mlx1NTkwRFx1NkI2NCBDb2RleCBcdTRGMUFcdThCREQiOiJcdTYwNjJcdTU5MERcdTZCNjQgQ2xhdWRlIFx1NEYxQVx1OEJERCIpKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEgNHY2aDYiLz48cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxMDUuNjQtMTEuMzZMMyAxMCIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbScrKHIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZ1W2UuY2xhdWRlU2Vzc2lvbklkXT8iIHNlbGVjdGVkIjoiIikrJyIgZGF0YS1jbGF1ZGUtaGlzdG9yeS1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLXByb3ZpZGVyPSInKyhuPyJjb2RleCI6ImNsYXVkZSIpKyciIGRhdGEtY3dkPSInK3AoZS5jd2QpKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK2QrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIGNsYXVkZS1oaXN0b3J5LXByZXZpZXciPicrcChzKSsnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pZCIgdGl0bGU9IicrcChlLmNsYXVkZVNlc3Npb25JZCkrJyI+JytwKG8pKyI8L3NwYW4+PHNwYW4+IitwKGwpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InNlc3Npb24tYWN0aW9ucyI+JytjK2YrIjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIElvKGUpe2lmKCFlKXJldHVybiIiO3RyeXt2YXIgdD1uZXcgRGF0ZShlKSxuPW5ldyBEYXRlLGk9bi10LGE9TWF0aC5mbG9vcihpLzZlNCk7aWYoYTwxKXJldHVybiJcdTUyMUFcdTUyMUEiO2lmKGE8NjApcmV0dXJuIGErIiBcdTUyMDZcdTk0OUZcdTUyNEQiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTwyNClyZXR1cm4gdSsiIFx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIG89TWF0aC5mbG9vcih1LzI0KTtyZXR1cm4gbzwzMD9vKyIgXHU1OTI5XHU1MjREIjp0LnRvTG9jYWxlRGF0ZVN0cmluZygpfWNhdGNoe3JldHVybiIifX1mdW5jdGlvbiBUbygpe3JldHVybiBmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOltdfSkudGhlbihmdW5jdGlvbihlKXtyLmNsYXVkZUhpc3Rvcnk9ZXx8W10sci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSEwLGZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZD0hMCxyLmNsYXVkZUhpc3Rvcnk9W10sZmUoKX0pfXZhciBtcj1udWxsO2Z1bmN0aW9uIGFpKCl7dmFyIGU9QmMoKTshci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiYhbXImJihtcj1UbygpLnRoZW4oZnVuY3Rpb24oKXttcj1udWxsfSxmdW5jdGlvbigpe21yPW51bGx9KSk7dmFyIHQ9bXJ8fFByb21pc2UucmVzb2x2ZSgpO3JldHVybiBQcm9taXNlLmFsbChbdCxlXSkudGhlbihmdW5jdGlvbigpe30pfWZ1bmN0aW9uIExvKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTpbXX0pLnRoZW4oZnVuY3Rpb24oZSl7ci5jb2RleEhpc3Rvcnk9ZXx8W10sci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAsZmUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAsci5jb2RleEhpc3Rvcnk9W10sZmUoKX0pfXZhciB6bj1udWxsO2Z1bmN0aW9uIEJjKCl7cmV0dXJuIHIuY29kZXhIaXN0b3J5TG9hZGVkP1Byb21pc2UucmVzb2x2ZSgpOnpufHwoem49TG8oKS50aGVuKGZ1bmN0aW9uKCl7em49bnVsbH0sZnVuY3Rpb24oKXt6bj1udWxsfSksem4pfWZ1bmN0aW9uIGZhKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGFzQ29udmVyc2F0aW9uJiYhdC5tYW5hZ2VkQnlXYW5kJiYhZS5oYXModC5jbGF1ZGVTZXNzaW9uSWQpfSl9ZnVuY3Rpb24gTW8oKXtObygpLCF1aSgpJiYoci5wb2xsVGltZXI9c2V0SW50ZXJ2YWwoTnQsMTYwMCkpfXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlc3Npb24tdGltZSIpO2UubGVuZ3RoPjAmJmh1KCl9LDNlNCk7ZnVuY3Rpb24gcGEoKXtyLndzUmVjb25uZWN0VGltZXImJihjbGVhclRpbWVvdXQoci53c1JlY29ubmVjdFRpbWVyKSxyLndzUmVjb25uZWN0VGltZXI9bnVsbCl9dmFyIERjPTFlNCxrYz00ZTQ7ZnVuY3Rpb24gQWMoKXtxbygpLHIud3NIZWFydGJlYXRDaGVja1RpbWVyPXNldEludGVydmFsKE9vLERjKX1mdW5jdGlvbiBxbygpe3Iud3NIZWFydGJlYXRDaGVja1RpbWVyJiYoY2xlYXJJbnRlcnZhbChyLndzSGVhcnRiZWF0Q2hlY2tUaW1lciksci53c0hlYXJ0YmVhdENoZWNrVGltZXI9bnVsbCl9ZnVuY3Rpb24gT28oKXtpZighKCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTikmJnIubGFzdFdzTWVzc2FnZUF0KXt2YXIgZT1EYXRlLm5vdygpLXIubGFzdFdzTWVzc2FnZUF0O2U+a2MmJnZhKCJoZWFydGJlYXQtc3RhbGUtIitNYXRoLnJvdW5kKGUvMWUzKSsicyIpfX1mdW5jdGlvbiB2YShlKXtpZihwYSgpLHIud3Mpe3ZhciB0PXIud3M7dHJ5e3Qub25jbG9zZT1udWxsfWNhdGNoe310cnl7dC5vbmVycm9yPW51bGx9Y2F0Y2h7fXRyeXt0Lm9ubWVzc2FnZT1udWxsfWNhdGNoe310cnl7dC5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9ci53c0Nvbm5lY3RlZD0hMSxyLndzUmVjb25uZWN0QXR0ZW1wdHM9MCx1aShlKX1mdW5jdGlvbiBQbygpe2lmKCFyLndzUmVjb25uZWN0VGltZXImJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBlPXIud3NSZWNvbm5lY3RBdHRlbXB0c3x8MCx0PVs1MDAsMWUzLDJlMyw0ZTMsOGUzXSxuPXRbZTx0Lmxlbmd0aD9lOnQubGVuZ3RoLTFdO3Iud3NSZWNvbm5lY3RBdHRlbXB0cz1lKzEsci53c1JlY29ubmVjdFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLndzUmVjb25uZWN0VGltZXI9bnVsbCxyLmNvbmZpZyYmIXIud3MmJiFkb2N1bWVudC5oaWRkZW4mJnVpKCJiYWNrb2ZmIil9LG4pfX1mdW5jdGlvbiB1aShlKXtpZighd2luZG93LldlYlNvY2tldClyZXR1cm4hMTtpZihyLndzKXt0cnl7ci53cy5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9dmFyIHQ9d2luZG93LmxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IndzczoiOiJ3czoiLG49dCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0KyIvd3MiO3RyeXt2YXIgaT1uZXcgV2ViU29ja2V0KG4pO3JldHVybiBpLm9ub3Blbj1mdW5jdGlvbigpe3Iud3M9aSxyLndzQ29ubmVjdGVkPSEwLHIubGFzdFdzTWVzc2FnZUF0PURhdGUubm93KCksci53c1JlY29ubmVjdEF0dGVtcHRzPTAscGEoKSxyLmxhc3RTZXFCeVNlc3Npb249e30sQWMoKSxPbihyLnNlbGVjdGVkSWQpLFhwKCksRnIoIndzLXJlY29ubmVjdCIpfSxpLm9ubWVzc2FnZT1mdW5jdGlvbihhKXtyLmxhc3RXc01lc3NhZ2VBdD1EYXRlLm5vdygpO3RyeXt2YXIgdT1KU09OLnBhcnNlKGEuZGF0YSk7aWYodSYmdS50eXBlPT09InBpbmciKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJwb25nIix0OnUudH0pKX1jYXRjaHt9cmV0dXJufWlmKHUmJnUudHlwZT09PSJyZXN5bmNfcmVxdWlyZWQiJiZ1LnNlc3Npb25JZCl7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicmVzeW5jIixzZXNzaW9uSWQ6dS5zZXNzaW9uSWR9KSl9Y2F0Y2h7fXIubGFzdFNlcUJ5U2Vzc2lvbnx8KHIubGFzdFNlcUJ5U2Vzc2lvbj17fSksci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT0wO3JldHVybn1pZih1JiYodS50eXBlPT09ImluaXQifHx1LnR5cGU9PT0ib3V0cHV0IikmJnUuc2Vzc2lvbklkJiZ0eXBlb2YgdS5zZXE9PSJudW1iZXIiKXtyLmxhc3RTZXFCeVNlc3Npb258fChyLmxhc3RTZXFCeVNlc3Npb249e30pO3ZhciBvPXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF18fDA7aWYodS50eXBlPT09ImluaXQiKXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXE7ZWxzZSBpZih1LnNlcT09PW8rMSlyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxO2Vsc2UgaWYodS5zZXE+bysxJiZvPjApe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InJlc3luYyIsc2Vzc2lvbklkOnUuc2Vzc2lvbklkfSkpfWNhdGNoe31yLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPTA7cmV0dXJufWVsc2V7aWYodS5zZXE8bylyZXR1cm47ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcX19eGModSl9Y2F0Y2h7fX0saS5vbmNsb3NlPWZ1bmN0aW9uKCl7ci53cz1udWxsLHIud3NDb25uZWN0ZWQ9ITEscW8oKSxQbygpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtpLmNsb3NlKCl9LCEwfWNhdGNoe3JldHVybiBQbygpLCExfX1mdW5jdGlvbiB4YyhlKXtzd2l0Y2goZS50eXBlKXtjYXNlIm91dHB1dCI6aWYoZS5kYXRhJiZlLnNlc3Npb25JZCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiaXNSZXNwb25kaW5nIikmJihyLl9sYXN0SXNSZXNwb25kaW5nfHwoci5fbGFzdElzUmVzcG9uZGluZz17fSksci5fbGFzdElzUmVzcG9uZGluZ1tlLnNlc3Npb25JZF09ISFlLmRhdGEuaXNSZXNwb25kaW5nKSxlLmRhdGEmJmUuc2Vzc2lvbklkKXt2YXIgdD0hIWUuZGF0YS5pbmNyZW1lbnRhbCxuPXtpZDplLnNlc3Npb25JZH0saT0hMTtpZighdCYmZS5kYXRhLm91dHB1dCE9PXZvaWQgMCYmKG4ub3V0cHV0PWUuZGF0YS5vdXRwdXQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIikmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYobi5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYobi5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSksZS5kYXRhLnNlc3Npb25LaW5kJiYobi5zZXNzaW9uS2luZD1lLmRhdGEuc2Vzc2lvbktpbmQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInRpdGxlIikmJihuLnRpdGxlPWUuZGF0YS50aXRsZSxpPSEwKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJkZXNjcmlwdGlvbiIpJiYobi5kZXNjcmlwdGlvbj1lLmRhdGEuZGVzY3JpcHRpb24saT0hMCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3VtbWFyeSIpJiYobi5zdW1tYXJ5PWUuZGF0YS5zdW1tYXJ5KSxlLmRhdGEubWVzc2FnZXMpbi5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG4ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobi5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCk7ZWxzZSBpZih0JiZlLmRhdGEubGFzdE1lc3NhZ2Upe3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSk7aWYoYSl7dmFyIHU9QXJyYXkuaXNBcnJheShhLm1lc3NhZ2VzKT9hLm1lc3NhZ2VzLnNsaWNlKCk6W10sbz1lLmRhdGEubWVzc2FnZUNvdW50fHwwLHM9dHlwZW9mIGEubWVzc2FnZU9mZnNldD09Im51bWJlciI/YS5tZXNzYWdlT2Zmc2V0OjAsbD11Lmxlbmd0aD4wP3VbdS5sZW5ndGgtMV06bnVsbCxkPWUuZGF0YS5sYXN0TWVzc2FnZTtsJiZkLnJvbGUmJmwucm9sZT09PWQucm9sZT91W3UubGVuZ3RoLTFdPXdwKGwsZCk6cyt1Lmxlbmd0aDxvJiZ1LnB1c2goZCksbi5tZXNzYWdlcz11LG8+MCYmKG4ubWVzc2FnZVRvdGFsPW8pfX12YXIgZj10JiZlLmRhdGEuY2h1bmsmJiFlLmRhdGEubGFzdE1lc3NhZ2UmJiFuLm1lc3NhZ2VzJiZuLm91dHB1dD09PXZvaWQgMCYmIWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJiFlLmRhdGEuc2Vzc2lvbktpbmQ7aWYoZil7aWYoZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkIT09dm9pZCAwKXt2YXIgYz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pO2MmJiEhYy5wZXJtaXNzaW9uQmxvY2tlZCE9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQmJihYKG4pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYkdCgpKX19ZWxzZSBpZigobi5vdXRwdXQhPT12b2lkIDB8fG4ubWVzc2FnZXN8fHR8fGUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCE9PXZvaWQgMHx8bi50aXRsZXx8bi5kZXNjcmlwdGlvbikmJihYKG4pLGkmJmh1KCksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgdj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPVdlKHYsWmUodix2Lm91dHB1dCwhMSkpLCR0KCksdi5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5kYXRhLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiP2dyKCk6bWEoKX19ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJnIudGVybWluYWwmJmUuZGF0YSYmKGUuZGF0YS5jaHVuayYmTHAoZS5zZXNzaW9uSWQpPyhyLmxhc3RDaHVua0F0PURhdGUubm93KCksci50ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uc1tlLnNlc3Npb25JZF09ITAsS24oci50ZXJtaW5hbCxlLmRhdGEuY2h1bmspLHIudGVybWluYWxTZXNzaW9uSWQ9ZS5zZXNzaW9uSWQsZS5kYXRhLm91dHB1dD8oci50ZXJtaW5hbE91dHB1dD1ucyh1dShlLmRhdGEub3V0cHV0KSksci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKTpyLnRlcm1pbmFsT3V0cHV0PW5zKChyLnRlcm1pbmFsT3V0cHV0fHwiIikrdXUoZS5kYXRhLmNodW5rKSksZnQoIm91dHB1dCIpLG90KCkpOiFlLmRhdGEuaW5jcmVtZW50YWwmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsIm91dHB1dCIpJiZmaShlLnNlc3Npb25JZCxlLmRhdGEub3V0cHV0fHwiIix7bW9kZToiYXBwZW5kIn0pKTticmVhaztjYXNlInN0YXJ0ZWQiOnluKCk7YnJlYWs7Y2FzZSJlbmRlZCI6e3ZhciBoPWUuZGF0YSYmZS5kYXRhLnN0YXR1cz9lLmRhdGEuc3RhdHVzOiJleGl0ZWQiLGc9ZS5kYXRhJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpPyEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkOiExLG09e2lkOmUuc2Vzc2lvbklkLHN0YXR1czpoLHBlcm1pc3Npb25CbG9ja2VkOmd9O2UuZGF0YSYmZS5kYXRhLm1lc3NhZ2VzJiYobS5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG0ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobS5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCkpLGUuZGF0YSYmZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmKG0uc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpLGUuZGF0YSYmZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzJiYobS5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXMpLFgobSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihHbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIiksbWEoITApKTt2YXIgeT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pLHc9ZS5kYXRhJiZlLmRhdGEuZXhpdENvZGUsRT13IT1udWxsJiZ3IT09MCxCPXkmJnkuc3VtbWFyeXx8IiIsRD15P3VjKHkpOiIiLEY9RT8iXHU0RUZCXHU1MkExXHU1RjAyXHU1RTM4XHU3RUQzXHU2NzVGIjoiXHU0RUZCXHU1MkExXHU1REYyXHU1QjhDXHU2MjEwIixJPSIiO0I/KEk9QixEJiYhRSYmKEkrPWAKYCtEKSk6ST15JiZ5LmNvbW1hbmR8fGUuc2Vzc2lvbklkLFluKEU/ImVycm9yIjoic3VjY2VzcyIpLHpmKGUuc2Vzc2lvbklkLEYsSSksbHMoZS5zZXNzaW9uSWQpLElhKCksKGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkfHxkb2N1bWVudC5oaWRkZW4pJiZ4YSh7dGl0bGU6Rixib2R5OkksdHlwZTpFPyJ3YXJuaW5nIjoic3VjY2VzcyIsaWNvbjpFPyIhIjoiXHUyNzEzIixkdXJhdGlvbjo2ZTMsYWN0aW9uTGFiZWw6Ilx1NjdFNVx1NzcwQiIsYWN0aW9uOmZ1bmN0aW9uKCl7UnQoZS5zZXNzaW9uSWQpfX0pLHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdO3ZhciBMPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSksUD1lLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZD9yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1yLnNlbGVjdGVkSWR9KTpudWxsLFY9ISEoTCYmTC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8UCYmUC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIik7ViYmZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQ/KENzKCksUnUoZS5zZXNzaW9uSWQpKTpWfHwoci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1bXSxSdShyLnNlbGVjdGVkSWQpLHBuKCkpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoVnx8cW4oITEpLHIuY3VycmVudFRhc2s9bnVsbCwkdCgpKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmUHIoKSx5bigpLnRoZW4oZnVuY3Rpb24oKXt5aSgpfSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihWfHxibihlLnNlc3Npb25JZCkpO2JyZWFrfWNhc2UiaW5pdCI6aWYoZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJmUuZGF0YSl7ci5jaGF0UmVuZGVyVGltZXImJihjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLHIuY2hhdFJlbmRlclRpbWVyPW51bGwpLFgoZS5kYXRhKTt2YXIgeD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pO3IuY3VycmVudE1lc3NhZ2VzPVdlKHh8fGUuZGF0YSxaZSh4fHxlLmRhdGEsZS5kYXRhLm91dHB1dCwhMSkpLGdyKCEwKSwkdCgpLEhvKCk7dmFyIGs9ZS5kYXRhLm91dHB1dHx8IiIsVD1yLnRlcm1pbmFsU2Vzc2lvbklkPT09ZS5zZXNzaW9uSWQsTT1yLnRlcm1pbmFsT3V0cHV0fHwiIixKPVQmJk0ubGVuZ3RoPjAmJmsubGVuZ3RoPj1NLmxlbmd0aCYmay5zdGFydHNXaXRoKE0pO0xjKGssZS5zZXNzaW9uSWQsSj8iYXBwZW5kIjoicmVwbGFjZSIpLEZyKCJpbml0Iil9YnJlYWs7Y2FzZSJ1c2FnZSI6YnJlYWs7Y2FzZSJ0YXNrIjplLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudFRhc2s9ZS5kYXRhfHxudWxsLCR0KCkpLFJmKGUuc2Vzc2lvbklkLGUuZGF0YXx8bnVsbCksVGEoZS5zZXNzaW9uSWQpLGh1KCk7YnJlYWs7Y2FzZSJzdGF0dXMiOmlmKGUuc2Vzc2lvbklkJiZlLmRhdGEpe3ZhciB6PXtpZDplLnNlc3Npb25JZH07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3RhdHVzIikmJih6LnN0YXR1cz1lLmRhdGEuc3RhdHVzKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJleGl0Q29kZSIpJiYoei5leGl0Q29kZT1lLmRhdGEuZXhpdENvZGUpLGUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpei5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZTtlbHNlIGlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN0YXR1cyIpKXt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oXyl7cmV0dXJuIF8uaWQ9PT1lLnNlc3Npb25JZH0pO2EmJmEuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJih6LnN0cnVjdHVyZWRTdGF0ZT1PYmplY3QuYXNzaWduKHt9LGEuc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ZS5kYXRhLnN0YXR1cz09PSJydW5uaW5nIn0pKX1pZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYoei5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpJiYoei5wZXJtaXNzaW9uQmxvY2tlZD0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCksZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0KXt6LnBlbmRpbmdFc2NhbGF0aW9uPXtzY29wZTplLmRhdGEucGVybWlzc2lvblJlcXVlc3Quc2NvcGUsdGFyZ2V0OmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC50YXJnZXQscmVhc29uOmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5wcm9tcHR9O3ZhciBHPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSksc2U9RyYmKEcuc3VtbWFyeXx8Ry5jb21tYW5kKXx8ZS5zZXNzaW9uSWQsdGU9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnByb21wdHx8Ilx1OTcwMFx1ODk4MVx1Njc0M1x1OTY1MFx1NUJBMVx1NjI3OSIsWj1lLmRhdGEucGVybWlzc2lvblJlcXVlc3QudGFyZ2V0LHE9c2U7Wj9xKz1gCmArdGUrIiBceEI3ICIrWjpxKz1gCmArdGUsWW4oIm1lZGl1bSIpLFdmKGUuc2Vzc2lvbklkLHEpLGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZ4YSh7dGl0bGU6Ilx1OTcwMFx1ODk4MVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyIsYm9keTpxLHR5cGU6Indhcm5pbmciLGljb246IiEiLGR1cmF0aW9uOjAsYWN0aW9uTGFiZWw6Ilx1NTNCQlx1NTkwNFx1NzQwNiIsYWN0aW9uOmZ1bmN0aW9uKCl7UnQoZS5zZXNzaW9uSWQpfX0pfWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZD09PSExJiYoei5wZW5kaW5nRXNjYWxhdGlvbj1udWxsKSxlLmRhdGEuYXBwcm92YWxTdGF0cyYmKHouYXBwcm92YWxTdGF0cz1lLmRhdGEuYXBwcm92YWxTdGF0cyksWCh6KSxUYShlLnNlc3Npb25JZCksSWEoKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKCR0KCksZS5kYXRhLmFwcHJvdmFsU3RhdHMmJkhvKCksei5zdHJ1Y3R1cmVkU3RhdGUmJih6LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodHx8KEduKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxDcygpKSxtYSgpKSl9YnJlYWs7Y2FzZSJub3RpZmljYXRpb24iOmUuZGF0YSYmKGUuZGF0YS5raW5kPT09InVwZGF0ZSI/b3MoZS5kYXRhLmN1cnJlbnR8fCItIixlLmRhdGEubGF0ZXN0fHwiLSIpOmUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXN0YXJ0Ij9HZihlLmRhdGEuY3VycmVudHx8Ii0iLGUuZGF0YS5sYXRlc3R8fCItIik6KGUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXJlc3RhcnQifHxlLmRhdGEua2luZD09PSJyZXN0YXJ0IikmJmZuKCkpO2JyZWFrfX1mdW5jdGlvbiAkdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjdXJyZW50LXRhc2siKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiKTtpZihlKXt2YXIgaT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpJiZpLnByb3ZpZGVyPT09ImNvZGV4IiYmKHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKSk7dmFyIGE9aSYmaS5wZW5kaW5nRXNjYWxhdGlvbj9pLnBlbmRpbmdFc2NhbGF0aW9uOm51bGwsdT1pJiZpLnByb3ZpZGVyIT09ImNvZGV4Ij9hfHxpLnBlcm1pc3Npb25CbG9ja2VkOiExO2lmKHUpe3ZhciBvPWkmJmkuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztpZihuKWlmKG8pbi50ZXh0Q29udGVudD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU0RTJELi4uIjtlbHNlIGlmKGEpe3ZhciBzPWEucmVhc29ufHwiXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIixsPWEudGFyZ2V0PyIgXHhCNyAiK2EudGFyZ2V0OiIiO24udGV4dENvbnRlbnQ9cytsfWVsc2Ugbi50ZXh0Q29udGVudD0iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2QmJmQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIW8pLGYmJmYuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIW8pfWUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybn1lLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGM9ci5jdXJyZW50VGFzaztjJiZjLnRpdGxlPyhlLnRleHRDb250ZW50PWMudGl0bGUsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk6KGUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSl9fWZ1bmN0aW9uIEhvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLXN0YXRzIik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LmFwcHJvdmFsU3RhdHM7aWYoIW58fG4udG90YWw9PT0wKXtlLmNsYXNzTmFtZT0iYXBwcm92YWwtc3RhdHMgaGlkZGVuIixlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5jbGFzc05hbWU9ImFwcHJvdmFsLXN0YXRzIixlLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWRpdmlkZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIGlkPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgdGl0bGU9Ilx1NjcyQ1x1NkIyMVx1NEYxQVx1OEJERFx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMSI+PHN2ZyBjbGFzcz0iYXBwcm92YWwtc3RhdHMtaWNvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy10b3RhbCI+JytuLnRvdGFsKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCIgaWQ9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMTwvc3Bhbj4nKyhuLmNvbW1hbmQ+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1UoInRlcm1pbmFsIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQ3RFx1NEVFNFx1NjI2N1x1ODg0Qzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uY29tbWFuZCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi5maWxlPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytVKCJlZGl0Iix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uZmlsZSsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi50b29sPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytVKCJ3cmVuY2giLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1MTc2XHU0RUQ2XHU1REU1XHU1MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrbi50b29sKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93IGFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1UoInNpZ21hIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQwOFx1OEJBMTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24udG90YWwrIjwvc3Bhbj48L3NwYW4+PC9zcGFuPiI7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuYXBwcm92YWwtc3RhdHMtYmFkZ2UiKTtpJiYoaS5jbGFzc0xpc3QucmVtb3ZlKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpLGkub2Zmc2V0V2lkdGgsaS5jbGFzc0xpc3QuYWRkKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpKX19ZnVuY3Rpb24gU2MoKXtpZihZbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvYXBwcm92ZS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe0Eobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59WChuKSwkdCgpfSkuY2F0Y2goZnVuY3Rpb24obil7QShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyNzlcdTUxQzZcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gSWMoKXtpZihZbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZGVueS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe0Eobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59WChuKSwkdCgpfSkuY2F0Y2goZnVuY3Rpb24obil7QShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyRDJcdTdFRERcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gVGMoKXtpZihyLnNlbGVjdGVkSWQpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUmJmUucHJvdmlkZXI9PT0iY29kZXgiKXtBKCJDb2RleCBcdTRGMUFcdThCRERcdTU2RkFcdTVCOUFcdTRFRTUgZnVsbC1hY2Nlc3MgUFRZIFx1NTQyRlx1NTJBOFx1RkYwQ1x1NEUwRFx1NjUyRlx1NjMwMVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImluZm8iKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tYXBwcm92ZS10b2dnbGUiKTt0JiYodC5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvdG9nZ2xlLWF1dG8tYXBwcm92ZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtBKG4uZXJyb3IsImVycm9yIik7cmV0dXJufVgobiksX28oKTt2YXIgaT1uLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7QShpPyJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTVGMDBcdTU0MkYiOiJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQiLCJpbmZvIil9KS5jYXRjaChmdW5jdGlvbihuKXtBKG4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dCYmKHQuc3R5bGUub3BhY2l0eT0iIil9KX19ZnVuY3Rpb24gX28oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by1hcHByb3ZlLXRvZ2dsZSIpLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoQWwodCkpe2UmJmUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpO3JldHVybn1pZihlKXt2YXIgbj0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIsaT10JiZ0LmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7aT8oZS5jbGFzc05hbWU9bisiIGFjdGl2ZSIsZS50aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiLGUuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJ0cnVlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTU0MkZcdTc1MjhcdUZGMENcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiKSxlLmlubmVySFRNTD1VKCJzaGllbGRDaGVjayIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU4MUVBXHU1MkE4PC9zcGFuPicpOihlLmNsYXNzTmFtZT1uLGUudGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1RjAwXHU1NDJGIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRFx1RkYwQ1x1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiIpLGUuaW5uZXJIVE1MPVUoInNoaWVsZCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU2MjRCXHU1MkE4PC9zcGFuPicpfX1mdW5jdGlvbiBMYyhlLHQsbil7cmV0dXJuIHIudGVybWluYWw/ZmkodHx8ci5zZWxlY3RlZElkLGUse21vZGU6bnx8ImFwcGVuZCJ9KTohMX1mdW5jdGlvbiBObygpe3IucG9sbFRpbWVyJiYoY2xlYXJJbnRlcnZhbChyLnBvbGxUaW1lciksci5wb2xsVGltZXI9bnVsbCl9ZnVuY3Rpb24gVmcoZSl7ci5jdXJyZW50Vmlldz1lfHwidGVybWluYWwiLHIuY3VycmVudFZpZXchPT0idGVybWluYWwiJiYocW4oITEpLFRzKCkpLFdpKCksUmEoKTt2YXIgdD1EdCgpO3QmJihyLmN1cnJlbnRNZXNzYWdlcz1XZSh0LFplKHQsdC5vdXRwdXQsITApKSksb3QoKSxyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmKFB0KCEwKSxyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pKX1mdW5jdGlvbiBncihlKXtyLnJlbmRlclBlbmRpbmcmJiFlfHwoci5yZW5kZXJQZW5kaW5nPSEwLGU/KEFpKCEwKSxyLnJlbmRlclBlbmRpbmc9ITEpOnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0FpKCExKSxyLnJlbmRlclBlbmRpbmc9ITF9KSl9ci5jaGF0UmVuZGVyVGltZXI9bnVsbDtmdW5jdGlvbiBtYShlKXtpZighKHIuY2hhdFJlbmRlclRpbWVyJiYhZSkpe2lmKHIuY2hhdFJlbmRlclRpbWVyJiZjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLGUpe3IuY2hhdFJlbmRlclRpbWVyPW51bGwsZ3IoKTtyZXR1cm59dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/ZXM6dHM7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPVdlKGEsWmUoYSxhLm91dHB1dCwhMCkpKSxncigpfSxpKX19dmFyIGdhPTAsb2k9MCxqbz0wLGhyPTA7ZnVuY3Rpb24gaGEoKXtyZXR1cm4gd2luZG93Ll9fd2FuZElvc05hdGl2ZT09PSEwfWZ1bmN0aW9uIFJvKGUpe2pvPU1hdGgubWF4KGpvLERhdGUubm93KCkrKGV8fDE4MDApKX1mdW5jdGlvbiBXbyhlLHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3NpKG4pJiZuIT09dHx8Um8oZSl9LDMwKX1mdW5jdGlvbiBNYyhlKXtyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUmJmUuaGVpZ2h0fHwwLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8MCxkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodHx8MCl9ZnVuY3Rpb24gcWMoZSl7dmFyIHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZSYmZS53aWR0aHx8MCx0JiZ0LmNsaWVudFdpZHRofHwwKSxpPU1jKGUpO3JldHVybiFnYXx8TWF0aC5hYnMobi1nYSk+OD8oZ2E9bixvaT1pKTppPm9pJiYob2k9aSksTWF0aC5tYXgoMSxNYXRoLnJvdW5kKG9pfHxpfHwxKSl9ZnVuY3Rpb24gT2MoZSx0LG4saSl7cmV0dXJuIGV8fCFoYSgpPyExOnQ+MHx8aT5uKzF9ZnVuY3Rpb24gVm4oZSl7dmFyIHQ9d2luZG93LnZpc3VhbFZpZXdwb3J0O2lmKHQpe3ZhciBuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZihuLmNsYXNzTGlzdC50b2dnbGUoImlzLWtleWJvYXJkLW9wZW4iLCEhZSksd2luZG93Ll9fd2FuZEltZU5hdGl2ZSl7bi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIiwiMHB4Iiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtaGVpZ2h0IixNYXRoLnJvdW5kKHQuaGVpZ2h0KSsicHgiKTtyZXR1cm59dmFyIGk9cWModCksYT1NYXRoLm1heCgwLE1hdGgucm91bmQodC5vZmZzZXRUb3B8fDApKSx1PU1hdGgubWF4KDEsTWF0aC5yb3VuZCh0LmhlaWdodCkpOyghZSYmaGEoKXx8T2MoZSxhLHUsaSkpJiYoYT0wLHU9TWF0aC5tYXgodSxpKSksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIixhKyJweCIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LWhlaWdodCIsdSsicHgiKSwoZXx8KHdpbmRvdy5zY3JvbGxZfHwwKT4wKSYmSmEoKX19ZnVuY3Rpb24gc2koZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS50YWdOYW1lO2lmKHQ9PT0iVEVYVEFSRUEifHx0PT09IlNFTEVDVCIpcmV0dXJuITA7aWYodD09PSJJTlBVVCIpe3ZhciBuPShlLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwidGV4dCIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIS9eKGJ1dHRvbnxjaGVja2JveHxjb2xvcnxmaWxlfGhpZGRlbnxpbWFnZXxyYWRpb3xyYW5nZXxyZXNldHxzdWJtaXQpJC9pLnRlc3Qobil9cmV0dXJuISFlLmlzQ29udGVudEVkaXRhYmxlfWZ1bmN0aW9uIFBjKCl7aWYoISgidmlzdWFsVmlld3BvcnQiaW4gd2luZG93KXx8d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZClyZXR1cm47d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZD0hMDt2YXIgZT13aW5kb3cudmlzdWFsVmlld3BvcnQsdD1lLmhlaWdodCxuPSExLGk9TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZS53aWR0aHx8MCksYT1NYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApLHU9W107ZnVuY3Rpb24gbygpe3JldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApfWZ1bmN0aW9uIHMoKXt2YXIgZz1NYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aHx8MCxlLndpZHRofHwwKSxtPW8oKTtpZihNYXRoLmFicyhnLWkpPjgpe2k9ZyxhPW07cmV0dXJufW0+YSYmKGE9bSl9ZnVuY3Rpb24gbChnLG0pe3ZhciB5PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdz15PT09Z3x8c2koeSksRT1hLWUuaGVpZ2h0LEI9YS0od2luZG93LmlubmVySGVpZ2h0fHxlLmhlaWdodHx8MCksRD1EYXRlLm5vdygpPGhyO3JldHVybiBEPyEhKHcmJihFPjEyMHx8Qj4xMjApKTohIShtPjgwfHx3JiYoRT4xMjB8fEI+MTIwKXx8biYmKEU+ODB8fG0+MzIpKX1mdW5jdGlvbiBkKCl7dS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2NsZWFyVGltZW91dChnKX0pLHU9WzYwLDE4MCwzNjAsNjIwLDkwMF0ubWFwKGZ1bmN0aW9uKGcpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Vm4obil9LGcpfSl9ZnVuY3Rpb24gZigpe1swLDUwLDEyMCwyMjAsMzYwLDU2MF0uZm9yRWFjaChmdW5jdGlvbihnKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YygpO3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09bSYma2kobSl9LGcpfSl9ZnVuY3Rpb24gYygpe2lmKGUpe3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxtPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtzKCk7dmFyIHk9bChnLG0pLHc9TWF0aC5hYnMoZS5oZWlnaHQtdCk+ODtpZihWbih5KSx5JiYoIW58fHcpJiZndihlLGcpJiZraShnKSwhbiYmeSl7dmFyIEU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fHdhKCk7UWUoImtleWJvYXJkLW9wZW4iLHtmb3JjZVJlcGxheTohMH0pLHdpbmRvdy5fX3dhbmRJbWVOYXRpdmV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtWbighMCl9LDIyMCksZCgpLEUmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZmdCgiZm9yY2UiKX0sMjIwKX1pZihuJiYheSl7dmFyIEI9ISF3aW5kb3cuX193YW5kSW1lTmF0aXZlO0J8fChSbygyMjAwKSxocj1EYXRlLm5vdygpKzEyMDAsVm4oITEpLEphKCkpLGQoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Qnx8KFZuKCExKSxKYSgpKSxRZSgia2V5Ym9hcmQtY2xvc2UiLHtmb3JjZVJlcGxheTohMH0pLGZ0KCJrZXlib2FyZCIpfSwyMDApfXcmJm49PT15JiZRZSgidmlld3BvcnQiKSxuPXksdD1lLmhlaWdodH19dmFyIHY9bnVsbDtmdW5jdGlvbiBoKCl7diE9PW51bGwmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHYpLHY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dj1udWxsLGMoKX0pfWUuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixoKSxlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0idmlzaWJsZSImJihoKCksc2V0VGltZW91dChoLDI0MCksc2V0VGltZW91dChoLDcyMCkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbihnKXtnJiZnLnBlcnNpc3RlZCYmKGgoKSxzZXRUaW1lb3V0KGgsMjQwKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8c2koZy50YXJnZXQpJiYoV28oMTYwMCxnLnRhcmdldCksaGEoKSYmKGhyPU1hdGgubWF4KGhyLERhdGUubm93KCkrMTIwMCkpLHNldFRpbWVvdXQoaCw4MCksc2V0VGltZW91dChoLDQyMCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8IXNpKGcudGFyZ2V0KXx8ZigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtaW9zLWltZS1zdGF0ZSIsZnVuY3Rpb24oZyl7dmFyIG09ZyYmZy5kZXRhaWwmJmcuZGV0YWlsLnN0YXRlO209PT0iaGlkZGVuIiYmKGhyPURhdGUubm93KCkrOTAwKSxmKCksZCgpfSksYygpfWZ1bmN0aW9uIEhjKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1yZXNpemUtaGFuZGxlIix0LmlubmVySFRNTD0iJiM4OTQyOyIsZS5hcHBlbmRDaGlsZCh0KTt2YXIgbj0hMSxpPTAsYT0wO3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbih1KXtuPSEwLGk9dS5jbGllbnRZLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9Im5zLXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIix1LnByZXZlbnREZWZhdWx0KCl9KSxyLnJlc2l6ZU1vdXNlTW92ZT1mdW5jdGlvbih1KXtpZihuKXt2YXIgbz11LmNsaWVudFktaSxzPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK28sd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PXMrInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLFB0KCl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHIucmVzaXplTW91c2VNb3ZlKSxyLnJlc2l6ZU1vdXNlVXA9ZnVuY3Rpb24oKXtuJiYobj0hMSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9IiIsUHQoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHIucmVzaXplTW91c2VVcCksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbih1KXtuPSEwLGk9dS50b3VjaGVzWzBdLmNsaWVudFksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCx1LnByZXZlbnREZWZhdWx0KCl9LHtwYXNzaXZlOiExfSksci5yZXNpemVUb3VjaE1vdmU9ZnVuY3Rpb24odSl7aWYobil7dmFyIG89dS50b3VjaGVzWzBdLmNsaWVudFktaSxzPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK28sd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PXMrInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLFB0KCksdS5wcmV2ZW50RGVmYXVsdCgpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnJlc2l6ZVRvdWNoTW92ZSx7cGFzc2l2ZTohMX0pLHIucmVzaXplVG91Y2hFbmQ9ZnVuY3Rpb24oKXtuJiYobj0hMSxQdCgpKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHIucmVzaXplVG91Y2hFbmQpfX1mdW5jdGlvbiB6bygpe3JldHVybiEhRHQoKX1mdW5jdGlvbiB5YShlKXt2YXIgdD1NYXRoLm1heCh2bix3aW5kb3cuaW5uZXJXaWR0aC1FaS12biksbj1NYXRoLm1heCh2bix3aW5kb3cuaW5uZXJIZWlnaHQtRWktdm4pO3JldHVybntyaWdodDpNYXRoLm1pbihNYXRoLm1heCh2bixlLnJpZ2h0KSx0KSxib3R0b206TWF0aC5taW4oTWF0aC5tYXgodm4sZS5ib3R0b20pLG4pfX1mdW5jdGlvbiBWbygpe2lmKHIuam95c3RpY2tCYWxsRWwpe3ZhciBlPXlhKHIuam95c3RpY2tQb3N8fHtyaWdodDoxOCxib3R0b206OTZ9KTtyLmpveXN0aWNrQmFsbEVsLnN0eWxlLnJpZ2h0PWUucmlnaHQrInB4IixyLmpveXN0aWNrQmFsbEVsLnN0eWxlLmJvdHRvbT1lLmJvdHRvbSsicHgifX1mdW5jdGlvbiBfYyhlLHQpe3ZhciBuPXlhKHtyaWdodDplLGJvdHRvbTp0fSk7ci5qb3lzdGlja1Bvcz1uO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1iYWxsLXBvcyIsSlNPTi5zdHJpbmdpZnkobikpfWNhdGNoe319ZnVuY3Rpb24gTmMoKXtmdW5jdGlvbiBlKHUsbyxzKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3anAta2V5Jysocz8iICIrczoiIikrJyIgZGF0YS1rZXk9IicrdSsnIj4nK28rIjwvYnV0dG9uPiJ9dmFyIHQ9JzxkaXYgY2xhc3M9IndqcC1kcGFkIj48ZGl2IGNsYXNzPSJ3anAtZHBhZC1yb3ciPicrZSgidXAiLCJcdTIxOTEiLCJ3anAtZGlyIikrJzwvZGl2PjxkaXYgY2xhc3M9IndqcC1kcGFkLXJvdyI+JytlKCJsZWZ0IiwiXHUyMTkwIiwid2pwLWRpciIpK2UoImRvd24iLCJcdTIxOTMiLCJ3anAtZGlyIikrZSgicmlnaHQiLCJcdTIxOTIiLCJ3anAtZGlyIikrIjwvZGl2PjwvZGl2PiIsbj0iIixpO2ZvcihpPTA7aTxOYS5sZW5ndGg7aSsrKW4rPWUoTmFbaV0ua2V5LE5hW2ldLmxhYmVsLCIiKTt2YXIgYT0nPGRpdiBjbGFzcz0id2pwLWhlYWRlciI+PHNwYW4gY2xhc3M9IndqcC10aXRsZSI+JytVKCJwYXciLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuNixjbHM6IndqcC10aXRsZS1pY29uIn0pKyc8c3Bhbj5cdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0Y8L3NwYW4+PC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0id2pwLWNsb3NlIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0YiPicrVSgieCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6Mn0pKyI8L2J1dHRvbj48L2Rpdj4iK3QrJzxkaXYgY2xhc3M9IndqcC1ncmlkIHdqcC1mbmtleXMiPicrbisiPC9kaXY+IjtyZXR1cm4gYX1mdW5jdGlvbiBqYygpe2lmKCFyLmpveXN0aWNrUm9vdEVsKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1yb290IixbInBvaW50ZXJkb3duIiwicG9pbnRlcnVwIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIiwiY2xpY2siXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2UuYWRkRXZlbnRMaXN0ZW5lcihhLFVvLCEwKX0pO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhY2tkcm9wIixlLmFwcGVuZENoaWxkKHQpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLXBhbmVsIixuLmlubmVySFRNTD1OYygpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFljKSxlLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhbGwiLGkuc2V0QXR0cmlidXRlKCJyb2xlIiwiYnV0dG9uIiksaS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJXYW5kIFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3RiIpLGkuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NzBCOVx1NTFGQlx1NjI1M1x1NUYwMFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3Rlx1RkYwQ1x1NjJENlx1NTJBOFx1NTNFRlx1NzlGQlx1NTJBOFx1NEY0RFx1N0Y2RSIpLGkuaW5uZXJIVE1MPVUoInBhdyIse3NpemU6MjUsc3Ryb2tlV2lkdGg6MS42LGNsczoid2FuZC1qb3lzdGljay1sb2dvIn0pLGUuYXBwZW5kQ2hpbGQoaSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxyLmpveXN0aWNrUm9vdEVsPWUsci5qb3lzdGlja0JhY2tkcm9wRWw9dCxyLmpveXN0aWNrUGFuZWxFbD1uLHIuam95c3RpY2tCYWxsRWw9aSxWbygpLGkuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLFJjKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKGEpe3Iuam95c3RpY2tQaW5uZWRPcGVuJiZyLmpveXN0aWNrR2VzdHVyZT09bnVsbCYmKGEucHJldmVudERlZmF1bHQoKSx5cigpKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpfSksci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXI9ZnVuY3Rpb24oKXtWbygpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksR28oKX19ZnVuY3Rpb24gVW8oKXtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLW5hdGl2ZS1pbnB1dCIpKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKGUmJnR5cGVvZiBlLmJsdXI9PSJmdW5jdGlvbiIpdHJ5e2UuYmx1cigpfWNhdGNoe31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZih0JiZ0eXBlb2YgdC5ibHVyPT0iZnVuY3Rpb24iKXRyeXt0LmJsdXIoKX1jYXRjaHt9fSwwKX19ZnVuY3Rpb24gUmMoZSl7aWYoem8oKSYmISgoZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIikmJmUuYnV0dG9uIT09MCkmJnIuam95c3RpY2tQb2ludGVySWQ9PT1udWxsKXtVbygpLGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiI7ci5qb3lzdGlja1BvaW50ZXJJZD1lLnBvaW50ZXJJZCxyLmpveXN0aWNrUHJlc3NTdGFydD17eDplLmNsaWVudFgseTplLmNsaWVudFksdDpEYXRlLm5vdygpfSxyLmpveXN0aWNrR2VzdHVyZT0icGVuZGluZyI7dHJ5e3Iuam95c3RpY2tCYWxsRWwuc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe310fHwoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmpveXN0aWNrR2VzdHVyZT09PSJwZW5kaW5nIiYmS28oKX0sT3ApKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9V2Msci5qb3lzdGlja1VwSGFuZGxlcj16Yyxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpfX1mdW5jdGlvbiBLbygpe3Iuam95c3RpY2tHZXN0dXJlPSJtb3ZlIixyLmpveXN0aWNrUGlubmVkT3BlbiYmeXIoKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpfWZ1bmN0aW9uIEpvKGUsdCl7aWYoci5qb3lzdGlja0JhbGxFbCl7dmFyIG49eWEoe3JpZ2h0OndpbmRvdy5pbm5lcldpZHRoLWUtRWkvMixib3R0b206d2luZG93LmlubmVySGVpZ2h0LXQtRWkvMn0pO3Iuam95c3RpY2tCYWxsRWwuc3R5bGUucmlnaHQ9bi5yaWdodCsicHgiLHIuam95c3RpY2tCYWxsRWwuc3R5bGUuYm90dG9tPW4uYm90dG9tKyJweCJ9fWZ1bmN0aW9uIFdjKGUpe2lmKCEoZS5wb2ludGVySWQhPT1yLmpveXN0aWNrUG9pbnRlcklkfHwhci5qb3lzdGlja0JhbGxFbCkpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLmpveXN0aWNrR2VzdHVyZT09PSJtb3ZlIil7Sm8oZS5jbGllbnRYLGUuY2xpZW50WSk7cmV0dXJufWlmKHIuam95c3RpY2tHZXN0dXJlPT09InBlbmRpbmciKXt2YXIgdD1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxuPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydCh0KnQrbipuKTw9UHB8fChlLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iPyhLbygpLEpvKGUuY2xpZW50WCxlLmNsaWVudFkpKTooci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tHZXN0dXJlPSJjYW5jZWxsZWQiKSl9fX1mdW5jdGlvbiB6YyhlKXtpZihlLnBvaW50ZXJJZD09PXIuam95c3RpY2tQb2ludGVySWQpe3Iuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKTt2YXIgdD1yLmpveXN0aWNrR2VzdHVyZTtpZih0PT09InBlbmRpbmciKXt2YXIgbj1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxpPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydChuKm4raSppKTw9SHAmJktjKCl9ZWxzZSBpZih0PT09Im1vdmUiKXt2YXIgYT1yLmpveXN0aWNrQmFsbEVsP3Iuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6bnVsbDthJiZfYyh3aW5kb3cuaW5uZXJXaWR0aC1hLnJpZ2h0LHdpbmRvdy5pbm5lckhlaWdodC1hLmJvdHRvbSl9WW8oKX19ZnVuY3Rpb24gWW8oKXtpZihyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja1BvaW50ZXJJZCE9PW51bGwpdHJ5e3Iuam95c3RpY2tCYWxsRWwucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHIuam95c3RpY2tQb2ludGVySWQpfWNhdGNoe31yLmpveXN0aWNrTW92ZUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1VwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlciksci5qb3lzdGlja1VwSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJiFyLmpveXN0aWNrUGlubmVkT3BlbiYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksci5qb3lzdGlja1BvaW50ZXJJZD1udWxsLHIuam95c3RpY2tHZXN0dXJlPW51bGwsci5qb3lzdGlja1ByZXNzU3RhcnQ9bnVsbH1mdW5jdGlvbiBWYyhlKXtpZihlPT09ImN0cmwifHxlPT09ImFsdCJ8fGU9PT0ic2hpZnQiKXtyLm1vZGlmaWVyc1tlXT0hci5tb2RpZmllcnNbZV0sYnIoKTtyZXR1cm59dmFyIHQ9RHQoKTtpZih0JiZ1ZSh0KSl7KGU9PT0iY3RybF9jInx8ZT09PSJlc2NhcGUiKSYmVWModCxlKSx3aSgpLGJyKCk7cmV0dXJufXZhciBuPUxzKGUse2N0cmw6ci5tb2RpZmllcnMuY3RybCxhbHQ6ci5tb2RpZmllcnMuYWx0LHNoaWZ0OnIubW9kaWZpZXJzLnNoaWZ0fSk7biYmSXMobixlKSx3aSgpLGJyKCksSnAoKX1mdW5jdGlvbiBVYyhlLHQpeyFlfHwhZS5pZHx8ZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OiIiLGludGVycnVwdDohMCxwcmVzZXJ2ZVF1ZXVlOiEwfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpJiZpLmVycm9yfHwiXHU0RTJEXHU2NUFEXHU1OTMxXHU4RDI1IChrZXk9Iit0KyIpIil9KX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5pZCYmKFgobiksbi5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBpPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1XZShpLFplKGksbi5vdXRwdXQsITEpKSxncighMCksdHlwZW9mIG50PT0iZnVuY3Rpb24iJiZudCgpfX0pLmNhdGNoKGZ1bmN0aW9uKG4pe24mJm4ubWVzc2FnZSYmY29uc29sZS5kZWJ1ZygiW3dhbmRdIGpveXN0aWNrIGludGVycnVwdCBuby1vcDoiLG4ubWVzc2FnZSl9KX1mdW5jdGlvbiBLYygpe3Iuam95c3RpY2tQaW5uZWRPcGVuP3lyKCk6SmMoKX1mdW5jdGlvbiBKYygpe2lmKCEoIXIuam95c3RpY2tQYW5lbEVsfHwhci5qb3lzdGlja0JhbGxFbCkpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSEwO3ZhciBlPXIuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ci5qb3lzdGlja1BhbmVsRWwuc3R5bGUucmlnaHQ9TWF0aC5tYXgodm4sd2luZG93LmlubmVyV2lkdGgtZS5yaWdodCkrInB4IixyLmpveXN0aWNrUGFuZWxFbC5zdHlsZS5ib3R0b209TWF0aC5tYXgodm4sd2luZG93LmlubmVySGVpZ2h0LWUudG9wKzEwKSsicHgiLHIuam95c3RpY2tQYW5lbEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHIuam95c3RpY2tCYWxsRWwuY2xhc3NMaXN0LmFkZCgicGFuZWwtb3BlbiIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxicigpfX1mdW5jdGlvbiB5cigpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSExLHIuam95c3RpY2tQYW5lbEVsJiZyLmpveXN0aWNrUGFuZWxFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoInBhbmVsLW9wZW4iKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0dlc3R1cmU9PW51bGwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpfWZ1bmN0aW9uIGJyKCl7ci5qb3lzdGlja1BhbmVsRWwmJlsiY3RybCIsImFsdCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ci5qb3lzdGlja1BhbmVsRWwucXVlcnlTZWxlY3RvcignLndqcC1tb2RbZGF0YS1rZXk9IicrZSsnIl0nKTt0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFyLm1vZGlmaWVyc1tlXSl9KX1mdW5jdGlvbiBZYyhlKXt2YXIgdD1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWNsb3NlIik6bnVsbDtpZih0KXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx5cigpO3JldHVybn12YXIgbj1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWtleSIpOm51bGw7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEta2V5Iik7aSYmVmMoaSl9fWZ1bmN0aW9uIEdvKCl7dmFyIGU9ci5qb3lzdGlja1Jvb3RFbDtpZihlKXt2YXIgdD16bygpO2UuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCksdHx8KChyLmpveXN0aWNrUG9pbnRlcklkIT09bnVsbHx8ci5qb3lzdGlja0dlc3R1cmUpJiZZbygpLHIuam95c3RpY2tQaW5uZWRPcGVuJiZ5cigpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSl9fWZ1bmN0aW9uIEdjKCl7ci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tNb3ZlSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixyLmpveXN0aWNrTW92ZUhhbmRsZXIpLHIuam95c3RpY2tNb3ZlSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrVXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKSxyLmpveXN0aWNrVXBIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSb290RWwmJnIuam95c3RpY2tSb290RWwucGFyZW50Tm9kZSYmci5qb3lzdGlja1Jvb3RFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIuam95c3RpY2tSb290RWwpLHIuam95c3RpY2tSb290RWw9bnVsbCxyLmpveXN0aWNrUGFuZWxFbD1udWxsLHIuam95c3RpY2tCYWNrZHJvcEVsPW51bGwsci5qb3lzdGlja0JhbGxFbD1udWxsLHIuam95c3RpY2tQb2ludGVySWQ9bnVsbCxyLmpveXN0aWNrR2VzdHVyZT1udWxsLHIuam95c3RpY2tQcmVzc1N0YXJ0PW51bGwsci5qb3lzdGlja1Bpbm5lZE9wZW49ITF9ZnVuY3Rpb24gUWMoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoZSl7dmFyIHQ9IWplKCk7ci5yZXNpemVIYW5kbGVyPWZ1bmN0aW9uKCl7UHQoITApO3ZhciBuPSFqZSgpO3QhPT1uJiYodD1uLCFuJiZyLnNpZGViYXJQaW5uZWQmJnIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyhyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxIcigpKTpuJiZyLnNpZGViYXJQaW5uZWQmJiFyLnNlc3Npb25zRHJhd2VyT3BlbiYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLEhyKCkpKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5yZXNpemVIYW5kbGVyKSx3aW5kb3cudmlzdWFsVmlld3BvcnQmJihyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcj1mdW5jdGlvbigpe1B0KCEwKX0sd2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpKSxyLnZpc2liaWxpdHlIYW5kbGVyPWZ1bmN0aW9uKCl7ZG9jdW1lbnQuaGlkZGVufHxRZSgidmlzaWJpbGl0eSIse2ZvcmNlUmVwbGF5OiEwfSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHIudmlzaWJpbGl0eUhhbmRsZXIpLHIub3JpZW50YXRpb25IYW5kbGVyPWZ1bmN0aW9uKCl7UWUoIm9yaWVudGF0aW9uIix7Zm9yY2VSZXBsYXk6ITB9KX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlcikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7UHQoITApfSl9fWZ1bmN0aW9uICRjKCl7ci50ZXJtaW5hbEhlYWx0aFRpbWVyfHwoci50ZXJtaW5hbEhlYWx0aFRpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoISghci50ZXJtaW5hbHx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fGRvY3VtZW50LmhpZGRlbikpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih1KXtyZXR1cm4gdS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCEoIWV8fGUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpKXtRZSgiaGVhbHRoIik7dmFyIHQ9RGF0ZS5ub3coKSxuPXIubGFzdENodW5rQXQ+MCYmdC1yLmxhc3RDaHVua0F0PjMwMCxpPXQtci5sYXN0VGVybWluYWxSZXN5bmNBdD4zZTQsYT1yLmxhc3RDaHVua0F0PnIubGFzdFRlcm1pbmFsUmVzeW5jQXQ7aSYmYSYmKG58fGUuc3RhdHVzIT09InJ1bm5pbmciKSYmci50ZXJtaW5hbE91dHB1dCYmSW4oKX19fSw1ZTMpKX1mdW5jdGlvbiBYYygpe3IudGVybWluYWxIZWFsdGhUaW1lciYmKGNsZWFySW50ZXJ2YWwoci50ZXJtaW5hbEhlYWx0aFRpbWVyKSxyLnRlcm1pbmFsSGVhbHRoVGltZXI9bnVsbCl9ZnVuY3Rpb24gRXIoKXtYYygpLHIucmVzaXplVGltZXImJihjbGVhclRpbWVvdXQoci5yZXNpemVUaW1lciksci5yZXNpemVUaW1lcj1udWxsKSxyLnJlc2l6ZU9ic2VydmVyJiYoci5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksci5yZXNpemVPYnNlcnZlcj1udWxsKSxyLnJlc2l6ZUhhbmRsZXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLnJlc2l6ZUhhbmRsZXIpLHIucmVzaXplSGFuZGxlcj1udWxsKSxyLnZpc3VhbFZpZXdwb3J0SGFuZGxlciYmd2luZG93LnZpc3VhbFZpZXdwb3J0JiYod2luZG93LnZpc3VhbFZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyPW51bGwpLHIudmlzaWJpbGl0eUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixyLnZpc2liaWxpdHlIYW5kbGVyKSxyLnZpc2liaWxpdHlIYW5kbGVyPW51bGwpLHIub3JpZW50YXRpb25IYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlciksci5vcmllbnRhdGlvbkhhbmRsZXI9bnVsbCksW1sibW91c2Vtb3ZlIiwicmVzaXplTW91c2VNb3ZlIl0sWyJtb3VzZXVwIiwicmVzaXplTW91c2VVcCJdLFsidG91Y2htb3ZlIiwicmVzaXplVG91Y2hNb3ZlIl0sWyJ0b3VjaGVuZCIsInJlc2l6ZVRvdWNoRW5kIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7clthWzFdXSYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYVswXSxyW2FbMV1dKSxyW2FbMV1dPW51bGwpfSksVW4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoci50ZXJtaW5hbFZpZXdwb3J0RWwmJihyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcikpLGUmJihyLnRlcm1pbmFsV2hlZWxIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLnRlcm1pbmFsV2hlZWxIYW5kbGVyKSxyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyKSksci50ZXJtaW5hbFZpZXdwb3J0RWw9bnVsbCxyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLnRlcm1pbmFsV2hlZWxIYW5kbGVyPW51bGwsci50ZXJtaW5hbENsaWNrSGFuZGxlcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWwmJnIudGVybWluYWxTY3JvbGxiYXJFbC5wYXJlbnROb2RlJiZyLnRlcm1pbmFsU2Nyb2xsYmFyRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyLnRlcm1pbmFsU2Nyb2xsYmFyRWwpLHIudGVybWluYWxTY3JvbGxiYXJFbD1udWxsLHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExLHIudGVybWluYWwmJihyLnRlcm1pbmFsLmRlc3Ryb3koKSxyLnRlcm1pbmFsPW51bGwpLGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9RGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSExLHIudGVybWluYWxTZXNzaW9uSWQ9bnVsbCxyLnRlcm1pbmFsT3V0cHV0PSIiLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT0hMSxvdCgpLHIuc29mdFJlc3luY1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuc29mdFJlc3luY1RpbWVyKSxyLnNvZnRSZXN5bmNUaW1lcj1udWxsKSxyLl9yZXN5bmNDaHVua1RhaWxUaW1lciYmKGNsZWFyVGltZW91dChyLl9yZXN5bmNDaHVua1RhaWxUaW1lciksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtMYXN0QXQ9MCxyLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MCxyLl9yZXN5bmNJblByb2dyZXNzPSExLHIubGFzdFJlc2l6ZT17Y29sczowLHJvd3M6MH0sR2MoKX1mdW5jdGlvbiBsaShlLHQpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoISghbnx8bi5zdGF0dXMhPT0icnVubmluZyIpJiYhdWUobikpe2U+MjU2JiYoZT0yNTYpLHQ+MTYwJiYodD0xNjApO3ZhciBpPXtjb2xzOmUscm93czp0fTsoci5sYXN0UmVzaXplLmNvbHMhPT1pLmNvbHN8fHIubGFzdFJlc2l6ZS5yb3dzIT09aS5yb3dzKSYmKHIubGFzdFJlc2l6ZT1pLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvcmVzaXplIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkpfX19ZnVuY3Rpb24gUWUoZSx0KXtpZighci50ZXJtaW5hbClyZXR1cm4hMTt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXk9PT0hMCxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighYXx8YS5vZmZzZXRXaWR0aD09PTB8fGEub2Zmc2V0SGVpZ2h0PT09MClyZXR1cm4gRnIoZXx8ImZpdC1yZXRyeSIse2ZvcmNlUmVwbGF5Oml9KSwhMTt2YXIgdT1yLnRlcm1pbmFsQXV0b0ZvbGxvd3x8d2EoKSxvPXIudGVybWluYWwuY29scyxzPXIudGVybWluYWwucm93cztyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoci50ZXJtaW5hbCl7dHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpLGxpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpO3ZhciBsPXIudGVybWluYWwuY29scyE9PW98fHIudGVybWluYWwucm93cyE9PXM7IWwmJmkmJnIudGVybWluYWxPdXRwdXQmJkluKHtza2lwRml0OiEwfSksdSYmZnQoImZvcmNlIil9fSl9KSwhMH1mdW5jdGlvbiBGcihlLHQpe2lmKCFyLnRlcm1pbmFsKXJldHVybjt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXkhPT0hMSxhPTAsdT04O2Z1bmN0aW9uIG8oKXtpZihyLnRlcm1pbmFsKXt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYocyYmcy5vZmZzZXRIZWlnaHQscyYmcy5vZmZzZXRXaWR0aD4wJiZzLm9mZnNldEhlaWdodD4wKXtRZShlLHtmb3JjZVJlcGxheTppfSk7cmV0dXJufSsrYT49dXx8KGE8PTQ/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pOnNldFRpbWVvdXQobywzMikpfX1vKCl9ZnVuY3Rpb24gUHQoZSl7ci5yZXNpemVUaW1lciYmKGNsZWFyVGltZW91dChyLnJlc2l6ZVRpbWVyKSxyLnJlc2l6ZVRpbWVyPW51bGwpO3ZhciB0PWU/MDoxMDA7ci5yZXNpemVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5yZXNpemVUaW1lcj1udWxsLHJlcXVlc3RBbmltYXRpb25GcmFtZShaYyl9LHQpfWZ1bmN0aW9uIFpjKCl7aWYoci50ZXJtaW5hbCl7dmFyIGU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fHdhKCk7ZSYmZnQoImZvcmNlIiksbGkoci50ZXJtaW5hbC5jb2xzLHIudGVybWluYWwucm93cyl9fWZ1bmN0aW9uIFh0KGUpe3Iud29ya2luZ0Rpcj1lO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsZSl9Y2F0Y2h7fWVmKGUpfWZ1bmN0aW9uIGJhKGUpe2ZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7ZSh0fHxbXSl9KS5jYXRjaChmdW5jdGlvbigpe2UoW10pfSl9ZnVuY3Rpb24gZWYoZSl7cmV0dXJuIGZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3BhdGg6ZX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBFYShlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1lfSk7dCYmdC5zdGF0dXMhPT0icnVubmluZyImJiF1ZSh0KT9IcyhlKTpSdChlKSxXdCgpfWZ1bmN0aW9uIHRmKGUpe3ZhciB0PWUudGFyZ2V0O2lmKCEoIXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpKSl7dmFyIG49dC5jbG9zZXN0KCIuc2lkZWJhci1jb2xsYXBzZWQtdGlsZSIpO2lmKG4mJm4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYobi5kYXRhc2V0LmNvbGxhcHNlZE5ld1Nlc3Npb24pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLGJ1KCk7cmV0dXJufWlmKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLEVhKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpO3JldHVybn1pZihuLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgaT1uLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkLGE9bi5kYXRhc2V0LmN3ZHx8IiIsdT1uLmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiP0NpOkJpO3UoaSxhKS50aGVuKGZ1bmN0aW9uKGcpe2cmJmcuaWQmJihyLnNlbGVjdGVkSWQ9Zy5pZCxFZSgpLHIuZHJhZnRzW2cuaWRdPSIiLHluKCkudGhlbihmdW5jdGlvbigpe1J0KGcuaWQpfSkpfSk7cmV0dXJufX12YXIgbz10LmNsb3Nlc3QoIiNjbGF1ZGUtaGlzdG9yeS10b2dnbGUiKTtpZihvKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZD0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQmJiFyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJmFpKCksZmUoKTtyZXR1cm59dmFyIHM9dC5jbG9zZXN0KCJbZGF0YS1hY3Rpb25dIik7aWYocyYmcyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtpZihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1tYW5hZ2UtbW9kZSIpeWMoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0ic2VsZWN0LWFsbC12aXNpYmxlIil4bygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJjbGVhci1zZWxlY3Rpb24iKUVjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1zZWxlY3RlZCIpRmMoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLXNlbGVjdGlvbiIpdnIocy5kYXRhc2V0LmtpbmQscy5kYXRhc2V0LmlkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0ic3dpcGUtZGVsZXRlLXNlc3Npb24iJiZzLmRhdGFzZXQuc2Vzc2lvbklkKVZhKHMuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtc2Vzc2lvbiImJnMuZGF0YXNldC5zZXNzaW9uSWQpKGZ1bmN0aW9uKGcpe1NuKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdThGRDlcdTRFMkFcdTRGMUFcdThCRERcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIn0pLnRoZW4oZnVuY3Rpb24obSl7bSYmVmEoZyl9KX0pKHMuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpKGZ1bmN0aW9uKGcsbSl7U24oIlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1OEZEOVx1Njc2MSBDbGF1ZGUgXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKHkpe3kmJk1zKGcsbSl9KX0pKHMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQscy5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIikpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKXt2YXIgbD1zLmRhdGFzZXQuY3dkO3IuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tsXT0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzW2xdLGZlKCl9ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2QpKGZ1bmN0aW9uKGcsbSl7dmFyIHk9dHYoZyksdz1wcigpLmZpbHRlcihmdW5jdGlvbihFKXtyZXR1cm4gRS5jd2Q9PT1nfSkubGVuZ3RoO1NuKCJcdTc4NkVcdThCQTRcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTRFMEJcdTc2ODQgIit3KyIgXHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU2RTA1XHU3QTdBXHU3NkVFXHU1RjU1XHU1Mzg2XHU1M0YyIixva0xhYmVsOiJcdTZFMDVcdTdBN0EifSkudGhlbihmdW5jdGlvbihFKXtFJiYocXMoeSwhMCksZXYoZyxtLHkpKX0pfSkocy5kYXRhc2V0LmN3ZCxzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iY2xlYXItYWxsLWhpc3RvcnkiKXdjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1hcmNoaXZlZC1ncm91cCIpci5hcmNoaXZlZEV4cGFuZGVkPSFyLmFyY2hpdmVkRXhwYW5kZWQsZmUoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lIiYmcy5kYXRhc2V0LnNlc3Npb25JZClpdihzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKW92KHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJyZXN1bWUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpYXYocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1jb2RleC1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCl1dihzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWNvZGV4LWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIGQ9cy5kYXRhc2V0LmN3ZDtyLmNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyc1tkXT0hci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbZF0sZmUoKX1lbHNlIHMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtbWVyZ2UiJiZzLmRhdGFzZXQuc2Vzc2lvbklkP0hsKHMuZGF0YXNldC5zZXNzaW9uSWQpOnMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtY2xlYW51cCImJnMuZGF0YXNldC5zZXNzaW9uSWQmJl9sKHMuZGF0YXNldC5zZXNzaW9uSWQpO3JldHVybn12YXIgZj10LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZihmKXtpZihyLnNlc3Npb25zTWFuYWdlTW9kZSl7Zi5kYXRhc2V0LnNlc3Npb25JZD92cigic2Vzc2lvbnMiLGYuZGF0YXNldC5zZXNzaW9uSWQpOmYuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQmJnZyKGYuZGF0YXNldC5wcm92aWRlcj09PSJjb2RleCI/ImNvZGV4IjoiaGlzdG9yeSIsZi5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCk7cmV0dXJufWlmKGYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzd2lwZWQiKSl7VHIoKTtyZXR1cm59aWYoT3MpcmV0dXJuO2lmKGYuZGF0YXNldC5zZXNzaW9uSWQpRWEoZi5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZihmLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKXt2YXIgYz1mLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkLHY9Zi5kYXRhc2V0LmN3ZCxoPWYuZGF0YXNldC5wcm92aWRlcj09PSJjb2RleCI/Q2k6Qmk7aChjLHYpLnRoZW4oZnVuY3Rpb24oZyl7ZyYmZy5pZCYmKHIuc2VsZWN0ZWRJZD1nLmlkLEVlKCksci5kcmFmdHNbZy5pZF09IiIseW4oKS50aGVuKGZ1bmN0aW9uKCl7UnQoZy5pZCksV3QoKX0pKX0pfX19fWZ1bmN0aW9uIG5mKGUpe2lmKCEoZS5rZXkhPT0iRW50ZXIiJiZlLmtleSE9PSIgIikpe3ZhciB0PWUudGFyZ2V0LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZih0KXtpZihlLnByZXZlbnREZWZhdWx0KCksci5zZXNzaW9uc01hbmFnZU1vZGUpe3QuZGF0YXNldC5zZXNzaW9uSWQ/dnIoInNlc3Npb25zIix0LmRhdGFzZXQuc2Vzc2lvbklkKTp0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZ2cih0LmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiPyJjb2RleCI6Imhpc3RvcnkiLHQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpO3JldHVybn1pZih0LmRhdGFzZXQuc2Vzc2lvbklkKUVhKHQuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYodC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCl7dmFyIG49dC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCxpPXQuZGF0YXNldC5jd2QsYT10LmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiP0NpOkJpO2EobixpKS50aGVuKGZ1bmN0aW9uKHUpe3UmJnUuaWQmJihyLnNlbGVjdGVkSWQ9dS5pZCxFZSgpLHIuZHJhZnRzW3UuaWRdPSIiLHluKCkudGhlbihmdW5jdGlvbigpe1J0KHUuaWQpLFd0KCl9KSl9KX19fX1mdW5jdGlvbiBGYShlLHQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKG4pe3ZhciBpPW5bZV07aWYoIWkpe0EoIlx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NkNBMVx1NjcwOVx1NTNFRlx1NTkwRFx1NTIzNlx1NzY4NFx1NTE4NVx1NUJCOVx1MzAwMiIsImVycm9yIik7cmV0dXJufVJyKFN0cmluZyhpKSxudWxsLGZ1bmN0aW9uKCl7QSh0fHwiXHU1REYyXHU1OTBEXHU1MjM2IiwiaW5mbyIpfSl9fWZ1bmN0aW9uIHd0KCl7cmV0dXJuIXIudGVybWluYWx8fCFyLnRlcm1pbmFsLmVsZW1lbnQ/bnVsbDooci50ZXJtaW5hbFZpZXdwb3J0RWw9ci50ZXJtaW5hbC5lbGVtZW50LHIudGVybWluYWxWaWV3cG9ydEVsKX1mdW5jdGlvbiBVbigpe3IudGVybWluYWxTY3JvbGxJZGxlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbElkbGVUaW1lciksci50ZXJtaW5hbFNjcm9sbElkbGVUaW1lcj1udWxsKX1mdW5jdGlvbiBvdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIpLHQ9ISFyLnNlbGVjdGVkSWQmJnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiJiYhci50ZXJtaW5hbEF1dG9Gb2xsb3cmJiFRbygpO3Iuc2hvd1Rlcm1pbmFsSnVtcFRvQm90dG9tPXQsZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIix0KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtanVtcC1idG4iLHQpfWZ1bmN0aW9uIHdhKCl7dmFyIGU9d3QoKTtpZighZSlyZXR1cm4hMDt2YXIgdD1lLnNjcm9sbEhlaWdodC1lLmNsaWVudEhlaWdodC1lLnNjcm9sbFRvcDtyZXR1cm4gdDw9ci50ZXJtaW5hbFNjcm9sbFRocmVzaG9sZH1mdW5jdGlvbiBRbygpe3ZhciBlPXd0KCk7aWYoIWUpcmV0dXJuITA7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtZS5zY3JvbGxUb3A7cmV0dXJuIHQ8PTJ9ZnVuY3Rpb24gJG8oZSl7aWYoci50ZXJtaW5hbCl7dmFyIHQ9d3QoKTtpZih0KXt2YXIgbj1lPzUwMDoxMjA7ci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPU1hdGgubWF4KHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCxEYXRlLm5vdygpK24pLGU/dC5zY3JvbGxUbyh7dG9wOnQuc2Nyb2xsSGVpZ2h0LGJlaGF2aW9yOiJzbW9vdGgifSk6dC5zY3JvbGxUb3A9dC5zY3JvbGxIZWlnaHR9fX1mdW5jdGlvbiBDYSgpe3IudGVybWluYWxBdXRvRm9sbG93PSExLFVuKCksci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPTAsci50ZXJtaW5hbCYmIl9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiByLnRlcm1pbmFsJiYoci50ZXJtaW5hbC5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209ITEpLG90KCl9ZnVuY3Rpb24gZnQoZSl7aWYoci50ZXJtaW5hbCl7dmFyIHQ9ZT09PSJmb3JjZSI7aWYodCl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsVW4oKSwkbyghMSksb3QoKTtyZXR1cm59aWYoIXIudGVybWluYWxBdXRvRm9sbG93KXtvdCgpO3JldHVybn0kbyghMSksb3QoKX19ZnVuY3Rpb24gcmYoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbGJhciI7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbGJhci10cmFjayI7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbGJhci10aHVtYiIsbi5hcHBlbmRDaGlsZChpKSx0LmFwcGVuZENoaWxkKG4pLGUuYXBwZW5kQ2hpbGQodCksci50ZXJtaW5hbFNjcm9sbGJhckVsPXQsci50ZXJtaW5hbFNjcm9sbGJhclRodW1iRWw9aSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExO2Z1bmN0aW9uIGEoKXtyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXIpLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCksdC5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9ZnVuY3Rpb24gdSgpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJmNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nfHx0LmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0sMTUwMCkpfWZ1bmN0aW9uIG8oKXtyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMTt2YXIgbT13dCgpO2lmKG0pe3ZhciB5PW0uc2Nyb2xsSGVpZ2h0LHc9bS5jbGllbnRIZWlnaHQ7aWYoeTw9dyl7dC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIik7cmV0dXJufXZhciBFPW4uY2xpZW50SGVpZ2h0LEI9TWF0aC5tYXgoMjgsdy95KkUpLEQ9eS13LEY9bS5zY3JvbGxUb3AvRCxJPUYqKEUtQik7aS5zdHlsZS5oZWlnaHQ9QisicHgiLGkuc3R5bGUudG9wPUkrInB4In19ZnVuY3Rpb24gcygpe3IudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nfHwoci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pKX12YXIgbD13dCgpO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixmdW5jdGlvbigpe2EoKSxzKCksdSgpfSx7cGFzc2l2ZTohMH0pLG4uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbihtKXtpZihtLnRhcmdldCE9PWkpe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT13dCgpO2lmKHkpe3ZhciB3PW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRT0obS5jbGllbnRZLXcudG9wKS93LmhlaWdodCxCPXkuc2Nyb2xsSGVpZ2h0LXkuY2xpZW50SGVpZ2h0O3kuc2Nyb2xsVG9wPUUqQn19fSk7dmFyIGQ9MCxmPTA7aS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKG0pe20ucHJldmVudERlZmF1bHQoKSxtLnN0b3BQcm9wYWdhdGlvbigpLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMCxpLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksZD1tLmNsaWVudFk7dmFyIHk9d3QoKTtmPXk/eS5zY3JvbGxUb3A6MCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHYpfSk7ZnVuY3Rpb24gYyhtKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9d3QoKTtpZih5KXt2YXIgdz1uLmNsaWVudEhlaWdodCxFPXkuc2Nyb2xsSGVpZ2h0LEI9eS5jbGllbnRIZWlnaHQsRD1FLUI7aWYoIShEPD0wKSl7dmFyIEY9TWF0aC5tYXgoMjgsQi9FKncpLEk9dy1GO2lmKCEoSTw9MCkpe3ZhciBMPW0uY2xpZW50WS1kLFA9TC9JKkQ7eS5zY3JvbGxUb3A9ZitQfX19fWZ1bmN0aW9uIHYoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITEsaS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsYyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdiksdSgpfWkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24obSl7aWYobS50b3VjaGVzLmxlbmd0aD09PTEpe20uc3RvcFByb3BhZ2F0aW9uKCksci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSEwLGkuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxkPW0udG91Y2hlc1swXS5jbGllbnRZO3ZhciB5PXd0KCk7Zj15P3kuc2Nyb2xsVG9wOjAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixoLHtwYXNzaXZlOiExfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGcpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixnKX19LHtwYXNzaXZlOiExfSk7ZnVuY3Rpb24gaChtKXtpZihtLnRvdWNoZXMubGVuZ3RoPT09MSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PXd0KCk7aWYoeSl7dmFyIHc9bi5jbGllbnRIZWlnaHQsRT15LnNjcm9sbEhlaWdodCxCPXkuY2xpZW50SGVpZ2h0LEQ9RS1CO2lmKCEoRDw9MCkpe3ZhciBGPU1hdGgubWF4KDI4LEIvRSp3KSxJPXctRjtpZighKEk8PTApKXt2YXIgTD1tLnRvdWNoZXNbMF0uY2xpZW50WS1kLFA9TC9JKkQ7eS5zY3JvbGxUb3A9ZitQfX19fX1mdW5jdGlvbiBnKCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsZyksdSgpfXQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24oKXthKCl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nfHx1KCl9KSxzKCl9ZnVuY3Rpb24gYWYoZSl7cmV0dXJuIGU8NDM1Mj8hMTplPj00MzUyJiZlPD00NDQ3fHxlPj05MDAxJiZlPD05MDAyfHxlPj0xMTkwNCYmZTw9MTIzNTB8fGU+PTEyMzUzJiZlPD0xMzMxMXx8ZT49MTMzMTImJmU8PTE5OTAzfHxlPj0xOTk2OCYmZTw9NDA5NTl8fGU+PTQwOTYwJiZlPD00MjE5MXx8ZT49NDQwMzImJmU8PTU1MjAzfHxlPj02Mzc0NCYmZTw9NjQyNTV8fGU+PTY1MDcyJiZlPD02NTEwM3x8ZT49NjUyODAmJmU8PTY1Mzc2fHxlPj02NTUwNCYmZTw9NjU1MTB8fGU+PTEyNjk3NiYmZTw9MTI5NTM1fHxlPj0xMzEwNzImJmU8PTE5NjYwNXx8ZT49MTk2NjA4JiZlPD0yNjIxNDF9dmFyIFhvPSJcdTIwNjAiO2Z1bmN0aW9uIFpvKCl7cmV0dXJue21vZGU6Im5vcm1hbCJ9fWZ1bmN0aW9uIHVmKGUpe3JldHVybiEvW15ceDAwLVx4N2ZdLy50ZXN0KGUpJiZlLmluZGV4T2YoIlx4MUIiKT09PS0xfWZ1bmN0aW9uIG9mKGUsdCl7aWYoIWUpcmV0dXJuIiI7dmFyIG49U3RyaW5nKGUpO2lmKHQubW9kZT09PSJub3JtYWwiJiZ1ZihuKSlyZXR1cm4gbjtmb3IodmFyIGk9IiIsYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgdT1uLmNoYXJDb2RlQXQoYSksbz11LHM9MTtpZih1Pj01NTI5NiYmdTw9NTYzMTkmJmErMTxuLmxlbmd0aCl7dmFyIGw9bi5jaGFyQ29kZUF0KGErMSk7bD49NTYzMjAmJmw8PTU3MzQzJiYobz0odS01NTI5NikqMTAyNCsobC01NjMyMCkrNjU1MzYscz0yKX12YXIgZD1zPT09Mj9uLnN1YnN0cihhLDIpOm4uY2hhckF0KGEpO3N3aXRjaCh0Lm1vZGUpe2Nhc2Uibm9ybWFsIjpvPT09Mjc/KHQubW9kZT0iZXNjIixpKz1kKTpvPT09MTU1Pyh0Lm1vZGU9ImNzaSIsaSs9ZCk6bz09PTE1N3x8bz09PTE0NHx8bz09PTE1OHx8bz09PTE1OT8odC5tb2RlPSJzdHJpbmciLGkrPWQpOihpKz1kLGFmKG8pJiYoaSs9WG8pKTticmVhaztjYXNlImVzYyI6aSs9ZCxvPT09OTE/dC5tb2RlPSJjc2kiOm89PT05M3x8bz09PTgwfHxvPT09ODh8fG89PT05NHx8bz09PTk1P3QubW9kZT0ic3RyaW5nIjp0Lm1vZGU9Im5vcm1hbCI7YnJlYWs7Y2FzZSJjc2kiOmkrPWQsbz49NjQmJm88PTEyNiYmKHQubW9kZT0ibm9ybWFsIik7YnJlYWs7Y2FzZSJzdHJpbmciOmkrPWQsbz09PTd8fG89PT0xNTY/dC5tb2RlPSJub3JtYWwiOm89PT0yNyYmKHQubW9kZT0ic3RyaW5nLWVzYyIpO2JyZWFrO2Nhc2Uic3RyaW5nLWVzYyI6aSs9ZCxvPT09OTI/dC5tb2RlPSJub3JtYWwiOnQubW9kZT0ic3RyaW5nIjticmVha31hKz1zLTF9cmV0dXJuIGl9dmFyIGRpPSJceDFCWz8yMDI2aCIsQmE9Ilx4MUJbPzIwMjZsIixzZj0yMDAsbGY9MjU2KjEwMjQ7ZnVuY3Rpb24gZGYoZSl7aWYoIWV8fHIuc3luY091dHB1dEJ1ZmZlcj09PW51bGwmJmUuaW5kZXhPZihkaSk9PT0tMSlyZXR1cm4gZTtmb3IodmFyIHQ9IiIsbj0wO248ZS5sZW5ndGg7KWlmKHIuc3luY091dHB1dEJ1ZmZlciE9PW51bGwpe3ZhciBpPWUuaW5kZXhPZihCYSxuKTtpZihpPT09LTEpcmV0dXJuIHIuc3luY091dHB1dEJ1ZmZlcis9ZS5zbGljZShuKSwoci5zeW5jT3V0cHV0QnVmZmVyLmxlbmd0aD5sZnx8RGF0ZS5ub3coKT5yLnN5bmNPdXRwdXREZWFkbGluZSkmJih0Kz1yLnN5bmNPdXRwdXRCdWZmZXIsci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jRnJhbWluZ1Jlc2lkdWU9ITApLHQ7ci5zeW5jT3V0cHV0QnVmZmVyKz1lLnNsaWNlKG4saStCYS5sZW5ndGgpLHQrPXIuc3luY091dHB1dEJ1ZmZlcixyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxuPWkrQmEubGVuZ3RofWVsc2V7dmFyIGE9ZS5pbmRleE9mKGRpLG4pO2lmKGE9PT0tMSlyZXR1cm4gdCs9ZS5zbGljZShuKSx0O3QrPWUuc2xpY2UobixhKSxyLnN5bmNPdXRwdXRCdWZmZXI9ZGksci5zeW5jT3V0cHV0RGVhZGxpbmU9RGF0ZS5ub3coKStzZixuPWErZGkubGVuZ3RofXJldHVybiB0fWZ1bmN0aW9uIFVnKCl7aWYoci5zeW5jT3V0cHV0QnVmZmVyIT09bnVsbCl7dmFyIGU9ci5zeW5jT3V0cHV0QnVmZmVyO3JldHVybiByLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxlfXJldHVybiIifWZ1bmN0aW9uIEtuKGUsdCl7aWYoISghZXx8dD09bnVsbCkpe3Iud2lkZVBhcnNlclN0YXRlfHwoci53aWRlUGFyc2VyU3RhdGU9Wm8oKSk7dmFyIG49b2YodCxyLndpZGVQYXJzZXJTdGF0ZSksaT1kZihuKSxhPXIudGVybWluYWxBdXRvRm9sbG93IT09ITE7Il9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiBlJiYoZS5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209YSksaSYmZS53cml0ZShpKSwiX3Nob3VsZFNjcm9sbFRvQm90dG9tImluIGUmJihlLl9zaG91bGRTY3JvbGxUb0JvdHRvbT1hKSxhJiYoci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPU1hdGgubWF4KHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCxEYXRlLm5vdygpKzEyMCkpLEVmKHQpfX1mdW5jdGlvbiBEYSgpe3Iud2lkZVBhcnNlclN0YXRlPVpvKCl9ZnVuY3Rpb24gY2YoKXt0eXBlb2YgZG9jdW1lbnQ+InUifHxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb3B5IixmdW5jdGlvbihlKXt2YXIgdD13aW5kb3cuZ2V0U2VsZWN0aW9uJiZ3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoISghdHx8dC5pc0NvbGxhcHNlZCkpe3ZhciBuPXQuYW5jaG9yTm9kZSxpPW4mJm4ubm9kZVR5cGU9PT0zP24ucGFyZW50Tm9kZTpuLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCEoIWF8fCFpfHwhYS5jb250YWlucyhpKSkpe3ZhciB1PXQudG9TdHJpbmcoKSxvPXUuc3BsaXQoYApgKS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMuc3BsaXQoWG8pLmpvaW4oIiIpLnJlcGxhY2UoL1sgXHRdKyQvLCIiKX0pLmpvaW4oYApgKTtvIT09dSYmZS5jbGlwYm9hcmREYXRhJiYoZS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvcGxhaW4iLG8pLGUucHJldmVudERlZmF1bHQoKSl9fX0pfWNmKCk7dmFyIGVzPTE1MCx0cz0zMCxmZj0xNjAqMTAyNCxwZj0xOTIqMTAyNDtmdW5jdGlvbiBucyhlKXtpZighZXx8ZS5sZW5ndGg8PXBmKXJldHVybiBlO3ZhciB0PWUubGVuZ3RoLG49ZnVuY3Rpb24oRil7aWYoISh0eXBlb2Ygcj4idSJ8fCFyKSl7dmFyIEk9ci50ZXJtaW5hbE91dHB1dE1hcmtlcnwwO2lmKCEoSTw9MCkpe3ZhciBMPXQtRjtyLnRlcm1pbmFsT3V0cHV0TWFya2VyPUk+TD9JLUw6MH19fSxpPWUubGVuZ3RoLWZmO2lmKGk+MCYmaTxlLmxlbmd0aCl7dmFyIGE9ZS5jaGFyQ29kZUF0KGkpO2E+PTU2MzIwJiZhPD01NzM0MyYmaSsrfWZvcih2YXIgdT00MDk2LG89TWF0aC5taW4oaSt1LGUubGVuZ3RoKSxzPWk7czxvO3MrKylpZihlLmNoYXJDb2RlQXQocyk9PT0xMCl7dmFyIGw9ZS5zbGljZShzKzEpO3JldHVybiBuKGwubGVuZ3RoKSxsfWZvcih2YXIgZD1NYXRoLm1heCgwLGktMjU2KSxmPS0xLGM9aS0xO2M+PWQ7Yy0tKXt2YXIgdj1lLmNoYXJDb2RlQXQoYyk7aWYodj09PTI3KXtmPWM7YnJlYWt9aWYodj09PTd8fHY+PTY0JiZ2PD0xMjYpYnJlYWt9aWYoZiE9PS0xKXtmb3IodmFyIGg9ITEsZz1mKzE7ZzxpO2crKyl7dmFyIG09ZS5jaGFyQ29kZUF0KGcpO2lmKG09PT03KXtoPSEwO2JyZWFrfWlmKG0+PTY0JiZtPD0xMjYpe2g9ITA7YnJlYWt9fWlmKCFoKWZvcih2YXIgeT1NYXRoLm1pbihpKzI1NixlLmxlbmd0aCksdz1pO3c8eTt3Kyspe3ZhciBFPWUuY2hhckNvZGVBdCh3KTtpZihFPT09N3x8RT49NjQmJkU8PTEyNil7dmFyIEI9ZS5zbGljZSh3KzEpO3JldHVybiBuKEIubGVuZ3RoKSxCfX19dmFyIEQ9ZS5zbGljZShpKTtyZXR1cm4gbihELmxlbmd0aCksRH1mdW5jdGlvbiBjaSgpe2lmKHIudGVybWluYWwpe2lmKHR5cGVvZiByLnRlcm1pbmFsLnJlc2V0PT0iZnVuY3Rpb24iKXtyLnRlcm1pbmFsLnJlc2V0KCksRGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wO3JldHVybn10eXBlb2Ygci50ZXJtaW5hbC53cml0ZT09ImZ1bmN0aW9uIiYmci50ZXJtaW5hbC53cml0ZSgiXHgxQmMiKSxEYSgpLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY091dHB1dERlYWRsaW5lPTB9fXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ9MCxyLl9yZXN5bmNTdGF0c0NvdW50PTAsci5fcmVzeW5jTGFzdFdhcm5BdD0wO3ZhciB2Zj01ZTMsbWY9MTIsZ2Y9M2U0O3IuX3Jlc3luY0luUHJvZ3Jlc3M9ITE7ZnVuY3Rpb24gSW4oZSl7aWYoIXIudGVybWluYWx8fCFyLnRlcm1pbmFsT3V0cHV0KXJldHVybiExO3ZhciB0PWV8fHt9LG49ci50ZXJtaW5hbE91dHB1dE1hcmtlcnwwO248MCYmKG49MCksbj5yLnRlcm1pbmFsT3V0cHV0Lmxlbmd0aCYmKG49ci50ZXJtaW5hbE91dHB1dC5sZW5ndGgpO3ZhciBpPW4+MD9yLnRlcm1pbmFsT3V0cHV0LnNsaWNlKG4pOnIudGVybWluYWxPdXRwdXQsYT1pLmxlbmd0aCx1PXR5cGVvZiBwZXJmb3JtYW5jZTwidSImJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZS5ub3coKTpEYXRlLm5vdygpO3IuX3Jlc3luY0luUHJvZ3Jlc3M9ITA7dHJ5e2NpKCksS24oci50ZXJtaW5hbCxpKX1maW5hbGx5e3IuX3Jlc3luY0luUHJvZ3Jlc3M9ITF9ci5sYXN0VGVybWluYWxSZXN5bmNBdD1EYXRlLm5vdygpLGZ0KCJvdXRwdXQiKSx0LnNraXBGaXR8fFFlKCJyZWZyZXNoIik7dmFyIG89RGF0ZS5ub3coKTtpZihvLXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ+dmYpci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD1vLHIuX3Jlc3luY1N0YXRzQ291bnQ9MTtlbHNlIGlmKHIuX3Jlc3luY1N0YXRzQ291bnQrKyxyLl9yZXN5bmNTdGF0c0NvdW50Pm1mJiZvLXIuX3Jlc3luY0xhc3RXYXJuQXQ+Z2Ype3IuX3Jlc3luY0xhc3RXYXJuQXQ9bzt2YXIgcz10eXBlb2YgcGVyZm9ybWFuY2U8InUiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2Uubm93KCk6RGF0ZS5ub3coKTtjb25zb2xlLndhcm4oIlt3YW5kXSBzb2Z0UmVzeW5jVGVybWluYWwgaGlnaCBmcmVxdWVuY3kiLCJjb3VudD0iK3IuX3Jlc3luY1N0YXRzQ291bnQrIi8iK01hdGgucm91bmQoKG8tci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydCkvMTAwKS8xMCsicyIsImJ1Zkxlbj0iK2EsImxhc3RSZXBsYXlNcz0iK01hdGgucm91bmQocy11KSl9cmV0dXJuITB9ZnVuY3Rpb24gaGYoZSl7ci5zb2Z0UmVzeW5jVGltZXImJmNsZWFyVGltZW91dChyLnNvZnRSZXN5bmNUaW1lciksci5zb2Z0UmVzeW5jVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Iuc29mdFJlc3luY1RpbWVyPW51bGwsSW4oKX0sdHlwZW9mIGU9PSJudW1iZXIiP2U6MTUwKX12YXIgeWY9L1x4MWJcW1xkKig/OjtcZCopP1tBQkNEZkhKS10vLHJzPTE1MDAsYmY9ODAwO3IuX3Jlc3luY0NodW5rTGFzdEF0PTAsci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbDtmdW5jdGlvbiBFZihlKXtpZighci5fcmVzeW5jSW5Qcm9ncmVzcyYmci5zeW5jRnJhbWluZ1Jlc2lkdWUmJihyLnN5bmNGcmFtaW5nUmVzaWR1ZT0hMSwhKCFlfHx0eXBlb2YgZSE9InN0cmluZyIpJiZlLmluZGV4T2YoIlx4MUJbIikhPT0tMSYmeWYudGVzdChlKSkpe3ZhciB0PURhdGUubm93KCksbj10LXIuX3Jlc3luY0NodW5rTGFzdEF0O2lmKG4+PXJzKXtyLl9yZXN5bmNDaHVua1RhaWxUaW1lciYmKGNsZWFyVGltZW91dChyLl9yZXN5bmNDaHVua1RhaWxUaW1lciksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtMYXN0QXQ9dCxJbigpO3JldHVybn1pZighci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpe3ZhciBpPU1hdGgubWF4KGJmLHJzLW4pO3IuX3Jlc3luY0NodW5rVGFpbFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1udWxsLHIuX3Jlc3luY0NodW5rTGFzdEF0PURhdGUubm93KCksSW4oKX0saSl9fX1mdW5jdGlvbiBmaShlLHQsbil7aWYoIXIudGVybWluYWwpcmV0dXJuITE7dmFyIGk9dXUodHx8IiIpLGE9ZXx8bnVsbCx1PW58fHt9LG89dS5tb2RlfHwiYXBwZW5kIixzPXUuc2Nyb2xsIT09ITEsbD1yLnRlcm1pbmFsU2Vzc2lvbklkIT09YSxkPXIudGVybWluYWxPdXRwdXR8fCIiLGY9ISEoYSYmci50ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uc1thXSksYz0hMTtpZihpPT09ZCYmIWwpcmV0dXJuIHMmJmZ0KCJvdXRwdXQiKSxvdCgpLCExO2lmKGwmJihjaSgpLGQ9IiIsci50ZXJtaW5hbE91dHB1dD0iIixyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAsci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsVW4oKSxvdCgpKSxvPT09InJlcGxhY2UiKWkhPT1kJiYoY2koKSxpJiZLbihyLnRlcm1pbmFsLGkpLGM9ITApO2Vsc2V7aWYoaS5sZW5ndGg8ZC5sZW5ndGgmJiFsKXJldHVybiExO2lmKGYmJiFsJiZvIT09InJlcGxhY2UiJiZkJiYhaS5zdGFydHNXaXRoKGQpKXJldHVybiExO2lmKGkuc3RhcnRzV2l0aChkKSl7dmFyIHY9aS5zbGljZShkLmxlbmd0aCk7diYmKEtuKHIudGVybWluYWwsdiksYz0hMCl9ZWxzZXtpZihkJiZkLnN0YXJ0c1dpdGgoaSkpcmV0dXJuITE7Y2koKSxpJiZLbihyLnRlcm1pbmFsLGkpLGM9ITB9fXJldHVybiByLnRlcm1pbmFsU2Vzc2lvbklkPWEsci50ZXJtaW5hbE91dHB1dD1pLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxzJiYoY3x8bHx8bz09PSJyZXBsYWNlIik/ZnQobHx8bz09PSJyZXBsYWNlIj8iZm9yY2UiOiJvdXRwdXQiKTpvdCgpLGwmJmxpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpLGN8fGx9ZnVuY3Rpb24gSm4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoISghZXx8ci50ZXJtaW5hbHx8ci50ZXJtaW5hbEluaXRpYWxpemluZykpe2lmKHR5cGVvZiBXVGVybUxpYj4idSJ8fCFXVGVybUxpYi5XVGVybSl7ci50ZXJtaW5hbEluaXRSZXRyaWVzfHwoci50ZXJtaW5hbEluaXRSZXRyaWVzPTApLHIudGVybWluYWxJbml0UmV0cmllczwxMCYmKHIudGVybWluYWxJbml0UmV0cmllcysrLHNldFRpbWVvdXQoSm4sMjAwKSk7cmV0dXJufXIudGVybWluYWxJbml0UmV0cmllcz0wLHIudGVybWluYWxJbml0aWFsaXppbmc9ITAsci5zZWxlY3RlZElkJiYoZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxlLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpKTtmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIudGVybWluYWwtc2Nyb2xsLXdyYXAiKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5wYXJlbnROb2RlPT09ZSYmZS5yZW1vdmVDaGlsZChpKX12YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsLXdyYXAiLGUuYXBwZW5kQ2hpbGQoYSk7dmFyIHU9bmV3IFdUZXJtTGliLldUZXJtKGEse2NvbHM6MTIwLHJvd3M6MzYsYXV0b1Jlc2l6ZTohMCxjdXJzb3JCbGluazohMSxvbkRhdGE6ZnVuY3Rpb24oKXt9LG9uUmVzaXplOmZ1bmN0aW9uKHMsbCl7bGkocyxsKSxyLnRlcm1pbmFsJiZyLnRlcm1pbmFsT3V0cHV0JiZJbih7c2tpcEZpdDohMH0pfX0pLG89ZG9jdW1lbnQuZm9udHMmJnR5cGVvZiBkb2N1bWVudC5mb250cy5yZWFkeT09Im9iamVjdCI/UHJvbWlzZS5yYWNlKFtkb2N1bWVudC5mb250cy5yZWFkeSxuZXcgUHJvbWlzZShmdW5jdGlvbihzKXtzZXRUaW1lb3V0KHMsODAwKX0pXSk6UHJvbWlzZS5yZXNvbHZlKCk7by50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHUuaW5pdCgpfSkudGhlbihmdW5jdGlvbigpe2lmKHIudGVybWluYWw9dSxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSExLFF1KCksYS5pc0Nvbm5lY3RlZCYmKGEub2Zmc2V0SGVpZ2h0LHR5cGVvZiB1LnJlbWVhc3VyZT09ImZ1bmN0aW9uIikpdHJ5e3UucmVtZWFzdXJlKCl9Y2F0Y2h7fXIudGVybWluYWxBdXRvRm9sbG93PSEwLFVuKCk7dmFyIHM9d3QoKTtpZihzJiYoci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe2lmKERhdGUubm93KCk8ci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsKXtvdCgpO3JldHVybn1pZihRbygpKXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxVbigpLG90KCk7cmV0dXJufUNhKCl9LHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyPWZ1bmN0aW9uKGQpe2QudG91Y2hlcyYmZC50b3VjaGVzLmxlbmd0aD09PTEmJihyLnRlcm1pbmFsVG91Y2hTdGFydFk9ZC50b3VjaGVzWzBdLmNsaWVudFkpfSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI9ZnVuY3Rpb24oZCl7IWQudG91Y2hlc3x8ZC50b3VjaGVzLmxlbmd0aCE9PTF8fHR5cGVvZiByLnRlcm1pbmFsVG91Y2hTdGFydFk9PSJudW1iZXIiJiZkLnRvdWNoZXNbMF0uY2xpZW50WS1yLnRlcm1pbmFsVG91Y2hTdGFydFk+NCYmQ2EoKX0scy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSkscy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlcix7cGFzc2l2ZTohMH0pKSxyLnRlcm1pbmFsV2hlZWxIYW5kbGVyPWZ1bmN0aW9uKGQpe2QuZGVsdGFZPDAmJkNhKCksZC5zdG9wUHJvcGFnYXRpb24oKX0sZS5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsci50ZXJtaW5hbFdoZWVsSGFuZGxlcix7cGFzc2l2ZTohMH0pLHJmKGUpLHIuc2VsZWN0ZWRJZCl7dmFyIGw9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7bCYmZmkobC5pZCxsLm91dHB1dHx8IiIse21vZGU6ImFwcGVuZCIsc2Nyb2xsOiExfSl9ZWxzZSBLbih1LGBcdTcwQjlcdTUxRkJcdTRFMEFcdTY1QjlcdTMwMENcdTY1QjBcdTVCRjlcdThCRERcdTMwMERcdTVGMDBcdTU5Q0JcdTRGNjBcdTc2ODRcdTdCMkNcdTRFMDBcdTZCMjFcdTVCRjlcdThCRERcdTMwMDJccgpgKTtyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyPWZ1bmN0aW9uKGQpe0ZpKCl8fF90KGQpfSxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyKSxvdCgpLEhjKCksamMoKSxRYygpLCRjKCksUWUoIm1vdW50Iix7Zm9yY2VSZXBsYXk6ITB9KSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikmJlsxMjAsMzUwLDcwMF0uZm9yRWFjaChmdW5jdGlvbihkKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmUWUoImVtYmVkLXNldHRsZSIpfSxkKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ci50ZXJtaW5hbEluaXRpYWxpemluZz0hMSxjb25zb2xlLmVycm9yKCJbd2FuZF0gd3Rlcm0gaW5pdCBmYWlsZWQ6IixzKX0pfX1mdW5jdGlvbiBGZihlLHQpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8IWUpKXt2YXIgbj1yLnNlbGVjdGVkSWQrIjoiK2U7aWYoci50b29sQ29udGVudENhY2hlW25dKXt0KG51bGwsci50b29sQ29udGVudENhY2hlW25dKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL3Rvb2wtY29udGVudC8iK2VuY29kZVVSSUNvbXBvbmVudChlKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpLmVycm9yP3QoaS5lcnJvcixudWxsKTooci50b29sQ29udGVudENhY2hlW25dPWksdChudWxsLGkpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCgiXHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1IixudWxsKX0pfX1mdW5jdGlvbiBUbihlKXtyZXR1cm4hIShyLmNvbmZpZyYmci5jb25maWcuY2FyZERlZmF1bHRzJiZyLmNvbmZpZy5jYXJkRGVmYXVsdHNbZV0pfWZ1bmN0aW9uIGthKGUsdCxuLGkpe2lmKCEoIWV8fGUuZGF0YXNldC50cnVuY2F0ZWQhPT0idHJ1ZSJ8fGUuZGF0YXNldC5sb2FkZWQ9PT0idHJ1ZSIpKXt2YXIgYT1lLmRhdGFzZXQudG9vbFVzZUlkO2EmJih0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InRvb2wtY29udGVudC1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj4nKSxlLmRhdGFzZXQubG9hZGVkPSJsb2FkaW5nIixGZihhLGZ1bmN0aW9uKHUsbyl7aWYodSl7dCYmKHQuaW5uZXJIVE1MPWl8fCc8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtZXJyb3IiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNVx1RkYwQ1x1NzBCOVx1NTFGQlx1OTFDRFx1OEJENTwvZGl2PicpLGUuZGF0YXNldC5sb2FkZWQ9IiI7cmV0dXJufWUuZGF0YXNldC50cnVuY2F0ZWQ9ImZhbHNlIixlLmRhdGFzZXQubG9hZGVkPSJ0cnVlIjt2YXIgcz10eXBlb2Ygby5jb250ZW50PT0ic3RyaW5nIj9vLmNvbnRlbnQ6SlNPTi5zdHJpbmdpZnkoby5jb250ZW50KTtuKHMsbyl9KSl9fXdpbmRvdy5fX3RjVG9nZ2xlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5jbG9zZXN0KCIudG9vbC11c2UtY2FyZCIpfHx0LmNsb3Nlc3QoIi5pbmxpbmUtZGlmZiIpO2lmKG4pe3ZhciBpPW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtuLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlZCIpO3ZhciBhPWk7dC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGE/InRydWUiOiJmYWxzZSIpO3ZhciB1PW4ucXVlcnlTZWxlY3RvcigiLnRvb2wtdXNlLWJvZHksIC5kaWZmLWJvZHkiKTt1JiZ1LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLGE/ImZhbHNlIjoidHJ1ZSIpO3ZhciBvPW4uZGF0YXNldC5leHBhbmRLaW5kfHwidG9vbC1jYXJkIjtpZihfbihuLG8pLGkpe3ZhciBzPW4ucXVlcnlTZWxlY3RvcigiLnRvb2wtdXNlLXJlc3VsdCIpO2thKG4scyxmdW5jdGlvbihsKXtzJiYocy5pbm5lckhUTUw9JzxwcmUgY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1jb250ZW50Ij4nK3AobCkrIjwvcHJlPiIpfSxgPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWVycm9yIiBvbmNsaWNrPSJfX3RjVG9nZ2xlKG51bGwsIHRoaXMuY2xvc2VzdCgnLnRvb2wtdXNlLWNhcmQsLmlubGluZS1kaWZmJykucXVlcnlTZWxlY3RvcignLnRvb2wtdXNlLWhlYWRlciwuZGlmZi1oZWFkZXInKSkiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNVx1RkYwQ1x1NzBCOVx1NTFGQlx1OTFDRFx1OEJENTwvZGl2PmApfX1lJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpfSx3aW5kb3cuX190aGlua2luZ1RvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1lLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7aWYodCl7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZWQiKSxlLmNsYXNzTGlzdC5hZGQoImV4cGFuZGVkIiksZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLXByZXZpZXciKS50ZXh0Q29udGVudD1lLmRhdGFzZXQudGhpbmtpbmd8fCIiO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1hY3Rpb24iKTtuJiYobi50ZXh0Q29udGVudD0iXHU2NTM2XHU4RDc3Iil9ZWxzZXtlLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIiksZS5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKTt2YXIgaT0oZS5kYXRhc2V0LnRoaW5raW5nfHwiIikuc2xpY2UoMCw1NykrKChlLmRhdGFzZXQudGhpbmtpbmd8fCIiKS5sZW5ndGg+NjA/Ilx1MjAyNiI6IiIpO2UucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3IikudGV4dENvbnRlbnQ9aTt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1NUM1NVx1NUYwMCIpfV9uKGUsInRoaW5raW5nIil9LHdpbmRvdy5fX3N1YmFnZW50UmVwbHlUb2dnbGU9ZnVuY3Rpb24oZSx0KXtlJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpO3ZhciBuPXQmJnQuY2xvc2VzdD90LmNsb3Nlc3QoIi5zdWJhZ2VudC1yZXBseSIpOm51bGw7aWYobil7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtLdShuLCJzdWJhZ2VudC1yZXBseSIsIWkpLF9uKG4sInN1YmFnZW50LXJlcGx5Iil9fSx3aW5kb3cuX19zdWJhZ2VudFBhbmVsVG9nZ2xlPWZ1bmN0aW9uKGUsdCl7ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTt2YXIgbj10JiZ0LmNsb3Nlc3Q/dC5jbG9zZXN0KCIuc3ViYWdlbnQtcGFuZWwiKTpudWxsO24mJm4uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIiwidHJ1ZSIpfTtmdW5jdGlvbiB3ZihlKXtpZihlKWZvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdWJhZ2VudC1wYW5lbFtkYXRhLWZvbGxvdy10YWlsPSJ0cnVlIl0nKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0ucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtpJiYoaS5zY3JvbGxUb3A9aS5zY3JvbGxIZWlnaHQpfX13aW5kb3cuX19vcGVuRmlsZVByZXZpZXc9ZnVuY3Rpb24oZSl7ZSYmZWkoZSl9LHdpbmRvdy5fX2lubGluZVRvb2xUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QudG9nZ2xlKCJpbmxpbmUtdG9vbC1vcGVuIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO24mJihuLnN0eWxlLmRpc3BsYXk9dD8iYmxvY2siOiJub25lIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtc3RhdHVzIik7aSYmKGUuZGF0YXNldC5zdGF0dXM9PT0iZXJyb3IiP2kudGV4dENvbnRlbnQ9Ilx1MjcxNyI6ZS5kYXRhc2V0LnN0YXR1cz09PSJkb25lIiYmKGkudGV4dENvbnRlbnQ9Ilx1MjcxMyIpKSx0JiZrYShlLG4sZnVuY3Rpb24oYSl7ZS5kYXRhc2V0LnJlc3VsdD1hLG4mJihuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0Ij4nK2xsKGEsIiIpKyI8L2Rpdj4iKX0pLF9uKGUsImlubGluZS10b29sIil9LHdpbmRvdy5fX3Rlcm1pbmFsRXhwYW5kPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xvc2VzdCgiLmlubGluZS10ZXJtaW5hbCIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2lmKG4pe3ZhciBpPW4uc3R5bGUuZGlzcGxheT09PSJub25lIjtuLnN0eWxlLmRpc3BsYXk9aT8iYmxvY2siOiJub25lIix0LmRhdGFzZXQuZXhwYW5kZWQ9aT8idHJ1ZSI6ImZhbHNlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsaT8idHJ1ZSI6ImZhbHNlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIixpPyJmYWxzZSI6InRydWUiKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLXRvZ2dsZS1pY29uIik7aWYoYSYmKGEudGV4dENvbnRlbnQ9aT8iXHUyNUJDIjoiXHUyNUI2IiksX24odCwidGVybWluYWwiKSxpKXt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLW91dHB1dCIpO2thKHQsdSxmdW5jdGlvbihvKXtpZih1KXtmb3IodmFyIHM9by5zcGxpdChgCmApLGw9IiIsZD0wO2Q8cy5sZW5ndGg7ZCsrKSFzW2RdJiZkPT09cy5sZW5ndGgtMXx8KGwrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChzW2RdKSsiPC9kaXY+Iik7dS5pbm5lckhUTUw9bH19KX19fX07ZnVuY3Rpb24gS2coZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZyIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZy10ZXh0Iik7aWYobil7dmFyIGk9ZS5zcGxpdChgCmApLGE9aS5zbGljZSgtMyk7bi50ZXh0Q29udGVudD1hLmpvaW4oYApgKSxuLnNjcm9sbFRvcD1uLnNjcm9sbEhlaWdodH19fXdpbmRvdy5fX2Fza1NlbGVjdD1mdW5jdGlvbihlLHQsbixpKXt2YXIgYT1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKGF8fChhPXtzdWJtaXR0ZWQ6ITF9LHIuYXNrVXNlclNlbGVjdGlvbnNbZV09YSksIWEuc3VibWl0dGVkKXt2YXIgdT1hW3RdfHxbXTtpZihpKXt2YXIgbz11LmluZGV4T2Yobik7bz09PS0xP3UucHVzaChuKTp1LnNwbGljZShvLDEpfWVsc2UgdT11WzBdPT09bj9bXTpbbl07YVt0XT11LHdpbmRvdy5fX2Fza1JlbmRlcihlKX19LHdpbmRvdy5fX2Fza1JlbmRlcj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKHQpe3ZhciBuPXIuYXNrVXNlclNlbGVjdGlvbnNbZV18fHt9O3QucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLW9wdGlvbiIpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIHM9cGFyc2VJbnQoby5kYXRhc2V0LnF1ZXN0aW9uSW5kZXgsMTApLGw9cGFyc2VJbnQoby5kYXRhc2V0Lm9wdGlvbkluZGV4LDEwKSxkPShuW3NdfHxbXSkuaW5kZXhPZihsKSE9PS0xO28uY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLGQpfSk7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuYXNrLXVzZXItc3VibWl0Iik7aWYoaSl7dmFyIGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIuYXNrLXVzZXItcXVlc3Rpb24tZ3JvdXAiKSx1PSEwO2EuZm9yRWFjaChmdW5jdGlvbihvLHMpeyghbltzXXx8bltzXS5sZW5ndGg9PT0wKSYmKHU9ITEpfSksaS5kaXNhYmxlZD0hdXx8ISFuLnN1Ym1pdHRlZCxuLnN1Ym1pdHRlZCYmKGkudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjNEMFx1NEVBNC4uLiIsaS5jbGFzc0xpc3QuYWRkKCJhc2stdXNlci1zdWJtaXR0ZWQiKSl9fX0sd2luZG93Ll9fYXNrU3VibWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXIuYXNrVXNlclNlbGVjdGlvbnNbZV07aWYoISghdHx8dC5zdWJtaXR0ZWR8fCFyLnNlbGVjdGVkSWQpKXt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKG4pe3ZhciBpPW4ucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksYT1bXSx1PSEwO2lmKGkuZm9yRWFjaChmdW5jdGlvbihzLGwpe3ZhciBkPXRbbF18fFtdO2lmKGQubGVuZ3RoPT09MCl7dT0hMTtyZXR1cm59dmFyIGY9W107ZC5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciB2PXMucXVlcnlTZWxlY3RvcignW2RhdGEtb3B0aW9uLWluZGV4PSInK2MrJyJdJyk7diYmZi5wdXNoKHYuZGF0YXNldC5vcHRpb25MYWJlbCl9KSxhLnB1c2goZi5qb2luKCIsICIpKX0pLCEhdSl7dC5zdWJtaXR0ZWQ9ITAsd2luZG93Ll9fYXNrUmVuZGVyKGUpO3ZhciBvPWEuam9pbihgCmApO2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDpvK2AKYCx2aWV3OnIuY3VycmVudFZpZXd9KX0pLmNhdGNoKGZ1bmN0aW9uKHMpe2NvbnNvbGUuZXJyb3IoIlt3YW5kXSBFcnJvciBzZW5kaW5nIGFuc3dlcjoiLHMpLHQuc3VibWl0dGVkPSExLHdpbmRvdy5fX2Fza1JlbmRlcihlKX0pfX19fTtmdW5jdGlvbiBDZigpe2lmKCFyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQpe3IuX19nbG9iYWxMaXN0ZW5lcnNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKX0pO3ZhciBlPWZ1bmN0aW9uKCl7ci50b3BiYXJNb3JlT3Blbj0hMTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLWJ1dHRvbiIpO3QmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmKG4uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIudG9wYmFyTW9yZU9wZW4pe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51IiksaT1uJiZuLnBhcmVudEVsZW1lbnQ7aSYmIWkuY29udGFpbnModC50YXJnZXQpJiZlKCl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci50b3BiYXJNb3JlT3BlbiYmZSgpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIucGx1c1BvcG92ZXJPcGVuKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO24mJm4uY29udGFpbnModC50YXJnZXQpfHxpJiZpLmNvbnRhaW5zKHQudGFyZ2V0KXx8emkoKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnBsdXNQb3BvdmVyT3BlbiYmemkoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtpZighKCFufHx0eXBlb2Ygbi5jbG9zZXN0IT0iZnVuY3Rpb24iKSl7dmFyIGk9bi5jbG9zZXN0KCIjYXV0by1hcHByb3ZlLXRvZ2dsZSIpO2kmJih0LnByZXZlbnREZWZhdWx0KCksVGMoKSl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKCF0LnRhcmdldC5jbG9zZXN0KCIuZm9sZGVyLXBpY2tlci1jb250YWluZXIiKSl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItZHJvcGRvd24iKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8bi5ub2RlVHlwZSE9PTEpJiYhKHR5cGVvZiBuLm1hdGNoZXMhPSJmdW5jdGlvbiJ8fCFuLm1hdGNoZXMoIltkYXRhLW1vZGUtY29udHJvbF0iKSkpe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUtY29udHJvbCIpLGE9bi52YWx1ZTtpPT09Im1vZGUiP0FtKGEpOmk9PT0ibW9kZWwiP2ttKGEpOmk9PT0idGhpbmtpbmciJiZGbShhKSxuLmNsb3Nlc3QmJm4uY2xvc2VzdCgiI2NvbXBvc2VyLXBsdXMtcG9wb3ZlciIpJiZ6aSgpfX0pfX1mdW5jdGlvbiBCZigpe0NmKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWJ1dHRvbiIpO2lmKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG91KTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZm9ybSIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksb3UoKX0pO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1zd2l0Y2gtc2VydmVyLWJ1dHRvbiIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZsKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2dnbGUtcGFzc3dvcmQtYnV0dG9uIik7YSYmaSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj1pLnR5cGU9PT0idGV4dCI7aS50eXBlPWI/InBhc3N3b3JkIjoidGV4dCIsYS50ZXh0Q29udGVudD1iPyJcdTY2M0VcdTc5M0EiOiJcdTk2OTBcdTg1Q0YiLGEuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixiPyJcdTY2M0VcdTc5M0FcdTVCQzZcdTc4MDEiOiJcdTk2OTBcdTg1Q0ZcdTVCQzZcdTc4MDEiKSxhLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixiPyJmYWxzZSI6InRydWUiKSxpLmZvY3VzKCl9KSxpJiYoaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtiLmtleT09PSJFbnRlciImJm91KCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe2kuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGkuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpO2ImJnZpKGIpfSksaS5mb2N1cygpKTtyZXR1cm59dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKTt1JiYodS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtiLmtleT09PSJFbnRlciImJiFiLnNoaWZ0S2V5JiYoYi5wcmV2ZW50RGVmYXVsdCgpLGhzKCkpfSksdS5mb2N1cygpKTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1zZW5kLWJ0biIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7aHMoKX0pO3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtY2xhdWRlIik7cyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtLbCgpfSk7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtdG9vbC1jb2RleCIpO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZXNzaW9uVG9vbD0iY29kZXgiLHIucHJlZmVycmVkQ29tbWFuZD0iY29kZXgiLHIubW9kZVZhbHVlPSJmdWxsLWFjY2VzcyIsS2woKX0pO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtc3RydWN0dXJlZCIpO2QmJmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7T2woKS50aGVuKGZ1bmN0aW9uKCl7X3QoITApfSkuY2F0Y2goZnVuY3Rpb24oYil7QShiJiZiLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTdFRDNcdTY3ODRcdTUzMTZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpfSl9KSxwZygpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iik7ZiYmKGYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRmKSxmLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG5mKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsTm0pLGYuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLGptKSxudihmKSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdG4sITApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRuKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvdmlkZXItY2FyZHMiKTtjJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLnRhcmdldC5jbG9zZXN0KCIucHJvdmlkZXItY2FyZCIpO2lmKCEoIVN8fFMuY2xhc3NMaXN0LmNvbnRhaW5zKCJkaXNhYmxlZCIpKSl7dmFyIFc9Uy5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKTtXJiYoci5zZXNzaW9uVG9vbD1XLHIucHJlZmVycmVkQ29tbWFuZD1XLE9yKCkpfX0pO3ZhciB2PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtY2FyZHMiKTt2JiZ2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLnRhcmdldC5jbG9zZXN0KCIuc2Vzc2lvbi1raW5kLWNhcmQiKTtpZighKCFTfHxTLmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSkpe3ZhciBXPVMuZ2V0QXR0cmlidXRlKCJkYXRhLXNlc3Npb24ta2luZCIpO1cmJihyLnNlc3Npb25DcmVhdGVLaW5kPVcsT3IoKSl9fSk7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtY2FyZHMiKTtoJiZoLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLnRhcmdldC5jbG9zZXN0KCIubW9kZS1jYXJkIik7aWYoUyl7dmFyIFc9Uy5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZSIpO1cmJihyLm1vZGVWYWx1ZT1XLE9yKCkpfX0pO3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIpO2cmJmcuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3Iuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPWcuY2hlY2tlZH0pO3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTttJiYobS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLmN3ZFZhbHVlPW0udmFsdWV9KSxtLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLmN3ZFZhbHVlPW0udmFsdWV9KSxtLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixZbCksbS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsWWwpLG0uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KHJyLDEyMCl9KSk7dmFyIHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLXRvZ2dsZS1idXR0b24iKTt5JiZ5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixNbSk7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIpO3cmJncuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLF9yKTt2YXIgRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtZHJhd2VyLWJ1dHRvbiIpO0UmJkUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLF9yKTt2YXIgQj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtCJiZCLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixSbSk7dmFyIEQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcGluLWJ0biIpO0QmJkQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFdtKTt2YXIgRj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1tb3JlLWJ0biIpLEk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO0YmJkkmJkYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIFM9IUkuY2xhc3NMaXN0LmNvbnRhaW5zKCJvcGVuIik7SS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixTKSxTJiZWbShJKX0pO3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLWhvbWUtYnRuIik7TCYmTC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ9bnVsbCxFZSgpLEN0KCksV3QoKSxadCgpfSk7dmFyIFA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcmVmcmVzaC1idG4iKTtQJiZQLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pO3ZhciBWPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dvdXQtYnV0dG9uIik7ViYmVi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscGwpO3ZhciB4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzd2l0Y2gtc2VydmVyLWJ1dHRvbiIpO3gmJnguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZsKTt2YXIgaz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmFjay10by1uYXRpdmUtYnV0dG9uIik7ayYmay5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscG0pO3ZhciBUPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1idXR0b24iKTtUJiZULmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixKbSk7dmFyIE09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLXNldHRpbmdzLWJ1dHRvbiIpO00mJk0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRyKTt2YXIgSj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtKJiZKLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJzZXR0aW5ncy1tb2RhbCImJnRyKCl9KTt2YXIgej1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZS1wYXNzd29yZC1idXR0b24iKTt6JiZ6LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixZbSk7Zm9yKHZhciBHPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSxzZT0wO3NlPEcubGVuZ3RoO3NlKyspR1tzZV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBTPWIuY3VycmVudFRhcmdldHx8dGhpcyxXPVMmJlMuZ2V0QXR0cmlidXRlP1MuZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpOm51bGw7VyYmRnUoVyl9KTt2YXIgdGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtY29uZmlnLWJ1dHRvbiIpO3RlJiZ0ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZWcpLERtKCk7dmFyIFo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giKTtaJiZaLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDbSk7dmFyIHE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy12aWV3LWVudi1idG4iKTtxJiZxLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixCbSk7dmFyIE89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtZGlzcGxheS1idXR0b24iKTtPJiZPLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0Zyk7dmFyIF89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcC1pY29uLXBpY2tlciIpO2lmKF8pZm9yKHZhciBZPV8ucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIpLEs9MDtLPFkubGVuZ3RoO0srKylZW0tdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBiPXRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLWljb24iKTtpZighKCFifHx0eXBlb2YgV2FuZE5hdGl2ZT4idSJ8fHR5cGVvZiBXYW5kTmF0aXZlLnNldEFwcEljb24hPSJmdW5jdGlvbiIpKXRyeXtXYW5kTmF0aXZlLnNldEFwcEljb24oYiksV2woYik7dmFyIFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcC1pY29uLW1lc3NhZ2UiKTtTJiYoUy50ZXh0Q29udGVudD0iXHU1NkZFXHU2ODA3XHU1REYyXHU1MjA3XHU2MzYyXHVGRjBDXHU4RkQ0XHU1NkRFXHU2ODRDXHU5NzYyXHU1NDBFXHU3NTFGXHU2NTQ4IixTLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsUy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Uy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0sM2UzKSl9Y2F0Y2h7fX0pO3ZhciByZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBsb2FkLWNlcnQtYnV0dG9uIik7cmUmJnJlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuZyk7Zm9yKHZhciBkZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZmlsZS1waWNrZXItaW5wdXQiKSxuZT0wO25lPGRlLmxlbmd0aDtuZSsrKShmdW5jdGlvbihiKXtiLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgUz1iLmNsb3Nlc3QoIi5maWxlLXBpY2tlciIpO2lmKFMpe3ZhciBXPVMucXVlcnlTZWxlY3RvcigiLmZpbGUtcGlja2VyLW5hbWUiKTtXJiYoYi5maWxlcyYmYi5maWxlc1swXT8oVy50ZXh0Q29udGVudD1iLmZpbGVzWzBdLm5hbWUsUy5jbGFzc0xpc3QuYWRkKCJmaWxlLXBpY2tlci1oYXMtZmlsZSIpKTooVy50ZXh0Q29udGVudD1XLmdldEF0dHJpYnV0ZSgiZGF0YS1kZWZhdWx0Iil8fCJcdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjYiLFMuY2xhc3NMaXN0LnJlbW92ZSgiZmlsZS1waWNrZXItaGFzLWZpbGUiKSkpfX0pfSkoZGVbbmVdKTt2YXIgaWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoZWNrLXVwZGF0ZS1idXR0b24iKTtpZSYmaWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJsKTt2YXIgT2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTtPZSYmT2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHJnKTt2YXIgRmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIik7RmUmJkZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixpZyk7dmFyIGNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIik7Y2UmJmNlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt3dSgid2ViIixjZS5jaGVja2VkKX0pO3ZhciBSPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIik7UiYmUi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7d3UoImFwayIsUi5jaGVja2VkKX0pO3ZhciBtdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO210JiZtdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7d3UoImRtZyIsbXQuY2hlY2tlZCl9KTt2YXIgUGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTtQZSYmUGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe29nKFBlLmNoZWNrZWQ/ImJldGEiOiJzdGFibGUiKX0pO3ZhciAkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5LWNvbm5lY3QtY29kZS1idXR0b24iKTskJiYkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtY29kZSIpO2ImJlJyKGIudGV4dENvbnRlbnQsJCl9KTt2YXIgaGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1zb3VuZCIpO2hlJiYoaGUuY2hlY2tlZD1yLm5vdGlmU291bmQsaGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3Iubm90aWZTb3VuZD1oZS5jaGVja2VkO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi1zb3VuZCIsU3RyaW5nKHIubm90aWZTb3VuZCkpfWNhdGNoe31yLm5vdGlmU291bmQmJmhpKCk7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmLXZvbHVtZS1maWVsZCIpO2ImJihiLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIil9KSk7dmFyIHllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lIiksd2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUtdmFsIikscGU9ZnVuY3Rpb24oYil7aWYoYil7dmFyIFM9TnVtYmVyKGIubWlufHwwKSxXPU51bWJlcihiLm1heHx8MTAwKSxCZT1OdW1iZXIoYi52YWx1ZXx8MCksYnQ9Vz5TP01hdGgubWF4KDAsTWF0aC5taW4oMTAwLChCZS1TKS8oVy1TKSoxMDApKTowO2Iuc3R5bGUuc2V0UHJvcGVydHkoIi0tcmFuZ2UtZmlsbCIsYnQrIiUiKX19O2lmKHllKXt5ZS52YWx1ZT1TdHJpbmcoci5ub3RpZlZvbHVtZSksd2UmJih3ZS50ZXh0Q29udGVudD1yLm5vdGlmVm9sdW1lKyIlIikscGUoeWUpO3ZhciBiZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7YmUmJihiZS5zdHlsZS5kaXNwbGF5PXIubm90aWZTb3VuZD8iIjoibm9uZSIpO3ZhciBBdD1udWxsO3llLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3Iubm90aWZWb2x1bWU9cGFyc2VJbnQoeWUudmFsdWUsMTApLHdlJiYod2UudGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpLHBlKHllKTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtbm90aWYtdm9sdW1lIixTdHJpbmcoci5ub3RpZlZvbHVtZSkpfWNhdGNoe31pZihSZSYmdHlwZW9mIFdhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uVm9sdW1lPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnNldE5vdGlmaWNhdGlvblZvbHVtZShyLm5vdGlmVm9sdW1lKX1jYXRjaHt9fSkseWUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2hpKCl9KX12YXIgZXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1idWJibGUiKTtldCYmKGV0LmNoZWNrZWQ9ci5ub3RpZkJ1YmJsZSxldC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5ub3RpZkJ1YmJsZT1ldC5jaGVja2VkO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi1idWJibGUiLFN0cmluZyhyLm5vdGlmQnViYmxlKSl9Y2F0Y2h7fX0pKTt2YXIgaXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXF1ZXN0LWJ0biIpO2l0JiZpdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtpZihSZSl7d2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHQ9ZnVuY3Rpb24oKXt3bigpLGRlbGV0ZSB3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdH07dHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9fWVsc2UgdHlwZW9mIE5vdGlmaWNhdGlvbjwidSImJk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oZnVuY3Rpb24oKXt3bigpfSl9KTt2YXIgSGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXNldC1idG4iKTtIZSYmSGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHNnKTt2YXIgVXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWJ0biIpO1V0JiZVdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsVmwpO3ZhciBLZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7aWYoS2UmJktlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsZyksd24oKSxSZSYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXZhaWxhYmxlU291bmRzPT0iZnVuY3Rpb24iKXt2YXIgVmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1zZWN0aW9uIiksQ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1zZWxlY3QiKSxvZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXByZXZpZXciKTtpZihWZSYmQ2Upe1ZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3RyeXt2YXIgdmU9SlNPTi5wYXJzZShXYW5kTmF0aXZlLmdldEF2YWlsYWJsZVNvdW5kcygpKSxDPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uU291bmQoKTtDZS5pbm5lckhUTUw9IiI7Zm9yKHZhciB0dD0wO3R0PHZlLmxlbmd0aDt0dCsrKXt2YXIgZHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7ZHQudmFsdWU9dmVbdHRdLmlkLGR0LnRleHRDb250ZW50PXZlW3R0XS5uYW1lLHZlW3R0XS5pZD09PUMmJihkdC5zZWxlY3RlZD0hMCksQ2UuYXBwZW5kQ2hpbGQoZHQpfUNlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt0cnl7V2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Tb3VuZChDZS52YWx1ZSl9Y2F0Y2h7fX0pLG9lJiZvZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt0cnl7V2FuZE5hdGl2ZS5wcmV2aWV3U291bmQoQ2UudmFsdWUpfWNhdGNoe319KX1jYXRjaHt9fX1pZihSZSYmdHlwZW9mIFdhbmROYXRpdmUuaXNIYXB0aWNFbmFibGVkPT0iZnVuY3Rpb24iKXt2YXIgeHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1oYXB0aWMtc2VjdGlvbiIpLGd0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaGFwdGljLWVuYWJsZWQiKTtpZih4dCYmZ3Qpe3h0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3RyeXtndC5jaGVja2VkPVdhbmROYXRpdmUuaXNIYXB0aWNFbmFibGVkKCl9Y2F0Y2h7fWd0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt0cnl7V2FuZE5hdGl2ZS5zZXRIYXB0aWNFbmFibGVkKGd0LmNoZWNrZWQpfWNhdGNoe31ndC5jaGVja2VkJiZZbigibWVkaXVtIil9KX19dmFyIFN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbmV3LXNlc3Npb24tYnV0dG9uIik7U3QmJlN0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixidSk7dmFyIEt0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcmF3ZXItbmV3LXNlc3Npb24tYnV0dG9uIik7S3QmJkt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixidSk7dmFyIEp0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1tb2RhbC1idXR0b24iKTtKdCYmSnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEVuKTt2YXIgVGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLXdvcmt0cmVlLW1lcmdlLWJ1dHRvbiIpO1RlJiZUZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZXIpO3ZhciBKZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY2FuY2VsLWJ1dHRvbiIpO0plJiZKZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZXIpO3ZhciBfZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29uZmlybS1idXR0b24iKTtfZSYmX2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEttKTt2YXIgSXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJ1bi1idXR0b24iKTtJdCYmSXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGRnKTt2YXIgbm49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKTtubiYmbm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFNjKTt2YXIgVHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbnktcGVybWlzc2lvbi1idG4iKTtUdCYmVHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEljKTt2YXIgcm49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbmQtaW5wdXQtYnV0dG9uIik7cm4mJnJuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe1d0KCksb3AoKX0pO3ZhciBjdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtjdCYmY3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHphKTt2YXIgWXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtZdCYmWXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IudGFyZ2V0LmlkPT09InNlc3Npb24tbW9kYWwiJiZFbigpLGIudGFyZ2V0LmlkPT09Indvcmt0cmVlLW1lcmdlLW1vZGFsIiYmZXIoKX0pO3ZhciBsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bGUmJihqcyhsZSksbGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIseWcpLGxlLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIixrZyksbGUuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbENvbXBvc2luZ3x8R2wobGUpfHwobXYobGUpLHJ0KGxlLnZhbHVlLCEwKSxVaShsZSkpfSksbGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJihyLnRlcm1pbmFsQ29tcG9zaW5nPSEwKX0pLGxlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIixmdW5jdGlvbigpe3IudGVybWluYWxDb21wb3NpbmcmJihyLnRlcm1pbmFsQ29tcG9zaW5nPSExLHIudGVybWluYWxJbnRlcmFjdGl2ZSYmR2wobGUpKX0pLGxlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe1d0KCksc3Yoe3RhcmdldDpsZX0pfSksbGUuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsbHYpKTt2YXIgYXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF0dGFjaC1idG4iKSxodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS11cGxvYWQtaW5wdXQiKSx5dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksYW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsdXMtYXR0YWNoLWl0ZW0iKTthdCYmeXQmJmF0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpLE9tKCl9KSxhbiYmaHQmJmFuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ppKCksaHQuY2xpY2soKX0pLGh0JiZodC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGI9aHQuZmlsZXM7aWYoYilmb3IodmFyIFM9MDtTPGIubGVuZ3RoO1MrKylDdShiW1NdKTtodC52YWx1ZT0iIn0pO3ZhciBhZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtYnRuIik7YWUmJmFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3FhKCl9KTt2YXIgdXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLWNhbmNlbC1idG4iKTt1dCYmdXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7cWEoITEpfSk7dmFyIGtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7a2UmJihrZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsWGYpLGtlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixaZiksa2UuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixwcyksa2UuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIscHMpKTt2YXIgWWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC1vcHRpbWl6ZS1idG4iKTtZZSYmWWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7eGcoKX0pO3ZhciBBZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtBZSYmKEFlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSxBZS5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLEFlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksQWUuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxBZS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSxBZS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTt2YXIgUz1iLmRhdGFUcmFuc2ZlciYmYi5kYXRhVHJhbnNmZXIuZmlsZXM7aWYoUylmb3IodmFyIFc9MDtXPFMubGVuZ3RoO1crKylDdShTW1ddKX0pKTt2YXIgTGU9WyJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIl07TGUuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgUz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKTtTJiZTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixLcCl9KTt2YXIgTj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1wYW5lbC10b2dnbGUtYnRuIik7TiYmTi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWHIpO3ZhciBqPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwtY2xvc2UiKTtqJiZqLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixZdSk7dmFyIFE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtYmFja2Ryb3AiKTtRJiZRLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixZdSk7dmFyIGVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZmlsZS1idXR0b24iKTtlZSYmZWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFhyKTt2YXIgbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1jd2QiKTttZSYmKG1lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVBhbmVsT3Blbnx8WHIoKX0pLG1lLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpeyhiLmtleT09PSJFbnRlciJ8fGIua2V5PT09IiAiKSYmKGIucHJldmVudERlZmF1bHQoKSxyLmZpbGVQYW5lbE9wZW58fFhyKCkpfSkpO3ZhciBOZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtYnV0dG9uIiksYXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKTtOZSYmYXImJihOZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxyLnRvcGJhck1vcmVPcGVuPSFyLnRvcGJhck1vcmVPcGVuLGFyLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXIudG9wYmFyTW9yZU9wZW4pLE5lLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci50b3BiYXJNb3JlT3BlbiksTmUuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixyLnRvcGJhck1vcmVPcGVuPyJ0cnVlIjoiZmFsc2UiKX0pLGFyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLnRhcmdldCYmYi50YXJnZXQuY2xvc2VzdD9iLnRhcmdldC5jbG9zZXN0KCIudG9wYmFyLW1vcmUtaXRlbSIpOm51bGw7aWYoUyl7dmFyIFc9Uy5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7c3dpdGNoKHIudG9wYmFyTW9yZU9wZW49ITEsYXIuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksTmUuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksTmUuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSxXKXtjYXNlImNvcHktY2xhdWRlLXNlc3Npb24taWQiOkZhKCJjbGF1ZGVTZXNzaW9uSWQiLER0KCkmJkR0KCkucHJvdmlkZXI9PT0iY29kZXgiPyJDb2RleCB0aHJlYWQgSUQgXHU1REYyXHU1OTBEXHU1MjM2IjoiQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlImNvcHktY3dkIjpGYSgiY3dkIiwiXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJjb3B5LXNlc3Npb24taWQiOkZhKCJpZCIsIlx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlIndvcmt0cmVlLW1lcmdlIjpyLnNlbGVjdGVkSWQmJkhsKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJ3b3JrdHJlZS1jbGVhbnVwIjpyLnNlbGVjdGVkSWQmJl9sKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJkZWxldGUtc2Vzc2lvbiI6ci5zZWxlY3RlZElkJiYoZnVuY3Rpb24oQmUpe1NuKCJcdTc4NkVcdTVCOUFcdTg5ODFcdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIn0pLnRoZW4oZnVuY3Rpb24oYnQpe2J0JiZWYShCZSl9KX0pKHIuc2VsZWN0ZWRJZCk7YnJlYWt9fX0pKTt2YXIgUG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLWRvd24tdG9wIiksSG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLXVwLXRvcCIpO1BuJiZQbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtHdSgtLjI1KX0pLEhuJiZIbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtHdSguMjUpfSk7dmFyIEppPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYWdlLXJlZnJlc2gtYnRuIik7SmkmJkppLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtpZihiJiZiLnNoaWZ0S2V5KXtsb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59SW4oKSxDdCh7cHJlc2VydmVTdGlja1N0YXRlOiEwfSksWWEoITApfSk7dmFyIFZyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIpO1ZyJiZWci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtmdCgiZm9yY2UiKX0pO3ZhciBZaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC11bnJlYWQtYnViYmxlIik7WWkmJllpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe1B1KCEwKX0pO3ZhciBRbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1yZWZyZXNoIik7UWwmJlFsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3F0KCl9KTt2YXIgJGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItdXAiKTskbCYmJGwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLE1kKTt2YXIgVWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItY3dkIik7aWYoVWUmJlVlLnRhZ05hbWU9PT0iSU5QVVQiKXt2YXIgdXI9VWUudmFsdWUsWGw9ZnVuY3Rpb24oYil7dmFyIFM9KGJ8fCIiKS50cmltKCk7cmV0dXJuIFM/KFM9Uy5yZXBsYWNlKC9cL3syLH0vZywiLyIpLFMubGVuZ3RoPjEmJihTPVMucmVwbGFjZSgvXC8rJC8sIiIpKSxTKToiIn07VWUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7dXI9VWUudmFsdWUsc2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtVZS5zZWxlY3QoKX1jYXRjaHt9fSwwKX0pLFVlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2lmKGIua2V5PT09IkVudGVyIil7Yi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBTPVhsKFVlLnZhbHVlKTtpZighUylyZXR1cm47dXI9UyxVZS52YWx1ZT1TLHF0KHtjd2Q6U30pLFVlLmJsdXIoKX1lbHNlIGIua2V5PT09IkVzY2FwZSImJihiLnByZXZlbnREZWZhdWx0KCksVWUudmFsdWU9dXIsVWUuYmx1cigpKX0pLFVlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7dmFyIGI9WGwoVWUudmFsdWUpO2lmKCFiKXtVZS52YWx1ZT11cjtyZXR1cm59aWYoYj09PXVyKXtVZS52YWx1ZT1iO3JldHVybn11cj1iLFVlLnZhbHVlPWIscXQoe2N3ZDpifSl9KX12YXIgR2k9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWlucHV0IiksVXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWNsZWFyIik7R2kmJkdpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbihiKXtyLmZpbGVTZWFyY2hRdWVyeT1iLnRhcmdldC52YWx1ZS50cmltKCksVXImJlVyLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHIuZmlsZVNlYXJjaFF1ZXJ5Lmxlbmd0aD4wKSxadSgpfSksVXImJlVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVNlYXJjaFF1ZXJ5PSIiLEdpJiYoR2kudmFsdWU9IiIpLFVyLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0pO3ZhciBnZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpLHhlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiksVHU9bnVsbCxHdD0tMSxDbj1bXTtmdW5jdGlvbiBabChiKXtnZSYmZ2UuY2xhc3NMaXN0LmFkZCgiaW52YWxpZCIpO3ZhciBTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iKTtTJiYoUy50ZXh0Q29udGVudD1iLFMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpKX1mdW5jdGlvbiBlZCgpe2dlJiZnZS5jbGFzc0xpc3QucmVtb3ZlKCJpbnZhbGlkIik7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIpO2ImJihiLnRleHRDb250ZW50PSIiLGIuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKX1mdW5jdGlvbiBNZyhiKXtpZighYi5sZW5ndGgpcmV0dXJuIiI7dmFyIFM9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtc2VjdGlvbiI+PGRpdiBjbGFzcz0iZm9sZGVyLXJlY2VudC10aXRsZSI+XHU2NzAwXHU4RkQxXHU0RjdGXHU3NTI4PC9kaXY+JztyZXR1cm4gYi5mb3JFYWNoKGZ1bmN0aW9uKFcpe3ZhciBCZT1XLnBhdGh8fFc7Uys9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtaXRlbSIgZGF0YS1wYXRoPSInK3AoQmUpKyciPicrdnQoQmUsImZvbGRlci1yZWNlbnQtaXRlbS1wYXRoIikrIjwvZGl2PiJ9KSxTKz0iPC9kaXY+IixTfWZ1bmN0aW9uIHFnKCl7eGUmJmJhKGZ1bmN0aW9uKGIpe3ZhciBTPU1nKGIpO1M/KHhlLmlubmVySFRNTD1TLHhlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFZ0KHhlKSx4ZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXJlY2VudC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihXKXtXLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBCZT10aGlzLmRhdGFzZXQucGF0aDtnZSYmKGdlLnZhbHVlPUJlLFh0KEJlKSx1bihCZSkpfSl9KSk6S3IoKX0pfXZhciB0ZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya2luZy1kaXItaW5kaWNhdG9yIik7dGQmJnRkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2VsZWN0ZWRJZD1udWxsLEVlKCksci5kcmFmdHM9e30sWnQoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKTtiJiZiLmZvY3VzKCl9LDUwKX0pO3ZhciBMdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKSx4ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpO0x1JiZ4ZSYmTHUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7eGUuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiksTHUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIpfSk7dmFyIFFpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mb2xkZXItcGlja2VyLWNvbXBhY3QiKTtpZihRaSYmKFFpLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksUWkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksUWkuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTt2YXIgUz1iLmRhdGFUcmFuc2ZlciYmYi5kYXRhVHJhbnNmZXIuaXRlbXM7aWYoUylmb3IodmFyIFc9MDtXPFMubGVuZ3RoO1crKyl7dmFyIEJlPVNbV107aWYoQmUua2luZD09PSJmaWxlIiYmQmUud2Via2l0R2V0QXNFbnRyeSl7dmFyIGJ0PUJlLndlYmtpdEdldEFzRW50cnkoKTtpZihidCYmYnQuaXNEaXJlY3RvcnkmJmdlKXt2YXIgTHQ9YnQuZnVsbFBhdGg7Z2UudmFsdWU9THQsWHQoTHQpLHVuKEx0KTticmVha319fX0pKSx4ZSYmeGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0LmNsb3Nlc3QoIi5mb2xkZXItcGlja2VyLXF1aWNrLWJ0biIpO2lmKFMmJmdlKXt2YXIgVz1TLmRhdGFzZXQucGF0aDtnZS52YWx1ZT1XLFh0KFcpLHVuKFcpLHhlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBCZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKTtCZSYmQmUuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfX0pLGdlKXt2YXIgT2c9JGUoKTt1bihPZyksZ2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy52YWx1ZS50cmltKCk7Yj91bihiKTpxZygpfSksZ2UuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0LnZhbHVlLnRyaW0oKTtHdD0tMSxUdSYmY2xlYXJUaW1lb3V0KFR1KSxUdT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Uz91bihTKTpLcigpfSwxNTApfSksZ2UuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7aWYoYi5rZXk9PT0iRXNjYXBlIilLcigpLHRoaXMuYmx1cigpO2Vsc2UgaWYoYi5rZXk9PT0iQXJyb3dEb3duIiliLnByZXZlbnREZWZhdWx0KCksQ24ubGVuZ3RoPjAmJihHdD1NYXRoLm1pbihHdCsxLENuLmxlbmd0aC0xKSxuZCgpKTtlbHNlIGlmKGIua2V5PT09IkFycm93VXAiKWIucHJldmVudERlZmF1bHQoKSxHdD4wJiYoR3QtLSxuZCgpKTtlbHNlIGlmKGIua2V5PT09IkVudGVyIiYmR3Q+PTApe2IucHJldmVudERlZmF1bHQoKTt2YXIgUz1DbltHdF07aWYoUyl7dmFyIFc9Uy5kYXRhc2V0LnBhdGg7aWYoVz09PSIuLiIpe3ZhciBCZT1nZS52YWx1ZS50cmltKCksYnQ9QmUuc3Vic3RyaW5nKDAsQmUubGFzdEluZGV4T2YoIi8iKSk7YnQmJihnZS52YWx1ZT1idHx8Ii8iLFh0KGdlLnZhbHVlKSx1bihidHx8Ii8iKSl9ZWxzZSBnZS52YWx1ZT1XLFh0KFcpLEtyKCl9fX0pfWZ1bmN0aW9uIG5kKCl7Q24uZm9yRWFjaChmdW5jdGlvbihiLFMpe2IuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixTPT09R3QpfSl9ZnVuY3Rpb24geWgoYil7fWZ1bmN0aW9uIHVuKGIpe3hlJiYoeGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvZGl2PicseGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksR3Q9LTEsQ249W10sZmV0Y2goIi9hcGkvZm9sZGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihTKXtyZXR1cm4gUy5qc29uKCkudGhlbihmdW5jdGlvbihXKXtyZXR1cm57b2s6Uy5vayxzdGF0dXM6Uy5zdGF0dXMsZGF0YTpXfX0pfSkudGhlbihmdW5jdGlvbihTKXt2YXIgVz1TLmRhdGE7aWYoIVMub2t8fFcuZXJyb3Ipe1psKFcuZXJyb3J8fCJcdThERUZcdTVGODRcdTY1RTBcdTY1NDgiKSx4ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItZXJyb3IiPicrcChXLmVycm9yfHwiXHU4REVGXHU1Rjg0XHU2NUUwXHU2NTQ4IikrIjwvZGl2PiI7cmV0dXJufWVkKCksVy5jdXJyZW50UGF0aDt2YXIgQmU9Vy5pdGVtc3x8W10sYnQ9Vy5jdXJyZW50UGF0aHx8YjtpZihCZS5sZW5ndGg9PT0wKXt4ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItbG9hZGluZyI+XHU3QTdBXHU3NkVFXHU1RjU1PC9kaXY+JztyZXR1cm59eGUuaW5uZXJIVE1MPUJlLm1hcChmdW5jdGlvbihMdCl7dmFyICRpPUx0LnR5cGU9PT0icGFyZW50Ij8iXHUyMUE5XHVGRTBGIjoiXHV7MUY0QzF9IixNdT1MdC50eXBlPT09InBhcmVudCI/Ii4uIChcdThGRDRcdTU2REVcdTRFMEFcdTdFQTcpIjpMdC5uYW1lO3JldHVybic8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0iIGRhdGEtcGF0aD0iJytwKEx0LnBhdGgpKyciIGRhdGEtdHlwZT0iJytMdC50eXBlKyciPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0taWNvbiI+JyskaSsiPC9zcGFuPjxzcGFuPiIrcChNdSkrIjwvc3Bhbj48L2Rpdj4ifSkuam9pbigiIiksQ249QXJyYXkuZnJvbSh4ZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXBpY2tlci1pdGVtIikpLENuLmZvckVhY2goZnVuY3Rpb24oTHQpe0x0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciAkaT10aGlzLmRhdGFzZXQucGF0aCxNdT10aGlzLmRhdGFzZXQudHlwZTtpZihnZSlpZihNdT09PSJwYXJlbnQiKXt2YXIgdWQ9Z2UudmFsdWUudHJpbSgpLG9kPXVkLnN1YnN0cmluZygwLHVkLmxhc3RJbmRleE9mKCIvIikpO2dlLnZhbHVlPW9kfHwiLyIsWHQoZ2UudmFsdWUpLHVuKG9kfHwiLyIpfWVsc2UgZ2UudmFsdWU9JGksWHQoJGkpLGVkKCksS3IoKX0pfSl9KS5jYXRjaChmdW5jdGlvbihTKXtabCgiXHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1IikseGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjU8L2Rpdj4nfSkpfWZ1bmN0aW9uIEtyKCl7eGUmJnhlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLEd0PS0xLENuPVtdfXZhciBCbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1tb2RhbCIpLHJkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1mb2xkZXItcGlja2VyIik7ZnVuY3Rpb24gYmgoKXtpZihCbil7Qm4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZ2UmJihnZS52YWx1ZT0kZSgpKTt2YXIgYj0kZSgpO3VuKGIpfX1yZCYmQm4mJnJkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0JuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSksQm4mJkJuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldD09PUJuJiZCbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pO3ZhciBpZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1iYWRnZSIpO2lkJiZpZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLHBvKCl9KTt2YXIgYWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2FkJiZhZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0icXVpY2stY29tbWl0LW1vZGFsIiYmIXIucXVpY2tDb21taXRTdWJtaXR0aW5nJiZSbigpfSksdm8oKSxKbigpLGh2KCksUGMoKSxGcCgpLG50KCl9ZnVuY3Rpb24gQ3QoZSl7dmFyIHQ9ZXx8e307ci5sYXN0UmVuZGVyZWRIYXNoPTAsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wLHIubGFzdFJlbmRlcmVkRW1wdHk9bnVsbCxyLnJlbmRlclBlbmRpbmc9ITEsci5jaGF0UmVuZGVyZWRDb3VudD1yLmNoYXRQYWdlU2l6ZSxyLmFza1VzZXJTZWxlY3Rpb25zPXt9LHIuY2hhdFNjcm9sbEVsZW1lbnQmJihyLmNoYXRTY3JvbGxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci5jaGF0U2Nyb2xsSGFuZGxlciksci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcikpLHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxyLmNoYXRTY3JvbGxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyPW51bGwsci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITEsdC5wcmVzZXJ2ZVN0aWNrU3RhdGV8fChyLmNoYXRTdGlja1RvQm90dG9tPSEwLHIuY2hhdFVucmVhZENvdW50PTAsci5jaGF0VW5yZWFkU3RhcnRJbmRleD0tMSxyLmNoYXRJbml0aWFsUmVuZGVyRG9uZT0hMSl9ZnVuY3Rpb24gJGUoKXtyZXR1cm4gci53b3JraW5nRGlyfHxzbigpfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMCxwaSgpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMSxwaSgpfSk7ZnVuY3Rpb24gcGkoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2ZmbGluZS1iYW5uZXIiKTtpZighci5pc09ubGluZSYmIWUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaWQ9Im9mZmxpbmUtYmFubmVyIix0LmNsYXNzTmFtZT0ib2ZmbGluZS1iYW5uZXIiLHQudGV4dENvbnRlbnQ9IllvdSBhcmUgb2ZmbGluZSAtIHNvbWUgZmVhdHVyZXMgbWF5IGJlIGxpbWl0ZWQiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCl9ZWxzZSByLmlzT25saW5lJiZlJiZlLnJlbW92ZSgpfWZ1bmN0aW9uIERmKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpO2UmJihlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctY2FyZCI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0Ij5cdTZCNjNcdTU3MjhcdThGREVcdTYzQTUgV2FuZFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PicpfWZ1bmN0aW9uIHdyKGUsdCl7aWYoci5jb25maWcmJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBuPXQmJnQuaW1tZWRpYXRlPT09ITAsaT1EYXRlLm5vdygpOyFuJiZpLXIubGFzdEZvcmVncm91bmRTeW5jQXQ8MTUwMHx8KHIubGFzdEZvcmVncm91bmRTeW5jQXQ9aSxyLmZvcmVncm91bmRTeW5jVGltZXImJihjbGVhclRpbWVvdXQoci5mb3JlZ3JvdW5kU3luY1RpbWVyKSxyLmZvcmVncm91bmRTeW5jVGltZXI9bnVsbCksa2YoZSxuKSl9fWZ1bmN0aW9uIGtmKGUsdCl7cmV0dXJuIXIuY29uZmlnfHxkb2N1bWVudC5oaWRkZW4/UHJvbWlzZS5yZXNvbHZlKCk6KE9vKCksdD92YSgicmVzdW1lLWZvcmNlIik6KCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTiYmci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0LkNPTk5FQ1RJTkcpJiZ1aSgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmVG8oKSxyLmNvZGV4SGlzdG9yeUxvYWRlZCYmTG8oKSx5bih7c2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkOiEwfSkuY2F0Y2goZnVuY3Rpb24obil7Y29uc29sZS5lcnJvcigiW3dhbmRdIGZvcmVncm91bmQgc3luYyBmYWlsZWQ6IixlLG4pfSkpfWZ1bmN0aW9uIEFmKCl7d2luZG93Ll9fd2FuZEZvcmVncm91bmRTeW5jQm91bmR8fCh3aW5kb3cuX193YW5kRm9yZWdyb3VuZFN5bmNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbj9wYSgpOih3cigidmlzaWJpbGl0eSIpLEZyKCJ2aXNpYmlsaXR5IikpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3dyKCJmb2N1cyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbigpe3dyKCJwYWdlc2hvdyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc3VtZSIsZnVuY3Rpb24oKXt3cigicmVzdW1lIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLXJlc3VtZSIsZnVuY3Rpb24oKXt3cigiYW5kcm9pZC1yZXN1bWUiLHtpbW1lZGlhdGU6ITB9KSxGcigiYW5kcm9pZC1yZXN1bWUiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWltZS1zdGF0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5kZXRhaWwmJmUuZGV0YWlsLnN0YXRlO2lmKHQ9PT0ic2hvd24ifHx0PT09ImhpZGRlbiIpdHJ5e1FlKCJuYXRpdmUtaW1lLSIrdCx7Zm9yY2VSZXBsYXk6ITB9KSxmdCgibmF0aXZlLWltZSIpfWNhdGNoe319KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLW5ldHdvcmsiLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuZGV0YWlsJiZlLmRldGFpbC5zdGF0ZTtpZih0PT09Imxvc3QiKXtyLmlzT25saW5lPSExO3RyeXtwaSgpfWNhdGNoe31yZXR1cm59aWYodD09PSJhdmFpbGFibGUifHx0PT09ImNoYW5nZWQifHx0PT09InZhbGlkYXRlZCIpe3IuaXNPbmxpbmU9ITA7dHJ5e3BpKCl9Y2F0Y2h7fXZhKCJhbmRyb2lkLW5ldHdvcmstIit0KX19KSl9ZnVuY3Rpb24geGYoKXtmZXRjaCgiL2FwaS9zZXNzaW9uLWNoZWNrIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6e2F1dGhlZDohMX19KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiFlfHwhZS5hdXRoZWQ/KHIubG9naW5DaGVja2VkPSEwLFp0KCksbnVsbCk6ZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQub2s/dC5qc29uKCk6KHIubG9naW5DaGVja2VkPSEwLFp0KCksbnVsbCl9KX0pLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKHIuY29uZmlnPWUsci5sb2dpbkNoZWNrZWQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dHJ5e1p0KHtza2lwU2hlbGxDaHJvbWU6ITB9KX1jYXRjaHt9QWYoKSxNbygpLE50KCkseGwoKSxfZigpLGUudXBkYXRlQXZhaWxhYmxlJiZlLmxhdGVzdFZlcnNpb24mJm9zKGUuY3VycmVudFZlcnNpb258fCItIixlLmxhdGVzdFZlcnNpb24pLExuJiZhZygpLGNuJiZ1ZygpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZHx8YWkoKX0sNjAwKX0pKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aWYoci5sb2dpbkNoZWNrZWQ9ITAsIW5hdmlnYXRvci5vbkxpbmUpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtlJiYoZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZyI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLWNhcmQiPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEuM2VtO21hcmdpbi1ib3R0b206MTJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweCI+JytVKCJzaWduYWwiLHtzaXplOjIwLHN0cm9rZVdpZHRoOjEuOH0pKyc8c3Bhbj5cdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzBcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXRleHQiIHN0eWxlPSJvcGFjaXR5OjAuNztmb250LXNpemU6MC45NWVtIj5cdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTYyMTZcdTc4NkVcdThCQTQgV2FuZCBcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTMwMDI8L2Rpdj48YnV0dG9uIG9uY2xpY2s9ImxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6OHB4IDI0cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1MCwxMTgsODUsMC4zKTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MC45NWVtIj5cdTkxQ0RcdThCRDU8L2J1dHRvbj48L2Rpdj48L2Rpdj4nKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixmdW5jdGlvbigpe2xvY2F0aW9uLnJlbG9hZCgpfSx7b25jZTohMH0pO3JldHVybn1adCgpfSl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe2lmKCFqZSgpJiYhci5zaWRlYmFyUGlubmVkJiYhci5zaWRlYmFyQ29sbGFwc2VkJiZyLnNlc3Npb25zRHJhd2VyT3Blbil7dmFyIHQ9ZS50YXJnZXQ7IXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpfHx0LmNsb3Nlc3QoIiNzZXNzaW9ucy1kcmF3ZXIiKXx8dC5jbG9zZXN0KCIjc2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpfHx0LmNsb3Nlc3QoIi5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSIpfHx0LmNsb3Nlc3QoIi5zaWRlYmFyLXRpbGUtYnViYmxlIil8fHQuY2xvc2VzdCgiLm1vZGFsLWJhY2tkcm9wLCAubW9kYWwtb3ZlcmxheSwgLm1vZGFsLWNvbnRhaW5lciwgW3JvbGU9J2RpYWxvZyddLCBbcm9sZT0nbWVudSddLCAudG9wYmFyLW1vcmUtbWVudSwgLnNpZGViYXItaGVhZGVyLW92ZXJmbG93LCAuZm9sZGVyLXBpY2tlci1kcm9wZG93biwgLnBhdGgtc3VnZ2VzdGlvbnMsIC5wZXJtaXNzaW9uLXByb21wdC1vdmVybGF5LCAucmVzdGFydC1vdmVybGF5Iil8fHFtKCl9fSwhMCksRGYoKSx4ZigpO2Z1bmN0aW9uIFp0KGUpe3ZhciB0PWUmJmUuc2tpcFNoZWxsQ2hyb21lLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpLGk9ci5jb25maWchPT1udWxsLGE9ci5tb2RhbE9wZW4sdT0haXx8ISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYodSYmRXIoKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHIuc2lkZWJhclBpbm5lZCYmIXIuc2lkZWJhckNvbGxhcHNlZCYmIWplKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSksbi5pbm5lckhUTUw9aT9UZigpOklmKCksQ3QoKSxCZigpLEhyKCksTWkoKSxabihEdCgpKSxXaSgpLHR8fFByKCksaSYmci5maWxlUGFuZWxPcGVuJiZxdCgpLGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9KSxhJiZyLm1vZGFsT3Blbil7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZihvKXtvLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTtzJiYocy52YWx1ZT1yLmN3ZFZhbHVlKSxPcigpfX1pZihpJiZyLnNlbGVjdGVkSWQmJnIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZrbihyLnNlbGVjdGVkSWQpLGkpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO0F1KGwpfWlyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIikpLGlyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIikpLGlyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCIpKSxWdCgpfWZ1bmN0aW9uIFNmKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSksdD1lJiZlLmFwcHJvdmFsU3RhdHM7cmV0dXJuIXR8fHQudG90YWw9PT0wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMgaGlkZGVuIiBpZD0iYXBwcm92YWwtc3RhdHMiPjwvc3Bhbj4nOic8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMiIGlkPSJhcHByb3ZhbC1zdGF0cyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWRpdmlkZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIGlkPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgdGl0bGU9Ilx1NjcyQ1x1NkIyMVx1NEYxQVx1OEJERFx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMSI+PHN2ZyBjbGFzcz0iYXBwcm92YWwtc3RhdHMtaWNvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy10b3RhbCI+Jyt0LnRvdGFsKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCIgaWQ9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMTwvc3Bhbj4nKyh0LmNvbW1hbmQ+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1UoInRlcm1pbmFsIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQ3RFx1NEVFNFx1NjI2N1x1ODg0Qzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QuY29tbWFuZCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsodC5maWxlPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytVKCJlZGl0Iix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QuZmlsZSsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsodC50b29sPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytVKCJ3cmVuY2giLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1MTc2XHU0RUQ2XHU1REU1XHU1MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrdC50b29sKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93IGFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1UoInNpZ21hIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQwOFx1OEJBMTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QudG90YWwrIjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4ifWZ1bmN0aW9uIElmKCl7cmV0dXJuIHIubG9naW5DaGVja2VkPyc8ZGl2IGNsYXNzPSJsb2dpbi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWNhcmQiPjxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+PGRpdiBjbGFzcz0ibG9naW4tbG9nbyI+PGRpdiBjbGFzcz0ibG9naW4tbG9nby1pY29uIj5XPC9kaXY+PHNwYW4gY2xhc3M9ImxvZ2luLWxvZ28tdGV4dCI+V2FuZDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1zdWJ0aXRsZSI+XHU1NzI4XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTJEXHU4RkQwXHU4ODRDXHU2NzJDXHU2NzNBXHU3RUM4XHU3QUVGPC9kaXY+PC9kaXY+PGZvcm0gaWQ9ImxvZ2luLWZvcm0iIGNsYXNzPSJsb2dpbi1ib2R5IiBhdXRvY29tcGxldGU9Im9uIj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiIHZhbHVlPSJ3YW5kIiB0YWJpbmRleD0iLTEiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lIiByZWFkb25seSAvPjxwIGNsYXNzPSJsb2dpbi1oaW50Ij5cdThGOTNcdTUxNjUgV2FuZCBcdThCQkZcdTk1RUVcdTVCQzZcdTc4MDFcdTRFRTVcdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjBcdTMwMDI8L3A+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0icGFzc3dvcmQiPlx1NUJDNlx1NzgwMTwvbGFiZWw+PGRpdiBjbGFzcz0icGFzc3dvcmQtZmllbGQiPjxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQgcGFzc3dvcmQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdThCQkZcdTk1RUVcdTVCQzZcdTc4MDEiIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIgZGF0YS1lcnJvcj0iZmFsc2UiIGFyaWEtZGVzY3JpYmVkYnk9InBhc3N3b3JkLWhpbnQgbG9naW4tZXJyb3IiIGFyaWEtaW52YWxpZD0iZmFsc2UiIC8+PGJ1dHRvbiBpZD0idG9nZ2xlLXBhc3N3b3JkLWJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0icGFzc3dvcmQtdG9nZ2xlIiBhcmlhLWxhYmVsPSJcdTY2M0VcdTc5M0FcdTVCQzZcdTc4MDEiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPlx1NjYzRVx1NzkzQTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJwYXNzd29yZC1oaW50IiBjbGFzcz0iaGludCI+XHU0RjdGXHU3NTI4XHU0RjYwXHU1NzI4IFdhbmQgXHU0RTJEXHU4QkJFXHU3RjZFXHU3Njg0XHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxXHUzMDAyPC9wPjxwIGlkPSJsb2dpbi1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIiByb2xlPSJhbGVydCI+PC9wPjwvZGl2PjxkaXYgaWQ9ImxvZ2luLWNlcnQtaGludCIgY2xhc3M9ImxvZ2luLWNlcnQtaGludCBoaWRkZW4iIHJvbGU9ImFsZXJ0Ij48ZGl2IGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQtdGl0bGUiPlx1OEJDMVx1NEU2Nlx1NEUwRFx1NTNEN1x1NEZFMVx1NEVGQlx1RkYwQ1x1NzY3Qlx1NUY1NVx1NjAwMVx1NjVFMFx1NkNENVx1NEZERFx1NUI1ODwvZGl2PjxwIGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQtYm9keSI+XHU1QkM2XHU3ODAxXHU2NjJGXHU1QkY5XHU3Njg0XHVGRjBDXHU0RjQ2XHU1RjUzXHU1MjREIEhUVFBTIFx1OEJDMVx1NEU2Nlx1NEUwRFx1NTNEN1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NEZFMVx1NEVGQlx1RkYwQ1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NTZFMFx1NkI2NFx1NjJEMlx1N0VERFx1NEZERFx1NUI1OFx1NzY3Qlx1NUY1NSBDb29raWVcdUZGMENcdTYyNDBcdTRFRTVcdThGREJcdTRFMERcdTRFODZcdTYzQTdcdTUyMzZcdTUzRjBcdTMwMDI8YnIvPlx1ODlFM1x1NTFCM1x1NTI5RVx1NkNENVx1RkYwOFx1NEVGQlx1OTAwOVx1NTE3Nlx1NEUwMFx1RkYwOVx1RkYxQVx1NjUzOVx1NzUyOCBIVFRQIFx1OEJCRlx1OTVFRVx1NjcyQ1x1NjcwRFx1NTJBMVx1RkYxQlx1NjIxNlx1NjI4QVx1NjcyQ1x1NjcwRFx1NTJBMVx1OEJDMVx1NEU2Nlx1OEJCRVx1NEUzQVx1MzAwQ1x1NTNEN1x1NEZFMVx1NEVGQlx1MzAwRFx1RkYwOFx1NjNBOFx1ODM1MCBta2NlcnRcdUZGMDlcdUZGMUJcdTYyMTZcdTU3MjhcdTY3MkNcdTY3M0FcdTVDMDZcdThCRTVcdTgxRUFcdTdCN0VcdThCQzFcdTRFNjZcdThCQkVcdTRFM0FcdTVCOENcdTUxNjhcdTRGRTFcdTRFRkJcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDI8L3A+PGEgaWQ9ImxvZ2luLWNlcnQtaHR0cC1saW5rIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tYmxvY2siIGhyZWY9IiMiIHJlbD0ibm9vcGVuZXIiPlx1NjUzOVx1NzUyOCBIVFRQIFx1OEJCRlx1OTVFRTwvYT48L2Rpdj48YnV0dG9uIGlkPSJsb2dpbi1idXR0b24iIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1OEZEQlx1NTE2NVx1NjNBN1x1NTIzNlx1NTNGMDwvYnV0dG9uPicrKHN1KCk/JzxidXR0b24gaWQ9ImxvZ2luLXN3aXRjaC1zZXJ2ZXItYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tYmxvY2sgbG9naW4tc3dpdGNoLXNlcnZlciIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxyZWN0IHg9IjIiIHk9IjEzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48bGluZSB4MT0iNiIgeTE9IjciIHgyPSI2LjAxIiB5Mj0iNyIvPjxsaW5lIHgxPSI2IiB5MT0iMTciIHgyPSI2LjAxIiB5Mj0iMTciLz48L3N2Zz48c3Bhbj5cdTUyMDdcdTYzNjJcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9idXR0b24+JzoiIikrIjwvZm9ybT48L2Rpdj48L2Rpdj4iOic8ZGl2IGNsYXNzPSJsb2dpbi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWNhcmQgbG9naW4tY2FyZC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28iPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJsb2dpbi1sb2dvLXRleHQiPldhbmQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tc3VidGl0bGUiPlx1NkI2M1x1NTcyOFx1NjA2Mlx1NTkwRFx1NzY3Qlx1NUY1NVx1NzJCNlx1NjAwMTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLWJvZHkiPjxkaXYgY2xhc3M9ImxvZ2luLXN0YXR1cyI+PHNwYW4gY2xhc3M9ImxvZ2luLXNwaW5uZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PGRpdj48cCBjbGFzcz0ibG9naW4taGludCI+XHU2QjYzXHU1NzI4XHU2OEMwXHU2N0U1XHU2NzJDXHU1NzMwXHU3NjdCXHU1RjU1XHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3QTBEXHU1MDE5XHUzMDAyPC9wPjxwIGNsYXNzPSJsb2dpbi1tdXRlZCI+XHU1OTgyXHU2NzlDXHU0RjYwXHU1MjFBXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHVGRjBDXHU4RkQ5XHU2NjJGXHU2QjYzXHU1RTM4XHU3M0IwXHU4QzYxXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gVGYoKXt2YXIgZT0iPFwvc2NyaXB0PiIsdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuIGcuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQ/JG4odC5jb21tYW5kKToiXHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREIixpPXQ/dC5tb2RlKyIgfCAiK3Quc3RhdHVzOiJcdTcwQjlcdTUxRkJcdTRFMEFcdTY1QjlcdTMwMENcdTY1QjBcdTVCRjlcdThCRERcdTMwMERcdTVGMDBcdTU5Q0IiLGE9ci5zZWxlY3RlZElkJiZyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdfHwiIix1PXIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgb3BlbiI6IiIsbz1KdSgpPyIgb3BlbiI6IiIscz12bSgpLGw9a3QocyxyLmNoYXRNb2RlKSxkPWplKCksZj0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQsYz1mfHwhZCYmKCEhci5zaWRlYmFyUGlubmVkfHwhIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSx2PWY/IiBzaWRlYmFyLWNvbGxhcHNlZCI6IiIsaD1mPyIgY29sbGFwc2VkIjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iYXBwLWNvbnRhaW5lciI+PGRpdiBpZD0ic2Vzc2lvbnMtZHJhd2VyLWJhY2tkcm9wIiBjbGFzcz0iZHJhd2VyLWJhY2tkcm9wJytvKyciPjwvZGl2PjxkaXYgY2xhc3M9Im1haW4tbGF5b3V0Jysoci5zZXNzaW9uc0RyYXdlck9wZW4/IiBzaWRlYmFyLW9wZW4iOiIiKSsoYz8iIHNpZGViYXItcGlubmVkIjoiIikrdisnIj48YXNpZGUgaWQ9InNlc3Npb25zLWRyYXdlciIgY2xhc3M9InNpZGViYXInK3UrKGM/IiBwaW5uZWQiOiIiKStoKyciPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1tYWluIj48ZGl2IGNsYXNzPSJ0b3BiYXItbG9nby1pY29uIj5XPC9kaXY+PHNwYW4gY2xhc3M9InNpZGViYXItdGl0bGUiPlx1NEYxQVx1OEJERDwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1jb3VudCIgaWQ9InNlc3Npb24tY291bnQiPicrU3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLWFjdGlvbnMiPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW1vcmUiPjxidXR0b24gaWQ9InNpZGViYXItbW9yZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2NkY0XHU1OTFBXHU2NENEXHU0RjVDIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMS41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMS41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMS41Ii8+PC9zdmc+PC9idXR0b24+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItb3ZlcmZsb3ciIGlkPSJzaWRlYmFyLW92ZXJmbG93LW1lbnUiPjxidXR0b24gY2xhc3M9Im92ZXJmbG93LWl0ZW0iIGlkPSJzaWRlYmFyLWhvbWUtYnRuIiB0eXBlPSJidXR0b24iPjxzdmcgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgOWw5LTcgOSA3djExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPjxwb2x5bGluZSBwb2ludHM9IjkgMjIgOSAxMiAxNSAxMiAxNSAyMiIvPjwvc3ZnPjxzcGFuPlx1NTZERVx1NTIzMFx1OTk5Nlx1OTg3NTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJvdmVyZmxvdy1pdGVtIiBpZD0ic2lkZWJhci1yZWZyZXNoLWJ0biIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjIzIDQgMjMgMTAgMTcgMTAiLz48cGF0aCBkPSJNMjAuNDkgMTVhOSA5IDAgMSAxLTIuMTItOS4zNkwyMyAxMCIvPjwvc3ZnPjxzcGFuPlx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mjwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48YnV0dG9uIGlkPSJzaWRlYmFyLXBpbi1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLXBpbi10b2dnbGUnKyhyLnNpZGViYXJQaW5uZWQ/IiBwaW5uZWQiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSInKyhyLnNpZGViYXJQaW5uZWQ/Ilx1NURGMlx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3Qlx1RkYwOFx1NzBCOVx1NTFGQlx1ODlFM1x1OTY2NFx1OTUwMVx1NUI5QVx1RkYwOSI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpKyciIGFyaWEtbGFiZWw9IicrKHIuc2lkZWJhclBpbm5lZD8iXHU4OUUzXHU5NjY0XHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCIjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIikrJyIgYXJpYS1wcmVzc2VkPSInKyhyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMTIiIHkyPSIyMiIvPjxwYXRoIGQ9Ik01IDE3aDE0di0xLjc2YTIgMiAwIDAgMC0xLjExLTEuNzlsLTEuNzgtLjlBMiAyIDAgMCAxIDE1IDEwLjc2VjZoMWEyIDIgMCAwIDAgMC00SDhhMiAyIDAgMCAwIDAgNGgxdjQuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0eiIvPjwvc3ZnPjwvYnV0dG9uPjxidXR0b24gaWQ9InNpZGViYXItY29sbGFwc2UtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1jb2xsYXBzZS10b2dnbGUnKyhmPyIgY29sbGFwc2VkIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJysoZj8iXHU1QzU1XHU1RjAwXHU0RTNBXHU1MTY4XHU1QzNBXHU1QkY4IjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIikrJyIgYXJpYS1sYWJlbD0iJysoZj8iXHU1QzU1XHU1RjAwXHU0RTNBXHU1MTY4XHU1QzNBXHU1QkY4IjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIikrJyI+JysoZj8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPicpKyc8L2J1dHRvbj48YnV0dG9uIGlkPSJjbG9zZS1kcmF3ZXItYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBzaWRlYmFyLWNsb3NlIGRyYXdlci1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEXHU4M0RDXHU1MzU1Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhci1ib2R5Ij48ZGl2IGlkPSJzZXNzaW9ucy1wYW5lbCI+PGRpdiBjbGFzcz0ic2Vzc2lvbnMtbGlzdCIgaWQ9InNlc3Npb25zLWxpc3QiPicrY2EoKSsnPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhci1mb290ZXIiPjxidXR0b24gaWQ9ImRyYXdlci1uZXctc2Vzc2lvbi1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj48c3Bhbj4rPC9zcGFuPiBcdTY1QjBcdTRGMUFcdThCREQ8L2J1dHRvbj48ZGl2IGNsYXNzPSJzaWRlYmFyLWZvb3Rlci1hY3Rpb25zIj48YnV0dG9uIGlkPSJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbScrKHIuZmlsZVBhbmVsT3Blbj8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjdFNVx1NzcwQlx1NjU4N1x1NEVGNiI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz48L3N2Zz48c3Bhbj5cdTY1ODdcdTRFRjY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2V0dGluZ3MtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEJCRVx1N0Y2RSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIi8+PHBhdGggZD0iTTE5LjQgMTVhMS42NSAxLjY1IDAgMCAwIC4zMyAxLjgybC4wNi4wNmEyIDIgMCAwIDEtMi44MyAyLjgzbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDAgMS00IDB2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMtMi44M2wuMDYtLjA2QTEuNjUgMS42NSAwIDAgMCA0LjY4IDE1YTEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEgMC00aC4wOUExLjY1IDEuNjUgMCAwIDAgNC42IDlhMS42NSAxLjY1IDAgMCAwLS4zMy0xLjgybC0uMDYtLjA2YTIgMiAwIDAgMSAyLjgzLTIuODNsLjA2LjA2QTEuNjUgMS42NSAwIDAgMCA5IDQuNjhhMS42NSAxLjY1IDAgMCAwIDEtMS41MVYzYTIgMiAwIDAgMSA0IDB2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMi44M2wtLjA2LjA2QTEuNjUgMS42NSAwIDAgMCAxOS40IDlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMCA0aC0uMDlhMS42NSAxLjY1IDAgMCAwLTEuNTEgMXoiLz48L3N2Zz48c3Bhbj5cdThCQkVcdTdGNkU8L3NwYW4+PC9idXR0b24+JysoZm0oKT8nPGJ1dHRvbiBpZD0iYmFjay10by1uYXRpdmUtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1iYWNrLXRvLW5hdGl2ZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU4RkQ0XHU1NkRFIEFwcCBcdTUzOUZcdTc1MUZcdTc1NENcdTk3NjIiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMTAiIHk9IjMiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxOCIgcng9IjIiLz48bGluZSB4MT0iMTQiIHkxPSIxNyIgeDI9IjE3IiB5Mj0iMTciLz48cG9seWxpbmUgcG9pbnRzPSI3IDggMyAxMiA3IDE2Ii8+PC9zdmc+PHNwYW4+XHU4RkQ0XHU1NkRFQXBwPC9zcGFuPjwvYnV0dG9uPic6IiIpKyhzdSgpPyc8YnV0dG9uIGlkPSJzd2l0Y2gtc2VydmVyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItc3dpdGNoLXNlcnZlciIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjA3XHU2MzYyXHU2NzBEXHU1MkExXHU1NjY4Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxyZWN0IHg9IjIiIHk9IjEzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48bGluZSB4MT0iNiIgeTE9IjciIHgyPSI2LjAxIiB5Mj0iNyIvPjxsaW5lIHgxPSI2IiB5MT0iMTciIHgyPSI2LjAxIiB5Mj0iMTciLz48L3N2Zz48c3Bhbj5cdTUyMDdcdTYzNjI8L3NwYW4+PC9idXR0b24+JzoiIikrJzxidXR0b24gaWQ9ImxvZ291dC1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLWxvZ291dCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU3NjdCXHU1RjU1Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCIvPjxwb2x5bGluZSBwb2ludHM9IjE2IDE3IDIxIDEyIDE2IDciLz48bGluZSB4MT0iMjEiIHkxPSIxMiIgeDI9IjkiIHkyPSIxMiIvPjwvc3ZnPjxzcGFuPlx1OTAwMFx1NTFGQTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2FzaWRlPjxtYWluIGNsYXNzPSJtYWluLWNvbnRlbnQiPjxkaXYgY2xhc3M9Im1haW4taGVhZGVyLXJvdyI+PGRpdiBjbGFzcz0idG9wYmFyLWxlZnQiPjxidXR0b24gaWQ9InNlc3Npb25zLXRvZ2dsZS1idXR0b24iIGNsYXNzPSJmbG9hdGluZy1zaWRlYmFyLXRvZ2dsZScrKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgYWN0aXZlIjoiIikrJyIgYXJpYS1sYWJlbD0iXHU1MjA3XHU2MzYyXHU0RjFBXHU4QkREXHU0RkE3XHU2ODBGIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJoYW1idXJnZXItaWNvbiI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0b3BiYXItYnJhbmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj5XPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvcGJhci1jZW50ZXIiPicrKHQ/JzxzcGFuIGNsYXNzPSJ0b3BiYXItc2Vzc2lvbi10aXRsZSIgdGl0bGU9IicrcCh0LmRlc2NyaXB0aW9ufHx0LmNvbW1hbmR8fCIiKSsnIj4nK3AodC50aXRsZXx8JG4odC5jb21tYW5kKSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtcGlsbCAnK2JvKHQpKyciIHRpdGxlPSInK3AoZnIodCkpKyciPjxzcGFuIGNsYXNzPSJzZXNzaW9uLXN0YXR1cy1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtdGV4dCI+JytwKGZyKHQpKSsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3VycmVudC10YXNrIGhpZGRlbiIgaWQ9ImN1cnJlbnQtdGFzayI+PC9zcGFuPicrKHQuY3dkP3Z0KHQuY3dkLCJ0b3BiYXItY3dkIiwnIGlkPSJ0b3BiYXItY3dkIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIicpOiIiKTonPHNwYW4gY2xhc3M9InRvcGJhci10YWdsaW5lIj5XYW5kIFx1NjNBN1x1NTIzNlx1NTNGMDwvc3Bhbj48c3BhbiBjbGFzcz0iY3VycmVudC10YXNrIGhpZGRlbiIgaWQ9ImN1cnJlbnQtdGFzayI+PC9zcGFuPicpKyc8L2Rpdj48ZGl2IGNsYXNzPSJ0b3BiYXItcmlnaHQiPjxidXR0b24gaWQ9InRvcGJhci1maWxlLWJ1dHRvbiIgY2xhc3M9InRvcGJhci1idG4gc3F1YXJlJysoci5maWxlUGFuZWxPcGVuPyIgYWN0aXZlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTY1ODdcdTRFRjYiIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTY1ODdcdTRFRjZcdUZGMDhcdTUzRUZcdTRGRUVcdTY1MzlcdThERUZcdTVGODRcdUZGMDkiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+PC9idXR0b24+PHNwYW4gaWQ9InRvcGJhci1naXQtc2xvdCIgY2xhc3M9InRvcGJhci1naXQtc2xvdCI+JytmbygpKyI8L3NwYW4+IisodD9WZCh0KToiIikrJzwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZpbGUtcGFuZWwtYmFja2Ryb3AiIGNsYXNzPSJmaWxlLXBhbmVsLWJhY2tkcm9wJysoci5maWxlUGFuZWxPcGVuPyIgb3BlbiI6IiIpKyciPjwvZGl2PjxkaXYgaWQ9ImZpbGUtc2lkZS1wYW5lbCIgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbCcrKHIuZmlsZVBhbmVsT3Blbj8iIG9wZW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtdGl0bGUtZ3JvdXAiPjxzcGFuIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbiI+JytNZSgiZm9sZGVyLW9wZW4iLHtzaXplOjE2fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLXRpdGxlIj5cdTY1ODdcdTRFRjY8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWhlYWRlci1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbmJ0biIgaWQ9ImZpbGUtZXhwbG9yZXItcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjM3XHU2NUIwIiBhcmlhLWxhYmVsPSJcdTUyMzdcdTY1QjBcdTY1ODdcdTRFRjZcdTUyMTdcdTg4NjgiPicrTWUoInJlZnJlc2giLHtzaXplOjE1fSkrJzwvYnV0dG9uPjxidXR0b24gaWQ9ImZpbGUtc2lkZS1wYW5lbC1jbG9zZSIgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1pY29uYnRuIGNsb3NlIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1NjU4N1x1NEVGNlx1OTc2Mlx1Njc3RiIgdGl0bGU9Ilx1NTE3M1x1OTVFRCI+JytNZSgieCIse3NpemU6MTZ9KSsnPC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWJvZHkiPjxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXItaGVhZGVyIj48YnV0dG9uIGNsYXNzPSJmaWxlLWV4cGxvcmVyLXVwIiBpZD0iZmlsZS1leHBsb3Jlci11cCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3XHU3NkVFXHU1RjU1IiBhcmlhLWxhYmVsPSJcdThGRDRcdTU2REVcdTRFMEFcdTdFQTdcdTc2RUVcdTVGNTUiPicrTWUoImFycm93LXVwIix7c2l6ZToxNX0pKyc8L2J1dHRvbj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZpbGUtZXhwbG9yZXItcGF0aCIgaWQ9ImZpbGUtZXhwbG9yZXItY3dkIiB2YWx1ZT0iJytwKHQmJnQuY3dkP3QuY3dkOnNuKCkpKyciIHRpdGxlPSInK3AodCYmdC5jd2Q/dC5jd2Q6c24oKSkrJyIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1OERFRlx1NUY4NFx1NUU3Nlx1NTZERVx1OEY2Ni4uLiIgc3BlbGxjaGVjaz0iZmFsc2UiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdThERUZcdTVGODRcdUZGMENcdTUzRUZcdTc2RjRcdTYzQTVcdTRGRUVcdTY1MzlcdTU0MEVcdTU2REVcdThGNjYiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zZWFyY2gtYm94Ij48c3BhbiBjbGFzcz0iZmlsZS1zZWFyY2gtaWNvbiI+JytNZSgic2VhcmNoIix7c2l6ZToxNH0pKyc8L3NwYW4+PGlucHV0IHR5cGU9InRleHQiIGlkPSJmaWxlLXNlYXJjaC1pbnB1dCIgY2xhc3M9ImZpbGUtc2VhcmNoLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU2NDFDXHU3RDIyXHU1RjUzXHU1MjREXHU3NkVFXHU1RjU1XHUyMDI2IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+PGJ1dHRvbiBjbGFzcz0iZmlsZS1zZWFyY2gtY2xlYXIiIGlkPSJmaWxlLXNlYXJjaC1jbGVhciIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTk2NjRcdTY0MUNcdTdEMjIiIHRpdGxlPSJcdTZFMDVcdTk2NjQiPicrTWUoIngiLHtzaXplOjEzfSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiIGlkPSJmaWxlLWV4cGxvcmVyIj4nK3hkKHQmJnQuY3dkP3QuY3dkOnNuKCkpKyc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJvdXRwdXQiIGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXInKyhyLnNlbGVjdGVkSWQ/IiI6IiBoaWRkZW4iKSsnIGFjdGl2ZSI+PGRpdiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheSIgYXJpYS1sYWJlbD0iXHU3RUM4XHU3QUVGXHU3RjI5XHU2NTNFXHU2M0E3XHU0RUY2Ij48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1zY2FsZS1kb3duLXRvcCIgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRuIHRlcm1pbmFsLXNjYWxlLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU3RjI5XHU1QzBGIj5cdTIyMTI8L2J1dHRvbj48c3BhbiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1sYWJlbCB0ZXJtaW5hbC1zY2FsZS1sYWJlbCIgaWQ9InRlcm1pbmFsLXNjYWxlLWxhYmVsLXRvcCI+JytNYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyclPC9zcGFuPjxidXR0b24gaWQ9InRlcm1pbmFsLXNjYWxlLXVwLXRvcCIgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRuIHRlcm1pbmFsLXNjYWxlLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2NTNFXHU1OTI3Ij4rPC9idXR0b24+PHNwYW4gY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktZGl2aWRlciI+PC9zcGFuPjxidXR0b24gaWQ9InBhZ2UtcmVmcmVzaC1idG4iIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyIj5cdTIxQkI8L2J1dHRvbj48L2Rpdj48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIgY2xhc3M9InRlcm1pbmFsLWp1bXAtYm90dG9tJysoci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b20/IiB2aXNpYmxlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1NkRFXHU1MjMwXHU1RTk1XHU5MEU4IiBhcmlhLWxhYmVsPSJcdTU2REVcdTUyMzBcdTVFOTVcdTkwRTgiPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDMuNXY5TTMuNSA4bDQuNSA0LjVMMTIuNSA4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2hhdC1vdXRwdXQiIGNsYXNzPSJjaGF0LWNvbnRhaW5lciBoaWRkZW4iPjxkaXYgaWQ9ImNoYXQtZm9sZC1iYXIiIGNsYXNzPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIgYXJpYS1saXZlPSJwb2xpdGUiPjwvZGl2PjxidXR0b24gaWQ9ImNoYXQtdW5yZWFkLWJ1YmJsZSIgY2xhc3M9ImNoYXQtdW5yZWFkLWJ1YmJsZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIiBhcmlhLWxhYmVsPSJcdTU2REVcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTggMy41djlNMy41IDhsNC41IDQuNUwxMi41IDgiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJibGFuay1jaGF0IiBjbGFzcz0iYmxhbmstY2hhdCcrKHIuc2VsZWN0ZWRJZD8iIGhpZGRlbiI6IiIpKyciPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtaW5uZXIiPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtbG9nbyI+VzwvZGl2PjxoMiBjbGFzcz0iYmxhbmstY2hhdC10aXRsZSI+V2FuZDwvaDI+PHAgY2xhc3M9ImJsYW5rLWNoYXQtc3VidGl0bGUiPlx1NjUyRlx1NjMwMVx1N0VDOFx1N0FFRiBQVFkgXHU0RjFBXHU4QkREXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2IGNoYXQgXHU0RjFBXHU4QkREXHVGRjBDXHU0RTI0XHU3OUNEXHU2QTIxXHU1RjBGXHU1M0VGXHU1RTc2XHU1QjU4XHUzMDAyPC9wPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtdG9vbHMiPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtY2xhdWRlIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ0b29sLWljb24iPicrVSgidGVybWluYWwiLHtzaXplOjE2LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+XHU2NUIwXHU1RUZBXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYmxhbmstY2hhdC10b29sLWJ0biIgaWQ9IndlbGNvbWUtdG9vbC1jb2RleCIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIHRvb2wtaWNvbi10ZXh0Ij5cdTIzMTg8L3NwYW4+XHU2NUIwXHU1RUZBIENvZGV4IFx1NEYxQVx1OEJERDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtc3RydWN0dXJlZCIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIj4nK1UoImNoYXQiLHtzaXplOjE2LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+XHU2NUIwXHU1RUZBXHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2Qtd3JhcCI+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QiIGlkPSJibGFuay1jaGF0LWN3ZCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgdGl0bGU9Ilx1NzBCOVx1NTFGQlx1NTIwN1x1NjM2Mlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NSI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWljb24iPicrVSgiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjh9KSsiPC9zcGFuPiIrdnQoJGUoKSwiYmxhbmstY2hhdC1jd2QtcGF0aCIsJyBpZD0iYmxhbmstY2hhdC1jd2QtcGF0aCInKSsnPHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWFycm93IiBpZD0iYmxhbmstY2hhdC1jd2QtYXJyb3ciPicrVSgiY2hldnJvbkRvd24iLHtzaXplOjExLHN0cm9rZVdpZHRoOjJ9KSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIGhpZGRlbiIgaWQ9ImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpbnB1dC1wYW5lbCcrKHIuc2VsZWN0ZWRJZD8iIjoiIGhpZGRlbiIpKyciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLXRvcC1yb3ciPjxkaXYgaWQ9InRvZG8tcHJvZ3Jlc3MiIGNsYXNzPSJ0b2RvLXByb2dyZXNzIGhpZGRlbiI+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1oZWFkZXIiIGlkPSJ0b2RvLXByb2dyZXNzLXRvZ2dsZSI+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1maWxsIiBpZD0idG9kby1wcm9ncmVzcy1maWxsIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9Ii0tcHJvZ3Jlc3M6MCI+PC9kaXY+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1sZWZ0Ij48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy1yaW5nIiBpZD0idG9kby1wcm9ncmVzcy1yaW5nIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9Ii0tcHJvZ3Jlc3M6MCI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAzNiAzNiI+PGNpcmNsZSBjbGFzcz0idG9kby1yaW5nLXRyYWNrIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTUuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI0Ii8+PGNpcmNsZSBjbGFzcz0idG9kby1yaW5nLWZpbGwiIGN4PSIxOCIgY3k9IjE4IiByPSIxNS41IiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy1jb3VudGVyIiBpZD0idG9kby1wcm9ncmVzcy1jb3VudGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy10YXNrLXdyYXAiPjxzcGFuIGNsYXNzPSJ0b2RvLXByb2dyZXNzLXRhc2siIGlkPSJ0b2RvLXByb2dyZXNzLXRhc2siPjwvc3Bhbj48L2Rpdj48c3ZnIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjYgMTUgMTIgOSAxOCAxNSIvPjwvc3ZnPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtYm9keSBoaWRkZW4iIGlkPSJ0b2RvLXByb2dyZXNzLWJvZHkiPjx1bCBjbGFzcz0idG9kby1wcm9ncmVzcy1saXN0IiBpZD0idG9kby1wcm9ncmVzcy1saXN0Ij48L3VsPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InF1ZXVlLWJhci1ob3N0IiBjbGFzcz0icXVldWUtYmFyLWhvc3QiIGhpZGRlbj48L2Rpdj48ZGl2IGNsYXNzPSJpbnB1dC1jb21wb3NlcicrKGE/IiBoYXMtdGV4dCI6IiIpKyciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLXN0YXR1cy1yb3ciIGlkPSJjb21wb3Nlci1zdGF0dXMtcm93Ij4nK3dtKHQpKyc8c3BhbiBjbGFzcz0icGVybWlzc2lvbi1hY3Rpb25zIGhpZGRlbiIgaWQ9InBlcm1pc3Npb24tYWN0aW9ucyI+PHNwYW4gY2xhc3M9InBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbCIgaWQ9InBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbCI+XHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzPC9zcGFuPjxidXR0b24gaWQ9ImFwcHJvdmUtcGVybWlzc2lvbi1idG4iIGNsYXNzPSJidG4gYnRuLXBlcm1pc3Npb24gYnRuLXBlcm1pc3Npb24tYXBwcm92ZSIgdHlwZT0iYnV0dG9uIj5cdTYyNzlcdTUxQzY8L2J1dHRvbj48YnV0dG9uIGlkPSJkZW55LXBlcm1pc3Npb24tYnRuIiBjbGFzcz0iYnRuIGJ0bi1wZXJtaXNzaW9uIGJ0bi1wZXJtaXNzaW9uLWRlbnkiIHR5cGU9ImJ1dHRvbiI+XHU2MkQyXHU3RUREPC9idXR0b24+PC9zcGFuPicrU2YoKSsnPC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItbWFpbi1yb3ciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLWFjdGlvbnMtbGVmdCI+PGJ1dHRvbiBpZD0iYXR0YWNoLWJ0biIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1hY3Rpb24iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjZGNFx1NTkxQSIgYXJpYS1sYWJlbD0iXHU2NkY0XHU1OTFBIiBhcmlhLWhhc3BvcHVwPSJtZW51IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+JytVKCJwbHVzIix7c2l6ZToxOCxzdHJva2VXaWR0aDoyLjJ9KSsnPC9idXR0b24+PGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlLXVwbG9hZC1pbnB1dCIgbXVsdGlwbGUgdGFiaW5kZXg9Ii0xIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7cG9pbnRlci1ldmVudHM6bm9uZSI+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItaW5saW5lLWNvbmZpZyI+Jyt3bCh0KSsnPC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItaW5wdXQtd3JhcCI+PHRleHRhcmVhIGlkPSJpbnB1dC1ib3giIGNsYXNzPSJpbnB1dC10ZXh0YXJlYSIgcGxhY2Vob2xkZXI9IicrdmwodCxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpKyciIHJvd3M9IjEiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgZW50ZXJrZXloaW50PSJzZW5kIj4nK3AoYSkrJzwvdGV4dGFyZWE+PGJ1dHRvbiBpZD0icHJvbXB0LW9wdGltaXplLWJ0biIgY2xhc3M9InByb21wdC1vcHRpbWl6ZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1RkYwOEFJXHVGRjA5IiBhcmlhLWxhYmVsPSJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTYiPjxzdmcgY2xhc3M9InByb21wdC1vcHRpbWl6ZS1pY29uIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTEyIDNsMS42IDQuNEwxOCA5bC00LjQgMS42TDEyIDE1bC0xLjYtNC40TDYgOWw0LjQtMS42eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjI1Ii8+PHBhdGggZD0iTTEyIDNsMS42IDQuNEwxOCA5bC00LjQgMS42TDEyIDE1bC0xLjYtNC40TDYgOWw0LjQtMS42eiIvPjxwYXRoIGQ9Ik0xOSAxNGwuNyAxLjlMMjEuNiAxN2wtMS45LjdMMTkgMTkuNmwtLjctMS45TDE2LjQgMTdsMS45LS43eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjM1Ii8+PHBhdGggZD0iTTUgNGwuNSAxLjRMNyA2bC0xLjUuNkw1IDhsLS41LTEuNEwzIDZsMS41LS42eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjM1Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InByb21wdC1vcHRpbWl6ZS1zcGlubmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InZvaWNlLWlucHV0LW1vZGUgaGlkZGVuIiBpZD0idm9pY2UtaW5wdXQtbW9kZSI+PGJ1dHRvbiBpZD0idm9pY2UtcmVjb3JkLWJ0biIgY2xhc3M9InZvaWNlLXJlY29yZC1idG4iIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InZvaWNlLXJlY29yZC1wdWxzZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48c3BhbiBjbGFzcz0idm9pY2UtcmVjb3JkLWxhYmVsIj5cdTYzMDlcdTRGNEYgXHU4QkY0XHU4QkREPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9InZvaWNlLWNhbmNlbC1idG4iIGNsYXNzPSJ2b2ljZS1jYW5jZWwtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTkwMDBcdTUxRkFcdThCRURcdTk3RjNcdTZBMjFcdTVGMEYiIGFyaWEtbGFiZWw9Ilx1OTAwMFx1NTFGQVx1OEJFRFx1OTdGM1x1NkEyMVx1NUYwRiI+JytVKCJ4Iix7c2l6ZToxNCxzdHJva2VXaWR0aDoyfSkrJzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWFjdGlvbnMtcmlnaHQiPjxidXR0b24gaWQ9InN0b3AtYnV0dG9uIiBjbGFzcz0iYnRuLWNpcmNsZSBidG4tY2lyY2xlLXN0b3AgaGlkZGVuIiB0aXRsZT0iXHU1MDVDXHU2QjYyIj48c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIGlkPSJzZW5kLWlucHV0LWJ1dHRvbiIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1zZW5kIiB0aXRsZT0iXHU1M0QxXHU5MDAxIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGxpbmUgeDE9IjIyIiB5MT0iMiIgeDI9IjExIiB5Mj0iMTMiLz48cG9seWdvbiBwb2ludHM9IjIyIDIgMTUgMjIgMTEgMTMgMiA5IDIyIDIiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhdHRhY2htZW50LXByZXZpZXciIGNsYXNzPSJhdHRhY2htZW50LXByZXZpZXcgaGlkZGVuIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1wbHVzLXBvcG92ZXIgaGlkZGVuIiBpZD0iY29tcG9zZXItcGx1cy1wb3BvdmVyIiByb2xlPSJtZW51IiBhcmlhLWxhYmVsPSJcdTY2RjRcdTU5MUFcdTY0Q0RcdTRGNUMiPjxidXR0b24gY2xhc3M9InBsdXMtcG9wb3Zlci1pdGVtIiBpZD0icGx1cy1hdHRhY2gtaXRlbSIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytVKCJwYXBlcmNsaXAiLHtzaXplOjE0LHN0cm9rZVdpZHRoOjEuOCxjbHM6InBsdXMtcG9wb3Zlci1pY29uIn0pKyc8c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLWxhYmVsIj5cdTRFMEFcdTRGMjBcdTk2NDRcdTRFRjY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0icGx1cy1wb3BvdmVyLWl0ZW0nKyhyLnRlcm1pbmFsSW50ZXJhY3RpdmU/IiBpcy1vbiI6IiIpKyciIGlkPSJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtY2hlY2tib3giIGFyaWEtY2hlY2tlZD0iJysoci50ZXJtaW5hbEludGVyYWN0aXZlPyJ0cnVlIjoiZmFsc2UiKSsnIj4nK1UoImtleWJvYXJkIix7c2l6ZToxNCxzdHJva2VXaWR0aDoxLjgsY2xzOiJwbHVzLXBvcG92ZXItaWNvbiJ9KSsnPHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci1sYWJlbCI+XHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyPC9zcGFuPjxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRlIj4nKyhyLnRlcm1pbmFsSW50ZXJhY3RpdmU/Ilx1NUYwMCI6Ilx1NTE3MyIpKyc8L3NwYW4+PC9idXR0b24+PGRpdiBjbGFzcz0icGx1cy1wb3BvdmVyLXNlcCIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PjxkaXYgY2xhc3M9InBsdXMtcG9wb3Zlci10cmlvLXdyYXAiPicrd2wodCkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIGhpZGRlbiIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIiBhcmlhLWxpdmU9InBvbGl0ZSI+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC10ZXh0IiBpZD0idm9pY2UtdHJhbnNjcmlwdC10ZXh0Ij48L2Rpdj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LWhpbnQiIGlkPSJ2b2ljZS10cmFuc2NyaXB0LWhpbnQiPjxzcGFuIGNsYXNzPSJ2b2ljZS13YXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjwvc3Bhbj48c3BhbiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiIGlkPSJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyI+XHU2QjYzXHU1NzI4XHU4MDQ2XHU1NDJDXHUyMDI2XHU0RTBBXHU2RUQxXHU1M0Q2XHU2RDg4PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJ2b2ljZS1idWJibGUtYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9kaXY+PHAgaWQ9ImFjdGlvbi1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9kaXY+PHNlY3Rpb24gaWQ9ImZvbGRlci1waWNrZXItbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIGZvbGRlci1waWNrZXItbW9kYWwiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU5MDA5XHU2MkU5XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9oMj48YnV0dG9uIGlkPSJjbG9zZS1mb2xkZXItcGlja2VyIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1yb3ciPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIGJ0bi13aXRoLWljb24iIGRhdGEtcGF0aD0iL3RtcCI+JytVKCJ0cmFzaCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzxzcGFuPlx1NEUzNFx1NjVGNlx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biBidG4td2l0aC1pY29uIiBkYXRhLXBhdGg9Ii8iPicrVSgiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPHNwYW4+XHU2ODM5XHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1icmVhZGNydW1iIiBjbGFzcz0iZm9sZGVyLWJyZWFkY3J1bWIiPjwvZGl2PjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXIiPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWljb24iPicrVSgiZm9sZGVyIix7c2l6ZToxNSxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZm9sZGVyLXBpY2tlci1pbnB1dCIgY2xhc3M9ImZvbGRlci1waWNrZXItaW5wdXQiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTYyMTZcdTkwMDlcdTYyRTlcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUuLi4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgLz48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiBjbGFzcz0iZm9sZGVyLXBpY2tlci1kcm9wZG93biBoaWRkZW4iPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIgY2xhc3M9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiI+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjwvbWFpbj48L2Rpdj48L2Rpdj4nK3BjKCkrbmMoKStyYygpK2dvKCl9ZnVuY3Rpb24gcWUoZSx0KXtpZihlKXtlLnRleHRDb250ZW50PXQsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtmb3IodmFyIG49ZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO247KXtpZihuLnRhZ05hbWU9PT0iSU5QVVQiKXtuLnNldEF0dHJpYnV0ZSgiZGF0YS1lcnJvciIsInRydWUiKTticmVha31uPW4ucHJldmlvdXNFbGVtZW50U2libGluZ319fWZ1bmN0aW9uIHZpKGUpe2lmKGUpe2UudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtmb3IodmFyIHQ9ZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO3Q7KXtpZih0LnRhZ05hbWU9PT0iSU5QVVQiKXt0LnNldEF0dHJpYnV0ZSgiZGF0YS1lcnJvciIsImZhbHNlIik7YnJlYWt9dD10LnByZXZpb3VzRWxlbWVudFNpYmxpbmd9fX1mdW5jdGlvbiBBKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9InRvYXN0LW1lc3NhZ2UiKyh0PT09ImVycm9yIj8iIHRvYXN0LWVycm9yIjoiIiksdCE9PSJlcnJvciImJihuLnN0eWxlLmJhY2tncm91bmQ9InZhcigtLWFjY2VudCkiLG4uc3R5bGUuY29sb3I9IndoaXRlIiksbi50ZXh0Q29udGVudD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksc2V0VGltZW91dChmdW5jdGlvbigpe24ucmVtb3ZlKCl9LHQ9PT0iZXJyb3IiPzRlMzoyMjAwKX12YXIgQ3I9W10sTGY9MDtmdW5jdGlvbiBNZihlKXtzd2l0Y2goZSl7Y2FzZSJ3YXJuaW5nIjpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTAuMyAyLjkgMS44IDE3YTIgMiAwIDAgMCAxLjcgM2gxN2EyIDIgMCAwIDAgMS43LTNMMTMuNyAyLjlhMiAyIDAgMCAwLTMuNCAwWiIvPjxwYXRoIGQ9Ik0xMiA5djQiLz48cGF0aCBkPSJNMTIgMTdoLjAxIi8+PC9zdmc+JztjYXNlImRhbmdlciI6cmV0dXJuJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGg4djIiLz48cGF0aCBkPSJtMTkgNi0xIDE0SDZMNSA2Ii8+PHBhdGggZD0iTTEwIDExdjUiLz48cGF0aCBkPSJNMTQgMTF2NSIvPjwvc3ZnPic7Y2FzZSJzdWNjZXNzIjpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMCA2IDkgMTdsLTUtNSIvPjwvc3ZnPic7Y2FzZSJxdWVzdGlvbiI6cmV0dXJuJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOSIvPjxwYXRoIGQ9Ik05LjcgOWEyLjUgMi41IDAgMSAxIDQuNSAxLjVjLS45LjgtMi4yIDEuMi0yLjIgMi41Ii8+PHBhdGggZD0iTTEyIDE3aC4wMSIvPjwvc3ZnPic7ZGVmYXVsdDpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PHBhdGggZD0iTTEyIDExdjUiLz48cGF0aCBkPSJNMTIgOGguMDEiLz48L3N2Zz4nfX1mdW5jdGlvbiBkbihlKXtlPWV8fHt9O3ZhciB0PWUuZGlzbWlzc2FibGUhPT0hMSxuPWUudHlwZXx8ImluZm8iLGk9TWYobiksYT0hIWUuaW5wdXQ7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHUpe3ZhciBvPSJ3YW5kLWRpYWxvZy0iKyArK0xmLHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1iYWNrZHJvcCIsbC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJwcmVzZW50YXRpb24iKTt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ciLGQuc2V0QXR0cmlidXRlKCJyb2xlIixhPyJkaWFsb2ciOiJhbGVydGRpYWxvZyIpLGQuc2V0QXR0cmlidXRlKCJhcmlhLW1vZGFsIiwidHJ1ZSIpO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1oZWFkZXIiO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1pY29uICIrbixjLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksZS5pY29uP2MudGV4dENvbnRlbnQ9U3RyaW5nKGUuaWNvbik6Yy5pbm5lckhUTUw9aSxmLmFwcGVuZENoaWxkKGMpO3ZhciB2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKHYuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy10ZXh0d3JhcCIsZS50aXRsZSl7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLXRpdGxlIixoLmlkPW8rIi10aXRsZSIsaC50ZXh0Q29udGVudD1lLnRpdGxlLHYuYXBwZW5kQ2hpbGQoaCksZC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsaC5pZCl9aWYoZS5tZXNzYWdlKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctbWVzc2FnZSIsZy5pZD1vKyItbWVzc2FnZSIsZy50ZXh0Q29udGVudD1lLm1lc3NhZ2Usdi5hcHBlbmRDaGlsZChnKSxkLnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsZy5pZCl9ZS50aXRsZXx8ZC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG49PT0iZGFuZ2VyIj8iXHU3ODZFXHU4QkE0XHU2NENEXHU0RjVDIjoiXHU2M0QwXHU3OTNBIiksZi5hcHBlbmRDaGlsZCh2KSxkLmFwcGVuZENoaWxkKGYpO3ZhciBtPW51bGw7aWYoYSl7dmFyIHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7eS5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWJvZHkiLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxtLnR5cGU9InRleHQiLG0uY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1pbnB1dCIsbS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUuaW5wdXRMYWJlbHx8ZS50aXRsZXx8Ilx1OEY5M1x1NTE2NVx1NTE4NVx1NUJCOSIpLG0uYXV0b2NvbXBsZXRlPSJvZmYiLG0uc3BlbGxjaGVjaz0hMSxlLmlucHV0UGxhY2Vob2xkZXImJihtLnBsYWNlaG9sZGVyPWUuaW5wdXRQbGFjZWhvbGRlciksZS5pbnB1dFZhbHVlIT1udWxsJiYobS52YWx1ZT1TdHJpbmcoZS5pbnB1dFZhbHVlKSkseS5hcHBlbmRDaGlsZChtKSxkLmFwcGVuZENoaWxkKHkpfXZhciB3PWUuYnV0dG9ucyYmZS5idXR0b25zLmxlbmd0aD9lLmJ1dHRvbnM6W3tsYWJlbDoiXHU1OTdEIix2YWx1ZTohMCxraW5kOiJwcmltYXJ5IixhdXRvZm9jdXM6ITB9XSxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0UuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1mb290ZXIiO3ZhciBCPW51bGwsRD1udWxsO2Z1bmN0aW9uIEYoTCl7aWYoIWwuY2xhc3NMaXN0LmNvbnRhaW5zKCJjbG9zaW5nIikpe2wuY2xhc3NMaXN0LmFkZCgiY2xvc2luZyIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLEksITApO3ZhciBQPUNyLmluZGV4T2YoRik7UD49MCYmQ3Iuc3BsaWNlKFAsMSk7dmFyIFY9ITE7dHJ5e1Y9ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpfWNhdGNoe31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYobC5wYXJlbnROb2RlJiZsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobCkscyYmZG9jdW1lbnQuY29udGFpbnMocykmJnR5cGVvZiBzLmZvY3VzPT0iZnVuY3Rpb24iKXRyeXtzLmZvY3VzKCl9Y2F0Y2h7fXUoTCl9LFZ8fGRvY3VtZW50LmhpZGRlbj8wOjE0MCl9fXcuZm9yRWFjaChmdW5jdGlvbihMKXt2YXIgUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSxWPUwua2luZHx8InNlY29uZGFyeSI7UC5jbGFzc05hbWU9ImJ0biBidG4tIitWLFAudHlwZT0iYnV0dG9uIixQLnRleHRDb250ZW50PUwubGFiZWwsUC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthJiZMLmtpbmQ9PT0icHJpbWFyeSI/RihtP20udmFsdWU6IiIpOkYoTC52YWx1ZSl9KSxCfHwoQj1QKSxMLmF1dG9mb2N1cyYmKEQ9UCksRS5hcHBlbmRDaGlsZChQKX0pLGQuYXBwZW5kQ2hpbGQoRSksbC5hcHBlbmRDaGlsZChkKSxsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihMKXtMLnRhcmdldD09PWwmJnQmJkYoZS5jYW5jZWxWYWx1ZSE9PXZvaWQgMD9lLmNhbmNlbFZhbHVlOmE/bnVsbDohMSl9KTtmdW5jdGlvbiBJKEwpe2lmKENyW0NyLmxlbmd0aC0xXT09PUYpe2lmKEwua2V5PT09IkVzY2FwZSImJnQpe0wucHJldmVudERlZmF1bHQoKSxMLnN0b3BQcm9wYWdhdGlvbigpLEYoZS5jYW5jZWxWYWx1ZSE9PXZvaWQgMD9lLmNhbmNlbFZhbHVlOmE/bnVsbDohMSk7cmV0dXJufWlmKEwua2V5PT09IkVudGVyIil7Zm9yKHZhciBQPW51bGwsVj0wO1Y8dy5sZW5ndGg7VisrKWlmKHdbVl0ua2luZD09PSJwcmltYXJ5Iil7UD13W1ZdO2JyZWFrfVB8fChQPXdbdy5sZW5ndGgtMV0pLFAmJihMLnByZXZlbnREZWZhdWx0KCksTC5zdG9wUHJvcGFnYXRpb24oKSxhJiZQLmtpbmQ9PT0icHJpbWFyeSI/RihtP20udmFsdWU6IiIpOkYoUC52YWx1ZSkpO3JldHVybn1pZihMLmtleT09PSJUYWIiKXt2YXIgeD1kLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpO2lmKCF4Lmxlbmd0aClyZXR1cm47dmFyIGs9eFswXSxUPXhbeC5sZW5ndGgtMV07TC5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWs/KEwucHJldmVudERlZmF1bHQoKSxULmZvY3VzKCkpOiFMLnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09VCYmKEwucHJldmVudERlZmF1bHQoKSxrLmZvY3VzKCkpfX19ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsSSwhMCksQ3IucHVzaChGKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGwpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2lmKGEmJm0pe20uZm9jdXMoKTt0cnl7bS5zZWxlY3QoKX1jYXRjaHt9fWVsc2UgRD9ELmZvY3VzKCk6QiYmQi5mb2N1cygpfSl9KX1mdW5jdGlvbiBpcyhlLHQpe3JldHVybiB0PXR8fHt9LGRuKHt0aXRsZTp0LnRpdGxlfHwiXHU2M0QwXHU3OTNBIixtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTp0LnR5cGV8fCJpbmZvIixidXR0b25zOlt7bGFiZWw6dC5va0xhYmVsfHwiXHU1OTdEIix2YWx1ZTp2b2lkIDAsa2luZDoicHJpbWFyeSIsYXV0b2ZvY3VzOiEwfV19KX1mdW5jdGlvbiBBYShlLHQpe3Q9dHx8e307dmFyIG49ISF0LmRhbmdlcnx8dC50eXBlPT09ImRhbmdlciI7cmV0dXJuIGRuKHt0aXRsZTp0LnRpdGxlfHwobj8iXHU3ODZFXHU4QkE0XHU2NENEXHU0RjVDIjoiXHU4QkY3XHU3ODZFXHU4QkE0IiksbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6dC50eXBlfHwobj8iZGFuZ2VyIjoicXVlc3Rpb24iKSxjYW5jZWxWYWx1ZTohMSxidXR0b25zOlt7bGFiZWw6dC5jYW5jZWxMYWJlbHx8Ilx1NTNENlx1NkQ4OCIsdmFsdWU6ITEsa2luZDoic2Vjb25kYXJ5In0se2xhYmVsOnQub2tMYWJlbHx8KG4/Ilx1NTIyMFx1OTY2NCI6Ilx1Nzg2RVx1NUI5QSIpLHZhbHVlOiEwLGtpbmQ6bj8iZGFuZ2VyIjoicHJpbWFyeSIsYXV0b2ZvY3VzOiFufV19KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpPT09ITB9KX1mdW5jdGlvbiBxZihlLHQsbil7cmV0dXJuIG49bnx8e30sZG4oe3RpdGxlOm4udGl0bGV8fCJcdThCRjdcdThGOTNcdTUxNjUiLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOm4udHlwZXx8InF1ZXN0aW9uIixpbnB1dDohMCxpbnB1dFZhbHVlOnQ9PW51bGw/IiI6U3RyaW5nKHQpLGlucHV0UGxhY2Vob2xkZXI6bi5wbGFjZWhvbGRlcnx8IiIsY2FuY2VsVmFsdWU6bnVsbCxidXR0b25zOlt7bGFiZWw6bi5jYW5jZWxMYWJlbHx8Ilx1NTNENlx1NkQ4OCIsdmFsdWU6bnVsbCxraW5kOiJzZWNvbmRhcnkifSx7bGFiZWw6bi5va0xhYmVsfHwiXHU3ODZFXHU1QjlBIix2YWx1ZTp2b2lkIDAsa2luZDoicHJpbWFyeSJ9XX0pfXdpbmRvdy53YW5kQWxlcnQ9aXMsd2luZG93LndhbmRDb25maXJtPUFhLHdpbmRvdy53YW5kUHJvbXB0PXFmLHdpbmRvdy5vcGVuV2FuZERpYWxvZz1kbjt2YXIgZW49W10sYXM9MCxPZj02LFBmPTE2O2Z1bmN0aW9uIHhhKGUpe2lmKChlLmFjdGlvbkxhYmVsfHxlLnBsYXlTb3VuZCkmJmRzKCksIXIubm90aWZCdWJibGUpcmV0dXJue2Rpc21pc3M6ZnVuY3Rpb24oKXt9fTt2YXIgdD0rK2FzLG49ZS50eXBlfHwiaW5mbyIsaT1lLmljb258fChuPT09Indhcm5pbmciPyIhIjpuPT09InN1Y2Nlc3MiPyJcdTI3MTMiOiJpIiksYT1lLmR1cmF0aW9uIT09dm9pZCAwP2UuZHVyYXRpb246OGUzLHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dS5jbGFzc05hbWU9Im5vdGlmaWNhdGlvbi1idWJibGUiLHUuc2V0QXR0cmlidXRlKCJkYXRhLW5pZCIsU3RyaW5nKHQpKTt2YXIgbz0nPGRpdiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1oZWFkZXIiPjxzcGFuIGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWljb24gJytuKyciPicraSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLXRpdGxlIj4nK3AoZS50aXRsZSkrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWNsb3NlIiB0aXRsZT0iXHU1MTczXHU5NUVEIj5ceEQ3PC9idXR0b24+PC9kaXY+JyxzPWUuYm9keT8nPGRpdiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1ib2R5Ij4nK3AoZS5ib2R5KS5yZXBsYWNlKC9cbi9nLCI8YnI+IikrIjwvZGl2PiI6IiIsbD1lLmFjdGlvbkxhYmVsPyc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9InByaW1hcnkiPicrcChlLmFjdGlvbkxhYmVsKSsiPC9idXR0b24+PC9kaXY+IjoiIjt1LmlubmVySFRNTD1vK3MrbCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHUpO3ZhciBkPXtpZDp0LGVsOnV9O2VuLnB1c2goZCksU2EoKTt2YXIgZj11LnF1ZXJ5U2VsZWN0b3IoIi5ub3RpZmljYXRpb24tYnViYmxlLWNsb3NlIik7aWYoZiYmKGYub25jbGljaz1mdW5jdGlvbigpe0JyKHQpfSksZS5hY3Rpb25MYWJlbCYmZS5hY3Rpb24pe3ZhciBjPXUucXVlcnlTZWxlY3RvcigiLm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24iKTtjJiYoYy5vbmNsaWNrPWZ1bmN0aW9uKCl7ZS5hY3Rpb24oKSxCcih0KX0pfXZhciB2PW51bGw7cmV0dXJuIGE+MCYmKHY9c2V0VGltZW91dChmdW5jdGlvbigpe0JyKHQpfSxhKSkse2Rpc21pc3M6ZnVuY3Rpb24oKXtCcih0KX19fWZ1bmN0aW9uIEJyKGUpe2Zvcih2YXIgdD0tMSxuPTA7bjxlbi5sZW5ndGg7bisrKWlmKGVuW25dLmlkPT09ZSl7dD1uO2JyZWFrfWlmKHQhPT0tMSl7dmFyIGk9ZW5bdF07aS5lbC5jbGFzc0xpc3QuYWRkKCJzbGlkZS1vdXQiKSxlbi5zcGxpY2UodCwxKSxTYSgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmVsLnBhcmVudE5vZGUmJmkuZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpLmVsKX0sMzAwKX19ZnVuY3Rpb24gU2EoKXtmb3IodmFyIGU9UGYsdD0wO3Q8ZW4ubGVuZ3RoO3QrKyllblt0XS5lbC5zdHlsZS50b3A9ZSsicHgiLGUrPWVuW3RdLmVsLm9mZnNldEhlaWdodCtPZn10cnl7ZnM9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2FuZFBsYXRmb3JtXC9tYWNPUy8pLExhPXdpbmRvdy53ZWJraXQmJndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzJiZ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy53YW5kTmF0aXZlfHxudWxsLGZzJiZMYSYmdHlwZW9mIHdpbmRvdy5XYW5kTmF0aXZlPiJ1IiYmKHdpbmRvdy5XYW5kTmF0aXZlPXtkb3dubG9hZFVwZGF0ZTpmdW5jdGlvbihlLHQsbil7dHJ5e0xhLnBvc3RNZXNzYWdlKHt0eXBlOiJkb3dubG9hZFVwZGF0ZSIsdXJsOlN0cmluZyhlfHwiIiksZmlsZU5hbWU6U3RyaW5nKHR8fCJ3YW5kLXVwZGF0ZS5kbWciKSxzb3VyY2U6U3RyaW5nKG58fCJsb2NhbCIpfSl9Y2F0Y2h7fX19KX1jYXRjaHt9dmFyIFJlPXR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbj09ImZ1bmN0aW9uIixEcj1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XYW5kQXBwXC8oW15cc10rKS8pLHVzPS9XYW5kUGxhdGZvcm1cL21hY09TLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLEhmPSEhRHImJiF1cyxMbj1EciYmSGY/RHJbMV06bnVsbCxjbj1EciYmdXM/RHJbMV06bnVsbDtmdW5jdGlvbiBZbihlKXtpZighKCFSZXx8dHlwZW9mIFdhbmROYXRpdmUudmlicmF0ZSE9ImZ1bmN0aW9uIikpdHJ5e1dhbmROYXRpdmUudmlicmF0ZShlfHwibGlnaHQiKX1jYXRjaHt9fWZ1bmN0aW9uIElhKCl7aWYoUmUpe3ZhciBlPXIuc2Vzc2lvbnMuc29tZShmdW5jdGlvbih0KXtyZXR1cm4hdC5hcmNoaXZlZCYmKHQuc3RhdHVzPT09InJ1bm5pbmcifHx0LnN0YXR1cz09PSJ0aGlua2luZyJ8fHQuc3RhdHVzPT09ImluaXRpYWxpemluZyIpfSk7aWYodHlwZW9mIFdhbmROYXRpdmUuc2V0S2VlcFNjcmVlbk9uPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnNldEtlZXBTY3JlZW5PbihlKX1jYXRjaHt9aWYoZSl7aWYodHlwZW9mIFdhbmROYXRpdmUuc3RhcnRLZWVwQWxpdmU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc3RhcnRLZWVwQWxpdmUoKX1jYXRjaHt9fWVsc2UgaWYodHlwZW9mIFdhbmROYXRpdmUuc3RvcEtlZXBBbGl2ZT09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zdG9wS2VlcEFsaXZlKCl9Y2F0Y2h7fX19ZnVuY3Rpb24gbWkoKXtpZihSZSYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0UGVybWlzc2lvbj09ImZ1bmN0aW9uIil0cnl7cmV0dXJuIFdhbmROYXRpdmUuZ2V0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm4gbnVsbH1mdW5jdGlvbiBfZigpe2lmKFJlKXt2YXIgZT1taSgpO2lmKGU9PT0iZGVmYXVsdCJ8fGU9PT0iZGVuaWVkIil0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm59dHlwZW9mIE5vdGlmaWNhdGlvbjwidSImJk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uPT09ImRlZmF1bHQiJiZOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKX1mdW5jdGlvbiBOZihlKXt2YXIgdD1lfHx7fTtyZXR1cm4hKHQub25seVdoZW5IaWRkZW4mJiFkb2N1bWVudC5oaWRkZW58fHQuc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZCYmdC5za2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYhZG9jdW1lbnQuaGlkZGVuKX1mdW5jdGlvbiBqZihlLHQpe2lmKCFlfHwhdHx8dDw9MClyZXR1cm4hMTt2YXIgbj1yLm5vdGlmaWNhdGlvbkhpc3RvcnlbZV18fDAsaT1EYXRlLm5vdygpO3JldHVybiBpLW48dD8hMDooci5ub3RpZmljYXRpb25IaXN0b3J5W2VdPWksITEpfWZ1bmN0aW9uIGdpKGUsdCxuKXt2YXIgaT1ufHx7fSxhPWkudGFnfHwiIjtpZihOZihpKSYmIWpmKGEsaS5taW5JbnRlcnZhbE1zfHwwKSl7aWYoUmUpe3ZhciB1PW1pKCk7aWYodSE9PSJncmFudGVkIilyZXR1cm47dHJ5e3ZhciBvPWE7aS5raW5kJiYobz1pLmtpbmQrKGE/IjoiK2E6IiIpKSxXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb24oZXx8IldhbmQiLHR8fCIiLG98fCIiKX1jYXRjaHt9cmV0dXJufWlmKCEodHlwZW9mIE5vdGlmaWNhdGlvbj4idSJ8fE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIT09ImdyYW50ZWQiKSYmZG9jdW1lbnQuaGlkZGVuKXRyeXt2YXIgcz1uZXcgTm90aWZpY2F0aW9uKGUse2JvZHk6dHx8IiIsaWNvbjppLmljb258fCIvZmF2aWNvbi5pY28iLHRhZzphfHx2b2lkIDB9KTtzLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cuZm9jdXMoKSxzLmNsb3NlKCksaS5vbkNsaWNrJiZpLm9uQ2xpY2soKX0sc2V0VGltZW91dChmdW5jdGlvbigpe3MuY2xvc2UoKX0sMWU0KX1jYXRjaHt9fX1mdW5jdGlvbiBSZihlLHQpe2lmKCEoIXR8fCF0LnRpdGxlKSl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ZX0pO2lmKG4pe3ZhciBpPW4uc3VtbWFyeXx8bi5jb21tYW5kfHxlO2dpKCJcdTRFRkJcdTUyQTFcdThGREJcdTg4NENcdTRFMkQiLGkrYApgK3QudGl0bGUse2tpbmQ6InRhc2siLHRhZzoid2FuZC10YXNrLSIrZSsiLSIrdC50aXRsZSxtaW5JbnRlcnZhbE1zOjllNCxvbmx5V2hlbkhpZGRlbjohMCxza2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkOmUsb25DbGljazpmdW5jdGlvbigpe2UhPT1yLnNlbGVjdGVkSWQmJlJ0KGUpfX0pfX19ZnVuY3Rpb24gb3MoZSx0KXtKZihlfHwiLSIsdHx8Ii0iKSxnaSgiV2FuZCBcdTUzRDFcdTczQjBcdTY1QjBcdTcyNDhcdTY3MkMiLCJcdTVGNTNcdTUyNEQgIisoZXx8Ii0iKSsiIFx1MjE5MiBcdTY3MDBcdTY1QjAgIisodHx8Ii0iKSx7a2luZDoidXBkYXRlIix0YWc6IndhbmQtdXBkYXRlIixtaW5JbnRlcnZhbE1zOjNlNX0pfWZ1bmN0aW9uIFdmKGUsdCl7Z2koIlx1OTcwMFx1ODk4MVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyIsdCx7a2luZDoicGVybWlzc2lvbiIsdGFnOiJ3YW5kLXBlcm0tIitlLG1pbkludGVydmFsTXM6NmU0LG9ubHlXaGVuSGlkZGVuOiEwLHNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ6ZSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmUnQoZSl9fSl9ZnVuY3Rpb24gemYoZSx0LG4pe2dpKHQsbix7a2luZDoidGFzay1lbmRlZCIsdGFnOiJ3YW5kLWVuZGVkLSIrZSxtaW5JbnRlcnZhbE1zOjFlNCxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmUnQoZSl9fSl9dmFyIE1uPXt9LFZmPTMwO2Z1bmN0aW9uIHNzKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVN0cmluZyhlKS5yZXBsYWNlKC9eIytccysvZ20sIiIpLnJlcGxhY2UoL1wqXCovZywiIikucmVwbGFjZSgvYC9nLCIiKS50cmltKCksbj10LnNwbGl0KGAKYClbMF0udHJpbSgpO3JldHVybiBuLmxlbmd0aD4xMDAmJihuPW4uc2xpY2UoMCwxMDApKyJcdTIwMjYiKSxufWZ1bmN0aW9uIFRhKGUpeyFSZXx8dHlwZW9mIFdhbmROYXRpdmUudXBkYXRlU2Vzc2lvblByb2dyZXNzIT0iZnVuY3Rpb24ifHxlJiYoTW5bZV0mJmNsZWFyVGltZW91dChNbltlXSksTW5bZV09c2V0VGltZW91dChmdW5jdGlvbigpe2RlbGV0ZSBNbltlXSxVZihlKX0sVmYpKX1mdW5jdGlvbiBVZihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oRil7cmV0dXJuIEYuaWQ9PT1lfSk7aWYodCl7dmFyIG49dC5zdW1tYXJ5fHx0LmNvbW1hbmR8fGUsaT10LnN0YXR1c3x8InJ1bm5pbmciO2lmKGk9PT0iaWRsZSJ8fGk9PT0iYXJjaGl2ZWQifHxpPT09ImV4aXRlZCIpe2xzKGUpO3JldHVybn1mb3IodmFyIGE9bnVsbCx1PSIiLG89IiIscz1bXSxsPXQubWVzc2FnZXN8fFtdLGQ9bC5sZW5ndGgtMTtkPj0wO2QtLSl7dmFyIGY9bFtkXTtpZighKCFmLmNvbnRlbnR8fCFBcnJheS5pc0FycmF5KGYuY29udGVudCkpKXtpZighbyYmZi5yb2xlPT09ImFzc2lzdGFudCIpZm9yKHZhciBjPWYuY29udGVudC5sZW5ndGgtMTtjPj0wO2MtLSl7dmFyIHY9Zi5jb250ZW50W2NdO2lmKHYmJnYudHlwZT09PSJ0ZXh0IiYmdi50ZXh0JiZ2LnRleHQudHJpbSgpKXtvPXNzKHYudGV4dCk7YnJlYWt9fWlmKGYucm9sZT09PSJ1c2VyIil7dmFyIGg9Zi5jb250ZW50LnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYmJkYuX19xdWV1ZWR9KTtpZighaClmb3IodmFyIGc9MDtnPGYuY29udGVudC5sZW5ndGg7ZysrKXt2YXIgbT1mLmNvbnRlbnRbZ107aWYobSYmbS50eXBlPT09InRleHQiJiZtLnRleHQmJm0udGV4dC50cmltKCkpe3ZhciB5PXNzKG0udGV4dCk7dXx8KHU9eSkscy5sZW5ndGg8NCYmcy5wdXNoKHkpO2JyZWFrfX19aWYoIWEpZm9yKHZhciB3PWYuY29udGVudC5sZW5ndGgtMTt3Pj0wO3ctLSl7dmFyIEU9Zi5jb250ZW50W3ddO2lmKEUmJkUudHlwZT09PSJ0b29sX3VzZSImJkUubmFtZT09PSJUb2RvV3JpdGUiJiZFLmlucHV0JiZFLmlucHV0LnRvZG9zKXthPUUuaW5wdXQudG9kb3M7YnJlYWt9fWlmKGEmJnMubGVuZ3RoPj00JiZvKWJyZWFrfX1zLnJldmVyc2UoKTt2YXIgQj0iIjtlPT09ci5zZWxlY3RlZElkJiZyLmN1cnJlbnRUYXNrJiZyLmN1cnJlbnRUYXNrLnRpdGxlJiYoQj1yLmN1cnJlbnRUYXNrLnRpdGxlKTt2YXIgRD17c2Vzc2lvbkxhYmVsOm4sc3RhdHVzOmksY3VycmVudFRhc2s6QixsYXRlc3RVc2VyVGV4dDp1LGxhdGVzdEFzc2lzdGFudFRleHQ6byx0b2RvczphfHxbXSxyZWNlbnRVc2VyVGV4dHM6c307dHJ5e1dhbmROYXRpdmUudXBkYXRlU2Vzc2lvblByb2dyZXNzKGUsSlNPTi5zdHJpbmdpZnkoRCkpfWNhdGNoe319fWZ1bmN0aW9uIGxzKGUpe2lmKCEoIVJlfHx0eXBlb2YgV2FuZE5hdGl2ZS5jbGVhclNlc3Npb25Qcm9ncmVzcyE9ImZ1bmN0aW9uIikpe01uW2VdJiYoY2xlYXJUaW1lb3V0KE1uW2VdKSxkZWxldGUgTW5bZV0pO3RyeXtXYW5kTmF0aXZlLmNsZWFyU2Vzc2lvblByb2dyZXNzKGUpfWNhdGNoe319fXdpbmRvdy5oYW5kbGVOYXRpdmVCYWNrPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1vZGFsIik7aWYoZSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4gdHIoKSwhMDt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2lmKHQmJiF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpcmV0dXJuIEVuKCksITA7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7cmV0dXJuIG4mJiFuLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIik/KGVyKCksITApOnIuZmlsZVBhbmVsT3BlbiYmamUoKT8ob2EoITEpLCEwKTpyLnNlc3Npb25zRHJhd2VyT3BlbiYmamUoKT8oX3IoKSwhMCk6amUoKSYmci5zZWxlY3RlZElkPyhyLnNlbGVjdGVkSWQ9bnVsbCxFZSgpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLFp0KCksITApOiExfTtmdW5jdGlvbiBkcygpe3Iubm90aWZTb3VuZCYmaGkoKX1mdW5jdGlvbiBLZigpe3JldHVybiBoaSgpfWZ1bmN0aW9uIGhpKCl7dHJ5e2xldCBhPWZ1bmN0aW9uKHUsbyxzKXt2YXIgbD1uLmNyZWF0ZU9zY2lsbGF0b3IoKSxkPW4uY3JlYXRlR2FpbigpO2wudHlwZT0ic2luZSIsbC5mcmVxdWVuY3kudmFsdWU9dSxkLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCxuLmN1cnJlbnRUaW1lK28pLGQuZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSguNSppLG4uY3VycmVudFRpbWUrbysuMDQpLGQuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKC4wMDEsbi5jdXJyZW50VGltZStvK3MpLGwuY29ubmVjdChkKSxkLmNvbm5lY3Qobi5kZXN0aW5hdGlvbiksbC5zdGFydChuLmN1cnJlbnRUaW1lK28pLGwuc3RvcChuLmN1cnJlbnRUaW1lK28rcyl9O3ZhciBlPWEsdD13aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0O2lmKCF0KXJldHVybiExO3ZhciBuPW5ldyB0O24uc3RhdGU9PT0ic3VzcGVuZGVkIiYmbi5yZXN1bWUoKTt2YXIgaT0oci5ub3RpZlZvbHVtZXx8MCkvMTAwO3JldHVybiBhKDUyMywwLC4yNSksYSg2NTksLjEyLC4zKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5jbG9zZSgpfSw2MDApLCEwfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBKZihlLHQpe2lmKHIuX3VwZGF0ZUJ1YmJsZVNob3duKXJldHVybjtyLl91cGRhdGVCdWJibGVTaG93bj0hMCxkcygpO3ZhciBuPSsrYXMsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0ibm90aWZpY2F0aW9uLWJ1YmJsZSB1cGRhdGUtY2FyZCIsaS5zZXRBdHRyaWJ1dGUoImRhdGEtbmlkIixTdHJpbmcobikpLGkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zaGluZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWhlYWRlciI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz48L3N2Zz48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1oZWFkaW5nIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC10aXRsZSI+XHU1M0QxXHU3M0IwXHU2NUIwXHU3MjQ4XHU2NzJDPC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc3VidGl0bGUiIGlkPSJ1cGRhdGUtY2FyZC1zdWJ0aXRsZSI+XHU3MEI5XHU1MUZCXHU0RTBCXHU2NUI5XHU2MzA5XHU5NEFFXHU0RTAwXHU5NTJFXHU2NkY0XHU2NUIwPC9kaXY+PC9kaXY+PGJ1dHRvbiBjbGFzcz0idXBkYXRlLWNhcmQtY2xvc2UiIHRpdGxlPSJcdTdBMERcdTU0MEVcdTYzRDBcdTkxOTIiIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xOCA2TDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbiI+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24tY2hpcCB1cGRhdGUtY2FyZC12ZXJzaW9uLWN1cnJlbnQiPnYnK3AoU3RyaW5nKGUpLnJlcGxhY2UoL152LywiIikpKyc8L3NwYW4+PHN2ZyBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1hcnJvdyIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTUgMTJoMTQiLz48cGF0aCBkPSJNMTMgNWw3IDctNyA3Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24tY2hpcCB1cGRhdGUtY2FyZC12ZXJzaW9uLWxhdGVzdCI+dicrcChTdHJpbmcodCkucmVwbGFjZSgvXnYvLCIiKSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcyIgaWQ9InVwZGF0ZS1jYXJkLXByb2dyZXNzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MtdHJhY2siPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzLWZpbGwiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXN0YXR1cyBoaWRkZW4iIGlkPSJ1cGRhdGUtY2FyZC1zdGF0dXMiPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbiB1cGRhdGUtY2FyZC1hY3Rpb24tcHJpbWFyeSIgaWQ9InVwZGF0ZS1idWJibGUtYWN0aW9uIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ1cGRhdGUtY2FyZC1hY3Rpb24tbGFiZWwiPlx1N0FDQlx1NTM3M1x1NjZGNFx1NjVCMDwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7dmFyIGE9e2lkOm4sZWw6aX07ZW4ucHVzaChhKSxTYSgpO3ZhciB1PWkucXVlcnlTZWxlY3RvcigiLnVwZGF0ZS1jYXJkLWNsb3NlIik7dSYmKHUub25jbGljaz1mdW5jdGlvbigpe0JyKG4pLHIuX3VwZGF0ZUJ1YmJsZVNob3duPSExfSk7dmFyIG89aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWJ1YmJsZS1hY3Rpb24iKSxzPWkucXVlcnlTZWxlY3RvcigiLnVwZGF0ZS1jYXJkLWFjdGlvbi1sYWJlbCIpLGw9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtc3VidGl0bGUiKSxkPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1jYXJkLXN0YXR1cyIpLGY9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtcHJvZ3Jlc3MiKTtmdW5jdGlvbiBjKGcsbSl7aWYoZCl7aWYoZC50ZXh0Q29udGVudD1nfHwiIixkLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIsImVycm9yIiwic3VjY2VzcyIpLCFnKXtkLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3JldHVybn1tJiZkLmNsYXNzTGlzdC5hZGQobSl9fWZ1bmN0aW9uIHYoZyl7bCYmKGwudGV4dENvbnRlbnQ9Z3x8IiIpfWZ1bmN0aW9uIGgoZyl7ZiYmZi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhZyl9byYmKG8ub25jbGljaz1mdW5jdGlvbigpe28uZGlzYWJsZWQ9ITAsaS5jbGFzc0xpc3QuYWRkKCJpcy1idXN5IikscyYmKHMudGV4dENvbnRlbnQ9Ilx1NjZGNFx1NjVCMFx1NEUyRFx1MjAyNiIpLHYoIlx1NkI2M1x1NTcyOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NUI4OVx1ODhDNVx1NjVCMFx1NzI0OFx1NjcyQ1x1MjAyNiIpLGgoITApLGMoIiIpLGZldGNoKCIvYXBpL3VwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihnKXtyZXR1cm4gZy5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGcpe2lmKGcuZXJyb3Ipe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLHYoIlx1NjZGNFx1NjVCMFx1NjcyQVx1NUI4Q1x1NjIxMCIpLGMoZy5lcnJvciwiZXJyb3IiKSxvLmRpc2FibGVkPSExLHMmJihzLnRleHRDb250ZW50PSJcdTkxQ0RcdThCRDUiKTtyZXR1cm59aWYoaS5jbGFzc0xpc3QuYWRkKCJpcy1zdWNjZXNzIiksdigoZy5tZXNzYWdlfHwiXHU2NkY0XHU2NUIwXHU1QjhDXHU2MjEwIikrIlx1RkYwQ1x1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MjAyNiIpLGMoIiIpLHMmJihzLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiKSxnLmRldGFjaGVkVXBkYXRlKXtmbigpO3JldHVybn1pZihnLnJlc3RhcnRSZXF1aXJlZD09PSExKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSxvLmRpc2FibGVkPSExLHMmJihzLnRleHRDb250ZW50PSJcdTVERjJcdTVCOENcdTYyMTAiKTtyZXR1cm59WWYobyxzLGwsZCxmKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5IiksdigiXHU2NkY0XHU2NUIwXHU2NzJBXHU1QjhDXHU2MjEwIiksYygiXHU4QkY3XHU2OEMwXHU2N0U1XHU3RjUxXHU3RURDXHU4RkRFXHU2M0E1XHU1NDBFXHU5MUNEXHU4QkQ1IiwiZXJyb3IiKSxvLmRpc2FibGVkPSExLHMmJihzLnRleHRDb250ZW50PSJcdTkxQ0RcdThCRDUiKX0pfSl9ZnVuY3Rpb24gWWYoZSx0LG4saSxhKXtmZXRjaCgiL2FwaS9yZXN0YXJ0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oKXtmbigpfSkuY2F0Y2goZnVuY3Rpb24oKXtmbigpfSl9ZnVuY3Rpb24gY3MoZSx0KXtlJiYoZS5kaXNhYmxlZD0hMCxlLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiKSx0JiYodC50ZXh0Q29udGVudD0iXHU2NzBEXHU1MkExXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHUyMDI2Iix0LnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiKSxmZXRjaCgiL2FwaS9yZXN0YXJ0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oKXtmbigpfSkuY2F0Y2goZnVuY3Rpb24oKXtmbigpfSl9ZnVuY3Rpb24gZm4oKXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3RhcnQtb3ZlcmxheSIpKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmlkPSJyZXN0YXJ0LW92ZXJsYXkiLGUuY2xhc3NOYW1lPSJyZXN0YXJ0LW92ZXJsYXkiLGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJyZXN0YXJ0LW92ZXJsYXktY29udGVudCI+PGRpdiBjbGFzcz0icmVzdGFydC1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXRpdGxlIj5cdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkY8L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXN1YnRpdGxlIj5cdTdBMERcdTU0MEVcdTVDMDZcdTgxRUFcdTUyQThcdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjJcdTIwMjY8L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7dmFyIHQ9MCxuPTE4MCxpPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYodCsrLGZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHUpe3Uub2smJihjbGVhckludGVydmFsKGkpLGxvY2F0aW9uLnJlbG9hZCgpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSksdD49bil7Y2xlYXJJbnRlcnZhbChpKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5yZXN0YXJ0LXN1YnRpdGxlIik7YSYmKGEuaW5uZXJIVE1MPSdcdTkxQ0RcdTU0MkZcdThEODVcdTY1RjZcdUZGMENcdThCRjcgPGEgaHJlZj0iamF2YXNjcmlwdDpsb2NhdGlvbi5yZWxvYWQoKSIgc3R5bGU9ImNvbG9yOnZhcigtLWFjY2VudCk7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSI+XHU2MjRCXHU1MkE4XHU1MjM3XHU2NUIwPC9hPiBcdTk4NzVcdTk3NjJcdTMwMDInKX19LDJlMyl9fWZ1bmN0aW9uIEdmKGUsdCl7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN0YXJ0LW92ZXJsYXkiKSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5pZD0icmVzdGFydC1vdmVybGF5IixuLmNsYXNzTmFtZT0icmVzdGFydC1vdmVybGF5IixuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0icmVzdGFydC1vdmVybGF5LWNvbnRlbnQiPjxkaXYgY2xhc3M9InJlc3RhcnQtc3Bpbm5lciI+PC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwXHU0RTJEPC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC1zdWJ0aXRsZSI+JytwKGUpKyIgXHUyMTkyICIrcCh0KSsiPGJyPlx1NkI2M1x1NTcyOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NUI4OVx1ODhDNVx1NjVCMFx1NzI0OFx1NjcyQ1x1RkYwQ1x1N0EwRFx1NTQwRVx1NUMwNlx1ODFFQVx1NTJBOFx1OTFDRFx1NTQyRlx1MjAyNjwvZGl2PjwvZGl2PiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKX19dmFyIGZzLExhLEllPXtyZWNvcmRpbmc6ITEsY2FuY2VsaW5nOiExLHRyYW5zY3JpcHQ6IiIsc3RhcnRZOjB9LFFmPTYwO2Z1bmN0aW9uICRmKGUpe0llLnRyYW5zY3JpcHQ9ZXx8IiI7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtdGV4dCIpO3QmJih0LnRleHRDb250ZW50PUllLnRyYW5zY3JpcHQpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXRleHQiLCEhSWUudHJhbnNjcmlwdCl9ZnVuY3Rpb24gWGYoZSl7aWYoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLEllLnN0YXJ0WT10eXBlb2YgZS5jbGllbnRZPT0ibnVtYmVyIj9lLmNsaWVudFk6MDt0cnl7ZS5wb2ludGVySWQhPT12b2lkIDAmJmUudGFyZ2V0JiZlLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZSYmZS50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe319SWUucmVjb3JkaW5nPSEwLEllLmNhbmNlbGluZz0hMSxJZS50cmFuc2NyaXB0PSIiO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7aWYodCl7dC5jbGFzc0xpc3QuYWRkKCJpcy1yZWNvcmRpbmciKTt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTtuJiYobi50ZXh0Q29udGVudD0iXHU2NzdFXHU1RjAwIFx1NTNEMVx1OTAwMSIpfXZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO2kmJmkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiwiaXMtY2FuY2VsaW5nIiwiaGFzLXRleHQiKSwkZigiIik7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIik7YSYmKGEudGV4dENvbnRlbnQ9Ilx1N0Y1MVx1OTg3NVx1N0FFRlx1NjY4Mlx1NEUwRFx1NjUyRlx1NjMwMVx1OEJFRFx1OTdGM1x1OEY5M1x1NTE2NVx1RkYwQ1x1OEJGN1x1NEY3Rlx1NzUyOCBBcHAiKX1mdW5jdGlvbiBaZihlKXtpZighKCFJZS5yZWNvcmRpbmd8fCFlKSl7dmFyIHQ9SWUuc3RhcnRZLSh0eXBlb2YgZS5jbGllbnRZPT0ibnVtYmVyIj9lLmNsaWVudFk6SWUuc3RhcnRZKSxuPXQ+UWY7aWYobiE9PUllLmNhbmNlbGluZyl7SWUuY2FuY2VsaW5nPW47dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7aSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1jYW5jZWxpbmciLG4pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIiksdT1hJiZhLnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTt1JiYodS50ZXh0Q29udGVudD1uPyJcdTY3N0VcdTVGMDAgXHU1M0Q2XHU2RDg4IjoiXHU2NzdFXHU1RjAwIFx1NTNEMVx1OTAwMSIpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyIpO28mJihvLnRleHRDb250ZW50PW4/Ilx1Njc3RVx1NUYwMFx1NjI0Qlx1NjMwNyBcdTUzRDZcdTZEODgiOiJcdTZCNjNcdTU3MjhcdTgwNDZcdTU0MkNcdTIwMjZcdTRFMEFcdTZFRDFcdTUzRDZcdTZEODgiKX19fWZ1bmN0aW9uIHBzKGUpe2lmKEllLnJlY29yZGluZyl7ZSYmZS5wcmV2ZW50RGVmYXVsdCgpLEllLnJlY29yZGluZz0hMTt2YXIgdD0hSWUuY2FuY2VsaW5nJiYhIUllLnRyYW5zY3JpcHQudHJpbSgpLG49SWUudHJhbnNjcmlwdDtNYSgpLHQmJihlcChuKSxxYSghMSkpfX1mdW5jdGlvbiBNYSgpe0llLmNhbmNlbGluZz0hMTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO2lmKGUpe2UuY2xhc3NMaXN0LnJlbW92ZSgiaXMtcmVjb3JkaW5nIik7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIudm9pY2UtcmVjb3JkLWxhYmVsIik7dCYmKHQudGV4dENvbnRlbnQ9Ilx1NjMwOVx1NEY0RiBcdThCRjRcdThCREQiKX12YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIGVwKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZihuKXt2YXIgaT1uLnZhbHVlfHwiIixhPWk/aS5yZXBsYWNlKC9ccyskLywiIikrIiAiK3Q6dDtuLnZhbHVlPWEscnQoYSwhMCksSHQobik7dHJ5e24uc2V0U2VsZWN0aW9uUmFuZ2UoYS5sZW5ndGgsYS5sZW5ndGgpfWNhdGNoe319fX1mdW5jdGlvbiBxYShlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZih0KXt2YXIgbj10eXBlb2YgZT09ImJvb2xlYW4iP2U6IXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2b2ljZS1tb2RlIik7aWYodC5jbGFzc0xpc3QudG9nZ2xlKCJ2b2ljZS1tb2RlIixuKSwhbil7SWUucmVjb3JkaW5nPSExLE1hKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKGkmJiFyLnRlcm1pbmFsSW50ZXJhY3RpdmUpdHJ5e2kuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX1jYXRjaHt9fX19ZnVuY3Rpb24gSHQoZSl7aWYoZSl7dmFyIHQ9MzYsbj0xMjAsaT1McigpO2lmKCFlLnZhbHVlfHxlLnZhbHVlLnRyaW0oKT09PSIiKXtlLnN0eWxlLmhlaWdodD10KyJweCIsZS5zdHlsZS5taW5IZWlnaHQ9dCsicHgiLGUuc3R5bGUub3ZlcmZsb3dZPWk/ImF1dG8iOiJoaWRkZW4iLGUuc2Nyb2xsVG9wPTAsVWkoZSk7cmV0dXJufXZhciBhPWUuc3R5bGUub3ZlcmZsb3dZO2Uuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iLGUuc3R5bGUuaGVpZ2h0PXQrInB4Ijt2YXIgdT1lLnNjcm9sbEhlaWdodCxvPU1hdGgubWF4KHQsTWF0aC5taW4odSxuKSkscz11Pm47ZS5zdHlsZS5oZWlnaHQ9bysicHgiLGUuc3R5bGUubWluSGVpZ2h0PXQrInB4IixlLnN0eWxlLm92ZXJmbG93WT1zfHxpPyJhdXRvIjoiaGlkZGVuIixzP2tpKGUpOmUuc2Nyb2xsVG9wPTAsVWkoZSl9fWZ1bmN0aW9uIHRwKCl7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4hMTt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gdWUoZSk/ISEoZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTohIWUmJmUuc3RhdHVzPT09InJ1bm5pbmcifXZhciBrcj0hMTtmdW5jdGlvbiB2cyhlKXtyZXR1cm4hZXx8ZS5hcmNoaXZlZD8hMTp1ZShlKT8hIShlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOmUuc3RhdHVzPT09InJ1bm5pbmcifWZ1bmN0aW9uIE9hKCl7cmV0dXJuIHIuc2Vzc2lvbnMuc29tZSh2cyl9ZnVuY3Rpb24gbnAoKXt2YXIgZT1yLnNlc3Npb25zLmZpbHRlcih2cyk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodClyZXR1cm4gdH1yZXR1cm4gZS5zb3J0KGZ1bmN0aW9uKG4saSl7cmV0dXJuKERhdGUucGFyc2UoaS5zdGFydGVkQXQpfHwwKS0oRGF0ZS5wYXJzZShuLnN0YXJ0ZWRBdCl8fDApfSksZVswXX1mdW5jdGlvbiBycChlLHQpe3ZhciBuPXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKSxpPUFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcyk/ZS5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdLGE9aS5zbGljZSgpO2EucHVzaCh0KSxYKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KSxlLmlkPT09ci5zZWxlY3RlZElkJiZudCgpO3ZhciB1PWUudGl0bGV8fCRuKGUuY29tbWFuZCl8fCJcdTVGNTNcdTUyNERcdTRGMUFcdThCREQiO3JldHVybiBBKCJcdTVERjJcdTUyQTBcdTUxNjVcdTMwMEMiK3UrIlx1MzAwRFx1NzY4NFx1NjM5Mlx1OTYxRlx1RkYwQ1x1NTZERVx1NTkwRFx1N0VEM1x1Njc1Rlx1NTQwRVx1ODFFQVx1NTJBOFx1NTNEMVx1OTAwMVx1RkYwOFx1NTQyQlx1NEUwQVx1NEUwQlx1NjU4N1x1RkYwOVx1MzAwMiIsImluZm8iKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrZS5pZCsiL21lc3NhZ2VzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6dCxpZGVtcG90ZW5jeUtleTpufSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLm9rP28uanNvbigpOm8uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24ocyl7dGhyb3cgbmV3IEVycm9yKHMmJnMuZXJyb3J8fCJcdTY1RTBcdTZDRDVcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTMwMDIiKX0pfSkudGhlbihmdW5jdGlvbihvKXtvJiZvLmlkJiYoWChvKSxvLmlkPT09ci5zZWxlY3RlZElkJiZudCgpKX0pLmNhdGNoKGZ1bmN0aW9uKG8pe1goe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6aX0pLGUuaWQ9PT1yLnNlbGVjdGVkSWQmJm50KCksQShvJiZvLm1lc3NhZ2V8fCJcdTYzOTJcdTk2MUZcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiLCJlcnJvciIpfSl9ZnVuY3Rpb24gbXMoZSl7dmFyIHQ9bnAoKTtpZih0JiZ1ZSh0KSl7cnAodCxlKTtyZXR1cm59aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+PTEwKXtBKCJcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTVERjJcdTZFRTFcdUZGMDhcdTY3MDBcdTU5MUEgMTAgXHU2NzYxXHVGRjA5XHVGRjBDXHU4QkY3XHU3QjQ5XHU1Rjg1XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU1QjhDXHU2MjEwXHUzMDAyIiwid2FybmluZyIpO3JldHVybn12YXIgbj0iY3NxLSIrRGF0ZS5ub3coKSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiw4KTtyLmNyb3NzU2Vzc2lvblF1ZXVlLnB1c2goe2lkOm4sdGV4dDplLGN3ZDokZSgpLG1vZGU6ci5jaGF0TW9kZXx8Im1hbmFnZWQiLHRvb2w6WGUoKSxxdWV1ZWRBdDpEYXRlLm5vdygpfSksUXQoKSxCdCgpLEEoIlx1NURGMlx1NjM5Mlx1OTYxRlx1RkYwQ1x1NUMwNlx1NTcyOFx1N0E3QVx1OTVGMlx1NTQwRVx1ODFFQVx1NTJBOFx1NUYwMFx1NTlDQlx1NjVCMFx1NEYxQVx1OEJERFx1MzAwMiIsImluZm8iKX1mdW5jdGlvbiBpcChlKXtrcnx8KGtyPSEwLGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDplLnRvb2wsY3dkOmUuY3dkLG1vZGU6ZS5tb2RlLGluaXRpYWxJbnB1dDplLnRleHR9KSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGtyPSExLHQuZXJyb3I/KEEodC5lcnJvciwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnVuc2hpZnQoZSksUXQoKSxCdCgpLG51bGwpOm1uKHQpfSkuY2F0Y2goZnVuY3Rpb24odCl7a3I9ITEsQSh0JiZ0Lm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTYzOTJcdTk2MUZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUudW5zaGlmdChlKSxRdCgpLEJ0KCl9KSl9ZnVuY3Rpb24gYXAoZSl7dmFyIHQ9ci5jcm9zc1Nlc3Npb25RdWV1ZS5maW5kSW5kZXgoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lfSk7aWYoISh0PDApKXt2YXIgbj1yLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDEpWzBdO1F0KCksQnQoKSxmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6bi50b29sLGN3ZDpuLmN3ZCxtb2RlOm4ubW9kZSxpbml0aWFsSW5wdXQ6bi50ZXh0fSkpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmVycm9yPyhBKGkuZXJyb3IsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwwLG4pLFF0KCksQnQoKSxudWxsKTptbihpKX0pLmNhdGNoKGZ1bmN0aW9uKGkpe0EoaSYmaS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU2MzkyXHU5NjFGXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDAsbiksUXQoKSxCdCgpfSl9fWZ1bmN0aW9uIHVwKGUpe3ZhciB0PXIuY3Jvc3NTZXNzaW9uUXVldWUuZmluZEluZGV4KGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ZX0pO3Q8MHx8KHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMSksUXQoKSxCdCgpLHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCYmQSgiXHU2MzkyXHU5NjFGXHU1REYyXHU2RTA1XHU3QTdBXHUzMDAyIiwiaW5mbyIpKX1mdW5jdGlvbiB5aSgpe2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoIT09MCYmIU9hKCkmJiFrcil7dmFyIGU9ci5jcm9zc1Nlc3Npb25RdWV1ZS5zaGlmdCgpO0J0KCksaXAoZSl9fWZ1bmN0aW9uIGdzKGUpe3ZhciB0PU1hdGguZmxvb3IoKERhdGUubm93KCktZSkvMWUzKTtpZih0PDYwKXJldHVybiB0KyJzIjt2YXIgbj1NYXRoLmZsb29yKHQvNjApO3JldHVybiBuPDYwP24rIm0iOk1hdGguZmxvb3Iobi82MCkrImgifWZ1bmN0aW9uIEJ0KCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpO2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCl7ZSYmZS5yZW1vdmUoKSxRdCgpO3JldHVybn12YXIgdT10JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpLG89dT90OmEscz11P258fGk6bnVsbDtpZihvKXtlJiZlLnBhcmVudE5vZGUhPT1vJiYoZS5yZW1vdmUoKSxlPW51bGwpLGU/dSYmcyYmZS5uZXh0U2libGluZyE9PXMmJm8uaW5zZXJ0QmVmb3JlKGUscyk6KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jbGFzc05hbWU9ImNyb3NzLXNlc3Npb24tcXVldWUiLHM/by5pbnNlcnRCZWZvcmUoZSxzKTpvLmFwcGVuZENoaWxkKGUpKTt2YXIgbD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aCxkPXIuY3Jvc3NTZXNzaW9uUXVldWUubWFwKGZ1bmN0aW9uKGMsdil7dmFyIGg9Yy50ZXh0Lmxlbmd0aD42MD9jLnRleHQuc2xpY2UoMCw2MCkrIlx1MjAyNiI6Yy50ZXh0LGc9Z3MoYy5xdWV1ZWRBdCk7cmV0dXJuJzxkaXYgY2xhc3M9InF1ZXVlLWl0ZW0iIGRhdGEtcXVldWUtaWQ9IicrcChjLmlkKSsnIj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS10ZXh0IiB0aXRsZT0iJytwKGMudGV4dCkrJyI+JytwKGgpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWl0ZW0tYWdlIj4nK2crJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1pdGVtLXNlbmQtbm93IiBkYXRhLXF1ZXVlLWlkPSInK3AoYy5pZCkrJyIgdGl0bGU9Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMSIgdHlwZT0iYnV0dG9uIj5cdTUzRDFcdTkwMDE8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1pdGVtLWNhbmNlbCIgZGF0YS1xdWV1ZS1pZD0iJytwKGMuaWQpKyciIHRpdGxlPSJcdTUzRDZcdTZEODgiIHR5cGU9ImJ1dHRvbiI+XHhENzwvYnV0dG9uPjwvZGl2Pid9KS5qb2luKCIiKSxmPWw+MT8nPGRpdiBjbGFzcz0icXVldWUtaGVhZGVyIj48c3BhbiBjbGFzcz0icXVldWUtaGVhZGVyLWxhYmVsIj5cdTYzOTJcdTk2MUYgJytsKycgXHU2NzYxPC9zcGFuPjxidXR0b24gY2xhc3M9InF1ZXVlLWhlYWRlci1jbGVhciIgaWQ9InF1ZXVlLWNsZWFyLWFsbCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2RTA1XHU3QTdBXHU2MzkyXHU5NjFGIj5cdTZFMDVcdTdBN0E8L2J1dHRvbj48L2Rpdj4nOiIiO2UuaW5uZXJIVE1MPWYrZH19c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucXVldWUtaXRlbS1hZ2UiKTtyLmNyb3NzU2Vzc2lvblF1ZXVlLmZvckVhY2goZnVuY3Rpb24odCxuKXtlW25dJiYoZVtuXS50ZXh0Q29udGVudD1ncyh0LnF1ZXVlZEF0KSl9KSx5aSgpfX0sNWUzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYodC5jbG9zZXN0KCIjcXVldWUtY2xlYXItYWxsIikpe2UucHJldmVudERlZmF1bHQoKSxyLmNyb3NzU2Vzc2lvblF1ZXVlPVtdLFF0KCksQnQoKSxBKCJcdTYzOTJcdTk2MUZcdTVERjJcdTZFMDVcdTdBN0FcdTMwMDIiLCJpbmZvIik7cmV0dXJufXZhciBuPXQuY2xvc2VzdCgiLnF1ZXVlLWl0ZW0tc2VuZC1ub3ciKTtpZihuKXtlLnByZXZlbnREZWZhdWx0KCksYXAobi5kYXRhc2V0LnF1ZXVlSWQpO3JldHVybn12YXIgaT10LmNsb3Nlc3QoIi5xdWV1ZS1pdGVtLWNhbmNlbCIpO2lmKGkpe2UucHJldmVudERlZmF1bHQoKSx1cChpLmRhdGFzZXQucXVldWVJZCk7cmV0dXJufX0pO2Z1bmN0aW9uIGhzKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKSx0PWU/ZS52YWx1ZS50cmltKCk6IiI7aWYodCl7aWYoT2EoKSl7ZS52YWx1ZT0iIixtcyh0KTtyZXR1cm59dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUudmFsdWU9IiIsZS5wbGFjZWhvbGRlcj0iXHU2QjYzXHU1NzI4XHU1NDJGXHU1MkE4XHUyMDI2IixlLmRpc2FibGVkPSEwO3ZhciBpPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixhPSRlKCksdT1YZSgpO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDp1LHByb3ZpZGVyOnUsY3dkOmEsbW9kZTppLGluaXRpYWxJbnB1dDp0fSkpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG8uZXJyb3Ipe0Eoby5lcnJvciwiZXJyb3IiKSxlLnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLGUuZGlzYWJsZWQ9ITE7cmV0dXJufXIuc2VsZWN0ZWRJZD1vLmlkLEVlKCksci5kcmFmdHNbby5pZF09IiIsQ3QoKSxYKG8pLGZlKCksQXIoby5pZCksT24oby5pZCksYm4oby5pZCkudGhlbihmdW5jdGlvbigpe2UucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMSxfdCghMCl9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe0EobyYmby5tZXNzYWdlfHwodT09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1MzAwMiIpLCJlcnJvciIpLGUucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMX0pfX1mdW5jdGlvbiBvcChlKXtlPWV8fHt9O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksaT10JiZ0LnZhbHVlLnRyaW0oKT90LnZhbHVlLnRyaW0oKTpuP24udmFsdWUudHJpbSgpOiIiO2lmKHIuc2VsZWN0ZWRJZCl7aSYmeXMoZSk7cmV0dXJufWlmKGkmJk9hKCkpe24mJihuLnZhbHVlPSIiKSx0JiYodC52YWx1ZT0iIiksVWkobiksbXMoaSk7cmV0dXJufXZhciBhPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIix1PSRlKCksbz1YZSgpO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDpvLHByb3ZpZGVyOm8sY3dkOnUsbW9kZTphLGluaXRpYWxJbnB1dDppfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3I/KEEocy5lcnJvciwiZXJyb3IiKSxudWxsKTooci5zZWxlY3RlZElkPXMuaWQsRWUoKSxyLmRyYWZ0c1tzLmlkXT0iIixDdCgpLG4mJihuLnZhbHVlPSIiKSx0JiYodC52YWx1ZT0iIiksWChzKSxmZSgpLEFyKHMuaWQpLE9uKHMuaWQpLGJuKHMuaWQpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe0EocyYmcy5tZXNzYWdlfHwobz09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1MzAwMiIpLCJlcnJvciIpfSl9ZnVuY3Rpb24gQXIoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiB2LmlkPT09ZX0pLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtdGl0bGUiKSxzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1pbmZvIiksbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdW1tYXJ5LXZhbHVlIiksZD11ZSh0KTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixkKSxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGQ/ci5jdXJyZW50Vmlldz0iY2hhdCI6ci5jdXJyZW50Vmlldz0idGVybWluYWwiO3ZhciBmPXQ/JG4odC5jb21tYW5kKToiV2FuZCIsYz10P2ZyKHQpOiJcdTVGMDBcdTU5Q0JcdTVCRjlcdThCREQiO28mJihvLnRleHRDb250ZW50PWYpLHMmJihzLnRleHRDb250ZW50PWMpLGwmJihsLnRleHRDb250ZW50PWYpLGR8fHIudGVybWluYWx8fEpuKCksV2koKSxfdCghMCksZHx8UWUoInZpZXctc3dpdGNoIix7Zm9yY2VSZXBsYXk6ITB9KX1mdW5jdGlvbiB5cyhlKXtlPWV8fHt9O3ZhciB0PSEhZS5pbnRlcnJ1cHQsbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIik7aWYoci50ZXJtaW5hbEludGVyYWN0aXZlJiYhbilyZXR1cm4gQSgiXHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyXHU2QTIxXHU1RjBGXHU1RjAwXHU1NDJGXHU2NUY2XHVGRjBDXHU4QkY3XHU3NkY0XHU2M0E1XHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU4RjkzXHU1MTY1XHUzMDAyIiwiaW5mbyIpLFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxhPWk/aS52YWx1ZToiIix1PUR0KCksbz1yLnBlbmRpbmdBdHRhY2htZW50cy5sZW5ndGg+MDtpZihhfHxvKXt2YXIgcz1vJiZyLnNlbGVjdGVkSWQ/Qmcoci5zZWxlY3RlZElkKS5jYXRjaChmdW5jdGlvbihsKXtBKCJcdTk2NDRcdTRFRjZcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjU6ICIrKGwmJmwubWVzc2FnZXx8bCksImVycm9yIik7dmFyIGQ9bCBpbnN0YW5jZW9mIEVycm9yP2w6bmV3IEVycm9yKFN0cmluZyhsKSk7dGhyb3cgZC5fX3dhbmRUb2FzdGVkPSEwLGR9KTpQcm9taXNlLnJlc29sdmUoW10pO3JldHVybiBzLnRoZW4oZnVuY3Rpb24obCl7dmFyIGQ9RGcobCksZj1kKyhhfHwobC5sZW5ndGg/Ilx1OEJGN1x1NjdFNVx1NzcwQlx1OTY0NFx1NEVGNlx1MzAwMiI6IiIpKTtsLmxlbmd0aCYmQ2coKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO2lmKGMmJmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdWUodSkpcmV0dXJuIHNwKGYsaSx1LHtpbnRlcnJ1cHQ6dH0pO3ZhciB2PURwKHUsZiksaD0hci53c0Nvbm5lY3RlZDtyZXR1cm4gaD8oU3AodiksaSYmKGkudmFsdWU9IiIsSHQoaSkpLHJ0KCIiKSxQcm9taXNlLnJlc29sdmUoKSk6QnAodSkudGhlbihmdW5jdGlvbihnKXtpZighZylyZXR1cm4gbnVsbDt2YXIgbT1yLmN1cnJlbnRWaWV3O2lmKGcmJmcucHJvdmlkZXI9PT0iY29kZXgiJiZyLnNlbGVjdGVkSWQhPT1nLmlkKXRocm93IG5ldyBFcnJvcigiQ29kZXggc2Vzc2lvbiBjaGFuZ2VkIGJlZm9yZSBpbnB1dCBzZW5kLiIpO3JldHVybiBIdSgpLGtwKHYsImVudGVyX3RleHQiLDMwLG0pLnRoZW4oZnVuY3Rpb24oKXtpJiZpLnZhbHVlPT09YSYmKGkudmFsdWU9IiIsSHQoaSkpLHJ0KCIiKX0pfSkuY2F0Y2goZnVuY3Rpb24oZyl7dGhyb3cgQShCcyhnKSwiZXJyb3IiKSxnJiYoZy5fX3dhbmRUb2FzdGVkPSEwKSxnfSl9KS5jYXRjaChmdW5jdGlvbihsKXt0aHJvdyBsJiZsLl9fd2FuZFRvYXN0ZWR8fEEoQnMobCksImVycm9yIiksbH0pfXJldHVybiBQcm9taXNlLnJlc29sdmUoKX12YXIgYnM9e30sRXM9MzUwO2Z1bmN0aW9uIHNwKGUsdCxuLGkpe2k9aXx8e307dmFyIGE9ISFpLmludGVycnVwdDtpZighci5zZWxlY3RlZElkfHwhZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7aWYoIW4pcmV0dXJuIEEoIlx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHU9RGF0ZS5ub3coKSxvPWJzW24uaWRdfHwwO2lmKHUtbzxFcylyZXR1cm4gY29uc29sZS5sb2coIlt3YW5kXSBwb3N0U3RydWN0dXJlZElucHV0OiBkdXBsaWNhdGUgc3VibWl0ICh3aXRoaW4gIitFcysibXMpIGlnbm9yZWQgZm9yIHNlc3Npb24iLG4uaWQpLFByb21pc2UucmVzb2x2ZSgpO2JzW24uaWRdPXU7dmFyIHM9ISEobi5zdHJ1Y3R1cmVkU3RhdGUmJm4uc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZuLnN0YXR1cz09PSJydW5uaW5nIiksbD1zJiZhLGQ9cyYmIWEsZj1scihBcnJheS5pc0FycmF5KG4ubWVzc2FnZXMpP24ubWVzc2FnZXMuc2xpY2UoKTpbXSksYztpZihkKXt2YXIgdj1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTt2LnB1c2goZSksYz17aWQ6bi5pZCxxdWV1ZWRNZXNzYWdlczp2fSxYKGMpO3ZhciBoPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihFKXtyZXR1cm4gRS5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1XZShoLFplKGgsaC5vdXRwdXQsITEpKSxHbigiXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHUyMDI2IiksemUoITApLHBuKCksQSh2Lmxlbmd0aD4xPyJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdUZGMDhcdTUxNzEgIit2Lmxlbmd0aCsiIFx1Njc2MVx1N0I0OVx1NUY4NVx1RkYwOSI6Ilx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1RkYwQ1x1N0I0OVx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1NUI4Q1x1NjIxMFx1NEYxQVx1ODFFQVx1NTJBOFx1NTNEMVx1OTAwMVx1MzAwMiIsImluZm8iKX1lbHNle3ZhciBnPXtyb2xlOiJ1c2VyIixjb250ZW50Olt7dHlwZToidGV4dCIsdGV4dDplfV19O2YucHVzaChnKTt2YXIgbT1PYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITB9KTtYKHtpZDpuLmlkLHN0YXR1czoicnVubmluZyIsbWVzc2FnZXM6ZixzdHJ1Y3R1cmVkU3RhdGU6bX0pLHIuY3VycmVudE1lc3NhZ2VzPVdlKE9iamVjdC5hc3NpZ24oe30sbix7c3RhdHVzOiJydW5uaW5nIixtZXNzYWdlczpmLHN0cnVjdHVyZWRTdGF0ZTptfSksZiksR24obD8iXHU1REYyXHU0RTJEXHU2NUFEXHVGRjBDXHU2QjYzXHU1NzI4XHU1OTA0XHU3NDA2XHU2NUIwXHU2RDg4XHU2MDZGXHUyMDI2IjoiXHU2MDFEXHU4MDAzXHU0RTJEXHUyMDI2IiksSHUoKSx6ZSghMCksbCYmQSgiXHU1REYyXHU0RTJEXHU2NUFEXHU0RTBBXHU0RTAwXHU2NzYxXHU1NkRFXHU1OTBEXHVGRjBDXHU2QjYzXHU1NzI4XHU1OTA0XHU3NDA2XHU2NUIwXHU2RDg4XHU2MDZGXHUyMDI2IiwiaW5mbyIpfXQmJih0LnZhbHVlPSIiLEh0KHQpKSxydCgiIik7dmFyIHk9ci5xdWV1ZUVwb2NoLHc9dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApO3JldHVybiBmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrbi5pZCsiL21lc3NhZ2VzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSxpbnRlcnJ1cHQ6bHx8dm9pZCAwLGlkZW1wb3RlbmN5S2V5Ond9KX0pLnRoZW4oZnVuY3Rpb24oRSl7cmV0dXJuIEUub2s/RS5qc29uKCk6RS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihCKXt2YXIgRD1uZXcgRXJyb3IoQiYmQi5lcnJvcnx8Ilx1NjVFMFx1NkNENVx1NTNEMVx1OTAwMVx1N0VEM1x1Njc4NFx1NTMxNlx1NkQ4OFx1NjA2Rlx1MzAwMiIpO3Rocm93IEQuZXJyb3JDb2RlPUImJkIuZXJyb3JDb2RlLEQuaHR0cFN0YXR1cz1FLnN0YXR1cyxEfSl9KS50aGVuKGZ1bmN0aW9uKEUpe2lmKEUmJkUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKEUuZXJyb3IpO2lmKEUmJkUuaWQmJihyLnF1ZXVlRXBvY2g+eSYmRS5xdWV1ZWRNZXNzYWdlcyYmZGVsZXRlIEUucXVldWVkTWVzc2FnZXMsWChFKSxFLmlkPT09ci5zZWxlY3RlZElkKSl7dmFyIEI9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEQpe3JldHVybiBELmlkPT09RS5pZH0pfHxFO3IuY3VycmVudE1lc3NhZ2VzPVdlKEIsWmUoQixFLm91dHB1dCwhMSkpLHplKCEwKSxwbigpfX0pLmNhdGNoKGZ1bmN0aW9uKEUpe2lmKEUmJkUuZXJyb3JDb2RlPT09ImR1cGxpY2F0ZV9pZGVtcG90ZW5jeV9rZXkiKXtBKEUubWVzc2FnZXx8Ilx1NjhDMFx1NkQ0Qlx1NTIzMFx1OTFDRFx1NTkwRFx1NTNEMVx1OTAwMVx1RkYwQ1x1NURGMlx1NjJFNlx1NjIyQVx1MzAwMiIsIndhcm5pbmciKSxHbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIik7cmV0dXJufWlmKGQpe3ZhciBCPUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKFgoe2lkOm4uaWQscXVldWVkTWVzc2FnZXM6Qn0pLG4uaWQ9PT1yLnNlbGVjdGVkSWQpe3ZhciBEPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihQKXtyZXR1cm4gUC5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1XZShELFplKEQsRC5vdXRwdXQsITEpKSx6ZSghMCkscG4oKX19ZWxzZXt2YXIgRj1mLnNsaWNlKDAsLTEpO1goe2lkOm4uaWQsc3RhdHVzOm4uc3RhdHVzLG1lc3NhZ2VzOkYsc3RydWN0dXJlZFN0YXRlOk9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMX0pfSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudE1lc3NhZ2VzPVdlKE9iamVjdC5hc3NpZ24oe30sbix7bWVzc2FnZXM6RixzdHJ1Y3R1cmVkU3RhdGU6T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiExfSl9KSxGKSx6ZSghMCkpfXZhciBJPUUmJkUubWVzc2FnZXx8IiIsTD1JPT09IkZhaWxlZCB0byBmZXRjaCJ8fEk9PT0iTmV0d29ya0Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byBmZXRjaCByZXNvdXJjZS4ifHxJPT09IkxvYWQgZmFpbGVkInx8L2Fib3J0ZWR8YWJvcnRlcnJvcnxuZXR3b3JrZXJyb3J8ZmFpbGVkIHRvIGZldGNoL2kudGVzdChJKTtMfHxBKEUmJkUubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTNEMVx1OTAwMVx1N0VEM1x1Njc4NFx1NTMxNlx1NkQ4OFx1NjA2Rlx1MzAwMiIsImVycm9yIiksR24oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpfSl9ZnVuY3Rpb24gR24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWhpbnQiKTt0JiYodC50ZXh0Q29udGVudD1lKX1mdW5jdGlvbiBwbigpe250KCl9dmFyIGxwPTEwLEZzPTI2O2Z1bmN0aW9uIGRwKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIilyZXR1cm4iIjt2YXIgdD1lLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO3JldHVybiB0Lmxlbmd0aDw9RnM/dDp0LnNsaWNlKDAsRnMpKyJcdTIwMjYifWZ1bmN0aW9uIGNwKCl7cmV0dXJuISFyLnF1ZXVlQmFyRXhwYW5kZWR9ZnVuY3Rpb24gZnAoZSl7aWYoISFyLnF1ZXVlQmFyRXhwYW5kZWQhPSEhZSl7ci5xdWV1ZUJhckV4cGFuZGVkPSEhZTt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucXVldWUtYmFyIik7dCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFlKX19ZnVuY3Rpb24gcHAoZSx0LG4pe3ZhciBpPWUubGVuZ3RoLGE9InF1ZXVlLWJhciI7biYmKGErPSIgcXVldWUtYmFyLWNhcGFjaXR5IiksdCYmKGErPSIgcXVldWUtYmFyLWluZmxpZ2h0Iik7Zm9yKHZhciB1PXQ/Ilx1NEUyRFx1NjVBRFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1RkYwQ1x1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MSI6Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MSIsbz0iIixzPTA7czxpO3MrKyl7dmFyIGw9ZVtzXT09bnVsbD8iIjpTdHJpbmcoZVtzXSksZD1kcChsKSxmPWwrIlx1RkYwOFx1NjMwOVx1NEY0Rlx1NTNFRlx1NjJENlx1NTJBOFx1OEMwM1x1NUU4Rlx1RkYwOSI7bys9JzxsaSBjbGFzcz0icXVldWUtYmFyLWl0ZW0iIGRhdGEtaW5kZXg9IicrcysnIiBkYXRhLWFjdGlvbj0iZHJhZyIgdGl0bGU9IicrcChmKSsnIj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWl0ZW0taW5kZXgiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nKyhzKzEpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1pdGVtLXRleHQiPicrcChkKSsnPC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tcHJvbW90ZSIgZGF0YS1hY3Rpb249InByb21vdGUtaXRlbSIgdGl0bGU9IicrcCh1KSsnIiBhcmlhLWxhYmVsPSJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTdCMkMgJysocysxKSsnIFx1Njc2MSI+PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTEzIDIgTDQgMTQgTDExIDE0IEwxMCAyMiBMMjAgOSBMMTMgOSBaIi8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1kZWxldGUiIGRhdGEtYWN0aW9uPSJkZWxldGUiIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1N0IyQyAnKyhzKzEpKycgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGIiB0aXRsZT0iXHU1MjIwXHU5NjY0Ij48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iMTgiIHkyPSI2Ii8+PC9zdmc+PC9idXR0b24+PC9saT4nfXZhciBjPSIiO3JldHVybiBpPj0yJiYoYz0nPGRpdiBjbGFzcz0icXVldWUtYmFyLWhlYWQiPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaGVhZC1jb3VudCI+JytpKycgXHU2NzYxXHU2MzkyXHU5NjFGPC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWNsZWFyLWFsbCIgZGF0YS1hY3Rpb249ImNsZWFyLWFsbCIgdGl0bGU9Ilx1NkUwNVx1N0E3QVx1NTE2OFx1OTBFOFx1NjM5Mlx1OTYxRiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4ICcraSsnIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2RiI+XHU2RTA1XHU3QTdBPC9idXR0b24+PC9kaXY+JyksJzxkaXYgY2xhc3M9IicrYSsnIiBkYXRhLXF1ZXVlLWJhcj0iMSIgdGl0bGU9Ilx1NjM5Mlx1OTYxRiAnK2krJyBcdTY3NjFcdUZGMDhcdTYzMDlcdTRGNEZcdTZDMTRcdTZDRTFcdTUzRUZcdThDMDNcdTVFOEZcdUZGMDkiPicrYysnPG9sIGNsYXNzPSJxdWV1ZS1iYXItbGlzdCIgZGF0YS1xdWV1ZS1saXN0PSIxIj4nK28rIjwvb2w+PC9kaXY+In1mdW5jdGlvbiBudCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWV1ZS1iYXItaG9zdCIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIixpPW4/aWEodCk6W107aWYoaT1BcnJheS5pc0FycmF5KGkpP2k6W10sIW58fGkubGVuZ3RoPT09MCl7ZS5oaWRkZW49ITAsZS5pbm5lckhUTUw9IiIsci5xdWV1ZUJhckV4cGFuZGVkPSExO3JldHVybn1pZighci5xdWV1ZUJhckRyYWcpe2UuaGlkZGVuPSExO3ZhciBhPSEhKHQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmdC5zdGF0dXM9PT0icnVubmluZyIpLHU9aS5sZW5ndGg+PWxwO2UuaW5uZXJIVE1MPXBwKGksYSx1KX19fWZ1bmN0aW9uIGJpKGUsdCl7WCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczp0fSk7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZS5pZH0pfHxlO3IuY3VycmVudE1lc3NhZ2VzPVdlKG4sWmUobixuLm91dHB1dCwhMSkpLHplKCEwKSxudCgpfWZ1bmN0aW9uIHZwKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodC5xdWV1ZWRNZXNzYWdlcyk/dC5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoZTwwfHxlPj1uLmxlbmd0aCkpe3ZhciBpPW4uc2xpY2UoKSxhPW4uc2xpY2UoMCxlKS5jb25jYXQobi5zbGljZShlKzEpKTtYKHtpZDp0LmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KTt2YXIgdT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT10LmlkfSl8fHQ7ci5jdXJyZW50TWVzc2FnZXM9V2UodSxaZSh1LHUub3V0cHV0LCExKSksemUoITApLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK3QuaWQrIi9xdWV1ZWQvIitlLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obyl7aWYoIW8ub2spcmV0dXJuIG8uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKHMpe3Rocm93IG5ldyBFcnJvcihzJiZzLmVycm9yfHwiXHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1Iil9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe2JpKHQsaSksQShvJiZvLm1lc3NhZ2V8fCJcdTUyMjBcdTk2NjRcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX1mdW5jdGlvbiBtcCgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcyk/ZS5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKHQubGVuZ3RoIT09MCl7ci5xdWV1ZUJhckV4cGFuZGVkPSExLFgoe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6W119KTt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lLmlkfSl8fGU7ci5jdXJyZW50TWVzc2FnZXM9V2UobixaZShuLG4ub3V0cHV0LCExKSksemUoITApLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9xdWV1ZWQiLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoIWkub2spcmV0dXJuIGkuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcihhJiZhLmVycm9yfHwiXHU2RTA1XHU3QTdBXHU1OTMxXHU4RDI1Iil9KTtBKCJcdTVERjJcdTZFMDVcdTdBN0EgIit0Lmxlbmd0aCsiIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1MzAwMiIsImluZm8iKX0pLmNhdGNoKGZ1bmN0aW9uKGkpe2JpKGUsdCksQShpJiZpLm1lc3NhZ2V8fCJcdTZFMDVcdTdBN0FcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX1mdW5jdGlvbiBncChlKXtpZighci5xdWV1ZUJhclByb21vdGluZyl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodCl7dmFyIG49QXJyYXkuaXNBcnJheSh0LnF1ZXVlZE1lc3NhZ2VzKT90LnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShlPDB8fGU+PW4ubGVuZ3RoKSl7dmFyIGk9bltlXSxhPW4uc2xpY2UoMCxlKS5jb25jYXQobi5zbGljZShlKzEpKSx1PW4uc2xpY2UoKSxvPSEhKHQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmdC5zdGF0dXM9PT0icnVubmluZyIpO3IucXVldWVCYXJQcm9tb3Rpbmc9ITAsYS5sZW5ndGg9PT0wJiYoci5xdWV1ZUJhckV4cGFuZGVkPSExKSxYKHtpZDp0LmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KTt2YXIgcz10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCk7QShvPyJcdTVERjJcdThCRjdcdTZDNDJcdTRFMkRcdTY1QURcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdUZGMENcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjFcdTMwMDIiOiJcdTVERjJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjFcdTZEODhcdTYwNkZcdTMwMDIiLCJpbmZvIiksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK3QuaWQrIi9xdWV1ZWQvIitlKyIvcHJvbW90ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2V4cGVjdGVkVGV4dDppLGlkZW1wb3RlbmN5S2V5OnN9KX0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwub2s/bC5qc29uKCk6bC5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oZCl7dGhyb3cgbmV3IEVycm9yKGQmJmQuZXJyb3J8fCJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjUiKX0pfSkudGhlbihmdW5jdGlvbihsKXtpZihsJiZsLmlkJiYoWChsKSxsLmlkPT09ci5zZWxlY3RlZElkKSl7dmFyIGQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGYpe3JldHVybiBmLmlkPT09bC5pZH0pfHxsO3IuY3VycmVudE1lc3NhZ2VzPVdlKGQsWmUoZCxsLm91dHB1dCwhMSkpLHplKCEwKSxudCgpfXIucXVldWVCYXJQcm9tb3Rpbmc9ITF9KS5jYXRjaChmdW5jdGlvbihsKXtyLnF1ZXVlQmFyUHJvbW90aW5nPSExLGJpKHQsdSksQShsJiZsLm1lc3NhZ2V8fCJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX19ZnVuY3Rpb24gaHAoZSx0KXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihuKXt2YXIgaT1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGkubGVuZ3RoPD0xKSYmdCl7dmFyIGE9dC5wYXJlbnRFbGVtZW50O2lmKGEpe3ZhciB1PU51bWJlcih0LmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSxvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEuY2hpbGRyZW4pLHM9by5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9KSxsPTM7cy5sZW5ndGg+PTImJihsPU1hdGgubWF4KDAsc1sxXS50b3Atc1swXS50b3Atc1swXS5oZWlnaHQpKSxlLnByZXZlbnREZWZhdWx0KCk7dHJ5e3Quc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe31pZihuYXZpZ2F0b3ImJm5hdmlnYXRvci52aWJyYXRlKXRyeXtuYXZpZ2F0b3IudmlicmF0ZSg4KX1jYXRjaHt9ci5xdWV1ZUJhckRyYWc9e3BvaW50ZXJJZDplLnBvaW50ZXJJZCxoYW5kbGVFbDp0LGl0ZW1FbDp0LGxpc3RFbDphLHNpYmxpbmdzOm8scmVjdHM6cyxvcmlnSW5kZXg6dSx0YXJnZXRJbmRleDp1LHN0YXJ0WTplLmNsaWVudFksZ2FwOmwscXVldWVTbmFwc2hvdDppfSx0LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksby5mb3JFYWNoKGZ1bmN0aW9uKGMpe2MhPT10JiZjLmNsYXNzTGlzdC5hZGQoInF1ZXVlLWJhci1pdGVtLXNsaWRpbmciKX0pO3ZhciBkPWZ1bmN0aW9uKGMpe2JwKGMpfSxmPWZ1bmN0aW9uKGMpe0VwKGMpfTtyLnF1ZXVlQmFyRHJhZy5tb3ZlSGFuZGxlcj1kLHIucXVldWVCYXJEcmFnLnVwSGFuZGxlcj1mLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGQpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixmKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLGYpfX19fWZ1bmN0aW9uIHlwKGUsdCxuLGkpe2Zvcih2YXIgYT1uLmxlbmd0aCx1PVtdLG89MDtvPGE7bysrKXUucHVzaChvKTt1LnNwbGljZShlLDEpLHUuc3BsaWNlKHQsMCxlKTtmb3IodmFyIHM9blswXS50b3AsbD1uWzBdLnRvcCxkPTE7ZDxhO2QrKyluW2RdLnRvcDxsJiYobD1uW2RdLnRvcCk7Zm9yKHZhciBmPXt9LGM9bCx2PTA7djxhO3YrKyl7dmFyIGg9dVt2XTtmW2hdPWMsYys9bltoXS5oZWlnaHQraX1yZXR1cm4gZn1mdW5jdGlvbiBicChlKXt2YXIgdD1yLnF1ZXVlQmFyRHJhZztpZighKCF0fHxlLnBvaW50ZXJJZCE9PXQucG9pbnRlcklkKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPWUuY2xpZW50WS10LnN0YXJ0WTt0Lml0ZW1FbC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoIituKyJweCkiO2Zvcih2YXIgaT10LnJlY3RzW3Qub3JpZ0luZGV4XS50b3ArdC5yZWN0c1t0Lm9yaWdJbmRleF0uaGVpZ2h0LzIrbixhPXQub3JpZ0luZGV4LHU9MDt1PHQucmVjdHMubGVuZ3RoO3UrKylpZih1IT09dC5vcmlnSW5kZXgpe3ZhciBvPXQucmVjdHNbdV0udG9wK3QucmVjdHNbdV0uaGVpZ2h0LzI7dTx0Lm9yaWdJbmRleCYmaTxvP2E9TWF0aC5taW4oYSx1KTp1PnQub3JpZ0luZGV4JiZpPm8mJihhPU1hdGgubWF4KGEsdSkpfWlmKGEhPT10LnRhcmdldEluZGV4KXt0LnRhcmdldEluZGV4PWE7dmFyIHM9eXAodC5vcmlnSW5kZXgsYSx0LnJlY3RzLHQuZ2FwKTt0LnNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24obCxkKXtpZihkIT09dC5vcmlnSW5kZXgpe3ZhciBmPXNbZF0tdC5yZWN0c1tkXS50b3A7bC5zdHlsZS50cmFuc2Zvcm09Zj8idHJhbnNsYXRlWSgiK2YrInB4KSI6IiJ9fSl9fX1mdW5jdGlvbiBFcChlKXt2YXIgdD1yLnF1ZXVlQmFyRHJhZztpZighKCF0fHxlJiZlLnBvaW50ZXJJZCE9PXQucG9pbnRlcklkKSl7dHJ5e3QuaGFuZGxlRWwucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHQucG9pbnRlcklkKX1jYXRjaHt9dC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdC5tb3ZlSGFuZGxlciksdC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHQudXBIYW5kbGVyKSx0LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHQudXBIYW5kbGVyKTt2YXIgbj10Lm9yaWdJbmRleCxpPXQudGFyZ2V0SW5kZXgsYT10LnF1ZXVlU25hcHNob3Q7aWYodC5zaWJsaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGQpe2Quc3R5bGUudHJhbnNmb3JtPSIiLGQuY2xhc3NMaXN0LnJlbW92ZSgicXVldWUtYmFyLWl0ZW0tc2xpZGluZyIpfSksdC5pdGVtRWwuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxyLnF1ZXVlQmFyRHJhZz1udWxsLG49PT1pKXtudCgpO3JldHVybn1mb3IodmFyIHU9W10sbz0wO288YS5sZW5ndGg7bysrKXUucHVzaChvKTt1LnNwbGljZShuLDEpLHUuc3BsaWNlKGksMCxuKTt2YXIgcz11Lm1hcChmdW5jdGlvbihkKXtyZXR1cm4gYVtkXX0pLGw9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoIWwpe250KCk7cmV0dXJufVgoe2lkOmwuaWQscXVldWVkTWVzc2FnZXM6c30pLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2wuaWQrIi9xdWV1ZWQiLHttZXRob2Q6IlBBVENIIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7b3JkZXI6dX0pfSkudGhlbihmdW5jdGlvbihkKXtpZighZC5vaylyZXR1cm4gZC5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oZil7dGhyb3cgbmV3IEVycm9yKGYmJmYuZXJyb3J8fCJcdTYzOTJcdTVFOEZcdTU5MzFcdThEMjUiKX0pfSkuY2F0Y2goZnVuY3Rpb24oZCl7YmkobCxhKSxBKGQmJmQubWVzc2FnZXx8Ilx1OEMwM1x1NjU3NFx1NjM5Mlx1OTYxRlx1OTg3QVx1NUU4Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19ZnVuY3Rpb24gRnAoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVldWUtYmFyLWhvc3QiKTshZXx8ZS5fX3F1ZXVlRGVsZWdhdGVkfHwoZS5fX3F1ZXVlRGVsZWdhdGVkPSEwLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0LGk9biYmbi5jbG9zZXN0P24uY2xvc2VzdCgiW2RhdGEtYWN0aW9uXSIpOm51bGw7aWYoaSYmZS5jb250YWlucyhpKSl7dmFyIGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7aWYoYT09PSJkcmFnIilyZXR1cm47aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksYT09PSJwcm9tb3RlLWl0ZW0iKXt2YXIgdT1pLmNsb3Nlc3QoIi5xdWV1ZS1iYXItaXRlbSIpO3UmJmdwKE51bWJlcih1LmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSl9ZWxzZSBpZihhPT09ImRlbGV0ZSIpe3ZhciBvPWkuY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik7byYmdnAoTnVtYmVyKG8uZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpKX1lbHNlIGE9PT0iY2xlYXItYWxsIiYmbXAoKTtyZXR1cm59fSksZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsZnVuY3Rpb24odCl7aWYoISh0LmJ1dHRvbiE9PXZvaWQgMCYmdC5idXR0b24hPT0wKSl7dmFyIG49dC50YXJnZXQ7aWYoIShuJiZuLmNsb3Nlc3QmJm4uY2xvc2VzdCgnW2RhdGEtYWN0aW9uPSJkZWxldGUiXSwgW2RhdGEtYWN0aW9uPSJwcm9tb3RlLWl0ZW0iXSwgW2RhdGEtYWN0aW9uPSJjbGVhci1hbGwiXSwgW2RhdGEtYWN0aW9uPSJleHBhbmQiXScpKSl7dmFyIGk9biYmbi5jbG9zZXN0P24uY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik6bnVsbDtpJiZocCh0LGkpfX19KSxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJmNwKCkmJih0LnN0b3BQcm9wYWdhdGlvbigpLGZwKCExKSl9KSl9ZnVuY3Rpb24gd3MoZSl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUuY29udGVudCkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsbj0wO248ZS5jb250ZW50Lmxlbmd0aDtuKyspe3ZhciBpPWUuY29udGVudFtuXTtpZihpKXtpZih0eXBlb2YgaS50ZXh0PT0ic3RyaW5nIiYmKHQrPWkudGV4dC5sZW5ndGgpLHR5cGVvZiBpLnRoaW5raW5nPT0ic3RyaW5nIiYmKHQrPWkudGhpbmtpbmcubGVuZ3RoKSx0eXBlb2YgaS5jb250ZW50PT0ic3RyaW5nIil0Kz1pLmNvbnRlbnQubGVuZ3RoO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpKWZvcih2YXIgYT0wO2E8aS5jb250ZW50Lmxlbmd0aDthKyspe3ZhciB1PWkuY29udGVudFthXTt1JiZ0eXBlb2YgdS50ZXh0PT0ic3RyaW5nIiYmKHQrPXUudGV4dC5sZW5ndGgpfWlmKGkuaW5wdXQpdHJ5e3QrPUpTT04uc3RyaW5naWZ5KGkuaW5wdXQpLmxlbmd0aH1jYXRjaHt9fX1yZXR1cm4gdH1mdW5jdGlvbiB3cChlLHQpe2lmKCFlKXJldHVybiB0O2lmKCF0KXJldHVybiBlO3ZhciBuPXdzKGUpLGk9d3ModCk7cmV0dXJuIGk+PW4/dDpPYmplY3QuYXNzaWduKHt9LGUse3VzYWdlOnQudXNhZ2V8fGUudXNhZ2V9KX1mdW5jdGlvbiBXZShlLHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodCk/bHIodCk6W10saT1BcnJheS5pc0FycmF5KG4pP24uc2xpY2UoKTpbXTtpZighZXx8ZS5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gaTtpZihlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpe3ZhciBhPWlbaS5sZW5ndGgtMV07KCFhfHxhLnJvbGUhPT0iYXNzaXN0YW50IikmJmkucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50Olt7dHlwZToidGV4dCIsdGV4dDoiIixfX3Byb2Nlc3Npbmc6ITB9XX0pfXJldHVybiBpfWZ1bmN0aW9uIENzKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7JHIoZSkscG4oKX1mdW5jdGlvbiBCcyhlKXt2YXIgdD1EdCgpLG49dCYmdC5wcm92aWRlcj09PSJjb2RleCI7cmV0dXJuIGUmJihlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9SVU5OSU5HInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT19QVFkiKT9uPyJDb2RleCBcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU1NzI4XHU0RjYwXHU0RTBCXHU2QjIxXHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHU2NUY2XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHUzMDAyIjoiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENsYXVkZSBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTU3MjhcdTRGNjBcdTRFMEJcdTZCMjFcdTUzRDFcdTkwMDFcdTZEODhcdTYwNkZcdTY1RjZcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTMwMDIiOmUmJmUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX0ZPVU5EIj8iXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIjplJiZlLm1lc3NhZ2V8fChuPyJDb2RleCBcdTRGMUFcdThCRERcdTY2ODJcdTRFMERcdTUzRUZcdTc1MjhcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU4MUVBXHU1MkE4XHU1QzFEXHU4QkQ1XHU2MDYyXHU1OTBEXHUzMDAyIjoiXHU0RjFBXHU4QkREXHU2NjgyXHU0RTBEXHU1M0VGXHU3NTI4XHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENsYXVkZSBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTgxRUFcdTUyQThcdTVDMURcdThCRDVcdTYwNjJcdTU5MERcdTMwMDIiKX1mdW5jdGlvbiBEcyhlKXt2YXIgdD1uZXcgRXJyb3IoZSYmZS5lcnJvcnx8Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1MzAwMiIpO3JldHVybiBlJiZ0eXBlb2YgZT09Im9iamVjdCImJih0LmVycm9yQ29kZT1lLmVycm9yQ29kZXx8bnVsbCx0LnNlc3Npb25JZD1lLnNlc3Npb25JZHx8ci5zZWxlY3RlZElkfHxudWxsLHQuc2Vzc2lvblN0YXR1cz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwic2Vzc2lvblN0YXR1cyIpP2Uuc2Vzc2lvblN0YXR1czpudWxsKSx0fWZ1bmN0aW9uIGtzKGUpe3JldHVybiBlJiYoZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfUlVOTklORyJ8fGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9fUFRZInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfRk9VTkQiKX1mdW5jdGlvbiBDcChlLHQpe2UmJlgoe2lkOmUsc3RhdHVzOnR8fCJleGl0ZWQifSl9ZnVuY3Rpb24gSmcoZSl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpfHxlLm1lc3NhZ2VzLmxlbmd0aDwyKXJldHVybiExO3ZhciB0PWUubWVzc2FnZXMuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5yb2xlPT09InVzZXIiJiZBcnJheS5pc0FycmF5KGkuY29udGVudCkmJmkuY29udGVudC5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnR5cGU9PT0idGV4dCImJnR5cGVvZiBhLnRleHQ9PSJzdHJpbmciJiZhLnRleHQudHJpbSgpLmxlbmd0aD4wfSl9KSxuPWUubWVzc2FnZXMuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkoaS5jb250ZW50KSYmaS5jb250ZW50LnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIGEudGV4dD09InN0cmluZyImJmEudGV4dC50cmltKCkubGVuZ3RoPjB9KX0pO3JldHVybiB0JiZufWZ1bmN0aW9uIFBhKGUpe3JldHVybiEhKGUmJiF1ZShlKSYmKGUucHJvdmlkZXI9PT0iY2xhdWRlInx8ZS5wcm92aWRlcj09PSJjb2RleCIpJiZlLnN0YXR1cyE9PSJydW5uaW5nIiYmZS5jbGF1ZGVTZXNzaW9uSWQpfWZ1bmN0aW9uIEJwKGUsdCl7aWYoIWUpcmV0dXJuIEEoIlx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKG51bGwpO2lmKGUuc3RhdHVzPT09InJ1bm5pbmciKXJldHVybiBQcm9taXNlLnJlc29sdmUoZSk7aWYoIVBhKGUpKXt2YXIgbj1lJiZlLnByb3ZpZGVyPT09ImNvZGV4Ij8iQ29kZXgiOiJDbGF1ZGUiO3JldHVybiBBKCJcdThCRTVcdTRGMUFcdThCRERcdTZDQTFcdTY3MDlcdTUzRUZcdTYwNjJcdTU5MERcdTc2ODQgIituKyIgXHU1Mzg2XHU1M0YyXHU0RTBBXHU0RTBCXHU2NTg3XHVGRjBDXHU4QkY3XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUobnVsbCl9cmV0dXJuIFBzKGUuaWQsdCkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT8oWChpKSxmZSgpLE9uKGkuaWQpLGJuKGkuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gX3QoITApLGl9KSk6bnVsbH0pfWZ1bmN0aW9uIERwKGUsdCl7cmV0dXJuW3QsIlxyIl19ZnVuY3Rpb24ga3AoZSx0LG4saSl7dmFyIGE9QXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4hIW99KTpbXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB1PXR5cGVvZiBuPT0ibnVtYmVyIj9uOjA7cmV0dXJuIGEucmVkdWNlKGZ1bmN0aW9uKG8scyxsKXtyZXR1cm4gby50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGw+MCYmdT4wP25ldyBQcm9taXNlKGZ1bmN0aW9uKGQpe3NldFRpbWVvdXQoZCx1KX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcHQocyxsPT09YS5sZW5ndGgtMT90OnZvaWQgMCxpKX0pOnB0KHMsbD09PWEubGVuZ3RoLTE/dDp2b2lkIDAsaSl9KX0sUHJvbWlzZS5yZXNvbHZlKCkpfXZhciBBcD01ZTMseHA9MTAwO2Z1bmN0aW9uIEhhKGUpe2UmJihyLnBlbmRpbmdNZXNzYWdlcy5sZW5ndGg+PXhwJiZyLnBlbmRpbmdNZXNzYWdlcy5zaGlmdCgpLHIucGVuZGluZ01lc3NhZ2VzLnB1c2goe2lucHV0OmUsYXQ6RGF0ZS5ub3coKX0pKX1mdW5jdGlvbiBTcChlKXt2YXIgdD1BcnJheS5pc0FycmF5KGUpP2UuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiEhbn0pOltdO3QuZm9yRWFjaChmdW5jdGlvbihuKXtIYShuKX0pfWZ1bmN0aW9uIElwKGUpe2lmKCEodHlwZW9mIGUhPSJzdHJpbmcifHwhZSkpe3ZhciB0PWUucmVwbGFjZSgvXHgxYlxbMjAwfi9nLCIiKS5yZXBsYWNlKC9ceDFiXFsyMDF+L2csIiIpOy8oPzpefFxuKVxzKlwvY2xlYXJccyooPzpccnxcbnwkKS8udGVzdCh0KSYmdHlwZW9mIHI8InUiJiZyJiYoci50ZXJtaW5hbE91dHB1dE1hcmtlcj0oci50ZXJtaW5hbE91dHB1dCYmci50ZXJtaW5hbE91dHB1dC5sZW5ndGgpfDApfX1mdW5jdGlvbiBwdChlLHQsbil7cmV0dXJuIWV8fCFyLnNlbGVjdGVkSWQ/UHJvbWlzZS5yZXNvbHZlKCk6KElwKGUpLHIubWVzc2FnZVF1ZXVlLnB1c2goZSksci5pbnB1dFF1ZXVlPXIuaW5wdXRRdWV1ZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFRwKGUsdCxuKS5maW5hbGx5KGZ1bmN0aW9uKCl7dmFyIGk9ci5tZXNzYWdlUXVldWUuaW5kZXhPZihlKTtpPi0xJiZyLm1lc3NhZ2VRdWV1ZS5zcGxpY2UoaSwxKX0pfSksci5pbnB1dFF1ZXVlKX1mdW5jdGlvbiBUcChlLHQsbil7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9ci5zZWxlY3RlZElkLGE9bnx8ci5jdXJyZW50VmlldztyZXR1cm4gdHAoKT9yLndzQ29ubmVjdGVkP2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIraSsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSx2aWV3OmEsc2hvcnRjdXRLZXk6dHx8dm9pZCAwfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lm9rP3UuanNvbigpOnUuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24obyl7dmFyIHM9RHMobyk7dGhyb3cgcy5odHRwU3RhdHVzPXUuc3RhdHVzLGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBwb3N0SW5wdXQ6IHJlcXVlc3QgZmFpbGVkIix7c3RhdHVzOnUuc3RhdHVzLGVycm9yQ29kZTpzLmVycm9yQ29kZSxtZXNzYWdlOnMubWVzc2FnZSxzZXNzaW9uSWQ6aX0pLGtzKHMpJiZDcChpLHMuc2Vzc2lvblN0YXR1c3x8ImV4aXRlZCIpLHN9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUmJnUuaWQmJihYKHUpLHUuaWQ9PT1yLnNlbGVjdGVkSWQmJih1Lm1lc3NhZ2VzJiZ1Lm1lc3NhZ2VzLmxlbmd0aD4wJiYoci5jdXJyZW50TWVzc2FnZXM9dS5tZXNzYWdlcyksemUoITApKSksdX0pOihIYShlKSxjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RJbnB1dDogV2ViU29ja2V0IGRpc2Nvbm5lY3RlZCwgcXVldWVkIG1lc3NhZ2UiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkLGlucHV0TGVuZ3RoOmUubGVuZ3RofSksUHJvbWlzZS5yZXNvbHZlKCkpOnIud3NDb25uZWN0ZWQ/KGNvbnNvbGUud2FybigiW3dhbmRdIHBvc3RJbnB1dDogc2Vzc2lvbiBub3QgcnVubmluZywgc2tpcHBpbmcgc2VuZCIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWR9KSxBKCJcdTRGMUFcdThCRERcdTY3MkFcdThGRDBcdTg4NENcdUZGMENcdTZCNjNcdTU3MjhcdTdCNDlcdTVGODVcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDIiLCJpbmZvIiksUHJvbWlzZS5yZXNvbHZlKCkpOihIYShlKSxjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RJbnB1dDogc2Vzc2lvbiBub3QgcnVubmluZywgcXVldWVkIGZvciByZWNvbm5lY3QiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkLGlucHV0TGVuZ3RoOmUubGVuZ3RofSksUHJvbWlzZS5yZXNvbHZlKCkpfWZ1bmN0aW9uIFlnKGUpe3JldHVybiBwdChlKX1mdW5jdGlvbiBEdCgpe3JldHVybiByLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT1yLnNlbGVjdGVkSWR9KXx8bnVsbH1mdW5jdGlvbiBHZyhlKXtyZXR1cm4gZSYmZS5wcm92aWRlcj09PSJjb2RleCI/YApgOiJcciJ9ZnVuY3Rpb24gX2EoKXtyZXR1cm4hIXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCJ9ZnVuY3Rpb24gTHAoZSl7cmV0dXJuISghci50ZXJtaW5hbHx8IWV8fGUhPT1yLnNlbGVjdGVkSWR8fHIudGVybWluYWxTZXNzaW9uSWQmJnIudGVybWluYWxTZXNzaW9uSWQhPT1lKX1mdW5jdGlvbiBBcyhlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlfHwhX2EoKXx8ZS5kZWZhdWx0UHJldmVudGVkfHxlLmlzQ29tcG9zaW5nKXJldHVybiExO3ZhciB0PWUudGFyZ2V0O3JldHVybiB0PyEoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpJiZ0LmNsb3Nlc3QmJnQuY2xvc2VzdCgiI2lucHV0LWJveCIpfHx0LmNsb3Nlc3QmJnQuY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQiKXx8TnAodCkpOiEwfXZhciBNcD17RXNjOiJlc2NhcGUiLEFycm93VXA6InVwIixBcnJvd0Rvd246ImRvd24iLEFycm93TGVmdDoibGVmdCIsQXJyb3dSaWdodDoicmlnaHQiLEVudGVyOiJlbnRlciIsVGFiOiJ0YWIiLEJhY2tzcGFjZToiYmFja3NwYWNlIixIb21lOiJob21lIixFbmQ6ImVuZCIsUGFnZVVwOiJwYWdldXAiLFBhZ2VEb3duOiJwYWdlZG93biIsRGVsZXRlOiJkZWxldGUiLEluc2VydDoiaW5zZXJ0IiwiICI6InNwYWNlIn0scXA9e3NwYWNlOiIgIix0YWI6IgkiLHNoaWZ0X3RhYjoiXHgxQltaIixiYWNrc3BhY2U6Ilx4N0YiLGhvbWU6Ilx4MUJbSCIsZW5kOiJceDFCW0YiLHBhZ2V1cDoiXHgxQls1fiIscGFnZWRvd246Ilx4MUJbNn4iLGRlbGV0ZToiXHgxQlszfiIsaW5zZXJ0OiJceDFCWzJ+In0seHM9eyIgIjowLCJbIjoyNywiXFwiOjI4LCJdIjoyOSwiXiI6MzAsXzozMX0sT3A9NDAwLFBwPTEwLEhwPTgsRWk9NTQsdm49OCxOYT1be2tleToiZW50ZXIiLGxhYmVsOiJFbnRlciJ9LHtrZXk6ImN0cmxfYyIsbGFiZWw6IkN0cmwrQyJ9LHtrZXk6ImVzY2FwZSIsbGFiZWw6IkVzYyJ9LHtrZXk6InNoaWZ0X3RhYiIsbGFiZWw6IlNoaWZ0K1RhYiJ9XSxfcD1uZXcgU2V0KFsibWluaS1rZXlib2FyZC1mYWIiLCJtaW5pLWtleWJvYXJkLXRvZ2dsZSIsInRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZSJdKTtmdW5jdGlvbiBOcChlKXtyZXR1cm4hIShlJiZfcC5oYXMoZS5pZCkpfXZhciBqcD1uZXcgU2V0KFsiY3RybCIsImFsdCIsInNoaWZ0Il0pO2Z1bmN0aW9uIFNzKGUpe3JldHVybiBqcC5oYXMoZSl9ZnVuY3Rpb24gUnAoZSl7cmV0dXJuIHFwW2VdfHwiIn1mdW5jdGlvbiBXcChlKXt2YXIgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ+PSJhIiYmdDw9InoiP1N0cmluZy5mcm9tQ2hhckNvZGUodC5jaGFyQ29kZUF0KDApLTk2KTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeHMsdCk/U3RyaW5nLmZyb21DaGFyQ29kZSh4c1t0XSk6IiJ9ZnVuY3Rpb24genAoZSl7cmV0dXJuIE1wW2Uua2V5XXx8ZS5rZXl9ZnVuY3Rpb24gVnAoZSx0KXtyZXR1cm57Y3RybDplLmN0cmxLZXksYWx0OmUuYWx0S2V5LHNoaWZ0OmUuc2hpZnRLZXkmJih0Lmxlbmd0aD09PTF8fHQ9PT0idGFiIiksbWV0YTplLm1ldGFLZXl9fWZ1bmN0aW9uIElzKGUsdCl7ZSYmcHQoZSx0KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIFVwKCl7enMoKX1mdW5jdGlvbiBqYShlKXtyLmtleWJvYXJkUG9wdXBPcGVuPSExLGUhPT0hMSYmd2koKSxZcCgpfWZ1bmN0aW9uIEtwKCl7X2EoKSYmcW4oIXIudGVybWluYWxJbnRlcmFjdGl2ZSl9ZnVuY3Rpb24gcW4oZSl7dmFyIHQ9ISFlJiZfYSgpO3IudGVybWluYWxJbnRlcmFjdGl2ZSE9PXQmJihyLnRlcm1pbmFsSW50ZXJhY3RpdmU9dCx0PyhHcCgpLGphKCExKSxVcCgpLEEoIlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mlx1NkEyMVx1NUYwRlx1NURGMlx1NUYwMFx1NTQyRiIsImluZm8iKSk6KFFwKCksd2koKSkseHIoKSl9ZnVuY3Rpb24gUmEoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KSx0PSFlfHxlLnN0YXR1cyE9PSJydW5uaW5nInx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCI7aWYodCYmci50ZXJtaW5hbEludGVyYWN0aXZlKXtxbighMSk7cmV0dXJufSghZXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpJiZyLmtleWJvYXJkUG9wdXBPcGVuJiYoci5rZXlib2FyZFBvcHVwT3Blbj0hMSkseHIoKX1mdW5jdGlvbiB4cigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih5KXtyZXR1cm4geS5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9dWUoZSksbj1lJiZlLnByb3ZpZGVyPT09ImNvZGV4IixpPXQ/ISEoZSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTohIWUmJmUuc3RhdHVzPT09InJ1bm5pbmciLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLHU9WyJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIl07dS5mb3JFYWNoKGZ1bmN0aW9uKHkpe3ZhciB3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkpO2lmKHcpe3cuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLHcuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtb24iLHIudGVybWluYWxJbnRlcmFjdGl2ZSksdy5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLHR8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHwhZSksdy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsci50ZXJtaW5hbEludGVyYWN0aXZlPyJ0cnVlIjoiZmFsc2UiKTt2YXIgRT13LnF1ZXJ5U2VsZWN0b3IoIi5wbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRlIik7RSYmKEUudGV4dENvbnRlbnQ9ci50ZXJtaW5hbEludGVyYWN0aXZlPyJcdTVGMDAiOiJcdTUxNzMiKX19KTt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtaGludCIpO28mJihvLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsdD8hMDpyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiksIXQmJmUmJihvLnRleHRDb250ZW50PW4/IkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjBDdGVybWluYWwgXHU0RTNBXHU1MzlGXHU1OUNCXHU4RjkzXHU1MUZBIjoiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIikpO3ZhciBzPSF0JiYhaSYmUGEoZSk7YSYmKGEucGxhY2Vob2xkZXI9dmwoZSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLGEuZGlzYWJsZWQ9IXQmJiEhZSYmIWkmJiFzLGEuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIixhLmRpc2FibGVkPyJ0cnVlIjoiZmFsc2UiKSxhLnJlYWRPbmx5PSExLGEuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtdGVybWluYWwtcGFzc3Rocm91Z2giLCEhci50ZXJtaW5hbEludGVyYWN0aXZlJiYhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpKSk7dmFyIGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7bCYmci50ZXJtaW5hbEludGVyYWN0aXZlJiZsLmNsYXNzTGlzdC5jb250YWlucygidm9pY2UtbW9kZSIpJiYobC5jbGFzc0xpc3QucmVtb3ZlKCJ2b2ljZS1tb2RlIiksSWUucmVjb3JkaW5nPSExLE1hKCkpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kLWlucHV0LWJ1dHRvbiIpLGY9dCYmaTtkJiYoZC5kaXNhYmxlZD0hdCYmISFlJiYhaSYmIXMsZC5zZXRBdHRyaWJ1dGUoInRpdGxlIix0P2Y/Ilx1NjM5Mlx1OTYxRlx1NTNEMVx1OTAwMVx1RkYwOFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1N0VEM1x1Njc1Rlx1NTQwRVx1NTkwNFx1NzQwNlx1RkYwOSI6Ilx1NTNEMVx1OTAwMSI6bj9pPyJcdTUzRDFcdTkwMDFcdTdFRDkgQ29kZXgiOiJDb2RleCBcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOiFlfHxpfHxzPyJcdTUzRDFcdTkwMDEiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiKSxkLmNsYXNzTGlzdC50b2dnbGUoInF1ZXVlLW1vZGUiLGYpKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtpZihjKXt2YXIgdj1rdShlKTtjLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXYuYWN0aXZlKX12YXIgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtpZihoKXt2YXIgZz1rdShlKTtoLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWcuYWN0aXZlKX12YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7bSYmbS5jbGFzc0xpc3QudG9nZ2xlKCJpbnRlcmFjdGl2ZSIsIXQmJnIudGVybWluYWxJbnRlcmFjdGl2ZSksR28oKX1mdW5jdGlvbiBGaSgpe3ZhciBlPXdpbmRvdy5nZXRTZWxlY3Rpb24mJndpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighZXx8ZS5pc0NvbGxhcHNlZClyZXR1cm4hMTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoIXQpcmV0dXJuITE7dmFyIG49ZS5hbmNob3JOb2RlO3JldHVybiBuJiZuLm5vZGVUeXBlPT09MyYmKG49bi5wYXJlbnROb2RlKSwhIShuJiZ0LmNvbnRhaW5zKG4pKX1mdW5jdGlvbiBXYShlKXtpZihBcyhlKSYmIWUubWV0YUtleSl7dmFyIHQ9enAoZSk7aWYodCl7dmFyIG49VnAoZSx0KTtpZighU3ModCkmJiEobi5jdHJsJiZ0Lmxlbmd0aD09PTEmJnQudG9Mb3dlckNhc2UoKT09PSJjIiYmRmkoKSkpe3ZhciBpPUxzKHQsbik7aSYmKGUucHJldmVudERlZmF1bHQoKSxJcyhpLHQpKX19fX1mdW5jdGlvbiBKcCgpe3IudGVybWluYWwmJmhmKDUwMCl9ZnVuY3Rpb24gWXAoKXticigpfWZ1bmN0aW9uIFFnKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLCEoci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fCFyLnNlbGVjdGVkSWQpJiYoci5rZXlib2FyZFBvcHVwT3Blbj0hci5rZXlib2FyZFBvcHVwT3Blbix4cigpKX1mdW5jdGlvbiBUcygpe3Iua2V5Ym9hcmRQb3B1cE9wZW49ITEseHIoKX1mdW5jdGlvbiBHcCgpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLFdhLCEwKX1mdW5jdGlvbiBRcCgpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLFdhLCEwKX1mdW5jdGlvbiBMcyhlLHQpe3ZhciBuPXR8fHtjdHJsOiExLGFsdDohMSxzaGlmdDohMX07aWYoU3MoZSkpcmV0dXJuIiI7aWYoZT09PSJ0YWIiJiZuLnNoaWZ0KXJldHVybiJceDFCW1oiO3ZhciBpPVJwKGUpO2lmKGkpcmV0dXJuIGk7aWYoZS5pbmRleE9mKCJjdHJsXyIpPT09MClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSktOTYpO3ZhciBhPVNyKGUpO2lmKGEpcmV0dXJuIGE7aWYoIWUpcmV0dXJuIiI7dmFyIHU9ZS5sZW5ndGg9PT0xP2U6IiI7cmV0dXJuIHU/KG4uc2hpZnQmJih1PXUudG9VcHBlckNhc2UoKSksbi5jdHJsP1dwKHUpOm4uYWx0PyJceDFCIit1OnUpOiIifWZ1bmN0aW9uIHdpKCl7ci5tb2RpZmllcnMuY3RybD0hMSxyLm1vZGlmaWVycy5hbHQ9ITEsci5tb2RpZmllcnMuc2hpZnQ9ITEsJHAoKX1mdW5jdGlvbiAkcCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtaW5pLWtleWJvYXJkIik7ZSYmWyJjdHJsIiwiYWx0Iiwic2hpZnQiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcignW2RhdGEta2V5PSInK3QrJyJdJyk7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhci5tb2RpZmllcnNbdF0pfSl9ZnVuY3Rpb24gU3IoZSl7c3dpdGNoKGUpe2Nhc2UieWVzIjpyZXR1cm4ieVxyIjtjYXNlIm5vIjpyZXR1cm4iblxyIjtjYXNlInVwIjpyZXR1cm4iXHgxQltBIjtjYXNlImRvd24iOnJldHVybiJceDFCW0IiO2Nhc2UibGVmdCI6cmV0dXJuIlx4MUJbRCI7Y2FzZSJyaWdodCI6cmV0dXJuIlx4MUJbQyI7Y2FzZSJlbnRlciI6cmV0dXJuIlxyIjtjYXNlImN0cmxfYyI6cmV0dXJuIgMiO2Nhc2UiY3RybF9kIjpyZXR1cm4iBCI7Y2FzZSJjdHJsX2wiOnJldHVybiJcZiI7Y2FzZSJjdHJsX3UiOnJldHVybiIVIjtjYXNlImN0cmxfayI6cmV0dXJuIlx2IjtjYXNlImN0cmxfdyI6cmV0dXJuIhciO2Nhc2UiY3RybF96IjpyZXR1cm4iGiI7Y2FzZSJlc2NhcGUiOnJldHVybiJceDFCIjtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBYcCgpe2lmKHIucGVuZGluZ01lc3NhZ2VzLmxlbmd0aCE9PTApe3ZhciBlPUR0KCk7aWYodWUoZSkpe3IucGVuZGluZ01lc3NhZ2VzPVtdO3JldHVybn12YXIgdD1EYXRlLm5vdygpLG49W10saT0wO3IucGVuZGluZ01lc3NhZ2VzLmZvckVhY2goZnVuY3Rpb24odSl7aWYodHlwZW9mIHU9PSJzdHJpbmciKXtuLnB1c2godSk7cmV0dXJufWlmKCEoIXV8fHR5cGVvZiB1LmlucHV0IT0ic3RyaW5nIikpe2lmKHQtKHUuYXR8fDApPkFwKXtpKys7cmV0dXJufW4ucHVzaCh1LmlucHV0KX19KSxyLnBlbmRpbmdNZXNzYWdlcz1bXSxpPjAmJmNvbnNvbGUubG9nKCJbd2FuZF0gZmx1c2hQZW5kaW5nTWVzc2FnZXM6IGRyb3BwZWQgIitpKyIgc3RhbGUgaW5wdXQocykiKTt2YXIgYT1Qcm9taXNlLnJlc29sdmUoKTtuLmZvckVhY2goZnVuY3Rpb24odSl7YT1hLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gWnAodSkuY2F0Y2goZnVuY3Rpb24oKXt9KX0pfSl9fWZ1bmN0aW9uIFpwKGUpe2lmKCFlfHwhci5zZWxlY3RlZElkKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgdD1yLnNlbGVjdGVkSWQ7cmV0dXJuIGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrdCsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSx2aWV3OnIuY3VycmVudFZpZXd9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4ub2s/bi5qc29uKCk6bi5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihpKXt2YXIgYT1EcyhpKTtpZihhLmh0dHBTdGF0dXM9bi5zdGF0dXMsa3MoYSkpcmV0dXJuIGNvbnNvbGUubG9nKCJbd2FuZF0gc2VuZElucHV0RGlyZWN0OiBzZXNzaW9uIHVuYXZhaWxhYmxlLCBkcm9wcGluZyIse3Nlc3Npb25JZDp0LGVycm9yQ29kZTphLmVycm9yQ29kZX0pLG51bGw7dGhyb3cgYX0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbiYmbi5pZCYmKFgobiksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKG4ubWVzc2FnZXMmJm4ubWVzc2FnZXMubGVuZ3RoPjAmJihyLmN1cnJlbnRNZXNzYWdlcz1uLm1lc3NhZ2VzKSx6ZSghMCkpKSxufSl9ZnVuY3Rpb24gemEoKXtpZihyLnNlbGVjdGVkSWQpe3ZhciBlPXIuc2VsZWN0ZWRJZDtBYShEZSgic3RvcC5jb25maXJtLm1lc3NhZ2UiKSx7dGl0bGU6RGUoInN0b3AuY29uZmlybS50aXRsZSIpLGRhbmdlcjohMCxva0xhYmVsOkRlKCJzdG9wLmNvbmZpcm0ub2siKSxjYW5jZWxMYWJlbDpEZSgic3RvcC5jb25maXJtLmNhbmNlbCIpfSkudGhlbihmdW5jdGlvbih0KXt0JiZyLnNlbGVjdGVkSWQ9PT1lJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2UrIi9zdG9wIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihOdCl9KX19ZnVuY3Rpb24gVmEoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNlc3Npb24taXRlbVtkYXRhLXNlc3Npb24taWQ9IicrZSsnIl0nKTt0JiZ0LmNsYXNzTGlzdC5hZGQoImRlbGV0aW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcik7cmV0dXJuIHIuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCxFZSgpKSxOdCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImRlbGV0aW5nIik7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO3FlKG4sIlx1NjVFMFx1NkNENVx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERFx1MzAwMiIpfSl9LDI1MCl9ZnVuY3Rpb24gTXMoZSx0KXt0JiZ0LmNsYXNzTGlzdC5hZGQoImRlbGV0aW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2ZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5LyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5jbGF1ZGVTZXNzaW9uSWQhPT1lfSksZGVsZXRlIHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzW2VdLGZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiZGVsZXRpbmciKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7cWUobiwiXHU2NUUwXHU2Q0Q1XHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREXHUzMDAyIil9KX0sMjUwKX1mdW5jdGlvbiAkZyhlLHQpe01zKGUsdCl9ZnVuY3Rpb24gZXYoZSx0LG4pe2UmJmZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5P2N3ZD0iK2VuY29kZVVSSUNvbXBvbmVudChlKSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoaS5lcnJvcik7ci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY3dkIT09ZX0pLGZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3FzKG4sITEpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtxZShpLCJcdTY1RTBcdTZDRDVcdTZFMDVcdTc0MDZcdThCRTVcdTc2RUVcdTVGNTVcdTc2ODRcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfWZ1bmN0aW9uIHFzKGUsdCl7ZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uY2xhc3NMaXN0LnRvZ2dsZSgiZGVsZXRpbmciLHQpfSl9ZnVuY3Rpb24gdHYoZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbGF1ZGUtaGlzdG9yeS1pdGVtW2RhdGEtY3dkPSInK3dpbmRvdy5DU1MuZXNjYXBlKFN0cmluZyhlKSkrJyJdJykpfXZhciBPcz1udWxsLElyPW51bGw7ZnVuY3Rpb24gVHIoKXtpZihJcil7SXIuY2xhc3NMaXN0LnJlbW92ZSgic3dpcGVkIik7dmFyIGU9SXIucXVlcnlTZWxlY3RvcigiLnNlc3Npb24taXRlbS1jb250ZW50Iik7ZSYmKGUuc3R5bGUudHJhbnNmb3JtPSIiKSxJcj1udWxsfX1mdW5jdGlvbiBudihlKXtPcz1udWxsLElyPW51bGx9ZnVuY3Rpb24gcnYoZSx0LG4pe2U9PT0iY2xhdWRlIiYmKHIucHJlZmVycmVkQ29tbWFuZD1lLHIuY2hhdE1vZGU9a3QoZSxyLmNoYXRNb2RlKSk7dmFyIGk9ZT09PSJjbGF1ZGUifHxlPT09ImNvZGV4Ij9xcihlKToiIjtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGx0KHtjb21tYW5kOmUsY3dkOnR8fCIiLG1vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixtb2RlbDppfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5lcnJvcj8obiYmcWUobixhLmVycm9yKSxudWxsKTooci5zZWxlY3RlZElkPWEuaWQsRWUoKSxyLmRyYWZ0c1thLmlkXT0iIixhKX0pfXZhciBVYT0hMTtmdW5jdGlvbiBQcyhlLHQpe3JldHVybiFlfHxVYT9Qcm9taXNlLnJlc29sdmUobnVsbCk6KFVhPSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P3FlKHQsbi5lcnJvcik6QShuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLnNlbGVjdGVkSWQ9bi5pZCxFZSgpLHIuZHJhZnRzW24uaWRdPSIiLG4pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREXHUzMDAyIjtyZXR1cm4gdD9xZSh0LGkpOkEoaSwiZXJyb3IiKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpe1VhPSExfSkpfWZ1bmN0aW9uIFhnKGUsdCl7cmV0dXJuIGU/ZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P3FlKHQsbi5lcnJvcik6QShuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5jbGF1ZGVTZXNzaW9uSWQhPT1lfSksci5zZWxlY3RlZElkPW4uaWQsRWUoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjMwOSBDbGF1ZGUgXHU0RjFBXHU4QkREIElEIFx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/cWUodCxpKTpBKGksImVycm9yIiksbnVsbH0pOlByb21pc2UucmVzb2x2ZShudWxsKX1mdW5jdGlvbiBtbihlKXtyZXR1cm4hZXx8IWUuaWQ/UHJvbWlzZS5yZXNvbHZlKCk6KHIuc2VsZWN0ZWRJZD1lLmlkLEVlKCksci5jdXJyZW50TWVzc2FnZXM9W10sRXIoKSxDdCgpLEFyKGUuaWQpLFgoZSksZmUoKSxPbihlLmlkKSxibihlLmlkKS50aGVuKGZ1bmN0aW9uKCl7X3QoITApfSkpfWZ1bmN0aW9uIEhzKGUpe3JldHVybiBQcyhlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LmNsYXVkZVNlc3Npb25JZCYmKHQucHJvdmlkZXI9PT0iY29kZXgiP3IuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pOnIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLmNsYXVkZVNlc3Npb25JZCE9PXQuY2xhdWRlU2Vzc2lvbklkfSkpLG1uKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKTpudWxsfSl9ZnVuY3Rpb24gWmcoZSx0LG4pe3JldHVybiBydihlLHQsbikudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT9tbihpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KTpudWxsfSl9ZnVuY3Rpb24gZWgoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKTtpZih0KXt0LnBsYWNlaG9sZGVyPSJcdTZCNjNcdTU3MjhcdTYwMURcdTgwMDNcdTIwMjYiLHQuZGlzYWJsZWQ9ITA7dmFyIG49ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGk9JGUoKSxhPVhlKCksdT1xcihhKTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6YSxjd2Q6aSxtb2RlOm4saW5pdGlhbElucHV0OmUsbW9kZWw6dXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uZXJyb3I/KEEoby5lcnJvciwiZXJyb3IiKSx0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITEsbnVsbCk6bW4obyl9KS5jYXRjaChmdW5jdGlvbihvKXtBKG8mJm8ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksdC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExfSkuZmluYWxseShmdW5jdGlvbigpe3QucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMX0pfX1mdW5jdGlvbiB0aChlLHQsbil7dmFyIGk9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGE9JGUoKSx1PVhlKCksbz1xcih1KTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OmV8fHZvaWQgMCxtb2RlbDpvfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5lcnJvcj8oQShzLmVycm9yLCJlcnJvciIpLG51bGwpOih0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLG1uKHMpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe0EocyYmcy5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIGl2KGUpe2UuZGlzYWJsZWQ9ITAsSHMoZS5kYXRhc2V0LnNlc3Npb25JZCkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KX1mdW5jdGlvbiBhdihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxDaSh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsRWUoKSxyLmRyYWZ0c1tpLmlkXT0iIixtbihpKS50aGVuKGZ1bmN0aW9uKCl7V3QoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIENpKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oQShuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gQShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiB1dihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkO3QmJlNuKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdThGRDlcdTY3NjEgQ29kZXggXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPWUuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpO2kmJihpLnN0eWxlLm9wYWNpdHk9IjAuNSIpLGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkvIitlbmNvZGVVUklDb21wb25lbnQodCkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2EmJmEub2s/KHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksZmUoKSk6aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSkuY2F0Y2goZnVuY3Rpb24oKXtpJiYoaS5zdHlsZS5vcGFjaXR5PSIxIil9KX19KX1mdW5jdGlvbiBvdihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxCaSh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZCE9PXR9KSxyLnNlbGVjdGVkSWQ9aS5pZCxFZSgpLHIuZHJhZnRzW2kuaWRdPSIiLG1uKGkpLnRoZW4oZnVuY3Rpb24oKXtXdCgpfSkpfSkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KSl9ZnVuY3Rpb24gQmkoZSx0KXtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oQShuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gQShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBMcigpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHxuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MH1mdW5jdGlvbiBfdChlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IXR8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10JiYoZSYmTHIoKXx8S2EodCkpfX1mdW5jdGlvbiBuaCgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7ZSYmKGUuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIF9zKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIik7ZSYmZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1rZXlib2FyZC1vZmZzZXQiKX1mdW5jdGlvbiBOcygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24gRGkoZSl7aWYoZSl7dmFyIHQ9ZS5zZWxlY3Rpb25TdGFydCxuPWUuc2VsZWN0aW9uRW5kO2tpKGUpLHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIG49PSJudW1iZXIiJiZlLnNldFNlbGVjdGlvblJhbmdlKHQsbil9fWZ1bmN0aW9uIGpzKGUpeyFlfHxlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD09PSJ0cnVlInx8KGUuZGF0YXNldC50b3VjaFNjcm9sbEJvdW5kPSJ0cnVlIixlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7ZS5zY3JvbGxIZWlnaHQ8PWUuY2xpZW50SGVpZ2h0KzF8fChlLnNjcm9sbFRvcDw9MD9lLnNjcm9sbFRvcD0xOmUuc2Nyb2xsVG9wK2UuY2xpZW50SGVpZ2h0Pj1lLnNjcm9sbEhlaWdodCYmKGUuc2Nyb2xsVG9wPU1hdGgubWF4KDEsZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtMSkpKX0se3Bhc3NpdmU6ITB9KSl9ZnVuY3Rpb24gUnMoZSl7ZSYmKEh0KGUpLERpKGUpKX1mdW5jdGlvbiBzdihlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7dCYmKF9zKCksUnModCkpfWZ1bmN0aW9uIGx2KGUpe3ZhciB0PWUmJmUudGFyZ2V0P2UudGFyZ2V0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtOcygpLFdvKDIyMDAsdCk7dmFyIG49WzgwLDIwMCwzODAsNjIwLDkwMF07bi5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7c2V0VGltZW91dChmdW5jdGlvbigpe1ZuKCExKSxhPT09MSYmTHIoKSYmKFFlKCJrZXlib2FyZC1ibHVyIix7Zm9yY2VSZXBsYXk6ITB9KSxmdCgia2V5Ym9hcmQiKSl9LGkpfSl9ZnVuY3Rpb24gZHYoZSl7ZSYmKGUuc2V0U2VsZWN0aW9uUmFuZ2UoZS52YWx1ZS5sZW5ndGgsZS52YWx1ZS5sZW5ndGgpLERpKGUpKX1mdW5jdGlvbiBLYShlKXtlJiYoZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLGR2KGUpKX1mdW5jdGlvbiBjdihlKXtqcyhlKSxScyhlKX1mdW5jdGlvbiBmdihlKXtLYShlKX1mdW5jdGlvbiByaChlKXtfcygpLERpKGUpfWZ1bmN0aW9uIHB2KCl7TnMoKX1mdW5jdGlvbiB2dihlKXtEaShlKX1mdW5jdGlvbiBpaChlKXtmdihlKX1mdW5jdGlvbiBtdihlKXtjdihlKX1mdW5jdGlvbiBhaCgpe3B2KCl9ZnVuY3Rpb24gdWgoZSl7dnYoZSl9ZnVuY3Rpb24gZ3YoZSx0KXtpZighZXx8IXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10KXJldHVybiExO3ZhciBuPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtpZihuPD01MClyZXR1cm4hMTt2YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBpLmJvdHRvbT5lLmhlaWdodC0xMn1mdW5jdGlvbiBraShlKXtpZihlKXt2YXIgdD1lLnNjcm9sbEhlaWdodD5lLmNsaWVudEhlaWdodCsxO2lmKCF0KXtlLnNjcm9sbFRvcD0wO3JldHVybn1lLnNjcm9sbFRvcD1lLnNjcm9sbEhlaWdodH19ZnVuY3Rpb24gV3MoKXtpZihyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe3pzKCk7cmV0dXJufWlmKCFMcigpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IWV8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lfHxLYShlKX19ZnVuY3Rpb24genMoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7ZSYmKGUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxlLmZvY3VzKCksci50ZXJtaW5hbCYmci50ZXJtaW5hbC5mb2N1cyYmci50ZXJtaW5hbC5mb2N1cygpKX1mdW5jdGlvbiBodigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtpZigidmlydHVhbEtleWJvYXJkImluIG5hdmlnYXRvcil7dmFyIG49bmF2aWdhdG9yLnZpcnR1YWxLZXlib2FyZDtuLmFkZEV2ZW50TGlzdGVuZXIoImdlb21ldHJ5Y2hhbmdlIixmdW5jdGlvbigpe2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInBhZGRpbmctYm90dG9tIil9KX12YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtXcygpfSksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7dmFyIHU9YS50YXJnZXQ7dS50YWdOYW1lIT09IkEiJiZ1LnRhZ05hbWUhPT0iQlVUVE9OIiYmIXUuY2xvc2VzdCgiYnV0dG9uIikmJiF1LmNsb3Nlc3QoIltkYXRhLXRvb2wtdG9nZ2xlXSIpJiZXcygpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2lmKExyKCkpe3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighKCF1fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dSkpe3ZhciBvPWEudGFyZ2V0OyFvfHx0eXBlb2Ygby5jbG9zZXN0IT0iZnVuY3Rpb24ifHxvLmNsb3Nlc3QoIi5pbnB1dC1wYW5lbCIpfHxvLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkIil8fG8uY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtZmFiIil8fG8uY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtdG9nZ2xlIil8fG8uY2xvc2VzdCgiI3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZSIpfHxvLmNsb3Nlc3QoIi53YW5kLWpveXN0aWNrLXJvb3QiKXx8dS5ibHVyKCl9fX0sITApfWZ1bmN0aW9uIEphKCl7dHJ5e3dpbmRvdy5zY3JvbGxUbygwLDApfWNhdGNoe31kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50JiYoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD0wKSxkb2N1bWVudC5ib2R5JiYoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9MCl9ZnVuY3Rpb24gemUoZSl7ci5yZW5kZXJQZW5kaW5nJiYhZXx8KHIucmVuZGVyUGVuZGluZz0hMCxlPyhBaSghMCksci5yZW5kZXJQZW5kaW5nPSExKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtBaSghMSksci5yZW5kZXJQZW5kaW5nPSExfSkpfXIuY2hhdFJlbmRlclRpbWVyPW51bGw7ZnVuY3Rpb24gWWEoZSl7aWYoIShyLmNoYXRSZW5kZXJUaW1lciYmIWUpKXtpZihyLmNoYXRSZW5kZXJUaW1lciYmY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxlKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsLHplKCk7cmV0dXJufXRyeXt3aW5kb3cuX19zY2hlZHVsZUNoYXRSZW5kZXI9ZnVuY3Rpb24oKXtZYSghMCl9fWNhdGNoe312YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuc3RhdHVzPT09InJ1bm5pbmciJiZ0LnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiLGk9bj9lczp0cztyLmNoYXRSZW5kZXJUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbDt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTthJiYoci5jdXJyZW50TWVzc2FnZXM9V2UoYSxaZShhLGEub3V0cHV0LCEwKSkpLHplKCl9LGkpfX1mdW5jdGlvbiB5dihlLHQpe2lmKCFlfHwhdHx8dC5sZW5ndGg9PT0wKXJldHVybltdO2Z1bmN0aW9uIG4odyl7cmV0dXJuIHcucmVwbGFjZSgvXHgxQig/OltALVpcXC1fXXxcW1swLT9dKlsgLS9dKltALX5dKS9nLCIiKX1mb3IodmFyIGk9bihlKSxhPVtdLHU9W10sbz0wO288dC5sZW5ndGg7bysrKWlmKHRbb10ucm9sZT09PSJ1c2VyIil7dmFyIHM9IiIsbD10W29dLmNvbnRlbnQ7aWYodHlwZW9mIGw9PSJzdHJpbmciKXM9bDtlbHNlIGlmKEFycmF5LmlzQXJyYXkobCkpe2Zvcih2YXIgZD0wO2Q8bC5sZW5ndGg7ZCsrKWlmKGxbZF0udHlwZT09PSJ0ZXh0Iil7cz1sW2RdLnRleHQ7YnJlYWt9fXMmJnUucHVzaCh7dGV4dDpzLGluZGV4Om99KX1mb3IodmFyIGY9MCxvPTA7bzx1Lmxlbmd0aDtvKyspe3ZhciBjPXVbb10sdj1pLmluZGV4T2YoIlx1Mjc2RiAiK2MudGV4dCxmKTtpZih2PT09LTEmJih2PWkuaW5kZXhPZihgClx1Mjc2RiBgK2MudGV4dCxmKSx2IT09LTEmJih2Kz0xKSksdj5mKXtmb3IodmFyIGg9aS5zdWJzdHJpbmcoZix2KSxnPWguc3BsaXQoYApgKSxtPVtdLGQ9MDtkPGcubGVuZ3RoO2QrKyl7dmFyIHk9Z1tkXS50cmltKCk7IXl8fHkuc3RhcnRzV2l0aCgiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIil8fHk9PT0iXHUyNzZGInx8eT09PSI/Inx8eT09PSIifHx5LmluY2x1ZGVzKCJDbGF1ZGUgQ29kZSB2Iil8fHkuaW5jbHVkZXMoIk9wdXMiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJTb25uZXQiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJBUEkgVXNhZ2UiKXx8eS5pbmNsdWRlcygiQmlsbGluZyIpfHx5LmluY2x1ZGVzKCJmb3Igc2hvcnRjdXRzIil8fHkuaW5jbHVkZXMoIi9lZmZvcnQiKXx8eS5tYXRjaCgvXlvilrjilpDilp3ilpjilpfilpbilojilozilo3ilo7ilo/ilpTiloHiloLiloPiloTiloXilobilofilojilohdLyl8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXXszLH0vKXx8eS5sZW5ndGg+MyYmbS5wdXNoKHkpfW0ubGVuZ3RoPjAmJmEucHVzaCh7YmVmb3JlTWVzc2FnZTpjLmluZGV4LGNvbnRlbnQ6bS5qb2luKGAKYCl9KX1mPXYrYy50ZXh0Lmxlbmd0aCsyfXJldHVybiBhfWZ1bmN0aW9uIEdhKGUpe2lmKCFlKXJldHVybiBudWxsO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtyZXR1cm4gdHx8KHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImNoYXQtbWVzc2FnZXMiLGUuYXBwZW5kQ2hpbGQodCksdCl9ZnVuY3Rpb24gVnMoZSx0KXt2YXIgbj1HYShlKTtyZXR1cm4gbj8obi5pbm5lckhUTUw9dCxWdChuKSxvcigpLEdlKCksbik6bnVsbH1mdW5jdGlvbiBBaShlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighdClyZXR1cm47dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKCQpe3JldHVybiAkLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoIW4pe3IubGFzdFJlbmRlcmVkRW1wdHkhPT0ibm9uZSImJihWcyh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQ8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+Jyksci5sYXN0UmVuZGVyZWRFbXB0eT0ibm9uZSIsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wKTtyZXR1cm59dmFyIGk9ci5jdXJyZW50TWVzc2FnZXMsYT1KdihpKTtpZihYYT1ZdihpKSxpLmxlbmd0aD09PTApe2lmKHIubGFzdFJlbmRlcmVkRW1wdHkhPT0iZW1wdHkiKXt2YXIgdT0iIjt1ZShuKSYmKHU9JzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8td3JhcCI+PGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtdHJpby1oaW50Ij5cdTlFRDhcdThCQTRcdTRGMUFcdTYzMDlcdTRFRTVcdTRFMEJcdThCQkVcdTdGNkVcdTUzRDFcdTkwMDFcdUZGMENcdTUzRUZcdTcwQjlcdTUxRkJcdThDMDNcdTY1NzRcdUZGMUE8L2Rpdj4nK2JsKG4se2tpbmQ6ImRyb3Bkb3duIn0pKyI8L2Rpdj4iKSxWcyh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTVCRjlcdThCRERcdTVERjJcdTVGMDBcdTU5Q0I8L3N0cm9uZz48YnI+XHU1NzI4XHU0RTBCXHU2NUI5XHU4RjkzXHU1MTY1XHU2ODQ2XHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHVGRjBDQ2xhdWRlIFx1NEYxQVx1ODFFQVx1NTJBOFx1NTZERVx1NTkwRFx1MzAwMjwvZGl2PicrdSksci5sYXN0UmVuZGVyZWRFbXB0eT0iZW1wdHkiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MH14dShudWxsLG4pLCRhKFtdKTtyZXR1cm59dmFyIG89aS5sZW5ndGg7bz5yLmNoYXRSZW5kZXJlZENvdW50JiYoci5jaGF0UmVuZGVyZWRDb3VudD1vKTt2YXIgcz1NYXRoLm1heCgwLG8tci5jaGF0UmVuZGVyZWRDb3VudCksbD1zPjA/aS5zbGljZShzKTppLGQ9dHlwZW9mIG4ubWVzc2FnZU9mZnNldD09Im51bWJlciImJm4ubWVzc2FnZU9mZnNldD4wLGY9cz4wfHxkLGM9bC5sZW5ndGgsdj1uLm91dHB1dD9uLm91dHB1dC5sZW5ndGg6MDtpZihuLm1lc3NhZ2VzJiZuLm1lc3NhZ2VzLmxlbmd0aD4wKXtmb3IodmFyIGg9MCxnPTAsbT0wO208bi5tZXNzYWdlcy5sZW5ndGg7bSsrKXt2YXIgeT1uLm1lc3NhZ2VzW21dLmNvbnRlbnQ7aWYoeSlpZihBcnJheS5pc0FycmF5KHkpKXtoKz15Lmxlbmd0aDtmb3IodmFyIHc9MDt3PHkubGVuZ3RoO3crKyl7dmFyIEU9eVt3XTtFLnRleHQmJihnKz1FLnRleHQubGVuZ3RoKSxFLnRoaW5raW5nJiYoZys9RS50aGlua2luZy5sZW5ndGgpLEUuY29udGVudCYmKGcrPUUuY29udGVudC5sZW5ndGgpLEUuaWQmJihnKz1FLmlkLmxlbmd0aCksRS50b29sX3VzZV9pZCYmKGcrPUUudG9vbF91c2VfaWQubGVuZ3RoKSxFLmRlc2NyaXB0aW9uJiYoZys9RS5kZXNjcmlwdGlvbi5sZW5ndGgpLEUuaW5wdXQmJihnKz1KU09OLnN0cmluZ2lmeShFLmlucHV0KS5sZW5ndGgpfWlmKG4ubWVzc2FnZXNbbV0udXNhZ2Upe3ZhciBCPW4ubWVzc2FnZXNbbV0udXNhZ2U7Zys9KEIuaW5wdXRUb2tlbnN8fDApKyhCLm91dHB1dFRva2Vuc3x8MCkrKEIuY2FjaGVSZWFkSW5wdXRUb2tlbnN8fDApKyhCLmNhY2hlQ3JlYXRpb25JbnB1dFRva2Vuc3x8MCkrKEIucmVhc29uaW5nT3V0cHV0VG9rZW5zfHwwKStNYXRoLnJvdW5kKChCLnRvdGFsQ29zdFVzZHx8MCkqMWU2KSsoQi5lc3RpbWF0ZWQ9PT0hMD8xOjApfX1lbHNlIGgrPTEsZz1TdHJpbmcoeSkubGVuZ3RofXY9YyoxZTUraCoxZTMrZ312YXIgRD1lfHxjIT09ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZighRCYmYz09PXIubGFzdFJlbmRlcmVkTXNnQ291bnQmJnY9PT1yLmxhc3RSZW5kZXJlZEhhc2gpe3ZhciBGPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtGJiZ4dShGLG4pLCRhKGkpO3JldHVybn12YXIgST1yLmxhc3RSZW5kZXJlZEhhc2gsTD1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50O2lmKHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9YyxyLmxhc3RSZW5kZXJlZEhhc2g9dixGPUdhKHQpLCFGKXJldHVybjt2YXIgUD10YShGKSxWPSFyLmNoYXRJbml0aWFsUmVuZGVyRG9uZSx4PUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLmxlbmd0aCxrPUR8fHg9PT0wfHxjIT09eDtmdW5jdGlvbiBUKCl7Zm9yKHZhciAkPXl2KG4ub3V0cHV0LGwpLGhlPSIiLHllPWwuc2xpY2UoKS5yZXZlcnNlKCksd2U9bC5sZW5ndGgscGU9MDtwZTx5ZS5sZW5ndGg7cGUrKyl7Zm9yKHZhciBiZT15ZVtwZV0sQXQ9d2UtMS1wZSxldD1BdCtzLGl0PW51bGwsSGU9MDtIZTwkLmxlbmd0aDtIZSsrKWlmKCRbSGVdLmJlZm9yZU1lc3NhZ2U9PT1BdCl7aXQ9JFtIZV07YnJlYWt9aXQmJihoZSs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSBzeXN0ZW0taW5mbyI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY2FyZCI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8taGVhZGVyIj5cdTIxMzlcdUZFMEYgXHU3Q0ZCXHU3RURGXHU0RkUxXHU2MDZGPC9kaXY+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY29udGVudCI+JytwKGl0LmNvbnRlbnQpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKSxoZSs9ZXUoYmUsTVtldF18fG51bGwsZXQsYSl9aWYoZil7dmFyIFV0PXM+MD8iXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0ICIrTWF0aC5taW4oci5jaGF0UGFnZVNpemUscykrIiBcdTY3NjFcdTZEODhcdTYwNkYiOiJcdTUyQTBcdThGN0RcdTY2RjRcdTY1RTlcdTc2ODRcdTZEODhcdTYwNkYiO2hlKz0nPGRpdiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUiIGlkPSJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCI+PGJ1dHRvbiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUtYnRuIiB0eXBlPSJidXR0b24iPicrVXQrIjwvYnV0dG9uPjwvZGl2PiJ9dmFyIEtlPS0xLFZlPTA7aWYoeD4wJiYhUClmb3IodmFyIENlPUYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLG9lPUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLHZlPTA7dmU8b2UubGVuZ3RoO3ZlKyspe3ZhciBDPW9lW3ZlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihDLmJvdHRvbT49Q2Upe3ZhciB0dD1vZVt2ZV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO3R0IT1udWxsJiYoS2U9cGFyc2VJbnQodHQsMTApLFZlPUMudG9wLUNlKTticmVha319aWYoRi5pbm5lckhUTUw9aGUsKGZ1bmN0aW9uKCl7Zm9yKHZhciBLdD1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxKdD1LdC5sZW5ndGgsVGU9MDtUZTxKdDtUZSsrKUt0W1RlXS5zZXRBdHRyaWJ1dGUoImRhdGEtbXNnLWluZGV4IixTdHJpbmcocytKdC0xLVRlKSl9KSgpLFZ0KEYpLEw9PT0wJiYhci5jaGF0SW5pdGlhbFJlbmRlckRvbmUpRi5zY3JvbGxUb3A9MCxyLmNoYXRTdGlja1RvQm90dG9tPSEwLERuKHtyZW1vdmVEaXZpZGVyOiEwfSksci5jaGF0SW5pdGlhbFJlbmRlckRvbmU9ITA7ZWxzZSBpZihMPT09MCYmci5jaGF0U3RpY2tUb0JvdHRvbSlGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoUClGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoS2U+PTApe3ZhciBkdD1GLnF1ZXJ5U2VsZWN0b3IoJy5jaGF0LW1lc3NhZ2VbZGF0YS1tc2ctaW5kZXg9IicrS2UrJyJdJyk7aWYoZHQpe3ZhciB4dD1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxndD1kdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxTdD1ndC50b3AteHQtVmU7TWF0aC5hYnMoU3QpPi41JiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3ArPVN0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpfX1VcyhGKSxvcigpLHVhKEYpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe25hKEYpLEdlKCksZ2QoKX0pfXZhciBNPXt9O2lmKChmdW5jdGlvbigpe2Zvcih2YXIgJD17aW5wdXRUb2tlbnM6MCxvdXRwdXRUb2tlbnM6MCxjYWNoZVJlYWRJbnB1dFRva2VuczowLGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczowLHJlYXNvbmluZ091dHB1dFRva2VuczowLHRvdGFsQ29zdFVzZDowLGVzdGltYXRlZDohMX0saGU9ITEseWU9LTEsd2U9MDt3ZTxpLmxlbmd0aDt3ZSsrKXt2YXIgcGU9aVt3ZV07aWYocGUucm9sZT09PSJ1c2VyIil5ZT49MCYmaGUmJihNW3llXT0kKSwkPXtpbnB1dFRva2VuczowLG91dHB1dFRva2VuczowLGNhY2hlUmVhZElucHV0VG9rZW5zOjAsY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOjAscmVhc29uaW5nT3V0cHV0VG9rZW5zOjAsdG90YWxDb3N0VXNkOjAsZXN0aW1hdGVkOiExfSxoZT0hMSx5ZT0tMTtlbHNlIGlmKHBlLnJvbGU9PT0iYXNzaXN0YW50IiYmcGUudXNhZ2Upe3ZhciBiZT1wZS51c2FnZTtoZT0hMCwkLmlucHV0VG9rZW5zKz1iZS5pbnB1dFRva2Vuc3x8MCwkLm91dHB1dFRva2Vucys9YmUub3V0cHV0VG9rZW5zfHwwLCQuY2FjaGVSZWFkSW5wdXRUb2tlbnMrPWJlLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwLCQuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zKz1iZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnN8fDAsJC5yZWFzb25pbmdPdXRwdXRUb2tlbnMrPWJlLnJlYXNvbmluZ091dHB1dFRva2Vuc3x8MCwkLnRvdGFsQ29zdFVzZCs9YmUudG90YWxDb3N0VXNkfHwwLCQuZXN0aW1hdGVkPSQuZXN0aW1hdGVkfHxiZS5lc3RpbWF0ZWQ9PT0hMCx5ZT13ZX1lbHNlIHBlLnJvbGU9PT0iYXNzaXN0YW50IiYmKHllPXdlKX15ZT49MCYmaGUmJihNW3llXT0kKX0pKCksaylUKCk7ZWxzZSBpZihjPngpe3ZhciBKPWwuc2xpY2UoeCk7Si5yZXZlcnNlKCk7Zm9yKHZhciB6PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxHPVtdLHNlPVtdLHRlPXMreCxaPTA7WjxKLmxlbmd0aDtaKyspe3ZhciBxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLE89cyt4KyhKLmxlbmd0aC0xLVopO3EuaW5uZXJIVE1MPWV1KEpbWl0sTVtPXXx8bnVsbCxPLGEpO3ZhciBfPXEuZmlyc3RFbGVtZW50Q2hpbGQ7XyYmKF8uY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZS1pbiIpLF8uc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKE8pKSxHLnB1c2goXyksc2UucHVzaChPKSx6LmFwcGVuZENoaWxkKF8pKX1GLmluc2VydEJlZm9yZSh6LEYuZmlyc3RDaGlsZCksb3IoKSxVcyhGKSx1YShGKSxQP3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0YuaXNDb25uZWN0ZWQmJk1hdGguYWJzKEYuc2Nyb2xsVG9wKT4xJiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3A9MCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKSxEbih7cmVtb3ZlRGl2aWRlcjohMH0pLEdlKCl9KTooci5jaGF0VW5yZWFkU3RhcnRJbmRleDwwJiYoci5jaGF0VW5yZWFkU3RhcnRJbmRleD10ZSksci5jaGF0VW5yZWFkQ291bnQrPUcubGVuZ3RoLG5hKEYpLEdlKCkpfWVsc2UgaWYoYz09PXgmJnYhPT1JKXtmb3IodmFyIFk9QXJyYXkuZnJvbShGLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSksSz1sLnNsaWNlKCkucmV2ZXJzZSgpLHJlPSExLGRlPU1hdGgubWluKDQsSy5sZW5ndGgsWS5sZW5ndGgpLG5lPTA7bmU8ZGU7bmUrKyl7dmFyIGllPVlbbmVdLE9lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLEZlPXMrSy5sZW5ndGgtMS1uZTtPZS5pbm5lckhUTUw9ZXUoS1tuZV0sTVtGZV18fG51bGwsRmUsYSk7dmFyIGNlPU9lLmZpcnN0RWxlbWVudENoaWxkO2lmKGNlKXtpZihpZS5pbm5lckhUTUwhPT1jZS5pbm5lckhUTUx8fGllLmNsYXNzTmFtZSE9PWNlLmNsYXNzTmFtZSlGLnJlcGxhY2VDaGlsZChjZSxpZSksRnYoY2UpLHJlPSEwO2Vsc2UgaWYobmU+MClicmVha319aWYoIXJlJiZLLmxlbmd0aD5kZSYmVCgpLHJlKXtvcigpLHVhKEYpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe1AmJkYuaXNDb25uZWN0ZWQmJk1hdGguYWJzKEYuc2Nyb2xsVG9wKT4xJiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3A9MCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKSxuYShGKSxHZSgpfSk7dmFyIFI9Ri5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlIiksbXQ9Ri5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbC11c2UtY2FyZCwgLmlubGluZS1kaWZmW2RhdGEtZXhwYW5kLWtleV0iKSxQZT1udWxsO210LmZvckVhY2goZnVuY3Rpb24oJCl7dmFyIGhlPWFhKCQpO0V0KGhlKT09PW51bGwmJigkLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXIiKSYmISQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlci1hbnN3ZXJlZCIpfHwoUiYmUi5jb250YWlucygkKT9QZT8kLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpOlBlPSQ6JC5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKSkpfSl9fWVsc2UgYzx4JiZUKCk7d2YoRiksS3YoRixuKSxqdih0LEYsaSxWKSx4dShGLG4pLCRhKGkpfXZhciBRYT0hMTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIiN0b2RvLXByb2dyZXNzLXRvZ2dsZSIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLFFhPSFRYTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2kmJmEmJihRYT8oaS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGEuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSk6KGkuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSxhLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIikpKSx4aSgpfX19KTtmdW5jdGlvbiB4aSgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKCEoIWV8fCF0KSl7dmFyIG49ZSxpPSF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIiksYT10LmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSx1PXQub2Zmc2V0SGVpZ2h0O2kmJmEmJnU+MD9uLnN0eWxlLnBhZGRpbmdCb3R0b209dSs4KyJweCI6bi5zdHlsZS5wYWRkaW5nQm90dG9tPSIifX1mdW5jdGlvbiBidihlKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTt0eXBlb2YgaT09InN0cmluZyI/dC5wdXNoKGkpOmkmJnR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiZ0LnB1c2goaS50ZXh0KX1yZXR1cm4gdC5qb2luKCIiKX1yZXR1cm4iIn1mdW5jdGlvbiBFdihlLHQpe2Zvcih2YXIgbj17fSxpPXQ7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoISghYXx8IUFycmF5LmlzQXJyYXkoYS5jb250ZW50KSkpZm9yKHZhciB1PTA7dTxhLmNvbnRlbnQubGVuZ3RoO3UrKyl7dmFyIG89YS5jb250ZW50W3VdO28mJm8udHlwZT09PSJ0b29sX3Jlc3VsdCImJm8udG9vbF91c2VfaWQmJihuW28udG9vbF91c2VfaWRdPWJ2KG8uY29udGVudCkpfX1mb3IodmFyIHM9e30sbD0wLGQ9MCxmPSExLGM9dDtjPGUubGVuZ3RoO2MrKyl7dmFyIHY9ZVtjXTtpZighKCF2fHwhQXJyYXkuaXNBcnJheSh2LmNvbnRlbnQpKSlmb3IodmFyIGg9MDtoPHYuY29udGVudC5sZW5ndGg7aCsrKXt2YXIgZz12LmNvbnRlbnRbaF07aWYoISghZ3x8Zy50eXBlIT09InRvb2xfdXNlIikpe3ZhciBtPWcuaW5wdXR8fHt9O2lmKGcubmFtZT09PSJUYXNrQ3JlYXRlIil7Zj0hMCxkKys7dmFyIHk9bltnLmlkXXx8IiIsdz15Lm1hdGNoKC8jKFxkKykvKSxFPXc/d1sxXTpTdHJpbmcoZCk7c1tFXT17aWQ6RSxjb250ZW50Om0uc3ViamVjdHx8IiIsYWN0aXZlRm9ybTptLmFjdGl2ZUZvcm18fCIiLHN0YXR1czoicGVuZGluZyIsb3JkZXI6bCsrfX1lbHNlIGlmKGcubmFtZT09PSJUYXNrVXBkYXRlIil7Zj0hMDt2YXIgQj1TdHJpbmcobS50YXNrSWQpLEQ9c1tCXTtEfHwoRD17aWQ6Qixjb250ZW50OiIiLGFjdGl2ZUZvcm06IiIsc3RhdHVzOiJwZW5kaW5nIixvcmRlcjpsKyt9LHNbQl09RCksbS5zdGF0dXMmJihELnN0YXR1cz1tLnN0YXR1cyksbS5zdWJqZWN0JiYoRC5jb250ZW50PW0uc3ViamVjdCksbS5hY3RpdmVGb3JtJiYoRC5hY3RpdmVGb3JtPW0uYWN0aXZlRm9ybSl9fX19aWYoIWYpcmV0dXJuIG51bGw7dmFyIEY9W107Zm9yKHZhciBJIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsSSkmJnNbSV0uc3RhdHVzIT09ImRlbGV0ZWQiJiZGLnB1c2goc1tJXSk7cmV0dXJuIEYuc29ydChmdW5jdGlvbihMLFApe3JldHVybiBMLm9yZGVyLVAub3JkZXJ9KSxGLmxlbmd0aD9GOm51bGx9ZnVuY3Rpb24gJGEoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aC0xO24+PTA7bi0tKWlmKGVbbl0mJmVbbl0ucm9sZT09PSJ1c2VyIil7dD1uKzE7YnJlYWt9Zm9yKHZhciBpPW51bGwsYT1lLmxlbmd0aC0xO2E+PXQ7YS0tKXt2YXIgdT1lW2FdO2lmKCEoIXUuY29udGVudHx8IUFycmF5LmlzQXJyYXkodS5jb250ZW50KSkpe2Zvcih2YXIgbz11LmNvbnRlbnQubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBzPXUuY29udGVudFtvXTtpZihzLnR5cGU9PT0idG9vbF91c2UiJiZzLm5hbWU9PT0iVG9kb1dyaXRlIiYmcy5pbnB1dCYmcy5pbnB1dC50b2Rvcyl7aT1zLmlucHV0LnRvZG9zO2JyZWFrfX1pZihpKWJyZWFrfX1pfHwoaT1FdihlLHQpKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKGwpe2lmKCFpfHxpLmxlbmd0aD09PTApe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx4aSgpO3JldHVybn1mb3IodmFyIGY9MCxjPTAsdj0iIixoPTA7aDxpLmxlbmd0aDtoKyspaVtoXS5zdGF0dXM9PT0iY29tcGxldGVkIiYmZisrLGlbaF0uc3RhdHVzPT09ImluX3Byb2dyZXNzIiYmKGMrKyx2fHwodj1pW2hdLmFjdGl2ZUZvcm18fGlbaF0uY29udGVudHx8IiIpKTt2YXIgZz1mPT09aS5sZW5ndGgsbT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oeil7cmV0dXJuIHouaWQ9PT1yLnNlbGVjdGVkSWR9KSx5PSEhbSYmbS5zdGF0dXM9PT0icnVubmluZyI7aWYoIXl8fGcpe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx4aSgpO3JldHVybn1sLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGwuY2xhc3NMaXN0LnJlbW92ZSgiYWxsLWRvbmUiKSxkJiZkLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWNvdW50ZXIiKTt3JiYody50ZXh0Q29udGVudD1mKyIvIitpLmxlbmd0aCk7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtdGFzayIpO2lmKEUpe2lmKCF2KXtmb3IodmFyIEI9MDtCPGkubGVuZ3RoO0IrKylpZihpW0JdLnN0YXR1cz09PSJwZW5kaW5nIiYmKGlbQl0uYWN0aXZlRm9ybXx8aVtCXS5jb250ZW50KSl7dj1pW0JdLmFjdGl2ZUZvcm18fGlbQl0uY29udGVudDticmVha319RS50ZXh0Q29udGVudD12fHwiXHU1MUM2XHU1OTA3XHU0RTJEXHUyMDI2In12YXIgRD1pLmxlbmd0aD4wP2YvaS5sZW5ndGg6MCxGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLXJpbmciKTtGJiZGLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixELnRvRml4ZWQoMykpO3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWZpbGwiKTtJJiZJLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixELnRvRml4ZWQoMykpO3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWxpc3QiKTtpZihMKXtmb3IodmFyIFA9IiIsVj0wO1Y8aS5sZW5ndGg7VisrKXt2YXIgeD1pW1ZdLGs9eC5zdGF0dXN8fCJwZW5kaW5nIixUPWs9PT0iaW5fcHJvZ3Jlc3MiPyJhY3RpdmUiOms9PT0iY29tcGxldGVkIj8iZG9uZSI6IiIsTT1rPT09ImluX3Byb2dyZXNzIj8iYWN0aXZlIjprPT09ImNvbXBsZXRlZCI/ImRvbmUiOiJwZW5kaW5nIixKPWs9PT0iY29tcGxldGVkIj8iXHUyNzEzIjprPT09ImluX3Byb2dyZXNzIj8iXHUyMDNBIjoiXHUyNUNCIjtQKz0nPGxpIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWl0ZW0gJytUKyciPjxzcGFuIGNsYXNzPSJ0b2RvLWl0ZW0taWNvbiAnK00rJyI+JytKKyI8L3NwYW4+PHNwYW4+IitwKHguY29udGVudHx8IiIpKyI8L3NwYW4+PC9saT4ifUwuaW5uZXJIVE1MPVB9ci5zZWxlY3RlZElkJiZUYShyLnNlbGVjdGVkSWQpLHhpKCl9fWZ1bmN0aW9uIEZ2KGUpe2UucXVlcnlTZWxlY3RvckFsbCgiLmNvZGUtY29weSIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgbj10LmNsb3Nlc3QoIi5jb2RlLWJsb2NrIiksaT1uP24ucXVlcnlTZWxlY3RvcigiY29kZSIpOm51bGw7aSYmUnIoaS50ZXh0Q29udGVudHx8IiIsbnVsbCxmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcGllZCEiLHQuY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcHkiLHQuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9KX0pfSl9ZnVuY3Rpb24gVXMoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY29kZS1jb3B5IikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LmNsb25lTm9kZSghMCk7dC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuLHQpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9bi5jbG9zZXN0KCIuY29kZS1ibG9jayIpLGE9aT9pLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTpudWxsO2EmJlJyKGEudGV4dENvbnRlbnR8fCIiLG51bGwsZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3B5IixuLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfSl9KX0pLHd2KGUpfXZhciBvaD17dGltZXI6bnVsbCxhY3RpdmVCdG46bnVsbH07ZnVuY3Rpb24gd3YoZSl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlczt0JiZlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLnF1ZXJ5U2VsZWN0b3IoIi5tc2ctY29weS1idG4iKSl7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO2lmKGkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2EuY2xhc3NOYW1lPSJtc2ctY29weS1idG4iLGEudGV4dENvbnRlbnQ9Ilx1NTkwRFx1NTIzNiIsYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odSl7dS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbz1pLmlubmVyVGV4dHx8aS50ZXh0Q29udGVudHx8IiI7UnIoby50cmltKCksbnVsbCxmdW5jdGlvbigpe2EudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsYS5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixhLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSwxNTAwKX0pfSksbi5hcHBlbmRDaGlsZChhKX19fSl9KGZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcztpZih0KXt2YXIgbj1udWxsLGk9MDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXt2YXIgdT1hLnRhcmdldC5jbG9zZXN0KCIuY2hhdC1tZXNzYWdlIik7aWYodSl7dmFyIG89dS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO28mJihpPWEudG91Y2hlc1swXS5jbGllbnRZLG49c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBzPXUucXVlcnlTZWxlY3RvcigiLm1zZy1jb3B5LWJ0biIpO3MmJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2wuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSkscy5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpfSw1MDApKX19LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihhKXtuJiZNYXRoLmFicyhhLnRvdWNoZXNbMF0uY2xpZW50WS1pKT4xMCYmKGNsZWFyVGltZW91dChuKSxuPW51bGwpfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmdW5jdGlvbigpe24mJihjbGVhclRpbWVvdXQobiksbj1udWxsKX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS50YXJnZXQuY2xvc2VzdCgiLm1zZy1jb3B5LWJ0biIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSl9KX19KSgpO2Z1bmN0aW9uIEN2KGUpe2lmKCFlKXJldHVybiExO3ZhciB0PVN0cmluZyhlKS50cmltKCk7cmV0dXJuIHQ/ISEodC5pbmRleE9mKCJcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAiKT09PTB8fHQ9PT0iXHUyNzZGInx8dD09PSJcdTIwM0EifHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdezIsfSQvLnRlc3QodCl8fC9eW+KWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWlOKWleKWj+KWkF0rJC8udGVzdCh0KXx8dC5pbmRleE9mKCJlc2MgdG8gaW50ZXJydXB0IikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgQ29kZSB2IikhPT0tMXx8L15Tb25uZXRcYi8udGVzdCh0KXx8dC5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCBBbnRocm9waWMiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBDb2RlIGhhcyBzd2l0Y2hlZCIpIT09LTF8fHQuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpIT09LTF8fHQuaW5kZXhPZigiW3dhbmRdIikhPT0tMXx8dC5pbmRleE9mKCIwOyIpPT09MHx8dC5pbmRleE9mKCI5OyIpPT09MHx8dC5pbmRleE9mKCJjdHJsK2ciKSE9PS0xfHx0LmluZGV4T2YoIi9lZmZvcnQiKSE9PS0xfHwvXlVzaW5nIC4qIGZvciAuKiBzZXNzaW9uLy50ZXN0KHQpfHx0LmluZGV4T2YoIlByZXNzICIpPT09MCYmdC5pbmRleE9mKCIgZm9yIikhPT0tMXx8dC5pbmRleE9mKCJ0eXBlICIpPT09MCYmdC5pbmRleE9mKCIgdG8gIikhPT0tMXx8dC5pbmRleE9mKCJhdXRvIG1vZGUgaXMgdW5hdmFpbGFibGUiKSE9PS0xfHwvTUNQIHNlcnZlci4qZmFpbGVkL2kudGVzdCh0KXx8dC5pbmRleE9mKCJHZXJtaW5hdGluZyIpIT09LTF8fHQuaW5kZXhPZigiRG9vZGxpbmciKSE9PS0xfHx0LmluZGV4T2YoIkJyZXdpbmciKSE9PS0xfHx0LmluZGV4T2YoIlBlcm1pc3Npb25zIikhPT0tMSYmdC5pbmRleE9mKCJtb2RlIikhPT0tMXx8dC5pbmRleE9mKCJcdTI1Q0YiKT09PTAmJnQuaW5kZXhPZigiXHhCNyIpIT09LTF8fHQuaW5kZXhPZigiWz4iKT09PTB8fHQuaW5kZXhPZigiWzwiKT09PTB8fHQuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKSE9PS0xfHwvXj5fXHMqT3BlbkFJIENvZGV4XGIvLnRlc3QodCl8fC9eT3BlbkFJIENvZGV4XGIvaS50ZXN0KHQpfHwvXihtb2RlbHxkaXJlY3RvcnkpOlxzKy9pLnRlc3QodCl8fC9eKHRpcHxjb250ZXh0KTpccysvaS50ZXN0KHQpfHwvXndvcmsodHJlZXxzcGFjZSk6XHMrL2kudGVzdCh0KXx8L14oYXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKy9pLnRlc3QodCl8fC9eKHRoaW5raW5nfHdvcmtpbmcpKFwuXC5cLnzigKYpPyQvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytXb3JraW5nXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccysoUnVubmluZ3xQbGFubmluZ3xBcHBseWluZ3xSZWFkaW5nfFNlYXJjaGluZylcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzKyhJbnNwZWN0aW5nfFJldmlld2luZ3xTdW1tYXJpemluZ3xFZGl0aW5nfFVwZGF0aW5nfFdyaXRpbmcpXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytDb21wbGV0ZWRcYi9pLnRlc3QodCl8fC9eKGN0cmx8ZW50ZXJ8dGFifHNoaWZ0fGVzY3xhbHQpXCsvaS50ZXN0KHQpfHwvXGIob3BlbnxjbG9zZXx0b2dnbGUpIChjaGF0fHRlcm1pbmFsKVxiL2kudGVzdCh0KXx8L1xiKGFwcHJvdmV8ZGVueSlcYi4qXGIocGVybWlzc2lvbnxhcHByb3ZhbClcYi9pLnRlc3QodCl8fC9eKHVzZXxwcmVzcykgLiogKHRvfGZvcikgLiovaS50ZXN0KHQpfHwvXig/OnRva2VufGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGNvbnZlcnNhdGlvbik6XHMrL2kudGVzdCh0KXx8L14oPzpjd2R8cGF0aCk6XHMrXC8vaS50ZXN0KHQpfHwvXls8PuKUguKUhuKVjl0uKls8PuKUguKUhuKVjl0kLy50ZXN0KHQpJiZ0Lmxlbmd0aDw4KTohMX1mdW5jdGlvbiBCdihlKXtyZXR1cm4gU3RyaW5nKGV8fCIiKS5yZXBsYWNlKC9ceDFiXF1bXlx4MDddKihceDA3fFx4MWJcXCkvZywiIikucmVwbGFjZSgvXHgxYlxbKFxkKylDL2csZnVuY3Rpb24odCxuKXtyZXR1cm4iICIucmVwZWF0KE51bWJlcihuKXx8MSl9KS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltBQl0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW3N1XS9nLCIiKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltIZkpLcl0vZyxgCmApLnJlcGxhY2UoL1x4MWJNL2csYApgKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltTVF0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW2EtekEtWl0vZywiIikucmVwbGFjZSgvXHgxYls+PD1lUFheX10vZywiIikucmVwbGFjZSgvW1x1MDBhMFx1MjAwYi1cdTIwMGRcdWZlZmZdL2csIiAiKS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwYlx4MGNceDBlLVx4MWZdL2csIiIpLnJlcGxhY2UoL1xyXG4/L2csYApgKS5yZXBsYWNlKC9bIFx0XStcbi9nLGAKYCkucmVwbGFjZSgvXG57Myx9L2csYAoKYCl9ZnVuY3Rpb24gRHYoZSx0KXt2YXIgbj1bXTtpZighZSlyZXR1cm4gbjt2YXIgaT1TdHJpbmcoZXx8IiIpLGE9YApgLHU9IlxyIixvPSJceDFCIjtpZigvXmNvZGV4XGIvLnRlc3QoU3RyaW5nKHR8fCIiKS50cmltKCkpKXtsZXQgbGU9ZnVuY3Rpb24oTil7cmV0dXJuIFN0cmluZyhOfHwiIikucmVwbGFjZSgvXHgxYlxdW15ceDA3XSooXHgwN3xceDFiXFwpL2csIiIpLnJlcGxhY2UoL1x4MWJcWyhcZCspQy9nLGZ1bmN0aW9uKGosUSl7cmV0dXJuIiAiLnJlcGVhdChOdW1iZXIoUSl8fDEpfSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbQUJdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbc3VdL2csIiIpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0hmSktyXS9nLGEpLnJlcGxhY2UoL1x4MWJNL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbU1RdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbYS16QS1aXS9nLCIiKS5yZXBsYWNlKC9ceDFiWz48PWVQWF5fXS9nLCIiKS5yZXBsYWNlKC9bXHUwMGEwXHUyMDBiLVx1MjAwZFx1ZmVmZl0vZywiICIpLnJlcGxhY2UoL1tceDAwLVx4MDhceDBiXHgwY1x4MGUtXHgxZl0vZywiIikucmVwbGFjZSgvWyBcdF0rXG4vZyxhKX0sYXQ9ZnVuY3Rpb24oTil7cmV0dXJuIFN0cmluZyhOfHwiIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9bTV0rJC9nLCIiKS50cmltKCl9LGh0PWZ1bmN0aW9uKE4pe3JldHVybiBTdHJpbmcoTnx8IiIpLnJlcGxhY2UoL17igLpccyovLCIiKS5yZXBsYWNlKC9ePlxzKi8sIiIpLnRyaW0oKX0seXQ9ZnVuY3Rpb24oTil7dmFyIGo9U3RyaW5nKE58fCIiKS50cmltKCk7cmV0dXJuISEoIWp8fEN2KGopfHxFLnRlc3Qoail8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3Qoail8fC9eXFs+WzAtOTs/XSp1JC9pLnRlc3Qoail8fC9eTSskL2kudGVzdChqKXx8L14oPzpPcGVuQUkgQ29kZXh8Q29kZXgpXGIvaS50ZXN0KGopfHwvXig/OnRva2Vucz98Y29udGV4dCB3aW5kb3d8cmVtYWluaW5nIGNvbnRleHR8YXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKi9pLnRlc3Qoail8fC9eKD86dGhpbmtpbmd8d29ya2luZylccyooPzpcLlwuXC584oCmKT8kL2kudGVzdChqKXx8L15b4oCi4pemwrddXHMrKD86dGhpbmtpbmd8d29ya2luZ3xydW5uaW5nfHBsYW5uaW5nfGFwcGx5aW5nfHJlYWRpbmd8c2VhcmNoaW5nfGluc3BlY3Rpbmd8cmV2aWV3aW5nfHN1bW1hcml6aW5nfGVkaXRpbmd8dXBkYXRpbmd8d3JpdGluZ3xjb21wbGV0ZWQpXGIvaS50ZXN0KGopfHwvXig/Om1vZGVsfGRpcmVjdG9yeXx0aXB8Y29udGV4dHxjd2R8cGF0aCk6XHMrL2kudGVzdChqKSl9LGFuPWZ1bmN0aW9uKE4pe3ZhciBqPVN0cmluZyhOfHwiIikudHJpbSgpO2lmKCEvXuKAuig/OlxzfCQpLy50ZXN0KGopfHxFLnRlc3QoaikpcmV0dXJuIG51bGw7dmFyIFE9YXQoaHQoaikpO3JldHVybiFRfHx5dChRKT9udWxsOlF9LGFlPWZ1bmN0aW9uKE4pe3ZhciBqPVN0cmluZyhOfHwiIikudHJpbSgpO2lmKCEvXlvigKLil6bCt+KPul0vLnRlc3QoaikpcmV0dXJuIG51bGw7dmFyIFE9ai5yZXBsYWNlKC9eW+KAouKXpsK3XVxzKi8sIiIpLnJlcGxhY2UoL17ij7pccysvLCIiKS5yZXBsYWNlKC9e4pSCXHMqLywiIikudHJpbSgpO3JldHVybiFRfHwvXlvigKLil6bCt+KPul0kLy50ZXN0KFEpfHwoUT1RLnJlcGxhY2UoL1xzKlwoXGQrW3NtaF0/XHMq4oCiXHMqZXNjIHRvIGludGVycnVwdFwpW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvKD86W2Etel17MSw2fSk/4oC6W1xzXFNdKiQvLCIiKS5yZXBsYWNlKC9cc3syLH1ncHQtXGRbXHNcU10qJC9pLCIiKS5yZXBsYWNlKC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6KVxiW1xzXFNdKiQvaSwiIiksUT1hdChRKSwhUXx8US5sZW5ndGg8Mnx8Qi50ZXN0KFEpfHx5dChRKSk/bnVsbDpRfSx1dD1mdW5jdGlvbihOKXt2YXIgaj1hdChOKTtyZXR1cm4hanx8eXQoail8fC9eW+KAouKXpsK34o+64oC6XS8udGVzdChqKXx8L15bXFtcXTw+MC05Oz9dK3U/JC9pLnRlc3Qoail8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3Qoail8fGoubGVuZ3RoPjUwMD9udWxsOmp9LGtlPWZ1bmN0aW9uKE4sail7aWYoTi5pbmRleE9mKGopIT09MClyZXR1cm4hMTt2YXIgUT1OLnNsaWNlKGoubGVuZ3RoKTtyZXR1cm4vXlthLXpdezEsNH0kL2kudGVzdChRKX0sWWU9ZnVuY3Rpb24oTil7Zm9yKHZhciBqPVtdLFE9MDtRPE4ubGVuZ3RoO1ErKyl7dmFyIGVlPWF0KE5bUV0pO2lmKCEoIWVlfHxlZS5sZW5ndGg8Mnx8eXQoZWUpKSl7dmFyIG1lPWpbai5sZW5ndGgtMV07aWYoIW1lKXtqLnB1c2goZWUpO2NvbnRpbnVlfWlmKGVlIT09bWUpe2lmKGVlLmluZGV4T2YobWUpPT09MCl7altqLmxlbmd0aC0xXT1lZTtjb250aW51ZX1pZihtZS5pbmRleE9mKGVlKT09PTApe2tlKG1lLGVlKSYmKGpbai5sZW5ndGgtMV09ZWUpO2NvbnRpbnVlfWoucHVzaChlZSl9fX1yZXR1cm4gai5qb2luKGEpLnRyaW0oKX0sQWU9ZnVuY3Rpb24oTil7Zm9yKHZhciBqPTA7ajxOLmxlbmd0aDtqKyspe3ZhciBRPVN0cmluZyhOW2pdfHwiIikudHJpbSgpO2lmKFEpe3ZhciBlZT1hbihRKTtpZihlZSlyZXR1cm4gZWU7aWYoUT09PSJcdTIwM0EiKWZvcih2YXIgbWU9aisxO21lPE4ubGVuZ3RoO21lKyspe3ZhciBOZT1hdChOW21lXSk7aWYoISghTmV8fEUudGVzdChOZSl8fHl0KE5lKSkpcmV0dXJuIE5lfX19cmV0dXJuIG51bGx9LExlPWZ1bmN0aW9uKE4pe2Zvcih2YXIgaj1bXSxRPSExLGVlPTA7ZWU8Ti5sZW5ndGg7ZWUrKyl7dmFyIG1lPVN0cmluZyhOW2VlXXx8IiIpLnRyaW0oKTtpZighbWUpe2lmKFEpYnJlYWs7Y29udGludWV9dmFyIE5lPWFlKG1lKTtpZihOZSl7ai5wdXNoKE5lKSxRPSEwO2NvbnRpbnVlfWlmKFEpe2lmKG1lPT09Ilx1MjAzQSJ8fC9e4oC6KD86XHN8JCkvLnRlc3QobWUpfHxFLnRlc3QobWUpfHx5dChtZSkpYnJlYWs7ai5wdXNoKGF0KG1lKSl9fXJldHVybiBqfTtmb3IodmFyIHM9bGUsbD1hdCxkPWh0LGY9eXQsYz1hbix2PWFlLGg9dXQsZz1rZSxtPVllLHk9QWUsdz1MZSxFPS9cYmdwdC1cZCsoPzpcLlxkKyk/KD86XHMrW2EtejAtOS4tXSspP1xzK8K3XHMrXGQrJVxzK2xlZnRccyvCt1xzKyg/OlwvfH5cLykuKy9pLEI9L14oPzp0aGlua2luZ3x3b3JraW5nfHJ1bm5pbmd8cGxhbm5pbmd8YXBwbHlpbmd8cmVhZGluZ3xzZWFyY2hpbmd8aW5zcGVjdGluZ3xyZXZpZXdpbmd8c3VtbWFyaXppbmd8ZWRpdGluZ3x1cGRhdGluZ3x3cml0aW5nfGNvbXBsZXRlZClcYi9pLEQ9W10sRj0wLEk9aS5yZXBsYWNlKC9cclxuPy9nLGEpLnNwbGl0KGEpLEw9MDtMPEkubGVuZ3RoO0wrKylmb3IodmFyIFA9bGUoSVtMXSksVj1QLnNwbGl0KGEpLHg9MDt4PFYubGVuZ3RoO3grKyl7dmFyIGs9U3RyaW5nKFZbeF18fCIiKS50cmltKCk7aWYoayl7dmFyIFQ9YW4oayk7aWYoVCl7RC5wdXNoKHtraW5kOiJ1c2VyIixvcmRlcjpGKyssdGV4dDpUfSk7Y29udGludWV9dmFyIE09YWUoayk7aWYoTSl7RC5wdXNoKHtraW5kOiJhc3Npc3RhbnQiLG9yZGVyOkYrKyx0ZXh0Ok19KTtjb250aW51ZX12YXIgSj11dChrKTtKJiZELnB1c2goe2tpbmQ6ImVjaG8iLG9yZGVyOkYrKyx0ZXh0Okp9KX19Zm9yKHZhciB6PUQuZmlsdGVyKGZ1bmN0aW9uKE4saixRKXt2YXIgZWU9UVtqLTFdO3JldHVybiFlZXx8ZWUua2luZCE9PU4ua2luZHx8ZWUudGV4dCE9PU4udGV4dH0pLEc9ei5maWx0ZXIoZnVuY3Rpb24oTil7cmV0dXJuIE4ua2luZD09PSJ1c2VyIn0pLHNlPXouZmlsdGVyKGZ1bmN0aW9uKE4pe3JldHVybiBOLmtpbmQ9PT0iYXNzaXN0YW50In0pLHRlPXouZmlsdGVyKGZ1bmN0aW9uKE4pe3JldHVybiBOLmtpbmQ9PT0iZWNobyJ9KSxaPUJ2KGkpLHE9Wi5zcGxpdChhKS5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIFN0cmluZyhOfHwiIikudHJpbUVuZCgpfSksTz1BZShxKSxfPUcubGVuZ3RoP0dbRy5sZW5ndGgtMV06bnVsbCxZPXRlLm1hcChmdW5jdGlvbihOKXtyZXR1cm4gTi50ZXh0fSkuZmlsdGVyKGZ1bmN0aW9uKE4pe3JldHVybiBOLmxlbmd0aD49M30pLEs9bnVsbCxyZT1ZLmxlbmd0aC0xO3JlPj0wO3JlLS0paWYoWVtyZV0hPT1PKXtLPVlbcmVdO2JyZWFrfSFLJiZZLmxlbmd0aCYmKEs9WVtZLmxlbmd0aC0xXSk7Zm9yKHZhciBkZT1fP18udGV4dDpLLG5lPXNlLmZpbHRlcihmdW5jdGlvbihOKXtyZXR1cm4hX3x8Ti5vcmRlcj5fLm9yZGVyfSkubWFwKGZ1bmN0aW9uKE4pe3JldHVybiBOLnRleHR9KSxpZT1bXSxPZT1aLm1hdGNoKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKiguKykkL2dtKXx8W10sRmU9MDtGZTxPZS5sZW5ndGg7RmUrKyl7dmFyIGNlPWF0KE9lW0ZlXS5yZXBsYWNlKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKi8sIiIpKTtjZSYmKEIudGVzdChjZSl8fEUudGVzdChjZSl8fC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6fGVzYyB0byBpbnRlcnJ1cHQpXGIvaS50ZXN0KGNlKXx8aWUucHVzaChjZSkpfXZhciBSPVllKG5lKXx8WWUoTGUocSkpfHwoaWUubGVuZ3RoP2llW2llLmxlbmd0aC0xXTpudWxsKTtyZXR1cm4gZGUmJm4ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpkZX0pLFImJm4ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50OlJ9KSwhbi5sZW5ndGgmJl8/bi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Ol8udGV4dH0pOiFuLmxlbmd0aCYmSyYmbi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Okt9KSxufWZvcih2YXIgbXQ9IlwwIixQZT0iXGIiLCQ9Ilx2IixoZT0iXGYiLHllPSIOIix3ZT0iHyIscGU9Ilx4QTAiLGJlPSJceDA3IixBdD1uZXcgUmVnRXhwKG8rIlxcW1swLTk7P10qW2EtekEtWl18IitvKyJcXF1bXiIrYmUrIl0qKCIrYmUrInwiK28rIlxcXFxcXFxcKXwiK28rIls+PD1lUF9YXl18WyIrbXQrIi0iK1BlKyQraGUreWUrIi0iK3dlKyJdfCIrcGUrInwiK3UsImciKSxldD1pLnJlcGxhY2UoQXQsZnVuY3Rpb24obGUpe3JldHVybiBsZT09PXBlPyIgIjpsZT09PXU/YToiIn0pLnNwbGl0KHUpLmpvaW4oYSksaXQ9ZXQuc3BsaXQoYSkubWFwKGZ1bmN0aW9uKGxlKXtyZXR1cm4gbGUudHJpbSgpfSkuZmlsdGVyKEJvb2xlYW4pLEhlPVsvdGhpbmtpbmcgd2l0aCBoaWdoIGVmZm9ydC9pLC90aGlua2luZyB3aXRoIG1lZGl1bSBlZmZvcnQvaSwvdGhpbmtpbmcgd2l0aCBsb3cgZWZmb3J0L2ksbmV3IFJlZ0V4cCgidGhvdWdodCBmb3IgWzAtOV0rcyIsImkiKSxuZXcgUmVnRXhwKCJTYXV0ZWVkIGZvciBbMC05XSttIiwiaSIpLC9HZXJtaW5hdGluZy9pLC9Eb29kbGluZy9pLC9CcmV3aW5nL2ldLFV0PW51bGwsS2U9LTEsVmU9W10sQ2U9W10sb2U9W10sdmU9MDt2ZTxpdC5sZW5ndGg7dmUrKyl7dmFyIEM9aXRbdmVdLHR0PUMucmVwbGFjZSgvXuKdr1xzKi8sIiIpO2lmKHR0LmluZGV4T2YoJ1RyeSInKT09PTB8fHR0LmluZGV4T2YoJ1RyeSAiJyk9PT0wKXtWZS5wdXNoKHR0KTtjb250aW51ZX1mb3IodmFyIGR0PSExLHh0PTA7eHQ8SGUubGVuZ3RoO3h0KyspaWYoSGVbeHRdLnRlc3QoQykpe2R0PSEwLG9lLnB1c2goQyk7YnJlYWt9aWYoIWR0JiZDJiZDLmluZGV4T2YoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpIT09MCYmQyE9PSJcdTI3NkYiJiZDLmluZGV4T2YoImVzYyB0byBpbnRlcnJ1cHQiKT09PS0xJiZDLmluZGV4T2YoIkNsYXVkZSBDb2RlIHYiKT09PS0xJiZDLmluZGV4T2YoIlNvbm5ldCIpPT09LTEmJkMuaW5kZXhPZigifi8iKSE9PTAmJkMuaW5kZXhPZigiXHUyNUNGIGhpZ2giKT09PS0xJiZDLmluZGV4T2YoIkZhaWxlZCB0byBpbnN0YWxsIEFudGhyb3BpYyBtYXJrZXRwbGFjZSIpPT09LTEmJkMuaW5kZXhPZigiQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIGZyb20gbnBtIHRvIG5hdGl2ZSBpbnN0YWxsZXIiKT09PS0xJiZDLmluZGV4T2YoIkZsdXR0ZXJpbmciKT09PS0xJiZDLmluZGV4T2YoIj8gZm9yIHNob3J0Y3V0cyIpPT09LTEmJkMuaW5kZXhPZigiMDsiKSE9PTAmJkMuaW5kZXhPZigiOTsiKSE9PTAmJkMuaW5kZXhPZigiQ2xhdWRlIGlzIHdhaXRpbmciKT09PS0xJiYhKEMuaW5kZXhPZigiXHUyNzIyIikhPT0tMXx8Qy5pbmRleE9mKCJcdTI3MzMiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczNiIpIT09LTF8fEMuaW5kZXhPZigiXHUyNzNCIikhPT0tMXx8Qy5pbmRleE9mKCJcdTI3M0QiKSE9PS0xKSYmIShDLmluZGV4T2YoIlx1MjU5MCIpPT09MHx8Qy5pbmRleE9mKCJcdTI1OUQiKT09PTB8fEMuaW5kZXhPZigiXHUyNTk4Iik9PT0wKSYmISgoQz09PSJsdSJ8fEM9PT0idWUifHxDPT09InRyInx8Qz09PSJ0aSJ8fEM9PT0iZyJ8fEM9PT0ibiJ8fEM9PT0iaVx1MjAyNiJ8fEM9PT0iXHUyMDI2Inx8Qz09PSJ1dHMifHxDPT09Imx0Inx8Qz09PSJyZyJ8fEM9PT0iXHhCNyIpJiZDLmxlbmd0aDw0KSYmIShDLmluZGV4T2YoIlx1MjczREYiKT09PTB8fEMuaW5kZXhPZigiXHUyNzNCRiIpPT09MCkmJkMuaW5kZXhPZigibnBtIFdBUk4iKT09PS0xJiZDLmluZGV4T2YoIm5wbSBub3RpY2UiKT09PS0xJiYhKEMuaW5kZXhPZigiYWRkZWQgIikhPT0tMSYmQy5pbmRleE9mKCIgcGFja2FnZXMiKSE9PS0xKSYmQy5pbmRleE9mKCJhdWRpdGVkICIpPT09LTEmJiEoQy5pbmRleE9mKCJmb3VuZCAiKSE9PS0xJiZDLmluZGV4T2YoIiB2dWxuZXJhYmlsaXRpZXMiKSE9PS0xKSYmIShDLmluZGV4T2YoIlVzaW5nICIpIT09LTEmJkMuaW5kZXhPZigiIGZvciAiKSE9PS0xJiZDLmluZGV4T2YoInNlc3Npb24iKSE9PS0xKSYmQy5pbmRleE9mKCJZb3UgY2FuIHVzZSIpPT09LTEmJiEoQy5pbmRleE9mKCJQcmVzcyAiKSE9PS0xJiZDLmluZGV4T2YoIiBmb3IiKSE9PS0xKSYmIShDLmluZGV4T2YoInR5cGUgIik9PT0wJiZDLmluZGV4T2YoIiB0byAiKSE9PS0xKSYmQy5pbmRleE9mKCJbd2FuZF0iKSE9PTAmJkMuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKT09PS0xJiZDLmluZGV4T2YoIlx1MjNGNSIpPT09LTEmJkMuaW5kZXhPZigiYWNjZXB0ZWRpdCIpPT09LTEmJkMuaW5kZXhPZigic2hpZnQrdGFiIik9PT0tMSYmQy5pbmRleE9mKCJ0YWJ0b2N5Y2xlIik9PT0tMSYmQy5pbmRleE9mKCJjdHJsK2ciKT09PS0xJiZDLmluZGV4T2YoIi9lZmZvcnQiKT09PS0xJiYhKEMuaW5kZXhPZigiT3B1cyIpIT09LTEmJkMuaW5kZXhPZigibW9kZWwiKSE9PS0xKSYmQy5pbmRleE9mKCJIYWlrdSIpPT09LTEmJkMuaW5kZXhPZigidG8gY3ljbGUiKT09PS0xJiYhKEMuaW5kZXhPZigiaGlnaCBceEI3IikhPT0tMXx8Qy5pbmRleE9mKCJoaWdoXHhCNyIpIT09LTEpJiYhKEMuaW5kZXhPZigibWVkaXVtIFx4QjciKSE9PS0xfHxDLmluZGV4T2YoIm1lZGl1bVx4QjciKSE9PS0xKSYmIShDLmluZGV4T2YoImxvdyBceEI3IikhPT0tMXx8Qy5pbmRleE9mKCJsb3dceEI3IikhPT0tMSkpe2lmKEMuaW5kZXhPZigiXHUyNUNGIik9PT0wKXtpZihDPUMuc2xpY2UoMSkudHJpbSgpLCFDKWNvbnRpbnVlO0NlLnB1c2goQyk7Y29udGludWV9Qy5sZW5ndGg8MyYmIS9eW2EtekEtWl17M30kLy50ZXN0KEMpfHxDZS5wdXNoKEMpfX1pZihvZS5sZW5ndGg+MCl7dmFyIGd0PW9lW29lLmxlbmd0aC0xXSxTdD1ndC5tYXRjaChuZXcgUmVnRXhwKCJmb3IgKFswLTldK1ttc10rfCBbMC05XSttIFswLTldK3MpIiwiaSIpKSxLdD1TdD8iXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzICIrU3RbMF0ucmVwbGFjZSgvZm9yIC9pLCIiKToiXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzXHU0RTJELi4uIjtuLnB1c2goe3JvbGU6InRoaW5raW5nIixjb250ZW50Okt0LHR5cGU6ImRlZXAtdGhvdWdodCJ9KX1pZihWZS5sZW5ndGg+MCl7dmFyIEp0PVZlW1ZlLmxlbmd0aC0xXS5yZXBsYWNlKC9eVHJ5XHMqLywiIikudHJpbSgpO24ucHVzaCh7cm9sZToicHJvbXB0Iixjb250ZW50Okp0LHR5cGU6InN1Z2dlc3Rpb24ifSl9aWYoIUNlLmxlbmd0aClyZXR1cm4gbjtmb3IodmFyIFRlPVtdLEplPW51bGwsX2U9W10sdmU9MDt2ZTxDZS5sZW5ndGg7dmUrKylpZihDPUNlW3ZlXSxDLmluZGV4T2YoIlx1Mjc2RiIpPT09MCl7dmFyIEl0PUMucmVwbGFjZSgvXuKdr1xzKi8sIiIpLnRyaW0oKTtpZihJdC5pbmRleE9mKCdUcnkiJyk9PT0wfHxJdC5pbmRleE9mKCdUcnkgIicpPT09MCljb250aW51ZTtKZSE9PW51bGwmJl9lLmxlbmd0aD4wJiYoVGUucHVzaCh7dXNlcjpKZSxhc3Npc3RhbnRMaW5lczpfZX0pLF9lPVtdKSxJdD9KZT1JdDooSmUhPT1udWxsJiZfZS5sZW5ndGg+MCYmKFRlLnB1c2goe3VzZXI6SmUsYXNzaXN0YW50TGluZXM6X2V9KSxfZT1bXSksSmU9bnVsbCl9ZWxzZSBKZSE9PW51bGwmJihDLmluZGV4T2YoIlx1MjNGQSIpIT09LTEmJihDLmluZGV4T2YoIkhpISIpIT09LTF8fEMuaW5kZXhPZigiSGVsbG8iKSE9PS0xfHxDLmluZGV4T2YoIldoYXQiKSE9PS0xfHxDLmluZGV4T2YoIndvcmtpbmciKSE9PS0xKT9fZS5wdXNoKEMpOkMuaW5kZXhPZigiXHUyM0ZBIik9PT0wP19lLnB1c2goQy5zbGljZSgxKS50cmltKCl8fEMpOkMubGVuZ3RoPj04JiZDLmluZGV4T2YoIlx1MjcyMiIpPT09LTEmJkMuaW5kZXhPZigiXHUyNzMzIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3MzYiKT09PS0xJiZDLmluZGV4T2YoIlx1MjczQiIpPT09LTEmJkMuaW5kZXhPZigiXHUyNzNEIik9PT0tMSYmQy5pbmRleE9mKCJcdTI1OTAiKSE9PTAmJkMuaW5kZXhPZigiXHUyNTlEIikhPT0wJiZDLmluZGV4T2YoIlx1MjU5OCIpIT09MCYmQy5pbmRleE9mKCJlc2N0b2ludGVycnVwdCIpPT09LTEmJkMuaW5kZXhPZigiP2ZvciIpIT09MCYmQy5pbmRleE9mKCI/IGZvciIpIT09MCYmX2UucHVzaChDKSk7aWYoSmUhPT1udWxsJiZfZS5sZW5ndGg+MCYmVGUucHVzaCh7dXNlcjpKZSxhc3Npc3RhbnRMaW5lczpfZX0pLFRlLmxlbmd0aD09PTApe2Zvcih2YXIgbm49IiIsVHQ9LTEsdmU9MDt2ZTxDZS5sZW5ndGg7dmUrKylpZihDPUNlW3ZlXSwhKEMuaW5kZXhPZignVHJ5IicpPT09MHx8Qy5pbmRleE9mKCdUcnkgIicpPT09MCkmJkMuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwiKT09PS0xJiZDLmluZGV4T2YoImN0cmwrZyIpPT09LTEmJkMuaW5kZXhPZigiXHUyNUNGICIpIT09MCYmIShDLmxlbmd0aDwyfHxDLmxlbmd0aD4xMDApJiYvXlthLXpBLVpdLy50ZXN0KEMpKXtubj1DLnRyaW0oKSxUdD12ZTticmVha31pZihubiYmVHQ+PTApe3ZhciBybj1DZS5zbGljZShUdCsxKS5maWx0ZXIoZnVuY3Rpb24obGUpe3JldHVybiBsZS5sZW5ndGg+PTh9KTtybi5sZW5ndGg+MCYmVGUucHVzaCh7dXNlcjpubixhc3Npc3RhbnRMaW5lczpybn0pfX1mb3IodmFyIGN0PTA7Y3Q8VGUubGVuZ3RoO2N0KyspaWYobi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50OlRlW2N0XS51c2VyfSksVGVbY3RdLmFzc2lzdGFudExpbmVzLmxlbmd0aD4wKXt2YXIgWXQ9c20oVGVbY3RdLmFzc2lzdGFudExpbmVzLmpvaW4oYSkpO24ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50Oll0fSl9cmV0dXJuIG59dmFyIEtzPSJ0cmFuc3BhcmVudCI7ZnVuY3Rpb24gU2koZSx0KXtmb3IodmFyIG49dHx8MyxpPWVbMF0ubGVuZ3RoKm4sYT1lLmxlbmd0aCpuLHU9IiIsbz0wO288ZS5sZW5ndGg7bysrKWZvcih2YXIgcz0wO3M8ZVtvXS5sZW5ndGg7cysrKWVbb11bc10hPT1LcyYmKHUrPSc8cmVjdCB4PSInK3MqbisnIiB5PSInK28qbisnIiB3aWR0aD0iJytuKyciIGhlaWdodD0iJytuKyciIGZpbGw9IicrZVtvXVtzXSsnIi8+Jyk7cmV0dXJuJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgJytpKyIgIithKyciIGNsYXNzPSJwaXhlbC1hdmF0YXItc3ZnIj4nK3UrIjwvc3ZnPiJ9ZnVuY3Rpb24gSWkoZSl7dmFyIHQ9S3Msbj1lLmJhc2UsaT1lLmRhcmssYT1lLmxpZ2h0fHxlLmJhc2UsdT1lLmFjY2VudHx8IiNGRkZGRkYiLG89ZS5leWV8fCIjMkQyRDJEIixzPWUubW91dGh8fCIjRjI4QjlBIixsPWUubm9zZXx8ZS5kYXJrO3JldHVybltbdCxpLHQsdCx0LHQsdCx0LGksdF0sW2ksbixpLHQsdCx0LHQsaSxuLGldLFtpLG4sbixuLG4sbixuLG4sbixpXSxbbixuLHUsbyxuLG4sdSxvLG4sbl0sW24sbix1LHUsbixuLHUsdSxuLG5dLFtuLG4sbixuLHMscyxuLG4sbixuXSxbbixsLG4sYSxuLG4sYSxuLGwsbl0sW3QsbixuLG4sbixuLG4sbixuLHRdLFt0LHQsbixpLG4sbixpLG4sdCx0XSxbdCx0LHQsbix0LHQsbix0LHQsdF1dfXZhciBrdj17YmFzZToiI0YwOTIzQSIsZGFyazoiI0M0NkExQSIsbGlnaHQ6IiNGMDkyM0EiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIsbm9zZToiI0U4N0Q1QSJ9LEF2PXtiYXNlOiIjOUVBQUI4IixkYXJrOiIjNkI3QjhEIixsaWdodDoiI0M1Q0VEOCIsYWNjZW50OiIjRkZGRkZGIixleWU6IiM3RUM4OEIiLG1vdXRoOiIjRjI4QjlBIn0sSnM9W3tiYXNlOiIjNUE4RkUwIixkYXJrOiIjMkU1QkIzIixsaWdodDoiIzlDQzBGMiIsYWNjZW50OiIjRkZGRkZGIixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNUE4RkUwIn0se2Jhc2U6IiNBMDZGRTAiLGRhcms6IiM2QjQ1QTgiLGxpZ2h0OiIjQzhBNEYyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRTM2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiNBMDZGRTAifSx7YmFzZToiIzdCQjc2QiIsZGFyazoiIzRGOEE0MCIsbGlnaHQ6IiNBOUQ0OUMiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzdCQjc2QiJ9LHtiYXNlOiIjRDg2QTg4IixkYXJrOiIjOUMzQTU3IixsaWdodDoiI0U4QTRCNSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRkZGRkZGIixwcmltYXJ5OiIjRDg2QTg4In0se2Jhc2U6IiM1QkI3QjAiLGRhcms6IiMyRTc4NzMiLGxpZ2h0OiIjOUNENkQyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM1QkI3QjAifSx7YmFzZToiIzRBNEE2MCIsZGFyazoiIzFGMUYyRSIsbGlnaHQ6IiM2RTZFODQiLGFjY2VudDoiI0Y1RjVGNSIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzRBNEE2MCJ9LHtiYXNlOiIjRDhBODVBIixkYXJrOiIjOUM3MDI4IixsaWdodDoiI0VCQzc4QSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjRDhBODVBIn1dO2Z1bmN0aW9uIHh2KGUsdCl7Zm9yKHZhciBuPVN0cmluZyhlfHwiIiksaT0wLGE9MDthPG4ubGVuZ3RoO2ErKylpPShpPDw1KS1pK24uY2hhckNvZGVBdChhKXwwO3JldHVybiBNYXRoLmFicyhpKSV0fXZhciBZcz17ImdlbmVyYWwtcHVycG9zZSI6Ilx1NEUwN1x1ODBGRFx1NzMyQiIsRXhwbG9yZToiXHU0RkE2XHU2M0EyXHU3MzJCIiwiY29kZS1leHBsb3JlciI6Ilx1NEZBNlx1NjNBMlx1NzMyQiIsImNvZGUtcmV2aWV3ZXIiOiJcdTVCQTFcdTY3RTVcdTczMkIiLCJjb2RlLWFyY2hpdGVjdCI6Ilx1NjdCNlx1Njc4NFx1NzMyQiIsImNvZGUtc2ltcGxpZmllciI6Ilx1N0I4MFx1NTMxNlx1NzMyQiIsImNvZGUtZ3VpZGUiOiJcdTU0MTFcdTVCRkNcdTczMkIiLFBsYW46Ilx1N0I1Nlx1NTIxMlx1NzMyQiIsImZlYXR1cmUtZGV2IjoiXHU1RjAwXHU1M0QxXHU3MzJCIiwicHItdGVzdC1hbmFseXplciI6Ilx1NkQ0Qlx1OEJENVx1NzMyQiIsInNpbGVudC1mYWlsdXJlLWh1bnRlciI6Ilx1NjJBNFx1NTM2Qlx1NzMyQiIsInR5cGUtZGVzaWduLWFuYWx5emVyIjoiXHU3QzdCXHU1NzhCXHU3MzJCIiwiY29tbWVudC1hbmFseXplciI6Ilx1NkNFOFx1OTFDQVx1NzMyQiJ9LFhhPW51bGw7ZnVuY3Rpb24gR3MoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ZS5hZ2VudFR5cGV8fCIiO3JldHVybiB0JiZZc1t0XT9Zc1t0XTp0fHwoT3UoKT09PSJFbmdsaXNoIj8iU3VidGFzayI6Ilx1NUI1MFx1NEVGQlx1NTJBMSIpfWZ1bmN0aW9uIFN2KGUpe3ZhciB0PVN0cmluZyhlfHwiIikudHJpbSgpO3JldHVybiB0P3QuaW5kZXhPZigiXHU3MzJCXHU3MzJCIik9PT0wP3Q6Ilx1NzMyQlx1NzMyQiAiK3Q6Ilx1NzMyQlx1NzMyQlx1NUI1MCBBZ2VudCJ9ZnVuY3Rpb24gUXMoZSl7dmFyIHQ9R3MoZSk7aWYoIXQpcmV0dXJuIHQ7dmFyIG49WGEmJmUmJmUudGFza0lkP1hhLmdldChlLnRhc2tJZCk6bnVsbDtyZXR1cm4gU3Yobj90K246dCl9ZnVuY3Rpb24gJHMoZSl7dmFyIHQ9ZSYmKGUuYWdlbnRUeXBlfHxlLnRhc2tJZCl8fCJzdWJhZ2VudCI7cmV0dXJuIEpzW3h2KHQsSnMubGVuZ3RoKV19ZnVuY3Rpb24gc2goZSl7dmFyIHQ9JHMoZSksbj1RcyhlKSxpPVNpKElpKHQpKTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciBhc3Npc3RhbnQgc3ViYWdlbnQiIHN0eWxlPSItLWFnZW50LWNvbG9yOicrdC5wcmltYXJ5KyciPjxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytpKyc8L2Rpdj48c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gSXYoZSx0KXtpZighZXx8ZS50eXBlIT09InRvb2xfcmVzdWx0IilyZXR1cm4iIjt2YXIgbj1nbihlLmNvbnRlbnQpLGk9ZS5pc19lcnJvcj09PSEwLGE9dHlwZW9mIG49PSJzdHJpbmciP246bj09bnVsbD8iIjpTdHJpbmcobik7aWYoIWkmJiFhLnRyaW0oKSlyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHkgcGVuZGluZyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlciBwZW5kaW5nIj4nK3AoRGUoInN1YmFnZW50LnJ1bm5pbmciKSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPjwvZGl2Pic7dmFyIHU9YS50cmltKCk/YTpEZSgic3ViYWdlbnQubm9fb3V0cHV0Iiksbz1hLnRyaW0oKT9hdSh1KTpwKHUpLHM9RGUoaT8ic3ViYWdlbnQudGFzay5mYWlsZWQiOiJzdWJhZ2VudC50YXNrLmRvbmUiKSxsPWk/Ilx1MjcxNyI6Ilx1MjcxMyI7cmV0dXJuJzxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5IGZpbmFsJysoaT8iIGVycm9yIjoiIikrJyI+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyICcrKGk/ImVycm9yIjoiZG9uZSIpKyciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItbGFiZWwiPicrcChzKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5LWNvbnRlbnQiPicrbysiPC9kaXY+PC9kaXY+In12YXIgVGk9e2Fzc2lzdGFudDpTaShJaShrdikpLHVzZXI6U2koSWkoQXYpKX0sWHM9e3VzZXI6e25hbWU6Ilx1OEQ1Qlx1NTM1QVx1ODY0RVx1NTk5RSIsYXZhdGFyU3ZnOlRpLnVzZXJ9LGFzc2lzdGFudDp7bmFtZToiXHU1MkU0XHU1MkIzXHU1MjFEXHU0RThDIixhdmF0YXJTdmc6VGkuYXNzaXN0YW50fX07ZnVuY3Rpb24gWmEoZSl7dmFyIHQ9ci5jb25maWcmJnIuY29uZmlnLnN0cnVjdHVyZWRDaGF0UGVyc29uYSxuPXQmJnRbZV0/dFtlXTpudWxsLGk9WHNbZV18fFhzLmFzc2lzdGFudDtyZXR1cm57bmFtZTpuJiZ0eXBlb2Ygbi5uYW1lPT0ic3RyaW5nIiYmbi5uYW1lLnRyaW0oKT9uLm5hbWUudHJpbSgpOmkubmFtZSxhdmF0YXI6biYmdHlwZW9mIG4uYXZhdGFyPT0ic3RyaW5nIiYmbi5hdmF0YXIudHJpbSgpP24uYXZhdGFyLnRyaW0oKTpudWxsLGF2YXRhclN2ZzppLmF2YXRhclN2Z319ZnVuY3Rpb24gWnMoZSl7cmV0dXJuJzxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytlKyI8L2Rpdj4ifWZ1bmN0aW9uIGxoKGUsdCl7aWYoISghZXx8IWUucGFyZW50Tm9kZSkpe3ZhciBuPVphKHQ9PT0idXNlciI/InVzZXIiOiJhc3Npc3RhbnQiKTtlLm91dGVySFRNTD1acyhuLmF2YXRhclN2Zyl9fWZ1bmN0aW9uIFFuKGUsdCl7dD10fHx7fTt2YXIgbj1lPT09InVzZXIiPyJ1c2VyIjoiYXNzaXN0YW50IixpPVphKG4pLGE9aS5hdmF0YXI/JzxpbWcgY2xhc3M9InBpeGVsLWF2YXRhci1pbWFnZSIgc3JjPSInK3AoaS5hdmF0YXIpKyciIGFsdD0iJytwKGkubmFtZSkrJyIgb25lcnJvcj0iaGFuZGxlQ2hhdEF2YXRhckltYWdlRXJyb3IodGhpcywgJytKU09OLnN0cmluZ2lmeShuKSsnKSIgLz4nOlpzKGkuYXZhdGFyU3ZnKSx1PXQubGVmdFNsb3Q/dC5sZWZ0U2xvdDoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciAnK2UrJyI+JythKyc8c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChpLm5hbWUpKyI8L3NwYW4+Iit1KyI8L2Rpdj4ifWZ1bmN0aW9uIFR2KCl7dmFyIGU9RHQoKTtyZXR1cm4hZXx8IXVlKGUpPyIiOmJsKGUse2tpbmQ6ImNvbXBhY3QifSl9ZnVuY3Rpb24gZXUoZSx0LG4saSl7aWYoZS5yb2xlPT09InRoaW5raW5nIil7dmFyIGE9dHlwZW9mIGUuY29udGVudD09InN0cmluZyI/ZS5jb250ZW50OiIiO2lmKCFhLnRyaW0oKSlyZXR1cm4iIjt2YXIgdT1NdCgidGhpbmtpbmciLFtVdShlLG4pLCJwdHkiXSksbz1FdCh1KSxzPW89PT1udWxsP1RuKCJ0aGlua2luZyIpOm87cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSB0aGlua2luZyI+PGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lIHRoaW5raW5nLXB0eSAnKyhzPyJleHBhbmRlZCI6ImNvbGxhcHNlZCIpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRoaW5raW5nIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh1KSsnIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgb25jbGljaz0iX190aGlua2luZ1RvZ2dsZSh0aGlzKSI+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1pY29uIj5cdTI5QkY8L3NwYW4+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1wcmV2aWV3Ij4nK3AoYSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWFjdGlvbiI+Jysocz8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIikrIjwvc3Bhbj48L2Rpdj48L2Rpdj4ifWlmKGUucm9sZT09PSJwcm9tcHQiKXJldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgcHJvbXB0Ij48ZGl2IGNsYXNzPSJwcm9tcHQtY2FyZCI+PGRpdiBjbGFzcz0icHJvbXB0LWljb24iPlx1MjE5MjwvZGl2PjxkaXYgY2xhc3M9InByb21wdC1jb250ZW50Ij5cdThCRDVcdThCRDVcdUZGMUE8c3BhbiBjbGFzcz0icHJvbXB0LXRleHQiPicrcChlLmNvbnRlbnQpKyI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+IjtpZihBcnJheS5pc0FycmF5KGUuY29udGVudCkpcmV0dXJuICR2KGUsdCxuLGkpO3ZhciBsPVFuKGUucm9sZSksZD1lLnJvbGU9PT0iYXNzaXN0YW50Ij9hdShlLmNvbnRlbnQpOmUucm9sZT09PSJ1c2VyIj91bChlLmNvbnRlbnQpOnAoZS5jb250ZW50KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrZS5yb2xlKyciPicrbCsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWJ1YmJsZSI+JytkKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEx2KGUpe3ZhciB0PXt9O2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKGkmJmkudHlwZT09PSJ0b29sX3Jlc3VsdCIpe3ZhciBhPWkudG9vbF91c2VfaWQ7aWYoIWEpY29udGludWU7dFthXXx8KHRbYV09W10pLHRbYV0ucHVzaChpKX19cmV0dXJuIHR9ZnVuY3Rpb24gZWwoZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8IW4ubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGgtMTtpKyspaWYoeWwobltpXSxuW2krMV0pKXJldHVybiBuW2krMV07cmV0dXJuIG5bbi5sZW5ndGgtMV19ZnVuY3Rpb24gTXYoZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8bi5sZW5ndGg8MilyZXR1cm4hMTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoLTE7aSsrKWlmKHlsKG5baV0sbltpKzFdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBxdihlKXtyZXR1cm4nPGRpdiBjbGFzcz0ic3RydWN0dXJlZC10b29sLWhpbnQiPlx1NURGMlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1NEUwMFx1NkIyMSAnK3AoaXUoZSkpKyIgXHU1M0MyXHU2NTcwXHU5NUVFXHU5ODk4PC9kaXY+In12YXIgT3Y9e1JlYWQ6MSxHbG9iOjEsR3JlcDoxLFdlYkZldGNoOjEsV2ViU2VhcmNoOjEsVG9kb1JlYWQ6MX07ZnVuY3Rpb24gdGwoZSl7aWYoIWV8fGUudHlwZSE9PSJ0b29sX3VzZSJ8fCFPdltlLm5hbWVdKXJldHVybiExO2lmKGUubmFtZT09PSJSZWFkIil7dmFyIHQ9ZS5pbnB1dHx8e307aWYoU3UodC5maWxlX3BhdGh8fHQucGF0aHx8IiIpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFB2KGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDspe3ZhciBpPWVbbl07aWYoaS50eXBlPT09InRvb2xfcmVzdWx0Iil7bisrO2NvbnRpbnVlfWlmKHRsKGkpKXtmb3IodmFyIGE9W3tibG9jazppLGluZGV4Om59XSx1PW4rMTt1PGUubGVuZ3RoOyl7aWYoZVt1XS50eXBlPT09InRvb2xfcmVzdWx0Iil7dSsrO2NvbnRpbnVlfWlmKHRsKGVbdV0pKWEucHVzaCh7YmxvY2s6ZVt1XSxpbmRleDp1fSksdSsrO2Vsc2UgYnJlYWt9YS5sZW5ndGg+PTI/dC5wdXNoKHt0eXBlOiJncm91cCIsaXRlbXM6YSxlbmRJbmRleDp1fSk6dC5wdXNoKHt0eXBlOiJzaW5nbGUiLGJsb2NrOmksaW5kZXg6bn0pLG49dX1lbHNlIHQucHVzaCh7dHlwZToic2luZ2xlIixibG9jazppLGluZGV4Om59KSxuKyt9cmV0dXJuIHR9dmFyIEh2PXtSZWFkOiJcdThCRkJcdTUzRDYiLEdsb2I6Ilx1NjQxQ1x1N0QyMiIsR3JlcDoiXHU2NDFDXHU3RDIyIixXZWJGZXRjaDoiXHU2MjkzXHU1M0Q2IixXZWJTZWFyY2g6Ilx1NjQxQ1x1N0QyMiIsVG9kb1JlYWQ6Ilx1NUY4NVx1NTI5RSJ9O2Z1bmN0aW9uIF92KGUsdCxuLGksYSl7Zm9yKHZhciB1PWF8fHt9LG89e30scz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbD1lW3NdLmJsb2NrLm5hbWU7b1tsXT0ob1tsXXx8MCkrMX1mb3IodmFyIGQ9ITAsZj0hMSxzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBjPWVbc10uYmxvY2ssdj1lbChuLGMuaWQpO3Y/di5pc19lcnJvciYmKGY9ITApOmQ9ITF9dmFyIGg9ZD9mPyJcdTI3MTciOiJcdTI3MTMiOiJcdTIwMjYiLGc9ZD9mPyJlcnJvciI6ImRvbmUiOiJwZW5kaW5nIixtPVtdO2Zvcih2YXIgeSBpbiBvKW0ucHVzaChvW3ldKyIgIisoSHZbeV18fHkpKTtmb3IodmFyIHc9bS5qb2luKCIgXHhCNyAiKSxFPU10KCJ0b29sLWdyb3VwIixbaSxlWzBdJiZlWzBdLmluZGV4LGUubGVuZ3RoXSksQj1FdChFKSxEPXUuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6Qj09PW51bGw/VG4oInRvb2xHcm91cCIpOkIsRj0iIixzPTA7czxlLmxlbmd0aDtzKyspdHJ5e0YrPW9sKGVbc10uYmxvY2ssdCxuLGVbc10uaW5kZXgsaSx1KX1jYXRjaHtGKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTVERTVcdTUxNzdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybic8ZGl2IGNsYXNzPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1rZXk9IicrcChFKSsnIiBkYXRhLWV4cGFuZGVkPSInKyhEPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLXN0YXR1cz0iJytnKyciPjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtc3VtbWFyeSIgb25jbGljaz0iX190b29sR3JvdXBUb2dnbGUodGhpcy5wYXJlbnROb2RlKSI+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtc3RhdHVzIj4nK2grJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC10ZXh0Ij4nK3AodykrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC1jb3VudCI+JytlLmxlbmd0aCsnIFx1NEUyQVx1OEMwM1x1NzUyODwvc3Bhbj48c3ZnIGNsYXNzPSJ0b29sLWdyb3VwLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ0cmFuc2Zvcm06JysoRD8icm90YXRlKDE4MGRlZykiOiIiKSsnIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoRD8iYmxvY2siOiJub25lIikrJzsiPicrRisiPC9kaXY+PC9kaXY+In13aW5kb3cuX190b29sR3JvdXBUb2dnbGU9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsdD8iZmFsc2UiOiJ0cnVlIik7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1ib2R5Iik7biYmKG4uc3R5bGUuZGlzcGxheT10PyJub25lIjoiYmxvY2siKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWNoZXZyb24iKTtpJiYoaS5zdHlsZS50cmFuc2Zvcm09dD8iIjoicm90YXRlKDE4MGRlZykiKSxfbihlLCJ0b29sLWdyb3VwIil9fTtmdW5jdGlvbiBOdihlLHQpe2Zvcih2YXIgbj0wLGk9MCxhPTAsdT17fSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPWVbdFtvXV07aWYocyl7cy5yb2xlPT09InVzZXIiJiZuKys7dmFyIGw9cy5jb250ZW50O2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBkPTA7ZDxsLmxlbmd0aDtkKyspe3ZhciBmPWxbZF07aWYoZilpZihmLl9fc3ViYWdlbnQmJmYuX19zdWJhZ2VudC50YXNrSWQmJih1W2YuX19zdWJhZ2VudC50YXNrSWRdPTEpLGYudHlwZT09PSJ0b29sX3VzZSIpe2krKzt2YXIgYz1MaShmKTtjJiZjLnRhc2tJZCYmKHVbYy50YXNrSWRdPTEpfWVsc2UgZi50eXBlPT09InRvb2xfcmVzdWx0IiYmZi5pc19lcnJvciYmYSsrfX19dmFyIHY9MDtmb3IodmFyIGggaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxoKSYmdisrO3JldHVybntyb3VuZHM6bix0b29sczppLGFnZW50czp2LGVycm9yczphfX1mdW5jdGlvbiBubChlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKERlKCJoaXN0b3J5LnJvdW5kcyIse246U3RyaW5nKGUucm91bmRzKX0pKSxlLnRvb2xzPjAmJnQucHVzaChEZSgiaGlzdG9yeS50b29scyIse246U3RyaW5nKGUudG9vbHMpfSkpLGUuYWdlbnRzPjAmJnQucHVzaChEZSgiaGlzdG9yeS5hZ2VudHMiLHtuOlN0cmluZyhlLmFnZW50cyl9KSksZS5lcnJvcnM+MCYmdC5wdXNoKERlKCJoaXN0b3J5LmVycm9ycyIse246U3RyaW5nKGUuZXJyb3JzKX0pKSx0LmpvaW4oIiBceEI3ICIpfWZ1bmN0aW9uIHR1KGUsdCl7Zm9yKHZhciBuPWUubmV4dEVsZW1lbnRTaWJsaW5nO247KW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LWxvYWQtbW9yZSIpfHwodD9uLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTpuLmNsYXNzTGlzdC5hZGQoImNoYXQtaGlzdG9yeS1oaWRkZW4iKSksbj1uLm5leHRFbGVtZW50U2libGluZ31mdW5jdGlvbiBqdihlLHQsbixpKXshZXx8IXR8fChSdihlLHQsITEpLG51KHQpLFZ2KGUpKX1mdW5jdGlvbiBkaChlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LWZvbGQtYmFyIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuaWQ9ImNoYXQtZm9sZC1iYXIiLHQuY2xhc3NOYW1lPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIsZS5pbnNlcnRCZWZvcmUodCxlLmZpcnN0Q2hpbGQpLHQpfWZ1bmN0aW9uIFJ2KGUsdCxuKXtlJiZlLmNsYXNzTGlzdC50b2dnbGUoImF1dG8tZm9sZCIsISFuKX1mdW5jdGlvbiBjaChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0O2krKyllW2ldJiZuLnB1c2goaSk7cmV0dXJuIG59ZnVuY3Rpb24gbnUoZSl7aWYoZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1hdXRvLWZvbGQtaGlkZGVuIiksbj0wO248dC5sZW5ndGg7bisrKXRbbl0uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1hdXRvLWZvbGQtaGlkZGVuIil9ZnVuY3Rpb24gZmgoZSx0LG4pe2lmKG51KGUpLCEoIW58fHQ8MSkpe2Zvcih2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciB1PWlbYV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHUhPW51bGwpe3ZhciBvPXBhcnNlSW50KHUsMTApOyFpc05hTihvKSYmbzx0JiZpW2FdLmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfX1XdihlKX19ZnVuY3Rpb24gV3YoZSl7dmFyIHQ9ZT9lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpOm51bGw7aWYodCl7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLCJmYWxzZSIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIpO24mJm4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgaT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2kmJihpLnRleHRDb250ZW50PURlKCJoaXN0b3J5LmV4cGFuZCIpKSx0dSh0LCExKSx0LmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpO3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYoYSl7dmFyIHU9YS5zcGxpdCgiOiIpO3UubGVuZ3RoPj0zJiYodVsyXT0iMCIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHUuam9pbigiOiIpKSl9fX1mdW5jdGlvbiB6dihlKXshZXx8IWUuaXNDb25uZWN0ZWR8fChEbih7cmVtb3ZlRGl2aWRlcjohMH0pLFB1KCEwKSl9ZnVuY3Rpb24gVnYoZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3QmJih0LmlubmVySFRNTD0iIix0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuY2hhdEF1dG9Gb2xkU25hcHNob3Q9bnVsbCl9fWZ1bmN0aW9uIHBoKGUsdCxuKXt2YXIgaT1ybChlKXx8Ilx1NjVCMFx1NkQ4OFx1NjA2RiIsYT10P3JsKHQpOiJcdTdCNDlcdTVGODVcdTU2REVcdTU5MEQuLi4iLHU9IiI7cmV0dXJuIG4mJih1PSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNoYXQtZm9sZC1yb3cgaGlzdG9yeSIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRUb2dnbGVIaXN0b3J5ICYmIHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSgpIiB0aXRsZT0iXHU1QzU1XHU1RjAwXHU2MjE2XHU2NTM2XHU4RDc3XHU2NkY0XHU2NUU5XHU1QkY5XHU4QkREIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NTM4Nlx1NTNGMjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPlx1NURGMlx1NjUzNlx1OEQ3NyAnK3AobmwobikpKyI8L3NwYW4+PC9idXR0b24+IiksdSsnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IHVzZXIiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+XHU2MjExPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGkpKyc8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGFzc2lzdGFudCIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QgJiYgd2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QoKSIgdGl0bGU9Ilx1NUI5QVx1NEY0RFx1NTIzMFx1NjcwMFx1NjVCMFx1NTZERVx1NTkwRCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5DbGF1ZGU8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij4nK3AoYSkrIjwvc3Bhbj48L2J1dHRvbj4ifWZ1bmN0aW9uIHJsKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVtdO2Z1bmN0aW9uIG4obyl7aWYodHlwZW9mIG89PSJzdHJpbmciKXt2YXIgcz1vLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO3MmJnQucHVzaChzKX19aWYodHlwZW9mIGUuY29udGVudD09InN0cmluZyIpbihlLmNvbnRlbnQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKWZvcih2YXIgaT0wO2k8ZS5jb250ZW50Lmxlbmd0aCYmdC5qb2luKCIgIikubGVuZ3RoPDE4MDtpKyspe3ZhciBhPWUuY29udGVudFtpXTthJiYoYS50eXBlPT09InRleHQiP24oYS50ZXh0KTphLnR5cGU9PT0idGhpbmtpbmciP24oYS50aGlua2luZyk6YS50eXBlPT09InRvb2xfdXNlIj9uKGEubmFtZT8iXHU4QzAzXHU3NTI4ICIrYS5uYW1lOiJcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiKTphLnR5cGU9PT0idG9vbF9yZXN1bHQiP24oYS5pc19lcnJvcj8iXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU5NTE5XHU4QkVGIjoiXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU3RUQzXHU2NzlDIik6YS50ZXh0JiZuKGEudGV4dCkpfXZhciB1PXQuam9pbigiIFx4QjcgIik7cmV0dXJuIHUubGVuZ3RoPjE4MD91LnNsaWNlKDAsMTc3KSsiLi4uIjp1fXdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIik7ZSYmenYoZSl9LHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeT1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSx0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIik6bnVsbDtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLHQmJndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlJiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0KX07ZnVuY3Rpb24gVXYoZSx0LG4saSl7dmFyIGE9e3Nob3VsZENvbGxhcHNlRm9yVmlld3BvcnQ6ITEsaGlzdG9yeUluZGljZXM6W10sZmlyc3RIaXN0b3J5RWw6bnVsbH07aWYoIWV8fG48MClyZXR1cm4gYTtmb3IodmFyIHU9aSYmKGUuY2xpZW50SGVpZ2h0fHxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCl8fDAsbz1udWxsLHM9bnVsbCxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBkPXRbbF0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKGQhPW51bGwpe3ZhciBmPXBhcnNlSW50KGQsMTApO2lzTmFOKGYpfHwoZjxuPyhhLmhpc3RvcnlJbmRpY2VzLnB1c2goZiksYS5maXJzdEhpc3RvcnlFbHx8KGEuZmlyc3RIaXN0b3J5RWw9dFtsXSkpOmkmJihvfHwobz10W2xdKSxzPXRbbF0pKX19aWYoaSYmdT4wJiZvJiZzKXt2YXIgYz1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPU1hdGgubWF4KGMuYm90dG9tLHYuYm90dG9tKS1NYXRoLm1pbihjLnRvcCx2LnRvcCksZz1NYXRoLm1heCgyMjAsdS0yNCk7YS5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0PWg+PWd9cmV0dXJuIGF9ZnVuY3Rpb24gS3YoZSx0KXtpZighZSlyZXR1cm47dmFyIG49ci5jdXJyZW50TWVzc2FnZXN8fFtdO3R8fCh0PUR0KCkpO2Zvcih2YXIgaT0tMSxhPW4ubGVuZ3RoLTE7YT49MDthLS0paWYoblthXSYmblthXS5yb2xlPT09InVzZXIiKXtpPWE7YnJlYWt9ZnVuY3Rpb24gdSgpe3ZhciBGPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7RiYmRi5yZW1vdmUoKTtmb3IodmFyIEk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLEw9MDtMPEkubGVuZ3RoO0wrKylJW0xdLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTtlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpfWlmKGk8MSl7dSgpO3JldHVybn12YXIgbz1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxzPWhsKHQpLGw9VXYoZSxvLGkscyYmci5jaGF0U3RpY2tUb0JvdHRvbSk7aWYocyYmKCFyLmNoYXRTdGlja1RvQm90dG9tfHwhbC5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0KSl7dSgpO3JldHVybn12YXIgZD1sLmhpc3RvcnlJbmRpY2VzLGY9bC5maXJzdEhpc3RvcnlFbDtpZihkLmxlbmd0aDwyfHwhZil7dSgpO3JldHVybn12YXIgYz1OdihuLGQpLHY9TXQoImhpc3Rvcnktc3VtbWFyeSIsW2ldKSxoPUV0KHYpPT09ITAsZz1pKyI6IitkLmxlbmd0aCsiOiIrKGg/MTowKSsiOiIrYy5yb3VuZHMrIjoiK2MudG9vbHMrIjoiK2MuYWdlbnRzKyI6IitjLmVycm9ycztpZighKGUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik9PT1nJiZlLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpKSl7dmFyIG09ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTttJiZtLnJlbW92ZSgpO2Zvcih2YXIgeT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LWhpc3RvcnktaGlkZGVuIiksdz0wO3c8eS5sZW5ndGg7dysrKXlbd10uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1oaXN0b3J5LWhpZGRlbiIpO3ZhciBFPW5sKGMpLEI9RGUoaD8iaGlzdG9yeS5jb2xsYXBzZSI6Imhpc3RvcnkuZXhwYW5kIiksRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtELmNsYXNzTmFtZT0iY2hhdC1oaXN0b3J5LXN1bW1hcnkiLEQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiLHYpLEQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixoPyJ0cnVlIjoiZmFsc2UiKSxELmlubmVySFRNTD0nPGJ1dHRvbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9IndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlKHRoaXMpIiBhcmlhLWV4cGFuZGVkPSInKyhoPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktaWNvbiI+JytVKCJmb2xkZXIiLHtzaXplOjE1fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYm9keSI+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxlIj4nK3AoQikrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YSI+JytwKEUpKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9uIj4nK1UoImNoZXZyb25Eb3duIix7c2l6ZToxNn0pKyI8L3NwYW4+PC9idXR0b24+IixlLmluc2VydEJlZm9yZShELGYpLHR1KEQsaCksZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLGcpfX13aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLmNsb3Nlc3Q/ZS5jbG9zZXN0KCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTpudWxsO2lmKHQpe3ZhciBuPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiKSxpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIikhPT0idHJ1ZSI7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLGk/InRydWUiOiJmYWxzZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixpPyJ0cnVlIjoiZmFsc2UiKTt2YXIgYT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2EmJihhLnRleHRDb250ZW50PURlKGk/Imhpc3RvcnkuY29sbGFwc2UiOiJoaXN0b3J5LmV4cGFuZCIpKSxuJiZWdShuLGkpLHR1KHQsaSk7dmFyIHU9dC5wYXJlbnRFbGVtZW50O2lmKGkmJm51KHUpLHUpe3ZhciBvPXUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYobyl7dmFyIHM9by5zcGxpdCgiOiIpO3MubGVuZ3RoPj0zJiYoc1syXT1pPyIxIjoiMCIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHMuam9pbigiOiIpKSl9fX19O2Z1bmN0aW9uIExpKGUpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF91c2UiKXJldHVybiBudWxsO3ZhciB0PWUuaW5wdXR8fHt9LG49dHlwZW9mIHQuc3ViYWdlbnRfdHlwZT09InN0cmluZyI/dC5zdWJhZ2VudF90eXBlOm51bGw7cmV0dXJuIW4mJmUubmFtZSE9PSJUYXNrIiYmZS5uYW1lIT09IkFnZW50Ij9udWxsOnt0YXNrSWQ6ZS5pZCxhZ2VudFR5cGU6bnx8dm9pZCAwLHRhc2tEZXNjcmlwdGlvbjp0eXBlb2YgdC5kZXNjcmlwdGlvbj09InN0cmluZyI/dC5kZXNjcmlwdGlvbjp2b2lkIDB9fWZ1bmN0aW9uIEp2KGUpe3ZhciB0PW5ldyBNYXA7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aWYoISghaXx8aS5yb2xlIT09ImFzc2lzdGFudCJ8fCFBcnJheS5pc0FycmF5KGkuY29udGVudCkpKWZvcih2YXIgYT0wO2E8aS5jb250ZW50Lmxlbmd0aDthKyspe3ZhciB1PWkuY29udGVudFthXTtpZighKCF1fHx1LnR5cGUhPT0idG9vbF91c2UiKSl7dmFyIG89dS5fX3N1YmFnZW50fHxMaSh1KTtvJiZ0LnNldCh1LmlkLG8pfX19cmV0dXJuIHR9ZnVuY3Rpb24gWXYoZSl7dmFyIHQ9bmV3IE1hcDtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdDt2YXIgbj1uZXcgTWFwLGk9bmV3IFNldDtmdW5jdGlvbiBhKGYpe2lmKCEoIWZ8fCFmLnRhc2tJZCkmJiFpLmhhcyhmLnRhc2tJZCkpe2kuYWRkKGYudGFza0lkKTt2YXIgYz1HcyhmKTtjJiYobi5oYXMoYyl8fG4uc2V0KGMsW10pLG4uZ2V0KGMpLnB1c2goZi50YXNrSWQpKX19Zm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBvPWVbdV07aWYoISghb3x8IUFycmF5LmlzQXJyYXkoby5jb250ZW50KSkpZm9yKHZhciBzPTA7czxvLmNvbnRlbnQubGVuZ3RoO3MrKyl7dmFyIGw9by5jb250ZW50W3NdO2lmKGwpe3ZhciBkPWwuX19zdWJhZ2VudHx8KGwudHlwZT09PSJ0b29sX3VzZSI/TGkobCk6bnVsbCk7ZCYmYShkKX19fXJldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZil7aWYoIShmLmxlbmd0aDwyKSlmb3IodmFyIGM9MDtjPGYubGVuZ3RoO2MrKyl0LnNldChmW2NdLCIgIyIrKGMrMSkpfSksdH1mdW5jdGlvbiBpbChlLHQpe3ZhciBuPVtdO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhZS5sZW5ndGgpcmV0dXJuIG47Zm9yKHZhciBpPW51bGwsYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgdT1lW2FdLG89dSYmdS50eXBlPT09InRleHQiJiZ1Ll9fcHJvY2Vzc2luZz09PSEwO2lmKG8mJmkpe2kuYmxvY2tzLnB1c2godSk7Y29udGludWV9dmFyIHM9dSYmdS5fX3N1YmFnZW50P3UuX19zdWJhZ2VudDpudWxsO3N8fChzPUxpKHUpKSwhcyYmdSYmdS50eXBlPT09InRvb2xfcmVzdWx0IiYmdCYmdC5oYXModS50b29sX3VzZV9pZCkmJihzPXQuZ2V0KHUudG9vbF91c2VfaWQpKTt2YXIgbD1zP3MudGFza0lkOm51bGw7KCFpfHxpLmtleSE9PWwpJiYoaT17a2V5Omwsc3ViYWdlbnQ6cyxibG9ja3M6W10sZmlyc3RJbmRleDphfSxuLnB1c2goaSkpLGkuYmxvY2tzLnB1c2godSl9cmV0dXJuIG59ZnVuY3Rpb24gcnUoZSx0LG4saSxhLHUpe3ZhciBvPSIiLHM9dXx8e307dHJ5e2Zvcih2YXIgbD1QdihlKSxkPTA7ZDxsLmxlbmd0aDtkKyspe3ZhciBmPWxbZF07dHJ5e2lmKGYudHlwZT09PSJncm91cCIpe2Zvcih2YXIgYz1bXSx2PTA7djxmLml0ZW1zLmxlbmd0aDt2KyspYy5wdXNoKHtibG9jazpmLml0ZW1zW3ZdLmJsb2NrLGluZGV4OmYuaXRlbXNbdl0uaW5kZXgrdH0pO28rPV92KGMsbixpLGEscyl9ZWxzZSBvKz1vbChmLmJsb2NrLG4saSxmLmluZGV4K3QsYSxzKX1jYXRjaHtvKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTZEODhcdTYwNkZcdTU3NTdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfX19Y2F0Y2h7bys9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU2RDg4XHU2MDZGXHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J31yZXR1cm4gb31mdW5jdGlvbiBhbChlLHQsbixpLGEsdSl7Zm9yKHZhciBvPXV8fHt9LHM9by5zaG93SGFuZG9mZiE9PSExLGw9IiIsZD1udWxsLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGM9ZVtmXSx2PWMuc3ViYWdlbnQ/e2luU3ViYWdlbnRQYW5lbDohMH06e30saD1ydShjLmJsb2NrcyxjLmZpcnN0SW5kZXgsdCxpLGEsdik7aWYoISghaHx8IWgudHJpbSgpKSlpZihjLnN1YmFnZW50KXt2YXIgZz1zJiZkIT09Yy5zdWJhZ2VudC50YXNrSWQ7bCs9R3YoYyxuLGgsYSxnKSxkPWMuc3ViYWdlbnQudGFza0lkfWVsc2UgbCs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1zZWdtZW50IHBhcmVudCI+JytRbih0KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicraCsiPC9kaXY+PC9kaXY+IixkPW51bGx9cmV0dXJuIGx9ZnVuY3Rpb24gR3YoZSx0LG4saSxhKXt2YXIgdT1lLnN1YmFnZW50LG89JHModSkscz1Rcyh1KSxsPXUudGFza0lkfHwiIixkPVNpKElpKG8pKSxmPVF2KGUuYmxvY2tzKSxjO2lmKGEpe3ZhciB2PSEhKHUudGFza0Rlc2NyaXB0aW9uJiZTdHJpbmcodS50YXNrRGVzY3JpcHRpb24pLnRyaW0oKSksaD12Pyc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFzay1kZXNjIj4nK3AodS50YXNrRGVzY3JpcHRpb24pKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhc2stZGVzYyI+JytwKERlKCJzdWJhZ2VudC5jb250aW51ZWQiKSkrIjwvc3Bhbj4iO2M9JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbiI+PHN0cm9uZyBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtbmFtZSI+JytwKHMpKyc8L3N0cm9uZz48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFnIiB0aXRsZT0iJytwKERlKCJzdWJhZ2VudC50YWdfdGl0bGUiKSkrJyI+JytwKERlKCJzdWJhZ2VudC50YWciKSkrIjwvc3Bhbj4iK2grIjwvc3Bhbj4ifWVsc2UgYz0nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9uIj48c3Ryb25nIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1uYW1lIj4nK3AocykrJzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YXNrLWRlc2MiPiAnK3AoRGUoInN1YmFnZW50LmNvbnRpbnVlZCIpKSsiPC9zcGFuPjwvc3Bhbj4iO3ZhciBnPU10KCJzdWJhZ2VudC1wYW5lbCIsW2ksbF0pO3JldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbCIgZGF0YS1leHBhbmQta2luZD0ic3ViYWdlbnQtcGFuZWwiIGRhdGEtZXhwYW5kLWtleT0iJytwKGcpKyciIGRhdGEtYWdlbnQtaWQ9IicrcChsKSsnIiBkYXRhLWV4cGFuZGVkPSJ0cnVlIiBzdHlsZT0iLS1hZ2VudC1jb2xvcjonK28ucHJpbWFyeSsnIj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1oZWFkZXIiIGFyaWEtbGFiZWw9IicrcChEZSgic3ViYWdlbnQudGl0bGVfYXJpYSIpKSsnIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXZhdGFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytkKyI8L3NwYW4+IitjKyc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtY291bnQiPicrcChmKyIgXHU2NzYxXHU1MTg1XHU1QkI5IikrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1ib2R5Ij4nK24rIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gUXYoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dOyFpfHwhaS50eXBlfHxpLnR5cGUhPT0idG9vbF9yZXN1bHQiJiYoaS50eXBlPT09InRleHQiJiYhU3RyaW5nKGkudGV4dHx8IiIpLnRyaW0oKSYmIWkuX19wcm9jZXNzaW5nfHxpLnR5cGU9PT0idGhpbmtpbmciJiYhU3RyaW5nKGkudGhpbmtpbmd8fCIiKS50cmltKCl8fHQrKyl9cmV0dXJuIE1hdGgubWF4KDEsdCl9ZnVuY3Rpb24gJHYoZSx0LG4saSl7dmFyIGE9ZS5yb2xlLHU9VXUoZSxuKSxvPWE9PT0iYXNzaXN0YW50Ij9Ydih0KToiIixzPWE9PT0idXNlciImJmUuY29udGVudCYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuX19xdWV1ZWR9KTtpZighZS5jb250ZW50fHxlLmNvbnRlbnQubGVuZ3RoPT09MClyZXR1cm4gYT09PSJhc3Npc3RhbnQiPyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKyciPicrUW4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4nK28rIjwvZGl2PjwvZGl2PiI6JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyBlbXB0eS1tZXNzYWdlIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytRbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJlbXB0eS1tZXNzYWdlLWhpbnQiPlx1RkYwOFx1N0E3QVx1NkQ4OFx1NjA2Rlx1RkYwOTwvc3Bhbj48L2Rpdj48L2Rpdj4nO3ZhciBsPUx2KGUuY29udGVudCksZD1aYSgiYXNzaXN0YW50Iik7aWYoYSE9PSJhc3Npc3RhbnQiKXt2YXIgZj1pbChlLmNvbnRlbnQsaSksYz1mLnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuc3ViYWdlbnR9KSx2PXM/IiBxdWV1ZWQiOiIiLGg9cz8nPHNwYW4gY2xhc3M9InF1ZXVlZC1iYWRnZSI+XHU2MzkyXHU5NjFGXHU0RTJEPC9zcGFuPic6IiIsZz1UdigpO2lmKGMpe3ZhciBtPWFsKGYsYSxkLm5hbWUsbCx1LHtzaG93SGFuZG9mZjohMX0pO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythK3YrJyBtdWx0aS1hZ2VudCIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrbStoKyI8L2Rpdj4ifXZhciB5PXJ1KGUuY29udGVudCwwLGEsbCx1KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSt2KyciIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK1FuKGEse2xlZnRTbG90Omd9KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicreStoKyI8L2Rpdj48L2Rpdj4ifXZhciB3PWlsKGUuY29udGVudCxpKSxFPXcuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5zdWJhZ2VudH0pO2lmKCFFKXt2YXIgQj1ydShlLmNvbnRlbnQsMCxhLGwsdSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrUW4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK0IrbysiPC9kaXY+PC9kaXY+In12YXIgRD0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIG11bHRpLWFnZW50IiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JztyZXR1cm4gRCs9YWwodyxhLGQubmFtZSxsLHUse3Nob3dIYW5kb2ZmOiEwfSksRCs9byxEKz0iPC9kaXY+IixEfWZ1bmN0aW9uIE1yKGUpe3JldHVybiBlPj0xZTY/KGUvMWU2KS50b0ZpeGVkKDEpLnJlcGxhY2UoL1wuMCQvLCIiKSsiTSI6ZT49MWUzPyhlLzFlMykudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIikrImsiOlN0cmluZyhNYXRoLm1heCgwLE1hdGgucm91bmQoZXx8MCkpKX1mdW5jdGlvbiBYdihlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1lLmVzdGltYXRlZD09PSEwLG49W107cmV0dXJuKGUuaW5wdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU4RjkzXHU1MTY1ICIrTXIoZS5pbnB1dFRva2VucykpLChlLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1N0YxM1x1NUI1OFx1NTQ3RFx1NEUyRCAiK01yKGUuY2FjaGVSZWFkSW5wdXRUb2tlbnMpKSwoZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU3RjEzXHU1QjU4XHU1MTk5XHU1MTY1ICIrTXIoZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMpKSwoZS5vdXRwdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU4RjkzXHU1MUZBICIrKHQ/Ilx1MjI0OCI6IiIpK01yKGUub3V0cHV0VG9rZW5zKSksKGUucmVhc29uaW5nT3V0cHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1NjNBOFx1NzQwNiAiKyh0PyJcdTIyNDgiOiIiKStNcihlLnJlYXNvbmluZ091dHB1dFRva2VucykpLChlLnRvdGFsQ29zdFVzZHx8MCk+MCYmbi5wdXNoKCIkIitOdW1iZXIoZS50b3RhbENvc3RVc2QpLnRvRml4ZWQoNCkucmVwbGFjZSgvMCskLywiIikucmVwbGFjZSgvXC4kLywiIikpLG4ubGVuZ3RoPT09MCYmdCYmbi5wdXNoKCJcdTZCNjNcdTU3MjhcdTdFREZcdThCQTFcdTc1MjhcdTkxQ0ZcdTIwMjYiKSxuLmxlbmd0aD09PTA/IiI6JzxkaXYgY2xhc3M9InR1cm4tdXNhZ2Utc3VtbWFyeScrKHQ/IiBpcy1lc3RpbWF0ZWQiOiIiKSsnIiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWxhYmVsPSJcdTY3MkNcdThGNkVcdTc1MjhcdTkxQ0YgJytwKG4uam9pbigiXHVGRjBDIikpKyciPjxzdmcgY2xhc3M9InR1cm4tdXNhZ2UtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIuNSAxMy41aDExTTQgMTFWNy41TTggMTFWM00xMiAxMVY1LjUiLz48L3N2Zz48c3Bhbj4nK3Aobi5qb2luKCIgXHhCNyAiKSkrIjwvc3Bhbj48L2Rpdj4ifXZhciBadj0vXlxzKlxb6ZmE5Lu25bey5LiK5Lyg77yM6K+35p+l55yL5Lul5LiL5paH5Lu2OlxuKFtcc1xTXSo/KVxdXG4rLztmdW5jdGlvbiBlbShlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtpZighdClyZXR1cm4iIjt2YXIgbj10LnNwbGl0KCIvIikucG9wKCl8fHQ7aWYoU3UodCkpe3ZhciBpPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodCk7cmV0dXJuJzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC1pbWFnZSI+PGltZyBjbGFzcz0idXNlci1hdHRhY2htZW50LXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9IicraSsnIiBhbHQ9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcCh0KStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcudXNlci1hdHRhY2htZW50LWltYWdlJyk7IGlmKHcpdy5zdHlsZS5kaXNwbGF5PSdub25lJzsiIC8+PC9kaXY+YH1yZXR1cm4nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUiIGRhdGEtcGF0aD0iJytwKHQpK2AiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7Ij48c3BhbiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNOSAxLjVINGExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjUuNUw5IDEuNXoiLz48cGF0aCBkPSJNOSAxLjVWNS41aDQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlLW5hbWUiPmArcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gdWwoZSl7dmFyIHQ9ZXx8IiIsbj10Lm1hdGNoKFp2KTtpZighbilyZXR1cm4gcCh0KTtmb3IodmFyIGk9IiIsYT1uWzFdLnNwbGl0KGAKYCksdT0wO3U8YS5sZW5ndGg7dSsrKWkrPWVtKGFbdV0pO3ZhciBvPXQuc2xpY2UoblswXS5sZW5ndGgpLHM9aT8nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50cyI+JytpKyI8L2Rpdj4iOiIiLGw9by50cmltKCk/JzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC10ZXh0Ij4nK3AobykrIjwvZGl2PiI6IiI7cmV0dXJuIHMrbH1mdW5jdGlvbiBvbChlLHQsbixpLGEsdSl7dmFyIG89dXx8e307aWYoIWV8fCFlLnR5cGV8fCFvLmluU3ViYWdlbnRQYW5lbCYmZS50eXBlPT09InRvb2xfdXNlIiYmZS5fX3N1YmFnZW50JiZlLl9fc3ViYWdlbnQudGFza0lkPT09ZS5pZClyZXR1cm4iIjtpZihlLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZlLl9fc3ViYWdlbnQmJmUuX19zdWJhZ2VudC50YXNrSWQ9PT1lLnRvb2xfdXNlX2lkKXJldHVybiBJdihlLHQpO3N3aXRjaChlLnR5cGUpe2Nhc2UidGV4dCI6cmV0dXJuIHQ9PT0iYXNzaXN0YW50IiYmZS5fX3Byb2Nlc3Npbmc/JzxkaXYgY2xhc3M9InR5cGluZy1pbmRpY2F0b3IiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2Pic6dD09PSJhc3Npc3RhbnQiP2F1KGUudGV4dHx8IiIpOnVsKGUudGV4dHx8IiIpO2Nhc2UidGhpbmtpbmciOnZhciBzPWUudGhpbmtpbmd8fCIiLGw9ZS50aGlua2luZz09PXZvaWQgMCYmZS50eXBlPT09InRoaW5raW5nIjtpZihsKXJldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctc3RyZWFtaW5nIiBkYXRhLXRoaW5raW5nPSIiPjxkaXYgY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pbm5lciI+PHNwYW4gY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pY29uIHNwaW5uaW5nIj5cdTI5QkY8L3NwYW4+PGRpdiBjbGFzcz0idGhpbmtpbmctc3RyZWFtaW5nLXRleHQiPjwvZGl2PjwvZGl2PjwvZGl2Pic7aWYoIXMudHJpbSgpKXJldHVybiIiO3ZhciBkPXMubGVuZ3RoPjYwP3Muc2xpY2UoMCw1NykrIlx1MjAyNiI6cyxmPU10KCJ0aGlua2luZyIsW2EsaV0pLGM9RXQoZiksdj1jPT09bnVsbD9UbigidGhpbmtpbmciKTpjO3JldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgJysodj8iZXhwYW5kZWQiOiJjb2xsYXBzZWQiKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0aGlua2luZyIgZGF0YS1leHBhbmQta2V5PSInK3AoZikrJyIgZGF0YS10aGlua2luZz0iJytwKHMpKyciIG9uY2xpY2s9Il9fdGhpbmtpbmdUb2dnbGUodGhpcykiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtaWNvbiI+XHUyOUJGPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtcHJldmlldyI+JytwKHY/czpkKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyh2PyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PiI7Y2FzZSJ0b29sX3VzZSI6dmFyIGg9ZWwobixlLmlkKSxnPWFtKGUsaCxpLGEsbyk7cmV0dXJuIE12KG4sZS5pZCkmJihnPXF2KGUubmFtZXx8Ilx1NURFNVx1NTE3NyIpK2cpLGc7Y2FzZSJ0b29sX3Jlc3VsdCI6cmV0dXJuIiI7ZGVmYXVsdDp2YXIgbT1lJiZlLnR5cGU/U3RyaW5nKGUudHlwZSk6Ilx1NjcyQVx1NzdFNSIseT0iIjt0cnl7eT1KU09OLnN0cmluZ2lmeShlLG51bGwsMil9Y2F0Y2h7eT0ie30ifXJldHVybmA8ZGl2IGNsYXNzPSJ1bmtub3duLWJsb2NrIGNvbGxhcHNlZCIgb25jbGljaz0idGhpcy5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZWQnKSI+PGRpdiBjbGFzcz0idW5rbm93bi1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLWljb24iPj88L3NwYW4+PHNwYW4gY2xhc3M9InVua25vd24tYmxvY2stbGFiZWwiPlx1NjcyQVx1OEJDNlx1NTIyQlx1NzY4NFx1NTE4NVx1NUJCOVx1NTc1N1x1RkYxQWArcChtKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxwcmUgY2xhc3M9InVua25vd24tYmxvY2stYm9keSI+JytwKHkpKyI8L3ByZT48L2Rpdj4ifX1mdW5jdGlvbiB0bShlLHQsbixpLGEsdSxvLHMpe3ZhciBsPXN8fHt9LGQ9ZS5pZHx8InRvb2wtIituLGY9TXQoImlubGluZS10b29sIixbdSxkfHxvLG9dKSxjPUV0KGYpLHY9ZS5pbnB1dHx8e30saD1nbih0JiZ0LmNvbnRlbnQpLGc9dCYmdC5pc19lcnJvcixtPWgubGVuZ3RoPjAseT1nPyJcdTI3MTciOm0/Ilx1MjcxMyI6Ilx1MjAyNiIsdz0iIixFPSIiLEI9IiIsRD0iIjtpZihuPT09IlJlYWQiKXt3PSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNMSAzLjVBMS41IDEuNSAwIDAgMSAyLjUgMmgyLjc2NGMuOTU4IDAgMS43Ni41NiAyLjMxMSAxLjE4NEM4LjQwNSAzLjc3IDkuMTQ2IDQgMTAgNGgzLjVBMS41IDEuNSAwIDAgMSAxNSA1LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMSAxMi41di05eiIvPjxwYXRoIGQ9Ik0yIDUuNWgxMk0yIDhoOE0yIDEwLjVoNSIvPjwvc3ZnPic7dmFyIEY9di5maWxlX3BhdGh8fHYucGF0aHx8aXx8IiIsST0iIjt2LmxpbWl0JiYoST0iICIrdi5vZmZzZXQrIi0iKyh2Lm9mZnNldCt2LmxpbWl0KSksRT1GLEI9SX1lbHNlIGlmKG49PT0iR2xvYiIpe3c9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSI1Ii8+PHBhdGggZD0iTTEwLjUgMTAuNUwxNCAxNCIvPjwvc3ZnPic7dmFyIEw9di5wYXR0ZXJufHwiIixQPXYucGF0aHx8aXx8IiI7RT1MLEI9UH1lbHNlIGlmKG49PT0iR3JlcCIpe3c9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iNC41Ii8+PHBhdGggZD0iTTExLjUgMTEuNUwxNSAxNSIvPjwvc3ZnPic7dmFyIEw9di5wYXR0ZXJufHwiIixQPXYucGF0aHx8aXx8IiI7RT1MLEI9UCx2LmNvbnRleHQmJihCKz0iIC1DIit2LmNvbnRleHQpfWVsc2UgaWYobj09PSJXZWJGZXRjaCIpe3c9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSI2LjUiLz48cGF0aCBkPSJNOCAxLjV2MTNNMS41IDhoMTMiLz48L3N2Zz4nO3ZhciBWPXYudXJsfHwiIjtFPVYsQj1hfHwiIn1lbHNlIGlmKG49PT0iV2ViU2VhcmNoIil7dz0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iNyIgY3k9IjciIHI9IjUiLz48cGF0aCBkPSJNMTAuNSAxMC41TDE0IDE0Ii8+PHBhdGggZD0iTTUgN2g0TTcgNXY0Ii8+PC9zdmc+Jzt2YXIgeD12LnF1ZXJ5fHwiIjtFPXgsQj1hfHwiIn1lbHNlIG49PT0iVG9kb1JlYWQiPyh3PSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PHBhdGggZD0iTTUgOGwyIDIgNC00Ii8+PC9zdmc+JyxFPSJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUVcdTUyMTdcdTg4NjgiLEI9YXx8IiIpOih3PSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNi41Ii8+PHBhdGggZD0iTTggNXYzLjVNOCAxMWguMDEiLz48L3N2Zz4nLEU9aXUobiksQj1hfHwiIik7aWYobSl7dmFyIGs9aC5zcGxpdChgCmApO2subGVuZ3RoPjEwP0Q9ay5zbGljZSgwLDEwKS5qb2luKGAKYCkrYApcdTIwMjZgOkQ9aH12YXIgVD1wKGgpLE09cChEKSxKPWgsej0iIixHPWwuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6Yz09PW51bGw/VG4oImlubGluZVRvb2xzIik6YzttP3o9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoRz8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytsbChoLG4pKyI8L2Rpdj48L2Rpdj4iOmc/ej0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyhHPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0IGlubGluZS10b29sLWVycm9yIj4nK3AoaHx8Ilx1NjRDRFx1NEY1Q1x1NTkzMVx1OEQyNSIpKyI8L2Rpdj48L2Rpdj4iOnR8fCh6PSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKEc/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1sb2FkaW5nIj5cdTdCNDlcdTVGODVcdTU0Q0RcdTVFOTRcdTIwMjY8L2Rpdj48L2Rpdj4nKTt2YXIgc2U9dCYmdC5fdHJ1bmNhdGVkPT09ITAsdGU9IiI7aWYobj09PSJSZWFkIil7dmFyIFo9di5maWxlX3BhdGh8fHYucGF0aHx8aXx8IiI7aWYoWiYmU3UoWikpe3ZhciBxPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoWik7dGU9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWltYWdlIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiPjxpbWcgY2xhc3M9ImlubGluZS10b29sLWltYWdlLXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9IicrcSsnIiBhbHQ9IicrcChGKSsnIiBkYXRhLXBhdGg9IicrcChaKStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcuaW5saW5lLXRvb2wtaW1hZ2UnKTsgaWYodyl3LnN0eWxlLmRpc3BsYXk9J25vbmUnOyIgLz48L2Rpdj5gfX12YXIgTz1CPyc8c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtbWV0YSI+JytwKEIpKyI8L3NwYW4+IjoiIixfPWc/ImlubGluZS10b29sLWVycm9yLWlubGluZSI6IiI7RyYmKF8rPSIgaW5saW5lLXRvb2wtb3BlbiIpO3ZhciBZPXNlPydkYXRhLXRydW5jYXRlZD0idHJ1ZSIgZGF0YS10b29sLXVzZS1pZD0iJytwKGUuaWR8fCIiKSsnIiAnOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbCAnK18rJyIgZGF0YS1leHBhbmQta2luZD0iaW5saW5lLXRvb2wiIGRhdGEtZXhwYW5kLWtleT0iJytwKGYpKyciIGRhdGEtcmVzdWx0PSInK3AoSikrJyIgZGF0YS1wcmV2aWV3PSInK00rJyIgZGF0YS1zdGF0dXM9IicrKGc/ImVycm9yIjptPyJkb25lIjoicGVuZGluZyIpKyciICcrWSsnb25jbGljaz0iX19pbmxpbmVUb29sVG9nZ2xlKHRoaXMpIj48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yb3ciPjxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1zdGF0dXMiPicreSsiPC9zcGFuPiIrdysnPHNwYW4gY2xhc3M9ImlubGluZS10b29sLXRpdGxlIj4nK3AoRSkrIjwvc3Bhbj4iK08rIjwvZGl2PiIrdGUreisiPC9kaXY+In1mdW5jdGlvbiBubShlLHQsbixpLGEsdSl7dmFyIG89dXx8e30scz1lLmlucHV0fHx7fSxsPXMuY29tbWFuZHx8cy5jbWR8fCIiLGQ9Z24odCYmdC5jb250ZW50KSxmPWUuaWR8fCJ0b29sLSIrbixjPU10KCJ0ZXJtaW5hbCIsW2ksZnx8YSxhXSksdj1FdChjKSxoPXQmJnQuaXNfZXJyb3IsZz1zLmV4aXRDb2RlLG09ZC5sZW5ndGg+MCx5PSIiO3Q/aD95PSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tZXJyb3IiPjwvc3Bhbj4nOmc9PT0wfHxnPT09dm9pZCAwP3k9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1zdWNjZXNzIj48L3NwYW4+Jzp5PSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0td2FybiI+PC9zcGFuPic6eT0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXJ1bm5pbmciPjwvc3Bhbj4nO2Zvcih2YXIgdz0nPHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPicsRT1wKGwpLEI9ZC5zcGxpdChgCmApLEQ9IiIsRj0wO0Y8Qi5sZW5ndGg7RisrKXt2YXIgST1CW0ZdOyFJJiZGPT09Qi5sZW5ndGgtMXx8KEQrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChJKSsiPC9kaXY+Iil9dmFyIEw9IiI7aWYodCYmZyE9PXZvaWQgMCl7dmFyIFA9Zz09PTA/InRlcm0tZXhpdC1zdWNjZXNzIjoidGVybS1leGl0LWVycm9yIjtMPSc8ZGl2IGNsYXNzPSJ0ZXJtLWV4aXQgJytQKyciPmV4aXQgJytnKyI8L2Rpdj4ifXZhciBWPWwubGVuZ3RoPjgwP2wuc2xpY2UoMCw3NykrIlx1MjAyNiI6bCx4PW8uZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6dj09PW51bGw/VG4oInRlcm1pbmFsIik6dixrPXQmJnQuX3RydW5jYXRlZD09PSEwLFQ9az8nIGRhdGEtdHJ1bmNhdGVkPSJ0cnVlIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AoZS5pZHx8IiIpKyciJzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLXRlcm1pbmFsIiBkYXRhLWV4cGFuZC1raW5kPSJ0ZXJtaW5hbCIgZGF0YS1leHBhbmQta2V5PSInK3AoYykrJyIgZGF0YS1leHBhbmRlZD0iJysoeD8idHJ1ZSI6ImZhbHNlIikrJyInK1QrJz48ZGl2IGNsYXNzPSJ0ZXJtLWhlYWRlciIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iJysoeD8idHJ1ZSI6ImZhbHNlIikrYCIgb25jbGljaz0iX190ZXJtaW5hbEV4cGFuZCh0aGlzKSIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInfHxldmVudC5rZXk9PT0nICcpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7X190ZXJtaW5hbEV4cGFuZCh0aGlzKTt9Ij5gK3krJzxzcGFuIGNsYXNzPSJ0ZXJtLWNtZC1wcmV2aWV3Ij48c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+ICcrcChWKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXJtLXRvZ2dsZS1pY29uIj4nKyh4PyJcdTI1QkMiOiJcdTI1QjYiKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRlcm0tYm9keSIgYXJpYS1oaWRkZW49IicrKHg/ImZhbHNlIjoidHJ1ZSIpKyciIHN0eWxlPSJkaXNwbGF5OicrKHg/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJ0ZXJtLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4gJytFKyI8L2Rpdj4iKyhEPyc8ZGl2IGNsYXNzPSJ0ZXJtLW91dHB1dCI+JytEKyI8L2Rpdj4iOiIiKStMKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGduKGUpe3JldHVybiBlP3R5cGVvZiBlPT0ic3RyaW5nIj9lOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoZnVuY3Rpb24odCl7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4iIjtpZih0LnR5cGU9PT0idGV4dCImJnR5cGVvZiB0LnRleHQ9PSJzdHJpbmciKXJldHVybiB0LnRleHQ7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaHtyZXR1cm4iIn19KS5maWx0ZXIoQm9vbGVhbikuam9pbihgCmApOiIiOiIifWZ1bmN0aW9uIHJtKGUsdCxuLGksYSx1KXt2YXIgbz11fHx7fSxzPWUuaW5wdXR8fHt9LGw9cy5maWxlX3BhdGh8fHMucGF0aHx8IiIsZD1sLnNwbGl0KCIvIikucG9wKCl8fGwsZj1lLmlkfHwidG9vbC0iK24rIi0iKyh0eXBlb2YgYT09Im51bWJlciI/YTowKSxjPXMub2xkX3N0cmluZ3x8IiIsdj1zLm5ld19zdHJpbmd8fHMuY29udGVudHx8IiIsaD1zLm9sZF9jb250ZW50fHwiIixnPXMubmV3X2NvbnRlbnR8fCIiLG09cy51bmlmaWVkX2RpZmZ8fHMuZGlmZnx8IiIseT1zLmtpbmR8fCIiLHc9bj09PSJXcml0ZSJ8fG49PT0iTXVsdGlFZGl0IixFPXQmJnQuaXNfZXJyb3IsQj1nbih0JiZ0LmNvbnRlbnQpLEQ9ISEoQiYmQi50cmltKCkubGVuZ3RoPjApLEY9IiIsST0iIixMPSIiO20/TD0nPGRpdiBjbGFzcz0iZGlmZi1jb2wgZGlmZi1jb2wtZnVsbCI+PGRpdiBjbGFzcz0iZGlmZi1jb2wtbGFiZWwiPkRpZmY8L2Rpdj4nK2ltKG0pKyI8L2Rpdj4iOnc/ST0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtYWRkIj4rICcrcChnKSsiPC9kaXY+IjooYyYmKEY9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLXJlbW92ZSI+LSAnK3AoYykrIjwvZGl2PiIpLHYmJihJPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1hZGQiPisgJytwKHYpKyI8L2Rpdj4iKSk7dmFyIFA9IiIsVj0iIjt0P0U/KFA9ImRpZmYtZXJyb3IiLFY9Qi5pbmRleE9mKCJoYXZlbid0IGdyYW50ZWQiKSE9PS0xfHxCLmluZGV4T2YoInBlcm1pc3Npb24iKSE9PS0xPyJcdTdCNDlcdTVGODVcdTYzODhcdTY3NDMiOiJcdTU5MzFcdThEMjUiKTooUD0iZGlmZi1zdWNjZXNzIixWPXk9PT0iYWRkIj8iXHU1REYyXHU2NUIwXHU1ODlFIjp5PT09ImRlbGV0ZSI/Ilx1NURGMlx1NTIyMFx1OTY2NCI6eT09PSJtb3ZlIj8iXHU1REYyXHU3OUZCXHU1MkE4IjoiXHU1REYyXHU0RkVFXHU2NTM5Iik6KFA9ImRpZmYtcGVuZGluZyIsVj0iXHU2MjY3XHU4ODRDXHU0RTJEIik7dmFyIHg9TXQoImRpZmYiLFtpLGZ8fGEsYV0pLGs9RXQoeCksVD1UbigiZWRpdENhcmRzIiksTT1vLmZvcmNlRXhwYW5kZWRUb29sQm9kaWVzPyEwOms9PT1udWxsP1Q6ayxKPU0/IiI6IiBjb2xsYXBzZWQiLHo9IUwmJkYmJkksRz16PyJkaWZmLWNvbC1oYWxmIjoiZGlmZi1jb2wtZnVsbCIsc2U9THx8KHo/JzxkaXYgY2xhc3M9ImRpZmYtY29sICcrRysnIj48ZGl2IGNsYXNzPSJkaWZmLWNvbC1sYWJlbCI+XHU2NUU3PC9kaXY+JytGKyI8L2Rpdj4iOiIiKSsnPGRpdiBjbGFzcz0iZGlmZi1jb2wgJytHKyciPjxkaXYgY2xhc3M9ImRpZmYtY29sLWxhYmVsIj4nKyh6PyJcdTY1QjAiOiIiKSsiPC9kaXY+IisoSXx8Rnx8c2wobCkpKyI8L2Rpdj4iLHRlPWw/JzxidXR0b24gY2xhc3M9ImRpZmYtb3Blbi1maWxlIiB0eXBlPSJidXR0b24iIGRhdGEtcGF0aD0iJytwKGwpK2AiIHRpdGxlPSJcdTYyNTNcdTVGMDBcdTY1ODdcdTRFRjYiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7Ij5cdTYyNTNcdTVGMDA8L2J1dHRvbj5gOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtZGlmZicrSisnIiBkYXRhLXRvb2wtbmFtZT0iJytwKG4pKyciIGRhdGEtZXhwYW5kLWtpbmQ9ImRpZmYiIGRhdGEtZXhwYW5kLWtleT0iJytwKHgpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChmKSsnIiBkYXRhLXBhdGg9IicrcChsKSsnIj48ZGl2IGNsYXNzPSJkaWZmLWhlYWRlciIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iJysoTT8idHJ1ZSI6ImZhbHNlIikrYCIgb25jbGljaz0iX190Y1RvZ2dsZShldmVudCx0aGlzKSIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInfHxldmVudC5rZXk9PT0nICcpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7X190Y1RvZ2dsZShldmVudCx0aGlzKTt9Ij48c3BhbiBjbGFzcz0iZGlmZi1maWxlLWljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLW5hbWUiPmArcChkKSsiPC9zcGFuPiIrdnQobCwiZGlmZi1wYXRoIikrJzxzcGFuIGNsYXNzPSJkaWZmLXN0YXR1cyAnK1ArJyI+JytWKyI8L3NwYW4+Iit0ZSsnPHNwYW4gY2xhc3M9ImRpZmYtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZGlmZi1ib2R5IiBhcmlhLWhpZGRlbj0iJysoTT8iZmFsc2UiOiJ0cnVlIikrJyI+PGRpdiBjbGFzcz0iZGlmZi1jb2x1bW5zIj4nK3NlKyI8L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGltKGUpe2Zvcih2YXIgdD1TdHJpbmcoZXx8IiIpLnNwbGl0KGAKYCksbj02MDAsaT0iIixhPTA7YTx0Lmxlbmd0aCYmYTxuO2ErKyl7dmFyIHU9dFthXSxvPSJkaWZmLWNvbnRleHQiOy9eQEAvLnRlc3QodSk/bz0iZGlmZi1odW5rIjovXlwrLy50ZXN0KHUpJiYhL15cK1wrXCsvLnRlc3QodSk/bz0iZGlmZi1hZGQiOi9eLS8udGVzdCh1KSYmIS9eLS0tLy50ZXN0KHUpJiYobz0iZGlmZi1yZW1vdmUiKSxpKz0nPGRpdiBjbGFzcz0iZGlmZi1saW5lICcrbysnIj4nK3AodXx8IiAiKSsiPC9kaXY+In1yZXR1cm4gdC5sZW5ndGg+biYmKGkrPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1jb250ZXh0Ij5cdTIwMjZcdUZGMDhcdTVERjJcdTYyMkFcdTY1QUQgJysodC5sZW5ndGgtbikrIiBcdTg4NENcdUZGMDk8L2Rpdj4iKSxpfHxzbCgiIil9ZnVuY3Rpb24gc2woZSl7dmFyIHQ9ZT8iXHVGRjBDXHU1M0VGXHU2MjUzXHU1RjAwXHU2NTg3XHU0RUY2XHU2N0U1XHU3NzBCXHU1RjUzXHU1MjREXHU1MTg1XHU1QkI5IjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iZGlmZi1lbXB0eSI+Q29kZXggXHU2NzJBXHU2M0QwXHU0RjlCXHU1MTg1XHU4MDU0IGRpZmYnK3QrIlx1MzAwMjwvZGl2PiJ9ZnVuY3Rpb24gbGwoZSx0KXtyZXR1cm4gZT8nPHByZSBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0LXRleHQiIHN0eWxlPSJtYXgtaGVpZ2h0OiAzMDBweDsgb3ZlcmZsb3cteTogYXV0bzsiPicrcChlKSsiPC9wcmU+IjonPHNwYW4gY2xhc3M9ImlubGluZS10b29sLWVtcHR5Ij5cdTY1RTBcdThGOTNcdTUxRkE8L3NwYW4+J31mdW5jdGlvbiBhbShlLHQsbixpLGEpe3ZhciB1PWF8fHt9LG89ZS5uYW1lfHwidW5rbm93biIscz1lLmlkfHwidG9vbC0iK28rIi0iKyh0eXBlb2Ygbj09Im51bWJlciI/bjowKSxsPW9tKG8sZS5pbnB1dCk7aWYobz09PSJSZWFkInx8bz09PSJHbG9iInx8bz09PSJHcmVwInx8bz09PSJXZWJGZXRjaCJ8fG89PT0iV2ViU2VhcmNoInx8bz09PSJUb2RvUmVhZCIpcmV0dXJuIHRtKGUsdCxvLGwsIiIsaSxuLHUpO2lmKG89PT0iQmFzaCIpcmV0dXJuIG5tKGUsdCxvLGksbix1KTtpZihvPT09IkVkaXQifHxvPT09IldyaXRlInx8bz09PSJNdWx0aUVkaXQiKXJldHVybiBybShlLHQsbyxpLG4sdSk7aWYobz09PSJBc2tVc2VyUXVlc3Rpb24iJiZlLmlucHV0JiZlLmlucHV0LnF1ZXN0aW9ucyl7dmFyIGQ9ZS5pbnB1dC5xdWVzdGlvbnM7aWYoZCYmZC5sZW5ndGg+MCl7Zm9yKHZhciBmPSEhdCxjPXIuYXNrVXNlclNlbGVjdGlvbnNbc118fHt9LHY9ISFjLnN1Ym1pdHRlZCxoPWY/Z24odC5jb250ZW50KToiIixnPWg/aC50cmltKCkuc3BsaXQoYApgKTpbXSxtPSIiLHk9MDt5PGQubGVuZ3RoO3krKylpZihkW3ldLmhlYWRlcil7bT1kW3ldLmhlYWRlcjticmVha312YXIgdz1tPyc8c3BhbiBjbGFzcz0idG9vbC11c2Utc3VtbWFyeSI+JytwKG0pKyI8L3NwYW4+IjoiIixFPSIiO2QuZm9yRWFjaChmdW5jdGlvbihQZSwkKXt2YXIgaGU9ISFQZS5tdWx0aVNlbGVjdCx5ZT1QZS5xdWVzdGlvbj8nPGRpdiBjbGFzcz0iYXNrLXVzZXItdGl0bGUiPicrcChQZS5xdWVzdGlvbikrIjwvZGl2PiI6IiIsd2U9IiI7UGUub3B0aW9ucyYmUGUub3B0aW9ucy5sZW5ndGg+MCYmKHdlPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb25zIiBkYXRhLW11bHRpLXNlbGVjdD0iJytoZSsnIj4nLFBlLm9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbihwZSxiZSl7dmFyIEF0PXBlLmxhYmVsP3AocGUubGFiZWwpOiJcdTkwMDlcdTk4NzkgIisoYmUrMSksZXQ9cGUuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1kZXNjIj4nK3AocGUuZGVzY3JpcHRpb24pKyI8L2Rpdj4iOiIiO2lmKGYpe3ZhciBpdD1nWyRdfHxnWzBdfHwiIixIZT1pdC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihDZSl7cmV0dXJuIENlLnRyaW0oKX0pLFV0PUhlLmluZGV4T2YocGUubGFiZWx8fCIiKSE9PS0xO3dlKz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uIGFzay11c2VyLW9wdGlvbi1yZWFkb25seScrKFV0PyIgYXNrLXVzZXItb3B0aW9uLWNob3NlbiI6IiIpKyciPjxzcGFuIGNsYXNzPSJhc2stdXNlci1pbmRpY2F0b3IiPjwvc3Bhbj48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tY29udGVudCI+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWxhYmVsIj4nK0F0KyI8L2Rpdj4iK2V0KyI8L2Rpdj48L2Rpdj4ifWVsc2V7dmFyIEtlPShjWyRdfHxbXSkuaW5kZXhPZihiZSkhPT0tMSxWZT12PyIgZGlzYWJsZWQiOiIiO3dlKz0nPGJ1dHRvbiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uJysoS2U/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtb3B0aW9uLWluZGV4PSInK2JlKyciIGRhdGEtcXVlc3Rpb24taW5kZXg9IicrJCsnIiBkYXRhLW9wdGlvbi1sYWJlbD0iJytwKHBlLmxhYmVsfHwiXHU5MDA5XHU5ODc5ICIrKGJlKzEpKStgIiBvbmNsaWNrPSJfX2Fza1NlbGVjdCgnYCtwKHMpKyInLCIrJCsiLCIrYmUrIiwiK2hlKycpIicrVmUrJz48c3BhbiBjbGFzcz0iYXNrLXVzZXItaW5kaWNhdG9yIj48L3NwYW4+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWNvbnRlbnQiPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1sYWJlbCI+JytBdCsiPC9kaXY+IitldCsiPC9kaXY+PC9idXR0b24+In19KSx3ZSs9IjwvZGl2PiIpLEUrPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1xdWVzdGlvbi1ncm91cCIgZGF0YS1xdWVzdGlvbi1pbmRleD0iJyskKyciPicreWUrd2UrIjwvZGl2PiJ9KTt2YXIgQj0iIjtpZighZil7Zm9yKHZhciBEPSEwLEY9MDtGPGQubGVuZ3RoO0YrKylpZighY1tGXXx8Y1tGXS5sZW5ndGg9PT0wKXtEPSExO2JyZWFrfXZhciBJPSFEfHx2PyIgZGlzYWJsZWQiOiIiLEw9dj8iIGFzay11c2VyLXN1Ym1pdHRlZCI6IiIsUD12PyJcdTVERjJcdTYzRDBcdTRFQTQuLi4iOiJcdTc4NkVcdThCQTRcdTYzRDBcdTRFQTQiO0I9JzxkaXYgY2xhc3M9ImFzay11c2VyLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImFzay11c2VyLXN1Ym1pdCcrTCsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AocykrYCIgb25jbGljaz0iX19hc2tTdWJtaXQoJ2ArcChzKStgJykiYCtJKyI+IitQKyI8L2J1dHRvbj48L2Rpdj4ifXZhciBWPSIiO2lmKGYmJmgpe3ZhciB4PWgudHJpbSgpLnJlcGxhY2UoL1xuL2csIiwgIik7eC5sZW5ndGg+NDAmJih4PXguc2xpY2UoMCwzNykrIi4uLiIpLFY9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AoeCkrIjwvc3Bhbj4ifXZhciBrPU10KCJ0b29sLWNhcmQiLFtpLHNdKSxUPUV0KGspLE09dS5mb3JjZUV4cGFuZGVkVG9vbEJvZGllcz8hMDpUPT09bnVsbD8hZjpULEo9TT8iIjoiIGNvbGxhcHNlZCIsej1mPyIgYXNrLXVzZXItYW5zd2VyZWQiOiIiO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkIGFzay11c2VyJyt6K0orJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKHMpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AoaykrJyI+PGRpdiBjbGFzcz0idG9vbC11c2UtaGVhZGVyIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1pY29uIj4nKyhmPyJcdTI3MTMiOiI/IikrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC11c2UtbmFtZSI+XHU2M0QwXHU5NUVFPC9zcGFuPicrdytWKyc8c3BhbiBjbGFzcz0idG9vbC11c2UtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9vbC11c2UtYm9keSBhc2stdXNlci1ib2R5Ij4nK0UrQisiPC9kaXY+PC9kaXY+In19dmFyIEc9ZS5kZXNjcmlwdGlvbnx8ZS5pbnB1dCYmZS5pbnB1dC5kZXNjcmlwdGlvbnx8IiIsc2U9dW0oZS5uYW1lLGUuaW5wdXQpLHRlPSIiLFo9IiI7Rz8odGU9Ry5sZW5ndGg+ODA/Ry5zbGljZSgwLDc3KSsiLi4uIjpHLGwmJihaPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtZmlsZSI+JytwKGwpKyI8L3NwYW4+IikpOih0ZT1pdShvKSxsJiYoWj0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChsKSsiPC9zcGFuPiIpLHNlJiYoWis9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zdW1tYXJ5Ij4nK3Aoc2UpKyI8L3NwYW4+IikpO3ZhciBxPWUuaW5wdXQ/SlNPTi5zdHJpbmdpZnkoZS5pbnB1dCxudWxsLDIpOiJ7fSIsTz0ibG9hZGluZyIsXz0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXNwaW5uZXIiPjwvc3Bhbj4nLFk9IiI7aWYodCl7dmFyIEs9dC5pc19lcnJvcixyZT1nbih0LmNvbnRlbnQpO089Sz8iZXJyb3IiOiJzdWNjZXNzIixfPWRsKG8pO3ZhciBkZT1yZSYmcmUudHJpbSgpLmxlbmd0aD4wO2RlP1k9JzxwcmUgY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1jb250ZW50Ij4nK3AocmUpKyI8L3ByZT4iOlk9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtZW1wdHkiPlx1NjVFMFx1OEY5M1x1NTFGQTwvc3Bhbj4nfWVsc2UgXz1kbChvKTt2YXIgbmU9TXQoInRvb2wtY2FyZCIsW2ksc10pLGllPUV0KG5lKSxPZT1UbigiZWRpdENhcmRzIiksRmU9dS5mb3JjZUV4cGFuZGVkVG9vbEJvZGllcz8hMDppZT09PW51bGw/T2U6aWUsY2U9dCYmdC5fdHJ1bmNhdGVkPT09ITAsUj1GZT8iIjoiIGNvbGxhcHNlZCIsbXQ9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS10b2dnbGUiPlx1MjVCQzwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkICcrTytSKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AobmUpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChzKSsnIicrKGNlPycgZGF0YS10cnVuY2F0ZWQ9InRydWUiJzoiIikrJz48ZGl2IGNsYXNzPSJ0b29sLXVzZS1oZWFkZXIiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9IicrKEZlPyJ0cnVlIjoiZmFsc2UiKStgIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJ3x8ZXZlbnQua2V5PT09JyAnKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO19fdGNUb2dnbGUoZXZlbnQsdGhpcyk7fSI+PHNwYW4gY2xhc3M9InRvb2wtdXNlLWljb24iPmArXysnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1uYW1lIj4nK3AodGUpKyI8L3NwYW4+IitaK210Kyc8L2Rpdj48ZGl2IGNsYXNzPSJ0b29sLXVzZS1ib2R5IiBhcmlhLWhpZGRlbj0iJysoRmU/ImZhbHNlIjoidHJ1ZSIpKyciPicrKEc/JzxkaXYgY2xhc3M9InRvb2wtdXNlLW1ldGEiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1tZXRhLWxhYmVsIj5cdTVERTVcdTUxNzdcdUZGMUE8L3NwYW4+JytwKG8pKyI8L2Rpdj4iOiIiKSsnPHByZSBjbGFzcz0idG9vbC11c2UtY29udGVudCI+JytwKHEpKyI8L3ByZT4iKyhZPyc8ZGl2IGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQiPicrWSsiPC9kaXY+IjoiIikrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gaXUoZSl7dmFyIHQ9e1JlYWQ6Ilx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiIsV3JpdGU6Ilx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiIsRWRpdDoiXHU3RjE2XHU4RjkxXHU2NTg3XHU0RUY2IixNdWx0aUVkaXQ6Ilx1NTkxQVx1NTkwNFx1N0YxNlx1OEY5MSIsQmFzaDoiXHU2MjY3XHU4ODRDXHU1NDdEXHU0RUU0IixHcmVwOiJcdTY0MUNcdTdEMjJcdTUxODVcdTVCQjkiLEdsb2I6Ilx1NjdFNVx1NjI3RVx1NjU4N1x1NEVGNiIsV2ViRmV0Y2g6Ilx1ODNCN1x1NTNENlx1N0Y1MVx1OTg3NSIsV2ViU2VhcmNoOiJcdTY0MUNcdTdEMjJcdTdGNTFcdTk4NzUiLFRhc2s6Ilx1NEVGQlx1NTJBMSIsVG9kb1dyaXRlOiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUiLFRvZG9SZWFkOiJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUUiLE5vdGVib29rRWRpdDoiXHU3RjE2XHU4RjkxXHU3QjE0XHU4QkIwXHU2NzJDIixBZ2VudDoiXHU1QjUwXHU0RUUzXHU3NDA2IixBc2tVc2VyUXVlc3Rpb246Ilx1NjNEMFx1OTVFRSIsRXhpdDoiXHU5MDAwXHU1MUZBIn07cmV0dXJuIHRbZV18fGV9ZnVuY3Rpb24gZGwoZSl7dmFyIHQ9e1JlYWQ6IlIiLFdyaXRlOiJXIixFZGl0OiJFIixNdWx0aUVkaXQ6IkUiLEJhc2g6IiQiLEdyZXA6IkciLEdsb2I6IkYiLFdlYkZldGNoOiJcdTIxRTMiLFdlYlNlYXJjaDoiXHUyMUUyIixUYXNrOiJUIixUb2RvV3JpdGU6Ilx1MjYxMCIsVG9kb1JlYWQ6Ilx1MjYxMSIsTm90ZWJvb2tFZGl0OiJOIixBZ2VudDoiQSIsRXhpdDoiXHhENyJ9O3JldHVybiB0W2VdfHwiXHhCNyJ9ZnVuY3Rpb24gdW0oZSx0KXtpZighdHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiIiO3ZhciBuPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoPT09MClyZXR1cm4ie30iO2lmKGU9PT0iUmVhZCIpcmV0dXJuIlx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiI7aWYoZT09PSJXcml0ZSIpcmV0dXJuIlx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiI7aWYoZT09PSJFZGl0Iil7dmFyIGk9dC5lZGl0cz90LmVkaXRzLmxlbmd0aDowO3JldHVybiJcdTdGMTZcdThGOTEgKCIraSsiIFx1NTkwNFx1NEZFRVx1NjUzOSkifWlmKGU9PT0iQmFzaCIpe3ZhciBhPXQuY29tbWFuZHx8IiI7aWYoYSl7dmFyIHU9YS5sZW5ndGg+NjA/YS5zbGljZSgwLDYwKSsiLi4uIjphO3JldHVybiJcdTU0N0RcdTRFRTRcdUZGMUEiK3V9fWlmKGU9PT0iR3JlcCIpe3ZhciBvPXQucGF0dGVybnx8IiIscz10LnBhdGh8fCIiO2lmKG8pcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrbysocz8iIChcdTU3MjggIitzKyIpIjoiIil9aWYoZT09PSJHbG9iIil7dmFyIG89dC5wYXR0ZXJufHwiIjtpZihvKXJldHVybiJcdTY3RTVcdTYyN0VcdUZGMUEiK299aWYoZT09PSJBZ2VudCIpe3ZhciBsPXQucHJvbXB0fHx0LnRhc2t8fCIiO2lmKGwpe3ZhciBkPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitkfX1pZihlPT09IlRhc2siKXt2YXIgbD10LnRhc2t8fHQuZGVzY3JpcHRpb258fCIiO2lmKGwpe3ZhciBkPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitkfX1pZihlPT09IlRvZG9Xcml0ZSIpe3ZhciBmPXQudG9kb3N8fFtdO3JldHVybiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUgKCIrZi5sZW5ndGgrIiBcdTk4NzkpIn1pZihlPT09IldlYlNlYXJjaCIpe3ZhciBjPXQucXVlcnl8fCIiO2lmKGMpcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrY312YXIgdj1uWzBdLGg9dFt2XTtpZih0eXBlb2YgaD09InN0cmluZyIpe3ZhciBnPWgubGVuZ3RoPjUwP2guc2xpY2UoMCw1MCkrIi4uLiI6aDtyZXR1cm4gdisiOiAiK2d9cmV0dXJuIG4ubGVuZ3RoKyIgXHU0RTJBXHU1M0MyXHU2NTcwIn1mdW5jdGlvbiBvbShlLHQpe2lmKCF0KXJldHVybiBudWxsO3ZhciBuPXQuZmlsZV9wYXRofHx0LnBhdGh8fHQuY3dkO3JldHVybiBuP24ubGVuZ3RoPjUwPyIuLi4iK24uc2xpY2UoLTQ3KTpuOm51bGx9ZnVuY3Rpb24gc20oZSl7aWYoIWUpcmV0dXJuIiI7Zm9yKHZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPSExLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XSxzPW8udHJpbSgpO2lmKCEoIWEmJiFzKSl7aWYoYT0hMCxzLmluZGV4T2YoIlx1MjNGQSIpPT09MCYmcy5sZW5ndGg+Mil7aS5wdXNoKHMuc2xpY2UoMSkudHJpbSgpKTtjb250aW51ZX1pZihzLmluZGV4T2YoIlx1MjVDRiIpPT09MCl7aWYocz1zLnNsaWNlKDEpLnRyaW0oKSwhcyljb250aW51ZTtvPXN9aS5wdXNoKG8pfX1mb3IoO2kubGVuZ3RoPjAmJiFpW2kubGVuZ3RoLTFdLnRyaW0oKTspaS5wb3AoKTtmb3IodmFyIGw9W10sZD17fSxmPTA7ZjxpLmxlbmd0aDtmKyspe3ZhciBjPWlbZl0ucmVwbGFjZSgvXHMrL2csIiIpO2MubGVuZ3RoPjUmJmRbY118fChjLmxlbmd0aD41JiYoZFtjXT0hMCksbC5wdXNoKGlbZl0pKX1yZXR1cm4gbC5qb2luKHQpfWZ1bmN0aW9uIGNsKGUpe3ZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPTA7ZnVuY3Rpb24gdShtKXt2YXIgeT1tLnRyaW0oKTtyZXR1cm4geS5jaGFyQXQoMCk9PT0ifCImJih5PXkuc2xpY2UoMSkpLHkuY2hhckF0KHkubGVuZ3RoLTEpPT09InwiJiYoeT15LnNsaWNlKDAsLTEpKSx5LnNwbGl0KCJ8Iil9ZnVuY3Rpb24gbyhtKXtyZXR1cm4gbT8nIHN0eWxlPSJ0ZXh0LWFsaWduOicrbSsnIic6IiJ9ZnVuY3Rpb24gcyhtLHksdyl7dmFyIEU9Ijx0aGVhZD48dHI+IittLm1hcChmdW5jdGlvbihELEYpe3JldHVybiI8dGgiK28oeVtGXSkrIj4iK0QudHJpbSgpKyI8L3RoPiJ9KS5qb2luKCIiKSsiPC90cj48L3RoZWFkPiIsQj13Lmxlbmd0aD8iPHRib2R5PiIrdy5tYXAoZnVuY3Rpb24oRCl7cmV0dXJuIjx0cj4iK0QubWFwKGZ1bmN0aW9uKEYsSSl7cmV0dXJuIjx0ZCIrbyh5W0ldKSsiPiIrRi50cmltKCkrIjwvdGQ+In0pLmpvaW4oIiIpKyI8L3RyPiJ9KS5qb2luKCIiKSsiPC90Ym9keT4iOiIiO3JldHVybic8ZGl2IGNsYXNzPSJtZC10YWJsZS13cmFwIj48dGFibGUgY2xhc3M9Im1kLXRhYmxlIj4nK0UrQisiPC90YWJsZT48L2Rpdj4ifWZvcig7YTxuLmxlbmd0aDspe3ZhciBsPW5bYV07aWYobC5pbmRleE9mKCJ8IikhPT0tMSYmYSsxPG4ubGVuZ3RoKXt2YXIgZD1uW2ErMV0udHJpbSgpO2lmKC9eXHw/XHMqOj8tKzo/KFxzKlx8XHMqOj8tKzo/KStccypcfD8kLy50ZXN0KGQpKXtmb3IodmFyIGY9dShsKSxjPXUoZCkubWFwKGZ1bmN0aW9uKG0pe3ZhciB5PW0udHJpbSgpLHc9eS5jaGFyQXQoMCk9PT0iOiIsRT15LmNoYXJBdCh5Lmxlbmd0aC0xKT09PSI6IjtyZXR1cm4gdyYmRT8iY2VudGVyIjpFPyJyaWdodCI6dz8ibGVmdCI6IiJ9KSx2PVtdLGg9YSsyO2g8bi5sZW5ndGg7KXt2YXIgZz1uW2hdLnRyaW0oKTtpZighZ3x8Zy5pbmRleE9mKCJ8Iik9PT0tMSlicmVhazt2LnB1c2godShuW2hdKSksaCs9MX1pLnB1c2goIiIscyhmLGMsdiksIiIpLGE9aDtjb250aW51ZX19aS5wdXNoKGwpLGErPTF9cmV0dXJuIGkuam9pbih0KX1mdW5jdGlvbiBhdShlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1wKGUpLG49ImAiLGk9YApgO2Z1bmN0aW9uIGEocSxPLF8sWSl7Zm9yKHZhciBLPTA7Oyl7dmFyIHJlPXEuaW5kZXhPZihPLEspO2lmKHJlPT09LTEpYnJlYWs7dmFyIGRlPXEuaW5kZXhPZihPLHJlK08ubGVuZ3RoKTtpZihkZT09PS0xKWJyZWFrO3ZhciBuZT1xLnNsaWNlKHJlK08ubGVuZ3RoLGRlKTtpZighbmUpe0s9ZGUrTy5sZW5ndGg7Y29udGludWV9dmFyIGllPV8rbmUrWTtxPXEuc2xpY2UoMCxyZSkraWUrcS5zbGljZShkZStPLmxlbmd0aCksSz1yZStpZS5sZW5ndGh9cmV0dXJuIHF9ZnVuY3Rpb24gdShxKXtyZXR1cm4gcT49NDgmJnE8PTU3fHxxPj02NSYmcTw9OTB8fHE+PTk3JiZxPD0xMjJ8fHE9PT05NX1mdW5jdGlvbiBvKHEsTyxfKXtmb3IodmFyIFk9MDtZPHEubGVuZ3RoOyl7dmFyIEs9cS5pbmRleE9mKCJfIixZKTtpZihLPT09LTEpYnJlYWs7dmFyIHJlPUs+MD9xLmNoYXJDb2RlQXQoSy0xKTowO2lmKHUocmUpKXtZPUsrMTtjb250aW51ZX1mb3IodmFyIGRlPUsrMSxuZT0tMTtkZTxxLmxlbmd0aDspe3ZhciBpZT1xLmluZGV4T2YoIl8iLGRlKTtpZihpZT09PS0xKWJyZWFrO3ZhciBPZT1pZSsxLEZlPU9lPHEubGVuZ3RoP3EuY2hhckNvZGVBdChPZSk6MDtpZighdShGZSkpe25lPWllO2JyZWFrfWRlPWllKzF9aWYobmU9PT0tMSlicmVhazt2YXIgY2U9cS5zbGljZShLKzEsbmUpO2lmKCFjZSl7WT1uZSsxO2NvbnRpbnVlfXZhciBSPU8rY2UrXztxPXEuc2xpY2UoMCxLKStSK3Euc2xpY2UobmUrMSksWT1LK1IubGVuZ3RofXJldHVybiBxfWZ1bmN0aW9uIHMocSxPLF8sWSl7cmV0dXJuIHEuc3BsaXQoaSkubWFwKGZ1bmN0aW9uKEspe3JldHVybiBLLmluZGV4T2YoTykhPT0wP0s6XytLLnNsaWNlKE8ubGVuZ3RoKStZfSkuam9pbihpKX1mdW5jdGlvbiBsKHEpe3JldHVybiBxLnNwbGl0KGkpLm1hcChmdW5jdGlvbihPKXt2YXIgXz1PLmluZGV4T2YoIi4gIik7aWYoXzw9MClyZXR1cm4gTztmb3IodmFyIFk9MDtZPF87WSs9MSl7dmFyIEs9Ty5jaGFyQ29kZUF0KFkpO2lmKEs8NDh8fEs+NTcpcmV0dXJuIE99cmV0dXJuIjxsaT4iK08uc2xpY2UoXysyKSsiPC9saT4ifSkuam9pbihpKX1mdW5jdGlvbiBkKHEpe3JldHVybiBxLnNwbGl0KGkraSkubWFwKGZ1bmN0aW9uKE8pe3ZhciBfPU8udHJpbSgpO3JldHVybiBfP18uaW5kZXhPZigiPGRpdiIpPT09MHx8Xy5pbmRleE9mKCI8aDEiKT09PTB8fF8uaW5kZXhPZigiPGgyIik9PT0wfHxfLmluZGV4T2YoIjxoMyIpPT09MHx8Xy5pbmRleE9mKCI8aDQiKT09PTB8fF8uaW5kZXhPZigiPGg1Iik9PT0wfHxfLmluZGV4T2YoIjxoNiIpPT09MHx8Xy5pbmRleE9mKCI8dWwiKT09PTB8fF8uaW5kZXhPZigiPG9sIik9PT0wfHxfLmluZGV4T2YoIjxsaSIpPT09MHx8Xy5pbmRleE9mKCI8YmxvY2txdW90ZSIpPT09MHx8Xy5pbmRleE9mKCI8cHJlIik9PT0wP186IjxwPiIrXy5zcGxpdChpKS5qb2luKCI8YnI+IikrIjwvcD4iOiIifSkuam9pbigiIil9Zm9yKHZhciBmPTA7Oyl7dmFyIGM9dC5pbmRleE9mKG4rbituLGYpO2lmKGM9PT0tMSlicmVhazt2YXIgdj10LmluZGV4T2YobituK24sYyszKTtpZih2PT09LTEpYnJlYWs7dmFyIGg9dC5zbGljZShjKzMsdiksZz1oLmluZGV4T2YoaSksbT0iIix5PWg7aWYoZyE9PS0xJiZnPDMwKXtmb3IodmFyIHc9aC5zbGljZSgwLGcpLnRyaW0oKSxFPXcubGVuZ3RoPjAsQj0wO0I8dy5sZW5ndGg7Qis9MSl7dmFyIEQ9dy5jaGFyQ29kZUF0KEIpLEY9RD49NDgmJkQ8PTU3LEk9RD49NjUmJkQ8PTkwLEw9RD49OTcmJkQ8PTEyMjtpZighRiYmIUkmJiFMKXtFPSExO2JyZWFrfX1FJiYobT13LHk9aC5zbGljZShnKzEpKX12YXIgUD1sbSh5LnRyaW0oKSxtKSxWPVAucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IikseD0nPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+PGRpdiBjbGFzcz0iY29kZS1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJjb2RlLWxhbmciPicrKG18fCJjb2RlIikrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJjb2RlLWNvcHkiPkNvcHk8L2J1dHRvbj48L2Rpdj48cHJlPjxjb2RlPicrVisiPC9jb2RlPjwvcHJlPjwvZGl2PiI7dD10LnNsaWNlKDAsYykreCt0LnNsaWNlKHYrMyksZj1jK3gubGVuZ3RofWZvcihmPTA7Oyl7dmFyIGs9dC5pbmRleE9mKG4sZik7aWYoaz09PS0xKWJyZWFrO3ZhciBUPXQuaW5kZXhPZihuLGsrMSk7aWYoVD09PS0xKWJyZWFrO2lmKFQ9PT1rKzEpe2Y9VCsxO2NvbnRpbnVlfXZhciBNPXQuc2xpY2UoaysxLFQpLEo9TS5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKSx6PSc8Y29kZSBjbGFzcz0iY29kZS1pbmxpbmUiPicrSisiPC9jb2RlPiI7dD10LnNsaWNlKDAsaykreit0LnNsaWNlKFQrMSksZj1rK3oubGVuZ3RofXQ9YSh0LCIqKiIsIjxzdHJvbmc+IiwiPC9zdHJvbmc+IiksdD1hKHQsIioiLCI8ZW0+IiwiPC9lbT4iKSx0PW8odCwiPGVtPiIsIjwvZW0+IiksdD1zKHQsIiMjIyAiLCI8aDM+IiwiPC9oMz4iKSx0PXModCwiIyMgIiwiPGgyPiIsIjwvaDI+IiksdD1zKHQsIiMgIiwiPGgxPiIsIjwvaDE+IiksdD1zKHQsIiZndDsgIiwiPGJsb2NrcXVvdGU+IiwiPC9ibG9ja3F1b3RlPiIpLHQ9cyh0LCItICIsIjxsaT4iLCI8L2xpPiIpLHQ9cyh0LCIqICIsIjxsaT4iLCI8L2xpPiIpLHQ9bCh0KSx0PWNsKHQpO3ZhciBHPXQuc3BsaXQoaSksc2U9W10sdGU9W107ZnVuY3Rpb24gWigpe3RlLmxlbmd0aCYmKHNlLnB1c2goIjx1bD4iK3RlLmpvaW4oIiIpKyI8L3VsPiIpLHRlPVtdKX1yZXR1cm4gRy5mb3JFYWNoKGZ1bmN0aW9uKHEpe2lmKHEuaW5kZXhPZigiPGxpPiIpPT09MCYmcS5sYXN0SW5kZXhPZigiPC9saT4iKT09PXEubGVuZ3RoLTUpe3RlLnB1c2gocSk7cmV0dXJufVooKSxzZS5wdXNoKHEpfSksWigpLHQ9ZChzZS5qb2luKGkpKSwnPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+Jyt0KyI8L2Rpdj4ifWZ1bmN0aW9uIGxtKGUsdCl7cmV0dXJuIGU9ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksZX1mdW5jdGlvbiAkbihlKXt2YXIgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdC5sZW5ndGg8PTI0P3R8fCJcdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQiOnQuc2xpY2UoMCwyMSkrIi4uLiJ9ZnVuY3Rpb24gdXUoZSl7cmV0dXJuIFN0cmluZyhlfHwiIikucmVwbGFjZSgvXHJcclxuL2csYFxyCmApLnJlcGxhY2UoL1x1MDAwMC9nLCIiKX1mdW5jdGlvbiBkbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWh0dHAtbGluayIpO3QmJih0LmhyZWY9Imh0dHA6Ly8iK2xvY2F0aW9uLmhvc3QrbG9jYXRpb24ucGF0aG5hbWUsdC5zdHlsZS5kaXNwbGF5PWxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IiI6Im5vbmUiKX1mdW5jdGlvbiBjbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIG91KCl7aWYoIXIubG9naW5QZW5kaW5nKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpOyFlfHwhdHx8IW58fCh2aShuKSxjbSgpLGUuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpLHIubG9naW5QZW5kaW5nPSEwLHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU3NjdCXHU1RjU1XHU0RTJELi4uIixmZXRjaCgiL2FwaS9sb2dpbiIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXNzd29yZDplLnZhbHVlfSksY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuc3RhdHVzPT09NDI5PyhxZShuLCJcdTc2N0JcdTVGNTVcdTVDMURcdThCRDVcdTZCMjFcdTY1NzBcdThGQzdcdTU5MUFcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTUxOERcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKTppLm9rP2ZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTooZS5kYXRhc2V0LmVycm9yPSJ0cnVlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwidHJ1ZSIpLHFlKG4sIlx1NUJDNlx1NzgwMVx1OTUxOVx1OEJFRlx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5vaz9pLmpzb24oKToobG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij9kbSgpOnFlKG4sIlx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyLmNvbmZpZz1pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMtZG90IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzLXRleHQiKTtyZXR1cm4gYSYmYS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSx1JiYodS50ZXh0Q29udGVudD0iXHU1REYyXHU3NjdCXHU1RjU1IiksTnQoKX0pLnRoZW4oZnVuY3Rpb24oKXtNbygpLFp0KCl9KS5jYXRjaChmdW5jdGlvbihpKXtpIT09ImhhbmRsZWQiJiYoY29uc29sZS5lcnJvcigiW3dhbmRdIExvZ2luIGVycm9yOiIsaSkscWUobiwiXHU3NjdCXHU1RjU1XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIikpfSkuZmluYWxseShmdW5jdGlvbigpe3IubG9naW5QZW5kaW5nPSExLHQuZGlzYWJsZWQ9ITEsdC50ZXh0Q29udGVudD0iXHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwIn0pKX19ZnVuY3Rpb24gc3UoKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zd2l0Y2hTZXJ2ZXI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gZmwoKXtpZihzdSgpKXRyeXtXYW5kTmF0aXZlLnN3aXRjaFNlcnZlcigpfWNhdGNoe319ZnVuY3Rpb24gZm0oKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiI/ITA6dHlwZW9mIHdpbmRvdy5fX3dhbmRCYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gcG0oKXt0cnl7aWYodHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiIpe1dhbmROYXRpdmUuYmFja1RvTmF0aXZlKCk7cmV0dXJufXR5cGVvZiB3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iJiZ3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlKCl9Y2F0Y2h7fX1mdW5jdGlvbiBwbCgpe2ZldGNoKCIvYXBpL2xvZ291dCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLmNhdGNoKGZ1bmN0aW9uKCl7fSksTm8oKSxxbighMSksamEoKSxFcigpLHIuY29uZmlnPW51bGwsci5zZWxlY3RlZElkPW51bGwsRWUoKSxyLnNlc3Npb25zPVtdLHIuY2xhdWRlSGlzdG9yeT1bXSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzPXt9LHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLFp0KCl9ZnVuY3Rpb24gTnQoKXtyZXR1cm4geW4oKX1mdW5jdGlvbiBsdShlKXtyZXR1cm4gZT09PSJmdWxsLWFjY2VzcyI/Ilx1NTE2OFx1Njc0M1x1OTY1MCI6ZT09PSJkZWZhdWx0Ij8iXHU5RUQ4XHU4QkE0IjplPT09Im5hdGl2ZSI/Ilx1NTM5Rlx1NzUxRiI6ZT09PSJhdXRvLWVkaXQiPyJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEiOmU9PT0ibWFuYWdlZCI/Ilx1NjI1OFx1N0JBMSI6ZX1mdW5jdGlvbiBYZSgpe3JldHVybiByLnNlc3Npb25Ub29sfHxyLnByZWZlcnJlZENvbW1hbmR8fCJjbGF1ZGUifWZ1bmN0aW9uIHZtKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIGUmJmUucHJvdmlkZXJ8fHIucHJlZmVycmVkQ29tbWFuZHx8ImNsYXVkZSJ9ZnVuY3Rpb24gdmwoZSx0KXtyZXR1cm4gdD8iXHU5NTJFXHU3NkQ4XHU4RjkzXHU1MTY1XHU1QzA2XHU1M0QxXHU5MDAxXHU1MjMwXHU3RUM4XHU3QUVGIjplJiYoZS5zdGF0dXM9PT0iZXhpdGVkInx8ZS5zdGF0dXM9PT0iZmFpbGVkInx8ZS5zdGF0dXM9PT0ic3RvcHBlZCIpP1BhKGUpPyJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkZcdTRFRTVcdTdFRTdcdTdFRURcdTRGMUFcdThCREQiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOnVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ/Ilx1NTZERVx1NTkwRFx1NEUyRFx1RkYwQ1x1NTNFRlx1N0VFN1x1N0VFRFx1OEY5M1x1NTE2NSI6Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiJ9ZnVuY3Rpb24gbWwoZSx0KXtyZXR1cm4gZT09PSJjb2RleCI/IkNvZGV4IFx1NjUyRlx1NjMwMSBQVFkgXHU3RUM4XHU3QUVGXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHVGRjA4SlNPTkxcdUZGMDlcdTRFMjRcdTc5Q0RcdTRGMUFcdThCRERcdUZGMENcdTdFRDNcdTY3ODRcdTUzMTZcdTZBMjFcdTVGMEZcdTYzMDkgZnVsbC1hY2Nlc3MgXHU1NDJGXHU1MkE4XHUzMDAyIjp0PT09ImZ1bGwtYWNjZXNzIj8iXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwXHU4QkY3XHU2QzQyXHU0RTBFXHU5QUQ4XHU2NzQzXHU5NjUwXHU2NENEXHU0RjVDXHVGRjBDXHU5MDAyXHU1NDA4XHU0RjYwXHU3ODZFXHU4QkE0XHU3M0FGXHU1ODgzXHU1Qjg5XHU1MTY4XHU1NDBFXHU3Njg0XHU4RkRFXHU3RUVEXHU0RkVFXHU2NTM5XHUzMDAyIjp0PT09ImF1dG8tZWRpdCI/Ilx1NEZERFx1NzU1OVx1NEVBNFx1NEU5Mlx1NUYwRlx1NEYxQVx1OEJERFx1RkYwQ1x1NTQwQ1x1NjVGNlx1NjZGNFx1NTA0Rlx1NTQxMVx1NzZGNFx1NjNBNVx1N0YxNlx1OEY5MVx1NEVFM1x1NzgwMVx1MzAwMiI6dD09PSJuYXRpdmUiPyJcdThDMDNcdTc1MjggQ2xhdWRlIFx1NTM5Rlx1NzUxRiBBUEkgXHU4RjkzXHU1MUZBXHVGRjBDXHU5MDAyXHU1NDA4XHU1RkVCXHU5MDFGXHU5NUVFXHU3QjU0XHU2MjE2XHU0RTAwXHU2QjIxXHU2MDI3XHU3NTFGXHU2MjEwXHUzMDAyIjp0PT09Im1hbmFnZWQiPyJBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUNcdUZGMENcdTY1RTBcdTk3MDBcdTRFMkRcdTkwMTRcdTc4NkVcdThCQTRcdUZGMENcdTkwMDJcdTU0MDhcdTY3MDlcdTY2MEVcdTc4NkVcdTc2RUVcdTY4MDdcdTc2ODRcdTRFRkJcdTUyQTFcdTMwMDIiOiJcdTRGRERcdTc1NTlcdTY4MDdcdTUxQzZcdTRFQTRcdTRFOTJcdTZENDFcdTdBMEJcdUZGMENcdTkwMDJcdTU0MDhcdTYyNEJcdTUyQThcdTc4NkVcdThCQTRcdTZCQ0ZcdTRFMDBcdTZCNjVcdTMwMDIifWZ1bmN0aW9uIGR1KGUpe3JldHVybiBlPT09ImNvZGV4Ij9bImZ1bGwtYWNjZXNzIl06WyJkZWZhdWx0IiwiZnVsbC1hY2Nlc3MiLCJhdXRvLWVkaXQiLCJuYXRpdmUiLCJtYW5hZ2VkIl19ZnVuY3Rpb24ga3QoZSx0KXt2YXIgbj1kdShlKTtpZihuLmluZGV4T2YodCkhPT0tMSlyZXR1cm4gdDt2YXIgaT1yLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiO3JldHVybiBuLmluZGV4T2YoaSkhPT0tMT9pOm5bMF19ZnVuY3Rpb24gdmgoZSx0KXtyZXR1cm4gZHUoZSkubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPWdsKG4pO3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrJyB0aXRsZT0iJytpKyciPicrcChsdShuKSkrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBnbChlKXt2YXIgdD17ZGVmYXVsdDoiXHU2ODA3XHU1MUM2XHU2QTIxXHU1RjBGIC0gXHU5NzAwXHU4OTgxXHU3ODZFXHU4QkE0XHU2NTg3XHU0RUY2XHU0RkVFXHU2NTM5IiwiZnVsbC1hY2Nlc3MiOiJcdTVCOENcdTUxNjhcdThCQkZcdTk1RUUgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTBcdTRFMEVcdTY0Q0RcdTRGNUMiLCJhdXRvLWVkaXQiOiJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY1ODdcdTRFRjZcdTRGRUVcdTY1MzkiLG5hdGl2ZToiXHU1MzlGXHU3NTFGXHU2QTIxXHU1RjBGIC0gXHU4RkQ0XHU1NkRFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RjkzXHU1MUZBIixtYW5hZ2VkOiJcdTYyNThcdTdCQTFcdTZBMjFcdTVGMEYgLSBBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUMifTtyZXR1cm4gdFtlXXx8IiJ9ZnVuY3Rpb24gbW0oZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcj9lLnByb3ZpZGVyOiJjbGF1ZGUiO3JldHVybih1ZShlKT8iXHU3RUQzXHU2Nzg0XHU1MzE2IjoiXHU3RUM4XHU3QUVGIikrIiBceEI3ICIrdH1mdW5jdGlvbiBnbShlKXtyZXR1cm4gdWUoZSk/Ilx1N0VEM1x1Njc4NFx1NTMxNiBceEI3IFx1NTc1N1x1N0VBN1x1OEJCMFx1NUY1NSI6ZSYmZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1N0VDOFx1N0FFRiBceEI3IENvZGV4IFBUWVx1RkYwOGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjA5IjoiXHU3RUM4XHU3QUVGIFx4QjcgUFRZIFx1NEYxQVx1OEJERCJ9ZnVuY3Rpb24gaGwoZSl7cmV0dXJuIGU/dWUoZSl8fGUucHJvdmlkZXI9PT0iY29kZXgiOiExfWZ1bmN0aW9uIHlsKGUsdCl7aWYoIWV8fCFlLmlzX2Vycm9yfHwhdHx8dC5pc19lcnJvcilyZXR1cm4hMTt2YXIgbj1nbihlLmNvbnRlbnQpLnRvTG93ZXJDYXNlKCksaT1nbih0LmNvbnRlbnQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG4/bi5pbmRleE9mKCJpbnZhbGlkIHBhZ2VzIHBhcmFtZXRlciIpIT09LTEmJmkubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gdWUoZSl7cmV0dXJuISFlJiYoZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5ydW5uZXI9PT0iY2xhdWRlLWNsaS1wcmludCIpfWZ1bmN0aW9uIE1pKCl7ci5jaGF0TW9kZT1rdCgiY2xhdWRlIixyLmNoYXRNb2RlKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1oaW50Iik7ZSYmKGUudGV4dENvbnRlbnQ9Z2woci5jaGF0TW9kZSkpLFhuKCl9ZnVuY3Rpb24gYmwoZSx0KXt0PXR8fHt9O3ZhciBuPXQua2luZD09PSJjb21wYWN0Inx8dC5raW5kPT09InBvcG92ZXIiP3Qua2luZDoiZHJvcGRvd24iLGk9WGUoKSxhPXIuY2hhdE1vZGV8fCJkZWZhdWx0Iix1PV9pKGUpfHwiIixvPU9pKHUsZSkscz12dShlKTtmdW5jdGlvbiBsKGQsZixjLHYpe3ZhciBoPW49PT0iY29tcGFjdCI/IiI6JzxzcGFuIGNsYXNzPSJjaGF0LW1vZGUtdHJpby10YWciPicrcChmKSsiPC9zcGFuPiI7cmV0dXJuJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXBpbGwgY2hhdC1tb2RlLXRyaW8tcGlsbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytkKyciIHRpdGxlPSInK3AoZikrJyI+JytoKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1sYWJlbCI+JytwKGMpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0iJytkKyciIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iJytwKGYpKyciPicrdisiPC9zZWxlY3Q+PC9zcGFuPiJ9cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbW9kZS10cmlvIGNoYXQtbW9kZS10cmlvLScrbisnIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iXHU0RjFBXHU4QkREXHU4QkJFXHU3RjZFIj4nK2woIm1vZGUiLCJcdTZBMjFcdTVGMEYiLGEsUGkoaSxhKSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXNlcCIgYXJpYS1oaWRkZW49InRydWUiPlx4Qjc8L3NwYW4+JytsKCJtb2RlbCIsIlx1NkEyMVx1NTc4QiIsbyxEbCh1LGUpKSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtc2VwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHhCNzwvc3Bhbj4nK2woInRoaW5raW5nIiwiXHU2MDFEXHU4MDAzIixzLGtsKHMpKSsiPC9kaXY+In1mdW5jdGlvbiBFbChlKXtyZXR1cm4gZT09PSJzdGFuZGFyZCI/Ilx1NEY0RSI6ZT09PSJkZWVwIj8iXHU0RTJEIjplPT09Im1heCI/Ilx1OUFEOCI6Ilx1NTE3MyJ9ZnVuY3Rpb24gaG0oZSl7cmV0dXJuIGU9PT0ic3RhbmRhcmQiPyJcdTRGNEUiOmU9PT0iZGVlcCI/Ilx1NEUyRCI6ZT09PSJtYXgiPyJcdTlBRDgiOiJcdTUxNzNcdTk1RUQifWZ1bmN0aW9uIHFpKGUsdCl7dmFyIG49ZXx8IiIsaT1wdSh0KTtpZighbnx8bj09PSJkZWZhdWx0Iil7Zm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspaWYoaVthXS5pZD09PSJkZWZhdWx0IilyZXR1cm4gaVthXS5sYWJlbHx8aVthXS5pZDtyZXR1cm4iXHU5RUQ4XHU4QkE0In1mb3IodmFyIHU9MDt1PGkubGVuZ3RoO3UrKylpZihpW3VdLmlkPT09bilyZXR1cm4gaVt1XS5sYWJlbHx8aVt1XS5pZDtyZXR1cm4gbn1mdW5jdGlvbiBPaShlLHQpe3ZhciBuPXFpKGUsdCk7aWYoIW58fG49PT0iXHU4RERGXHU5NjhGXHU2NzBEXHU1MkExXHU3QUVGXHU5RUQ4XHU4QkE0IilyZXR1cm4iXHU5RUQ4XHU4QkE0Ijt2YXIgaT1uLnNlYXJjaCgvW++8iChdLyk7aT4wJiYobj1uLnNsaWNlKDAsaSkudHJpbSgpKTt2YXIgYT1uLmxhc3RJbmRleE9mKCIvIik7YT49MCYmYTxuLmxlbmd0aC0xJiYobj1uLnNsaWNlKGErMSkudHJpbSgpKTt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHUuaW5kZXhPZigib3B1cyIpIT09LTE/Ik9wdXMiOnUuaW5kZXhPZigic29ubmV0IikhPT0tMT8iU29ubmV0Ijp1LmluZGV4T2YoImhhaWt1IikhPT0tMT8iSGFpa3UiOnUuaW5kZXhPZigiZ3B0LTUuNSIpIT09LTE/IkdQVC01LjUiOnUuaW5kZXhPZigiZ3B0LTUiKSE9PS0xPyJHUFQtNSI6dS5pbmRleE9mKCJncHQtNCIpIT09LTE/IkdQVC00IjpuLmxlbmd0aD4xMj9uLnNsaWNlKDAsMTApKyJcdTIwMjYiOm59ZnVuY3Rpb24gRmwoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8anQubGVuZ3RoO2krKyl7dmFyIGE9anRbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3AoaG0oYS5pZCkpKyI8L29wdGlvbj4ifXJldHVybiBufWZ1bmN0aW9uIHdsKGUpe3ZhciB0PVhlKCksbj1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsaT1faShlKXx8IiIsYT12dShlKSx1PWx1KG4pLG89T2koaSxlKSxzPUVsKGEpLGw9Ilx1NkEyMVx1NUYwRiAiK3UrIiBceEI3IFx1NkEyMVx1NTc4QiAiK28rIiBceEI3IFx1NjAxRFx1ODAwMyAiK3M7cmV0dXJuJzxkaXYgY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ilx1NEYxQVx1OEJERFx1OEJCRVx1N0Y2RSIgdGl0bGU9IicrcChsKSsnIj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWNoaXAgY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZSIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSIgdGl0bGU9Ilx1NkEyMVx1NUYwRlx1RkYxQScrcCh1KSsnIj4nK1UoInNoaWVsZCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwiPicrcCh1KSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9Im1vZGUiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1RjBGIj4nK1BpKHQsbikrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgdGl0bGU9Ilx1NkEyMVx1NTc4Qlx1NEUwRVx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiI+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1wYXJ0IGNvbXBvc2VyLWNvbmZpZy1tb2RlbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZWwiPicrVSgiY3B1Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCI+JytwKG8pKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0ibW9kZWwiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1NzhCIj4nK0JsKGksZSkrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLXBhcnQgY29tcG9zZXItY29uZmlnLXRoaW5raW5nIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJ0aGlua2luZyIgZGF0YS10aGlua2luZz0iJytwKGEpKyciPicrVSgiYnJhaW4iLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AocykrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJ0aGlua2luZyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYiPicrRmwoYSkrIjwvc2VsZWN0Pjwvc3Bhbj48L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBYbigpe3ZhciBlPXN0KCksdD1YZSgpLG49ci5jaGF0TW9kZXx8ImRlZmF1bHQiLGk9X2koZSl8fCIiLGE9T2koaSxlKSx1PXZ1KGUpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbW9kZS10cmlvIik7by5mb3JFYWNoKGZ1bmN0aW9uKHMpe2Z1bmN0aW9uIGwoZCxmLGMsdil7dmFyIGg9cy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytkKyciXScpO2lmKGgpe3ZhciBnPWgucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLXRleHQtbGFiZWwiKTtnJiYoZy50ZXh0Q29udGVudD12fHxmKTt2YXIgbT1oLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbD0iJytkKyciXScpO20mJihjJiYobS5pbm5lckhUTUw9YyksbS52YWx1ZSE9PWYmJihtLnZhbHVlPWYpKX19bCgibW9kZSIsbixQaSh0LG4pKSxsKCJtb2RlbCIsaSxEbChpLGUpLGEpLGwoInRoaW5raW5nIix1LGtsKHUpKX0pLHltKGUsbixfaShlKXx8IiIsdSl9ZnVuY3Rpb24geW0oZSx0LG4saSl7dmFyIGE9WGUoKSx1PWx1KHQpLG89T2kobixlKSxzPUVsKGkpLGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIpO2wuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgZj0iXHU2QTIxXHU1RjBGICIrdSsiIFx4QjcgXHU2QTIxXHU1NzhCICIrbysiIFx4QjcgXHU2MDFEXHU4MDAzICIrcztkLnNldEF0dHJpYnV0ZSgidGl0bGUiLGYpO2Z1bmN0aW9uIGMoQixELEYpe3ZhciBJPUIucXVlcnlTZWxlY3RvcigiW2RhdGEtbW9kZS1jb250cm9sXSIpO0kmJihJLmlubmVySFRNTD1GLEkudmFsdWU9RCl9dmFyIHY9ZC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSJdJyk7aWYodil7dmFyIGg9di5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7aCYmKGgudGV4dENvbnRlbnQ9dSksdi5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QTIxXHU1RjBGXHVGRjFBIit1KSxjKHYsdCxQaShhLHQpKX12YXIgZz1kLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlbCJdJyk7aWYoZyl7dmFyIG09Zy5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7bSYmKG0udGV4dENvbnRlbnQ9byksYyhnLG4sQmwobixlKSl9dmFyIHk9ZC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciXScpO2lmKHkpe3ZhciB3PXkucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO3cmJih3LnRleHRDb250ZW50PXMpLHkuc2V0QXR0cmlidXRlKCJkYXRhLXRoaW5raW5nIixpKSxjKHksaSxGbChpKSl9dmFyIEU9ZC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIik7RSYmRS5zZXRBdHRyaWJ1dGUoImRhdGEtdGhpbmtpbmciLGkpfSl9ZnVuY3Rpb24gUGkoZSx0KXtyZXR1cm4gZHUoZSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrIj4iK3AobikrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBIaShlKXtyZXR1cm4gZT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIn1mdW5jdGlvbiBDbChlKXtyZXR1cm4gSGkoZSYmZS5wcm92aWRlcnx8ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSIpfWZ1bmN0aW9uIGN1KCl7dmFyIGU9ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHMmJnR5cGVvZiByLmNvbmZpZy5kZWZhdWx0TW9kZWxzPT0ib2JqZWN0Ij9yLmNvbmZpZy5kZWZhdWx0TW9kZWxzOnt9O3JldHVybntjbGF1ZGU6dHlwZW9mIGUuY2xhdWRlPT0ic3RyaW5nIj9lLmNsYXVkZTpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIixjb2RleDp0eXBlb2YgZS5jb2RleD09InN0cmluZyI/ZS5jb2RleDpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdENvZGV4TW9kZWx8fCIifX1mdW5jdGlvbiBibShlKXt2YXIgdD1jdSgpO3JldHVybiBIaShlKT09PSJjb2RleCI/dC5jb2RleHx8IiI6dC5jbGF1ZGV8fCIifWZ1bmN0aW9uIHFyKGUpe3ZhciB0PUhpKGUpLG49ci5jaGF0TW9kZWxzJiZ0eXBlb2Ygci5jaGF0TW9kZWxzW3RdPT0ic3RyaW5nIj9yLmNoYXRNb2RlbHNbdF06IiI7cmV0dXJuIW4mJnQ9PT0iY2xhdWRlIiYmKG49ci5jaGF0TW9kZWx8fCIiKSxufHwiIn1mdW5jdGlvbiBmdShlLHQpe3ZhciBuPUhpKGUpLGk9KHR8fCIiKS50cmltKCk7ci5jaGF0TW9kZWxzfHwoci5jaGF0TW9kZWxzPXtjbGF1ZGU6IiIsY29kZXg6IiJ9KSxyLmNoYXRNb2RlbHNbbl09aSxyLmNoYXRNb2RlbD1pO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsLSIrbixpKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1jaGF0LW1vZGVsIil9Y2F0Y2h7fX1mdW5jdGlvbiBfaShlKXtpZihlJiZlLnNlbGVjdGVkTW9kZWwpcmV0dXJuIGUuc2VsZWN0ZWRNb2RlbDt2YXIgdD1DbChlKSxuPXFyKHQpO3JldHVybiBufHxibSh0KXx8IiJ9ZnVuY3Rpb24gcHUoZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcnx8ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSI7cmV0dXJuIHQ9PT0iY29kZXgiP3IuYXZhaWxhYmxlQ29kZXhNb2RlbHN8fFtdOnIuYXZhaWxhYmxlTW9kZWxzfHxbXX1mdW5jdGlvbiBCbChlLHQpe2Zvcih2YXIgbj1wdSh0KSxpPWU9PT0iZGVmYXVsdCI/IiI6ZXx8IiIsYT0nPG9wdGlvbiB2YWx1ZT0iIicrKGk/IiI6IiBzZWxlY3RlZCIpKyI+XHU5RUQ4XHU4QkE0IFx4QjcgIitwKHFpKCIiLHQpKSsiPC9vcHRpb24+Iix1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBvPW5bdV07aWYoby5pZCE9PSJkZWZhdWx0Iil7dmFyIHM9by5sYWJlbHx8by5pZDthKz0nPG9wdGlvbiB2YWx1ZT0iJytwKG8uaWQpKyciJysoby5pZD09PWk/IiBzZWxlY3RlZCI6IiIpKyI+IitwKHMpKyI8L29wdGlvbj4ifX1yZXR1cm4gaSYmIW4uc29tZShmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PWl9KSYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3AoaSkrJyIgc2VsZWN0ZWQ+JytwKGkpKyJcdUZGMDhcdTgxRUFcdTVCOUFcdTRFNDlcdUZGMDk8L29wdGlvbj4iKSxhfWZ1bmN0aW9uIERsKGUsdCl7Zm9yKHZhciBuPXB1KHQpLGk9ZT09PSJkZWZhdWx0Ij8iIjplfHwiIixhPSc8b3B0aW9uIHZhbHVlPSIiJysoaT8iIjoiIHNlbGVjdGVkIikrIj4iK3AocWkoIiIsdCkpKyI8L29wdGlvbj4iLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XTtvLmlkIT09ImRlZmF1bHQiJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChvLmlkKSsnIicrKG8uaWQ9PT1pPyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChvLmlkKSsiPC9vcHRpb24+Iil9cmV0dXJuIGkmJiFuLnNvbWUoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1pfSkmJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKGkpKyciIHNlbGVjdGVkPicrcChpKSsiPC9vcHRpb24+IiksYX1mdW5jdGlvbiBabihlKXtYbigpfXZhciBqdD1be2lkOiJvZmYiLGxhYmVsOiJhdXRvIixoaW50OiJDbGF1ZGUgQ0xJOiBhdXRvL2RlZmF1bHQgXHhCNyBTREsgXHU1MTczXHU5NUVEIHRoaW5raW5nIFx4QjcgQ29kZXggbWluaW1hbCJ9LHtpZDoic3RhbmRhcmQiLGxhYmVsOiJsb3ciLGhpbnQ6IkNsYXVkZSBDTEk6IGxvdyBceEI3IFNESyBidWRnZXQgNDA5NiBceEI3IENvZGV4IGxvdyJ9LHtpZDoiZGVlcCIsbGFiZWw6Im1lZGl1bSIsaGludDoiQ2xhdWRlIENMSTogbWVkaXVtIFx4QjcgU0RLIGJ1ZGdldCAxNjAwMCBceEI3IENvZGV4IG1lZGl1bSJ9LHtpZDoibWF4IixsYWJlbDoibWF4IixoaW50OiJDbGF1ZGUgQ0xJOiBtYXggXHhCNyBTREsgYnVkZ2V0IDMxOTk5IFx4QjcgQ29kZXggeGhpZ2gifV07ZnVuY3Rpb24gRW0oZSl7Zm9yKHZhciB0PTA7dDxqdC5sZW5ndGg7dCsrKWlmKGp0W3RdLmlkPT09ZSlyZXR1cm4ganRbdF0ubGFiZWw7cmV0dXJuIGp0WzBdLmxhYmVsfWZ1bmN0aW9uIHZ1KGUpe3JldHVybiBlJiZlLnRoaW5raW5nRWZmb3J0P2UudGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmc/ci5jaGF0VGhpbmtpbmc6Im9mZiJ9ZnVuY3Rpb24gbWgoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8anQubGVuZ3RoO2krKyl7dmFyIGE9anRbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3AoYS5sYWJlbCkrIjwvb3B0aW9uPiJ9cmV0dXJuIG59ZnVuY3Rpb24ga2woZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8anQubGVuZ3RoO2krKyl7dmFyIGE9anRbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChhLmlkKSsiPC9vcHRpb24+In1yZXR1cm4gbn1mdW5jdGlvbiBnaChlKXtYbigpfWZ1bmN0aW9uIEZtKGUpe3ZhciB0PShlfHwib2ZmIikudHJpbSgpO3QhPT0ib2ZmIiYmdCE9PSJzdGFuZGFyZCImJnQhPT0iZGVlcCImJnQhPT0ibWF4IiYmKHQ9Im9mZiIpLHIuY2hhdFRoaW5raW5nPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIsdCl9Y2F0Y2h7fVhuKCk7dmFyIG49c3QoKTtuJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL3RoaW5raW5nLWVmZm9ydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3RoaW5raW5nRWZmb3J0OnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtBKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWkmJmkuaWQmJihYKGkpLHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKCJcdTVERjJcdTUyMDdcdTYzNjJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYgXHUyMTkyICIrRW0odCksInN1Y2Nlc3MiKSl9KS5jYXRjaChmdW5jdGlvbigpe0EoIlx1NTIwN1x1NjM2Mlx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBBbChlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLm1vZGU7cmV0dXJuIHQ9PT0ibWFuYWdlZCJ8fHQ9PT0iZnVsbC1hY2Nlc3MifWZ1bmN0aW9uIHdtKGUpe2lmKCFlfHxBbChlKSlyZXR1cm4iIjt2YXIgdD0hIWUuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztyZXR1cm4gdD8nPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IgYWN0aXZlIiB0eXBlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0idHJ1ZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiPicrVSgic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj48L2J1dHRvbj4nOic8YnV0dG9uIGlkPSJhdXRvLWFwcHJvdmUtdG9nZ2xlIiBjbGFzcz0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIiBhcmlhLWxhYmVsPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiIHRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiI+JytVKCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj48L2J1dHRvbj4nfWZ1bmN0aW9uIHhsKCl7cmV0dXJuIGZldGNoKCIvYXBpL21vZGVscyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkFycmF5LmlzQXJyYXkoZS5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9ZS5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KGUuY29kZXhNb2RlbHMpP2UuY29kZXhNb2RlbHM6W10sWm4oc3QoKSksUmkoZSkpLGV9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBudWxsfSl9ZnVuY3Rpb24gQ20oKXtpZihyLm1vZGVsc1JlZnJlc2hpbmcpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtyLm1vZGVsc1JlZnJlc2hpbmc9ITA7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giKSx0PWUmJmUucXVlcnlTZWxlY3Rvcigic3BhbiIpO3JldHVybiBlJiYoZS5kaXNhYmxlZD0hMCxlLmNsYXNzTGlzdC5hZGQoImlzLWxvYWRpbmciKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwidHJ1ZSIpLHQmJih0LnRleHRDb250ZW50PSJcdTY4QzBcdTZENEJcdTRFMkQiKSksZmV0Y2goIi9hcGkvbW9kZWxzL3JlZnJlc2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4mJkFycmF5LmlzQXJyYXkobi5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9bi5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KG4uY29kZXhNb2RlbHMpP24uY29kZXhNb2RlbHM6W10sWm4oc3QoKSksUmkobiksdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NURGMlx1NTIzN1x1NjVCMCIrKG4uY2xhdWRlVmVyc2lvbj8iXHVGRjA4Y2xhdWRlICIrbi5jbGF1ZGVWZXJzaW9uKyJcdUZGMDkiOiIiKSwic3VjY2VzcyIpKSxufSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NTIzN1x1NjVCMFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNSIsImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLm1vZGVsc1JlZnJlc2hpbmc9ITEsZSYmKGUuZGlzYWJsZWQ9ITEsZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksZS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpLHQmJih0LnRleHRDb250ZW50PSJcdTUyMzdcdTY1QjBcdTUyMTdcdTg4NjgiKSl9KX1mdW5jdGlvbiBCbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tb2RhbCIpO2lmKCFlKXtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKSxlLmlkPSJlbnYtcHJldmlldy1tb2RhbCIsZS5jbGFzc05hbWU9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiIsZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im1vZGFsIGVudi1wcmV2aWV3LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iZW52LXByZXZpZXctdGl0bGUiIGFyaWEtbW9kYWw9InRydWUiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIiBpZD0iZW52LXByZXZpZXctdGl0bGUiPlx1NUMwNlx1NkNFOFx1NTE2NVx1NUI1MFx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRjwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIiBpZD0iZW52LXByZXZpZXctc3VidGl0bGUiPlx1OEZEOVx1NEU5Qlx1NTNEOFx1OTFDRlx1NEYxQVx1ODhBQlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1RkYwOFBUWSBcdTRFMEVcdTdFRDNcdTY3ODRcdTUzMTZcdThGRDBcdTg4NENcdTU2NjhcdTRFMDBcdTgxRjRcdUZGMDlcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UiIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IGVudi1wcmV2aWV3LWJvZHkiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXRvb2xiYXIiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LW1ldGEiIGlkPSJlbnYtcHJldmlldy1tZXRhIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1jb250cm9scyI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1zZWFyY2giIGNsYXNzPSJlbnYtcHJldmlldy1zZWFyY2giIHR5cGU9InNlYXJjaCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NTNEOFx1OTFDRlx1NTQwRFx1MjAyNiIgLz48bGFiZWwgY2xhc3M9ImVudi1wcmV2aWV3LXJldmVhbCI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgLz48c3Bhbj5cdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0M8L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1saXN0IiBpZD0iZW52LXByZXZpZXctbGlzdCIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciBlbnYtcHJldmlldy1mb290ZXIiPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1oaW50Ij5cdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjVcdUZGMDhcdTU0MkIgS0VZL1RPS0VOL1NFQ1JFVCBcdTdCNDlcdUZGMDlcdTlFRDhcdThCQTRcdTYzQTlcdTc4MDFcdUZGMENcdTUzRUZcdTUyRkVcdTkwMDlcdTMwMENcdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0NcdTMwMERcdTRFMzRcdTY1RjZcdThGRDhcdTUzOUZcdTMwMDI8L3NwYW4+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UtMiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24ocyl7cy50YXJnZXQ9PT1lJiZtdSgpfSk7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UiKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixtdSk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UtMiIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG11KTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1zZWFyY2giKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe0lsKCl9KTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7U2woaS5jaGVja2VkKX0pfWUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIpO2kmJihpLmNoZWNrZWQ9ITEpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXNlYXJjaCIpO2EmJihhLnZhbHVlPSIiKSxTbCghMSl9ZnVuY3Rpb24gbXUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbW9kYWwiKTtlJiZFdShlKX1mdW5jdGlvbiBTbChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbGlzdCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1ldGEiKTt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdTUyQTBcdThGN0RcdTRFMkRcdTIwMjYiKTt2YXIgaT0iL2FwaS9zZXR0aW5ncy9lbnYtcHJldmlldyIrKGU/Ij9yZXZlYWw9MSI6IiIpO2ZldGNoKGkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWF8fCFBcnJheS5pc0FycmF5KGEuZW50cmllcykpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKTtyZXR1cm59aWYoci5fZW52UHJldmlldz1hLG4pe3ZhciB1PWEuaW5oZXJpdEVudj8iXHU3RUU3XHU2MjdGXHU3MjM2XHU4RkRCXHU3QTBCIjoiXHU2NzAwXHU1QzBGXHU3NjdEXHU1NDBEXHU1MzU1IjtuLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LXBpbGwgJysoYS5pbmhlcml0RW52PyJpcy1pbmhlcml0IjoiaXMtbWluaW1hbCIpKyciPicrdSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1jb3VudCI+XHU1MTcxICcrYS50b3RhbCsiIFx1OTg3OTwvc3Bhbj4ifUlsKCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1N0EwRFx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKX0pfWZ1bmN0aW9uIElsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LWxpc3QiKTtpZihlKXt2YXIgdD1yLl9lbnZQcmV2aWV3O2lmKCF0fHwhQXJyYXkuaXNBcnJheSh0LmVudHJpZXMpKXtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1NUMxQVx1NjcyQVx1NTJBMFx1OEY3RFx1MzAwMjwvZGl2Pic7cmV0dXJufWZvcih2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctc2VhcmNoIiksaT0obiYmbi52YWx1ZXx8IiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGE9IiIsdT0wLG89MDtvPHQuZW50cmllcy5sZW5ndGg7bysrKXt2YXIgcz10LmVudHJpZXNbb107aWYoIShpJiZzLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGkpPT09LTEpKXt1Kys7dmFyIGw9dHlwZW9mIHMudmFsdWU9PSJzdHJpbmciJiZzLnZhbHVlLmNoYXJBdCgwKT09PSI8IiYmcy52YWx1ZS5jaGFyQXQocy52YWx1ZS5sZW5ndGgtMSk9PT0iPiI7YSs9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXJvdycrKHMuc2Vuc2l0aXZlPyIgaXMtc2Vuc2l0aXZlIjoiIikrJyI+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbmFtZSI+JytwKHMubmFtZSkrKHMuc2Vuc2l0aXZlPyc8c3BhbiBjbGFzcz0iZW52LXByZXZpZXctYmFkZ2UiIHRpdGxlPSJcdTg4QUJcdThCQzZcdTUyMkJcdTRFM0FcdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjUiPlx1NjU0Rlx1NjExRjwvc3Bhbj4nOiIiKSsobD8nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWJhZGdlIGVudi1wcmV2aWV3LWJhZGdlLXJ1bnRpbWUiIHRpdGxlPSJcdTYzMDlcdTRGMUFcdThCRERcdTUyQThcdTYwMDFcdTZDRThcdTUxNjUiPlx1OEZEMFx1ODg0Q1x1NjVGNjwvc3Bhbj4nOiIiKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctdmFsdWUnKyhsPyIgaXMtcnVudGltZSI6IiIpKyciIHRpdGxlPSInK3AoU3RyaW5nKHMudmFsdWUpKSsnIj4nK3AoU3RyaW5nKHMudmFsdWUpKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbGVuIj4nK3MubGVuZ3RoKyIgXHU1QjU3XHU3QjI2PC9kaXY+PC9kaXY+In19dT09PTAmJihhPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1MzM5XHU5MTREXHU3Njg0XHU1M0Q4XHU5MUNGXHUzMDAyPC9kaXY+JyksZS5pbm5lckhUTUw9YX19ZnVuY3Rpb24gVGwoZSl7cmV0dXJuIGU9PT0iY29kZXgiP3IuYXZhaWxhYmxlQ29kZXhNb2RlbHN8fFtdOnIuYXZhaWxhYmxlTW9kZWxzfHxbXX1mdW5jdGlvbiBMbChlKXt2YXIgdD1lPT09ImNvZGV4Ij8iY2ZnLWRlZmF1bHQtY29kZXgtbW9kZWwiOiJjZmctZGVmYXVsdC1tb2RlbCIsbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KSxpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGVsLXN0YXR1cz0iJytlKyciXScpO2lmKCEoIW58fCFpKSl7Zm9yKHZhciBhPShuLnZhbHVlfHwiIikudHJpbSgpLHU9VGwoZSksbz1udWxsLHM9MDtzPHUubGVuZ3RoO3MrKylpZih1W3NdLmlkPT09YSl7bz11W3NdO2JyZWFrfWlmKGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtY3VzdG9tIiwiaXMta25vd24iKSwhYSl7aS50ZXh0Q29udGVudD0iXHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQiO3JldHVybn1pZihvKXtpLnRleHRDb250ZW50PSJcdTVERjJcdTY4QzBcdTZENEJcdTUyMzAiLGkuY2xhc3NMaXN0LmFkZCgiaXMta25vd24iKTtyZXR1cm59aS50ZXh0Q29udGVudD0iXHU4MUVBXHU1QjlBXHU0RTQ5XHU1NDBEXHU3OUYwIixpLmNsYXNzTGlzdC5hZGQoImlzLWN1c3RvbSIpfX1mdW5jdGlvbiBOaShlKXtpZihlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm92aWRlciIpPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiLG49ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKSxpPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKTtpZighKCFufHwhaSkpe2Zvcih2YXIgYT1uLnZhbHVlfHwiIix1PWEudHJpbSgpLG89dS50b0xvd2VyQ2FzZSgpLHM9VGwodCksbD1udWxsLGQ9ITEsZj1bXSxjPTA7YzxzLmxlbmd0aDtjKyspe3ZhciB2PXNbY107aWYodi5pZD09PSJkZWZhdWx0Iil7bD12O2NvbnRpbnVlfXYuaWQ9PT11JiYoZD0hMCk7dmFyIGg9di5sYWJlbHx8di5pZDtvJiZ2LmlkLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihvKT09PS0xJiZoLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihvKT09PS0xfHxmLnB1c2goe3ZhbHVlOnYuaWQsbGFiZWw6aCxtZXRhOmg9PT12LmlkPyJcdTVERjJcdTY4QzBcdTZENEJcdTZBMjFcdTU3OEIiOnYuaWQsY3VzdG9tOiExfSl9dmFyIGc9dD09PSJjb2RleCI/Ilx1OERERlx1OTY4RiBDb2RleCBcdTlFRDhcdThCQTQiOiJcdThEREZcdTk2OEYgQ2xhdWRlIENvZGUgXHU5RUQ4XHU4QkE0IixtPWwmJmwubGFiZWw/bC5sYWJlbDoiXHU0RTBEXHU0RjIwIC0tbW9kZWwgXHU1M0MyXHU2NTcwIix5PSIiOyghb3x8Zy50b0xvd2VyQ2FzZSgpLmluZGV4T2YobykhPT0tMXx8bS50b0xvd2VyQ2FzZSgpLmluZGV4T2YobykhPT0tMSkmJih5Kz0nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24nKyh1PyIiOiIgaXMtc2VsZWN0ZWQiKSsnIiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9IicrKHU/ImZhbHNlIjoidHJ1ZSIpKyciIGRhdGEtbW9kZWwtdmFsdWU9IiI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJtNSAxMiA0IDRMMTkgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNvcHkiPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWwiPicrcChnKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbWV0YSI+JytwKG0pKyI8L3NwYW4+PC9zcGFuPjwvYnV0dG9uPiIpO2Zvcih2YXIgdz0wO3c8Zi5sZW5ndGg7dysrKXt2YXIgRT1mW3ddLEI9RS52YWx1ZT09PXU7eSs9JzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uJysoQj8iIGlzLXNlbGVjdGVkIjoiIikrJyIgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSInKyhCPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLW1vZGVsLXZhbHVlPSInK3AoRS52YWx1ZSkrJyI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJtNSAxMiA0IDRMMTkgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNvcHkiPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWwiPicrcChFLmxhYmVsKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbWV0YSI+JytwKEUubWV0YSkrIjwvc3Bhbj48L3NwYW4+PC9idXR0b24+In11JiYhZCYmKHkrPSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbiBtb2RlbC1jb21ib2JveC1vcHRpb24tY3VzdG9tIGlzLXNlbGVjdGVkIiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGRhdGEtbW9kZWwtdmFsdWU9IicrcCh1KSsnIj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWN1c3RvbS1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMjBoOSIvPjxwYXRoIGQ9Ik0xNi41IDMuNWEyLjEgMi4xIDAgMCAxIDMgM0w4IDE4bC00IDEgMS00WiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNvcHkiPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWwiPlx1NEY3Rlx1NzUyOFx1ODFFQVx1NUI5QVx1NEU0OVx1NTQwRFx1NzlGMDwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLW1ldGEiPicrcCh1KSsiPC9zcGFuPjwvc3Bhbj48L2J1dHRvbj4iKSx5fHwoeT0nPGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtZW1wdHkiPlx1NkNBMVx1NjcwOVx1NTMzOVx1OTE0RFx1NzY4NFx1NkEyMVx1NTc4Qlx1RkYwQ1x1NTNFRlx1NEVFNVx1N0VFN1x1N0VFRFx1OEY5M1x1NTE2NVx1ODFFQVx1NUI5QVx1NEU0OVx1NTQwRFx1NzlGMFx1MzAwMjwvZGl2PicpLGkuaW5uZXJIVE1MPXk7Zm9yKHZhciBEPWkucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94LW9wdGlvbiIpLEY9LTEsST0wO0k8RC5sZW5ndGg7SSsrKWlmKERbSV0uZ2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIik9PT0idHJ1ZSIpe0Y9STticmVha31lLl93YW5kTW9kZWxBY3RpdmVJbmRleD1GPj0wP0Y6RC5sZW5ndGg/MDotMSxNbChlKSxMbCh0KX19fWZ1bmN0aW9uIE1sKGUpe2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0Iik7aWYoISghdHx8IW4pKXtmb3IodmFyIGk9dC5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3gtb3B0aW9uIiksYT10eXBlb2YgZS5fd2FuZE1vZGVsQWN0aXZlSW5kZXg9PSJudW1iZXIiP2UuX3dhbmRNb2RlbEFjdGl2ZUluZGV4Oi0xLHU9MDt1PGkubGVuZ3RoO3UrKylpW3VdLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsdT09PWEpLHU9PT1hJiYoaVt1XS5pZHx8KGlbdV0uaWQ9KHQuaWR8fCJtb2RlbC1saXN0Ym94IikrIi1vcHRpb24tIit1KSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50IixpW3VdLmlkKSk7YTwwJiZuLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50Iil9fX1mdW5jdGlvbiBqaShlKXtpZihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtbWVudSIpOyF0fHwhbnx8KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbihpKXtpIT09ZSYmaG4oaSl9KSxOaShlKSxlLmNsYXNzTGlzdC5hZGQoImlzLW9wZW4iKSxuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpKX19ZnVuY3Rpb24gaG4oZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKTtlLmNsYXNzTGlzdC5yZW1vdmUoImlzLW9wZW4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJih0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksdC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIpKX19ZnVuY3Rpb24gcWwoZSx0KXtpZihlKXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpO2lmKG4pe3ZhciBpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1uO24udmFsdWU9dHx8IiIsbi5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9InRydWUiLG4uZGF0YXNldC5tb2RlbERpcnR5PSJ0cnVlIixMbChlLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm92aWRlciIpPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiKSxobihlKSxpJiZuLmZvY3VzKCl9fX1mdW5jdGlvbiBEbSgpe3dpbmRvdy5fX3dhbmRTZXR0aW5nc01vZGVsT3V0c2lkZUJvdW5kfHwod2luZG93Ll9fd2FuZFNldHRpbmdzTW9kZWxPdXRzaWRlQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbihpKXsoIW58fCFpLmNvbnRhaW5zKG4pKSYmaG4oaSl9KX0pKTt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3giKTtlLmZvckVhY2goZnVuY3Rpb24odCl7aWYodC5kYXRhc2V0LmJvdW5kIT09InRydWUiKXt0LmRhdGFzZXQuYm91bmQ9InRydWUiO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0IiksaT10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC10b2dnbGUiKSxhPXQucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKTshbnx8IWl8fCFhfHwobi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtqaSh0KX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7bi5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9InRydWUiLG4uZGF0YXNldC5tb2RlbERpcnR5PSJ0cnVlIixqaSh0KX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odSl7aWYodS5rZXk9PT0iRXNjYXBlIil7dS5wcmV2ZW50RGVmYXVsdCgpLGhuKHQpO3JldHVybn1pZighKHUua2V5IT09IkFycm93RG93biImJnUua2V5IT09IkFycm93VXAiJiZ1LmtleSE9PSJFbnRlciIpKXtpZighdC5jbGFzc0xpc3QuY29udGFpbnMoImlzLW9wZW4iKSl7aWYodS5rZXk9PT0iRW50ZXIiKXJldHVybjtqaSh0KX12YXIgbz1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC1vcHRpb24iKTtpZihvLmxlbmd0aCl7dS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBzPXR5cGVvZiB0Ll93YW5kTW9kZWxBY3RpdmVJbmRleD09Im51bWJlciI/dC5fd2FuZE1vZGVsQWN0aXZlSW5kZXg6LTE7aWYodS5rZXk9PT0iQXJyb3dEb3duIiYmKHM9czxvLmxlbmd0aC0xP3MrMTowKSx1LmtleT09PSJBcnJvd1VwIiYmKHM9cz4wP3MtMTpvLmxlbmd0aC0xKSx0Ll93YW5kTW9kZWxBY3RpdmVJbmRleD1zLE1sKHQpLHUua2V5PT09IkVudGVyIil7dmFyIGw9b1tzXTtsJiZxbCh0LGwuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGVsLXZhbHVlIil8fCIiKX1lbHNle3ZhciBkPW9bc107ZCYmdHlwZW9mIGQuc2Nyb2xsSW50b1ZpZXc9PSJmdW5jdGlvbiImJmQuc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOiJuZWFyZXN0In0pfX19fSksaS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKHUpe3UucHJldmVudERlZmF1bHQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dC5jbGFzc0xpc3QuY29udGFpbnMoImlzLW9wZW4iKT9obih0KTpqaSh0KX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbih1KXt1LnByZXZlbnREZWZhdWx0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih1KXt2YXIgbz11LnRhcmdldC5jbG9zZXN0KCIubW9kZWwtY29tYm9ib3gtb3B0aW9uIik7byYmcWwodCxvLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlbC12YWx1ZSIpfHwiIil9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpfHxobih0KX0sMCl9KSxOaSh0KSl9fSl9ZnVuY3Rpb24gUmkoZSl7dmFyIHQ9Y3UoKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpO2lmKG4pe24uZGF0YXNldC5tb2RlbEluaXRpYWxpemVkIT09InRydWUiJiYobi52YWx1ZT1yLmNvbmZpZ0RlZmF1bHRNb2RlbHMmJnIuY29uZmlnRGVmYXVsdE1vZGVscy5jbGF1ZGV8fHQuY2xhdWRlfHwiIixuLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0idHJ1ZSIpO3ZhciBpPW4uY2xvc2VzdCgiLm1vZGVsLWNvbWJvYm94Iik7aSYmTmkoaSl9dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIik7aWYoYSl7YS5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQhPT0idHJ1ZSImJihhLnZhbHVlPXIuY29uZmlnRGVmYXVsdE1vZGVscyYmci5jb25maWdEZWZhdWx0TW9kZWxzLmNvZGV4fHx0LmNvZGV4fHwiIixhLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0idHJ1ZSIpO3ZhciB1PWEuY2xvc2VzdCgiLm1vZGVsLWNvbWJvYm94Iik7dSYmTmkodSl9dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXZlcnNpb24iKTtvJiZlJiYoby50ZXh0Q29udGVudD1lLmNsYXVkZVZlcnNpb24/Ilx1NURGMlx1NjhDMFx1NkQ0Qlx1NTIzMCBDbGF1ZGUgQ0xJICIrZS5jbGF1ZGVWZXJzaW9uKyJcdUZGMUJcdTUyMTdcdTg4NjhcdTVERjJcdTU0MENcdTY1RjZcdTU0MENcdTZCNjUgQ29kZXggXHU1M0VGXHU3NTI4XHU2QTIxXHU1NzhCXHUzMDAyIjoiXHU2NzJBXHU4QkZCXHU1M0Q2XHU1MjMwIENsYXVkZSBDTEkgXHU3MjQ4XHU2NzJDXHVGRjFCXHU0RUNEXHU1M0VGXHU3NkY0XHU2M0E1XHU4RjkzXHU1MTY1XHU4MUVBXHU1QjlBXHU0RTQ5XHU2QTIxXHU1NzhCXHU1NDBEXHU3OUYwXHUzMDAyIil9ZnVuY3Rpb24gc3QoKXtpZighci5zZWxlY3RlZElkKXJldHVybiBudWxsO2Zvcih2YXIgZT0wO2U8ci5zZXNzaW9ucy5sZW5ndGg7ZSsrKWlmKHIuc2Vzc2lvbnNbZV0uaWQ9PT1yLnNlbGVjdGVkSWQpcmV0dXJuIHIuc2Vzc2lvbnNbZV07cmV0dXJuIG51bGx9ZnVuY3Rpb24ga20oZSl7dmFyIHQ9KGV8fCIiKS50cmltKCksbj1zdCgpLGk9Q2wobik7ZnUoaSx0KSxYbigpLG4mJmZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KG4uaWQpKyIvbW9kZWwiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlbDp0fHxudWxsfSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSYmYS5lcnJvcil7QShhLmVycm9yLCJlcnJvciIpO3JldHVybn1pZihhJiZhLmlkJiYoWChhKSx0eXBlb2YgQT09ImZ1bmN0aW9uIikpe3ZhciB1PXFpKHQsbiksbz1uLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHVGRjA4XHU0RTBCXHU2QjIxXHU1QkY5XHU4QkREXHU3NTFGXHU2NTQ4XHVGRjA5IjoiIjtBKCJcdTVERjJcdTUyMDdcdTYzNjJcdTZBMjFcdTU3OEIgXHUyMTkyICIrdStvLCJzdWNjZXNzIil9fSkuY2F0Y2goZnVuY3Rpb24oKXtBKCJcdTUyMDdcdTYzNjJcdTZBMjFcdTU3OEJcdTU5MzFcdThEMjUiLCJlcnJvciIpfSl9ZnVuY3Rpb24gQW0oZSl7dmFyIHQ9a3QoWGUoKSwoZXx8ImRlZmF1bHQiKS50cmltKCkpO3IuY2hhdE1vZGU9dCxYbigpO3ZhciBuPXN0KCk7aWYoIW58fCFuLmlkfHxuLnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiKXtBJiZBKCJcdTY1QjBcdTRGMUFcdThCRERcdTZBMjFcdTVGMEZcdUZGMUEiK3QsImluZm8iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi9tb2RlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7bW9kZTp0fSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil7QShpLmVycm9yLCJlcnJvciIpO3JldHVybn1pZihpJiZpLmlkJiYoWChpKSx0eXBlb2YgQT09ImZ1bmN0aW9uIikpe3ZhciBhPW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhDb2RleCBcdTU2RkFcdTVCOUFcdTUxNjhcdTY3NDNcdTk2NTBcdUZGMDkiOiIiO0EoIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NUYwRiBcdTIxOTIgIit0K2EsInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe0EoIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NUYwRlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBPbChlLHQsbixpKXt2YXIgYT1yLnNlc3Npb25Ub29sPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiLHU9cXIoYSksbz1yLmNoYXRUaGlua2luZ3x8Im9mZiIscz17Y3dkOnR8fCRlKCksbW9kZTpufHxyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixwcm92aWRlcjphLHJ1bm5lcjphPT09ImNvZGV4Ij8iY29kZXgtY2xpLWV4ZWMiOnIuY29uZmlnJiZyLmNvbmZpZy5zdHJ1Y3R1cmVkUnVubmVyPT09InNkayI/ImNsYXVkZS1zZGsiOnIuc3RydWN0dXJlZFJ1bm5lcnx8ImNsYXVkZS1jbGktcHJpbnQiLHByb21wdDplfHx2b2lkIDAsd29ya3RyZWVFbmFibGVkOmk9PT0hMCxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6b307cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHMpfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGwuZXJyb3IpO3JldHVybiByLnNlbGVjdGVkSWQ9bC5pZCxFZSgpLHIuZHJhZnRzW2wuaWRdPSIiLEN0KCksWChsKSxmZSgpLEFyKGwuaWQpLE9uKGwuaWQpLGJuKGwuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbH0pfSl9ZnVuY3Rpb24gV2koKXt2YXIgZT0hIXIuc2VsZWN0ZWRJZCx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pLHU9dWUoYSksbz1lJiYhdSYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCIscz1lJiYodXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpO3U/ci5jdXJyZW50Vmlldz0iY2hhdCI6ZXx8KHIuY3VycmVudFZpZXc9InRlcm1pbmFsIiksdCYmKHQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixvKSx0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIW8pKSxuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHMpLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhcykpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixlKSxuJiZzJiZHYShuKSxvcigpLEdlKCkseHIoKX1mdW5jdGlvbiBPcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWRlc2NyaXB0aW9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIiksbj1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIixpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIjtyLnNlc3Npb25Ub29sPW4sci5tb2RlVmFsdWU9a3QobixyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZXx8ImRlZmF1bHQiKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjcHJvdmlkZXItY2FyZHMgLnByb3ZpZGVyLWNhcmQiKTthLmxlbmd0aCYmYS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBsPXMuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7cy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLGw9PT1uKSxzLmNsYXNzTGlzdC5yZW1vdmUoImRpc2FibGVkIil9KTt2YXIgdT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjc2Vzc2lvbi1raW5kLWNhcmRzIC5zZXNzaW9uLWtpbmQtY2FyZCIpO3UubGVuZ3RoJiZ1LmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGw9cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2Vzc2lvbi1raW5kIiksZD0hMTtzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsbD09PWkpLHMuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLGQpfSk7dmFyIG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI21vZGUtY2FyZHMgLm1vZGUtY2FyZCIpO28ubGVuZ3RoJiZvLmZvckVhY2goZnVuY3Rpb24ocyl7cy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHMuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKT09PXIubW9kZVZhbHVlKX0pLHQmJih0LnRleHRDb250ZW50PUZvKGkpKSxlJiYoZS50ZXh0Q29udGVudD1tbChuLHIubW9kZVZhbHVlKSl9ZnVuY3Rpb24geG0oZSx0LG4saSl7dmFyIGE9bnx8MCx1PXR5cGVvZiBpPT0ibnVtYmVyIj9pOk1hdGgubWF4KGErdC5sZW5ndGgsdC5sZW5ndGgpLG89ZSYmQXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKT9lLm1lc3NhZ2VzOltdLHM9ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciI/ZS5tZXNzYWdlT2Zmc2V0OjA7aWYodC5sZW5ndGg9PT0wJiZvLmxlbmd0aD4wJiZ1PT09MClyZXR1cm57bWVzc2FnZXM6byxtZXNzYWdlT2Zmc2V0OnMsbWVzc2FnZVRvdGFsOmUmJmUubWVzc2FnZVRvdGFsfHxvLmxlbmd0aH07aWYoby5sZW5ndGg9PT0wKXJldHVybnttZXNzYWdlczp0LG1lc3NhZ2VPZmZzZXQ6YSxtZXNzYWdlVG90YWw6dX07aWYoczw9YSl7dmFyIGw9TWF0aC5taW4oTWF0aC5tYXgoYS1zLDApLG8ubGVuZ3RoKSxkPW8uc2xpY2UoMCxsKS5jb25jYXQodCk7cmV0dXJue21lc3NhZ2VzOmQsbWVzc2FnZU9mZnNldDpzLG1lc3NhZ2VUb3RhbDpNYXRoLm1heCh1LHMrZC5sZW5ndGgpfX1yZXR1cm57bWVzc2FnZXM6dCxtZXNzYWdlT2Zmc2V0OmEsbWVzc2FnZVRvdGFsOnV9fWZ1bmN0aW9uIFgoZSl7aWYoISghZXx8IWUuaWQpKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1lLmlkfSl8fG51bGwsbj1FZChlLHQpO2lmKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcykmJnR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiKXt2YXIgaT14bSh0LG4ubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0LG4ubWVzc2FnZVRvdGFsKTtuLm1lc3NhZ2VzPWkubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0PWkubWVzc2FnZU9mZnNldCxuLm1lc3NhZ2VUb3RhbD1pLm1lc3NhZ2VUb3RhbH12YXIgYT0hMSx1PW51bGw7ci5zZXNzaW9ucz1yLnNlc3Npb25zLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZCE9PW4uaWQ/czoodT1zLGE9ITAsT2JqZWN0LmFzc2lnbih7fSxzLG4pKX0pLGF8fHIuc2Vzc2lvbnMudW5zaGlmdChuKTt2YXIgbz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1uLmlkfSl8fG47byYmQXJyYXkuaXNBcnJheShvLnF1ZXVlZE1lc3NhZ2VzKSYmbi5pZD09PXIuc2VsZWN0ZWRJZCYmKCRyKG8pLGp1KCkscG4oKSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKFJhKCksJHQoKSksbi5zdGF0dXMmJm4uc3RhdHVzIT09InJ1bm5pbmciJiZyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZzZXRUaW1lb3V0KHlpLDApfX1mdW5jdGlvbiBPbihlKXshZXx8IXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOfHxyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InN1YnNjcmliZSIsc2Vzc2lvbklkOmV9KSl9ZnVuY3Rpb24gU20oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgbj1PYmplY3QuYXNzaWduKHt9LGUsdCksaT1lLm91dHB1dHx8IiIsYT10Lm91dHB1dHx8IiIsdT1pLmxlbmd0aD5hLmxlbmd0aCxvPWUuc3RydWN0dXJlZFN0YXRlfHxudWxsLHM9dC5zdHJ1Y3R1cmVkU3RhdGV8fG51bGwsbD1lLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHx0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGQ9ISEoZS5tZXNzYWdlcyYmZS5tZXNzYWdlcy5sZW5ndGgmJihmdW5jdGlvbigpe3ZhciBtPWUubWVzc2FnZXNbZS5tZXNzYWdlcy5sZW5ndGgtMV07cmV0dXJuIG0mJm0ucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KG0uY29udGVudCkmJm0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSksZj1BcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2w/bHIoZS5tZXNzYWdlcyk6ZS5tZXNzYWdlczpbXSxjPUFycmF5LmlzQXJyYXkodC5tZXNzYWdlcyk/bD9scih0Lm1lc3NhZ2VzKTp0Lm1lc3NhZ2VzOltdLHY9Yy5sZW5ndGg+MCYmKGZ1bmN0aW9uKCl7dmFyIG09Y1tjLmxlbmd0aC0xXTtyZXR1cm4gbSYmbS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkobS5jb250ZW50KSYmIW0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSxoPWUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJiEhbyYmby5pbkZsaWdodD09PSEwJiYoIXN8fHMuaW5GbGlnaHQhPT0hMCkmJmQmJiEhby5hY3RpdmVSZXF1ZXN0SWQmJiEhcyYmISFzLmFjdGl2ZVJlcXVlc3RJZCYmcy5hY3RpdmVSZXF1ZXN0SWQ9PT1vLmFjdGl2ZVJlcXVlc3RJZCYmIXYsZz1mLmxlbmd0aD5jLmxlbmd0aHx8Zi5sZW5ndGg+MCYmYy5sZW5ndGg+MCYmSlNPTi5zdHJpbmdpZnkoZltmLmxlbmd0aC0xXSkhPT1KU09OLnN0cmluZ2lmeShjW2MubGVuZ3RoLTFdKSYmSlNPTi5zdHJpbmdpZnkoZikubGVuZ3RoPkpTT04uc3RyaW5naWZ5KGMpLmxlbmd0aDtyZXR1cm4gdSYmKG4ub3V0cHV0PWkpLGgmJihuLnN0YXR1cz1lLnN0YXR1c3x8bi5zdGF0dXMsbi5zdHJ1Y3R1cmVkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxzfHx7fSxvLHtpbkZsaWdodDohMH0pLG4ubWVzc2FnZXM9ZS5tZXNzYWdlcyksZyYmKG4ubWVzc2FnZXM9ZiksZS5pZD09PXIuc2VsZWN0ZWRJZCYmKGUucGVybWlzc2lvbkJsb2NrZWQmJnQucGVybWlzc2lvbkJsb2NrZWQ9PT0hMXx8ZS5wZXJtaXNzaW9uQmxvY2tlZCYmIXQucGVybWlzc2lvbkJsb2NrZWQmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEwKSxlLnBlbmRpbmdFc2NhbGF0aW9uJiYhdC5wZW5kaW5nRXNjYWxhdGlvbiYmdC5wZXJtaXNzaW9uQmxvY2tlZCE9PSExJiYobi5wZW5kaW5nRXNjYWxhdGlvbj1lLnBlbmRpbmdFc2NhbGF0aW9uKSxlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wJiYoIXQubWVzc2FnZXN8fHQubWVzc2FnZXMubGVuZ3RoPT09MCkmJihuLm1lc3NhZ2VzPWUubWVzc2FnZXMpKSxufWZ1bmN0aW9uIFplKGUsdCxuKXtpZihlJiZlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wKXJldHVybiBlLm1lc3NhZ2VzO2lmKGUmJmUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpcmV0dXJuW107aWYoIW4pcmV0dXJuW107dmFyIGk9dHlwZW9mIHQ9PSJzdHJpbmciP3Q6ZSYmZS5vdXRwdXR8fCIiO3JldHVybiBpP0R2KGksZSYmZS5jb21tYW5kKTpbXX1mdW5jdGlvbiBJbShlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIHQ/dC5pZDpudWxsfXZhciBuPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5zdGF0dXM9PT0icnVubmluZyJ9KTtpZihuKXJldHVybiBuLmlkO3ZhciBpPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4hYS5hcmNoaXZlZH0pO3JldHVybiBpP2kuaWQ6ZVswXS5pZH1mdW5jdGlvbiB5bihlKXt2YXIgdD1lfHx7fTtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtpZihuLnN0YXR1cz09PTQwMSl7cGwoKTtyZXR1cm59cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXt2YXIgaT1ufHxbXSxhPW5ldyBTZXQoaS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWR9KSk7T2JqZWN0LmtleXMoci5kcmFmdHMpLmZvckVhY2goZnVuY3Rpb24oYyl7YS5oYXMoYyl8fGRlbGV0ZSByLmRyYWZ0c1tjXX0pLHIuc2Vzc2lvbnM9aS5tYXAoZnVuY3Rpb24oYyl7dmFyIHY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGgpe3JldHVybiBoLmlkPT09Yy5pZH0pO3JldHVybiBTbSh2LGMpfSk7dmFyIHU9SW0oci5zZXNzaW9ucyk7aWYodSE9PXZvaWQgMCYmKHIuc2VsZWN0ZWRJZD11KSxXdSgpLHBuKCksci5ib290c3RyYXBwaW5nPSExLEVlKCksci5tb2RhbE9wZW4pZmUoKTtlbHNle3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iikscz1jYSgpO2lmKG8mJm8uaW5uZXJIVE1MPT09cyl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtsJiYobC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKX1lbHNle28mJihvLmlubmVySFRNTD1zLFZ0KG8pKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2wmJihsLnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpfX1QcigpLHIuc2VsZWN0ZWRJZCYmci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQmJmtuKHIuc2VsZWN0ZWRJZCk7dmFyIGQ9UHJvbWlzZS5yZXNvbHZlKCk7aWYoIXQuc2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkJiZyLnNlbGVjdGVkSWQpZD1ibihyLnNlbGVjdGVkSWQpO2Vsc2UgaWYoci5zZWxlY3RlZElkKXt2YXIgZj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTt1ZShmKSYmKEN0KHtwcmVzZXJ2ZVN0aWNrU3RhdGU6ITB9KSxZYSghMCkpfXJldHVybiBkLnRoZW4oZnVuY3Rpb24oKXtyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZ5aSgpLEJ0KCksSWEoKX0pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiIixhPWk9PT0iRmFpbGVkIHRvIGZldGNoInx8aT09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fGk9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KGkpO2F8fGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBsb2FkU2Vzc2lvbnMgZmFpbGVkOiIsbil9KX12YXIgZ3U9bnVsbDtmdW5jdGlvbiBodSgpe2d1fHwoZ3U9c2V0VGltZW91dChmdW5jdGlvbigpe2d1PW51bGwsZmUoKX0sMjAwKSl9ZnVuY3Rpb24gZmUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtlJiYoZS5pbm5lckhUTUw9Y2EoKSxWdChlKSksdCYmKHQudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSksdHlwZW9mIHRuPT0iZnVuY3Rpb24iJiZ0bigpLFByKCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCYmQnQoKX1mdW5jdGlvbiBQcigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihnKXtyZXR1cm4gZy5pZD09PXIuc2VsZWN0ZWRJZH0pO2V8fChxbighMSksamEoKSxUcygpKTt2YXIgdD1lPyRuKGUuY29tbWFuZCk6IldhbmQiLG49ZT9mcihlKToiXHU1RjAwXHU1OUNCXHU1QkY5XHU4QkREIixpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50b3BiYXItc2Vzc2lvbi10aXRsZSwgLnRvcGJhci10YWdsaW5lIik7byYmZSYmKG8uY2xhc3NMaXN0LnJlbW92ZSgidG9wYmFyLXRhZ2xpbmUiKSxvLmNsYXNzTGlzdC5hZGQoInRvcGJhci1zZXNzaW9uLXRpdGxlIiksby50ZXh0Q29udGVudD1lLnRpdGxlfHwkbihlLmNvbW1hbmQpLG8uc2V0QXR0cmlidXRlKCJ0aXRsZSIsZS5kZXNjcmlwdGlvbnx8ZS5jb21tYW5kfHwiIikpO3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSxmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2kmJmkudGV4dENvbnRlbnQhPT10JiYoaS50ZXh0Q29udGVudD10KSxhJiZhLnRleHRDb250ZW50IT09dCYmKGEudGV4dENvbnRlbnQ9dCksdSYmKHUudGV4dENvbnRlbnQ9ZT9uKyIgXHhCNyAiK2dtKGUpOm4pO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtZGlzcGxheSIpLHY9ZT9tbShlKToiXHU3RUM4XHU3QUVGIjtjJiZjLnRleHRDb250ZW50IT09diYmKGMudGV4dENvbnRlbnQ9diksX28oKSwhci50ZXJtaW5hbCYmbCYmZSYmSm4oKSxyLnRlcm1pbmFsJiZsJiYhbC5jb250YWlucyhyLnRlcm1pbmFsLmVsZW1lbnQpJiYoRXIoKSxKbigpKSxlfHwoci50ZXJtaW5hbFNlc3Npb25JZD1udWxsLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKSxyLnRlcm1pbmFsJiZlJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmZnQoInZpZXciKTt2YXIgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlPyhzJiZzLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGwmJmwuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKToocyYmcy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxsJiZsLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGQmJmQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZiYmZi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxNaSgpLFpuKHN0KCkpLFdpKCksUmEoKX1mdW5jdGlvbiBibihlKXtyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCk7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZX0pLG49Ii9hcGkvc2Vzc2lvbnMvIitlO3JldHVybiBobCh0KSYmKG4rPSI/Zm9ybWF0PWNoYXQiKSxmZXRjaChuLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe3Iuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCxFZSgpKSx5bigpO3JldHVybn1pZihYKGkpLFByKCksci50ZXJtaW5hbCYmZT09PXIuc2VsZWN0ZWRJZCYmaS5vdXRwdXQhPT12b2lkIDApe3ZhciBhPSEhci53cyYmKHIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOfHxyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuQ09OTkVDVElORyk7YT9RZSgic2Vzc2lvbi1zd2l0Y2giKTooZmkoZSxpLm91dHB1dCx7bW9kZToiYXBwZW5kIn0pLFFlKCJzZXNzaW9uLXN3aXRjaCIse2ZvcmNlUmVwbGF5OiEwfSkpfXZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PWV9KTtyLmN1cnJlbnRNZXNzYWdlcz1XZSh1LFplKHUsaS5vdXRwdXQsITEpKSx6ZSghMSl9KX12YXIgeXU9ITE7ZnVuY3Rpb24gVG0oKXtpZih5dSlyZXR1cm4hMTt2YXIgZT1yLnNlbGVjdGVkSWQ7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ZX0pO2lmKCF0KXJldHVybiExO3ZhciBuPXR5cGVvZiB0Lm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP3QubWVzc2FnZU9mZnNldDowO2lmKG48PTApcmV0dXJuITE7dmFyIGk9NDAsYT1NYXRoLm1heCgwLG4taSksdT1uLWE7cmV0dXJuIHl1PSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvbWVzc2FnZXM/b2Zmc2V0PSIrYSsiJmxpbWl0PSIrdSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtpZihvJiZBcnJheS5pc0FycmF5KG8ubWVzc2FnZXMpJiZ0Lm1lc3NhZ2VPZmZzZXQ9PT1uKXt2YXIgcz1BcnJheS5pc0FycmF5KHQubWVzc2FnZXMpP3QubWVzc2FnZXM6W107dC5tZXNzYWdlcz1vLm1lc3NhZ2VzLmNvbmNhdChzKSx0Lm1lc3NhZ2VPZmZzZXQ9YSx0eXBlb2Ygby50b3RhbD09Im51bWJlciImJih0Lm1lc3NhZ2VUb3RhbD1vLnRvdGFsKSxlPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9V2UodCxaZSh0LHQub3V0cHV0LCExKSksci5jaGF0UmVuZGVyZWRDb3VudD1yLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgsemUoITApKX19KS5jYXRjaChmdW5jdGlvbigpe30pLmZpbmFsbHkoZnVuY3Rpb24oKXt5dT0hMX0pLCEwfWZ1bmN0aW9uIFJ0KGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PWV9KTtpZih0KXtyLnNlbGVjdGVkSWQhPT1lJiZFcigpLHIuc2VsZWN0ZWRJZD1lLEVlKCksci50b29sQ29udGVudENhY2hlPXt9LHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdLCRyKHQpLFd1KCkscG4oKSxDdCgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLHIuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpO2kmJmkucmVtb3ZlKCksci5fc3RhdHVzQmFyVGltZXJJZCYmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTthJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpO3ZhciB1PXQ7ci5wcmVmZXJyZWRDb21tYW5kPVhlKCksci5jaGF0TW9kZT1rdCgiY2xhdWRlIix1JiZ1Lm1vZGU/dS5tb2RlOnIuY2hhdE1vZGUpLHIudGVybWluYWxJbnRlcmFjdGl2ZSYmdSYmdS5zdGF0dXMhPT0icnVubmluZyImJnFuKCExKSxmZSgpLEFyKGUpLHIuZmlsZVBhbmVsT3BlbiYmKERkKHUpLHF0KCkpLGJuKGUpLnRoZW4oZnVuY3Rpb24oKXtfdCghMCl9KSxPbihlKSxyLmdpdFN0YXR1cz1udWxsLHIuZ2l0U3RhdHVzU2Vzc2lvbklkPW51bGwsZGEoKSxrbihlLHtmb3JjZTohMH0pfX1mdW5jdGlvbiBMbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpLG49amUoKSxpPSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZCxhPWl8fCFuJiYoISFyLnNpZGViYXJQaW5uZWR8fCEhci5zZXNzaW9uc0RyYXdlck9wZW4pO2UmJihlLmNsYXNzTGlzdC50b2dnbGUoInBpbm5lZCIsYSksZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLGkpKSx0JiYodC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLXBpbm5lZCIsYSksdC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLWNvbGxhcHNlZCIsaSkpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJwaW5uZWQiLCEhci5zaWRlYmFyUGlubmVkKSx1LnRpdGxlPXIuc2lkZWJhclBpbm5lZD8iXHU1REYyXHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCXHVGRjA4XHU3MEI5XHU1MUZCXHU4OUUzXHU5NjY0XHU5NTAxXHU1QjlBXHVGRjA5IjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIix1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsci5zaWRlYmFyUGlubmVkPyJcdTg5RTNcdTk2NjRcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0IiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKX1mdW5jdGlvbiBIcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2UmJmUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsSnUoKSksbiYmbi5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpO2kmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnNlc3Npb25zRHJhd2VyT3BlbiksTG0oKX1mdW5jdGlvbiBNbSgpe3ZhciBlPWplKCk7aWYoIWUpe3ZhciB0PXIuc2lkZWJhclBpbm5lZD8hMTohci5zZXNzaW9uc0RyYXdlck9wZW47ci5zZXNzaW9uc0RyYXdlck9wZW49dCx0JiYoci5zaWRlYmFyQ29sbGFwc2VkPSExLFNlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIiwhMSkpLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLGxuKCksTnIoKTtyZXR1cm59aWYoci5zZXNzaW9uc0RyYXdlck9wZW49IXIuc2Vzc2lvbnNEcmF3ZXJPcGVuLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXtyLmZpbGVQYW5lbE9wZW49ITE7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsImZhbHNlIil9Y2F0Y2h7fX1sbigpfWZ1bmN0aW9uIF9yKCl7dmFyIGU9amUoKTtpZighZSl7aWYoIXIuc2lkZWJhclBpbm5lZCYmIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXJldHVybjtUcigpLHIuc2lkZWJhclBpbm5lZD0hMSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxTZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITEpLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLGxuKCksTnIoKTtyZXR1cm59ci5zZXNzaW9uc0RyYXdlck9wZW4mJihUcigpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLGxuKCkpfWZ1bmN0aW9uIHFtKCl7aWYoamUoKSl7X3IoKTtyZXR1cm59ci5zaWRlYmFyUGlubmVkfHxyLnNpZGViYXJDb2xsYXBzZWR8fCFyLnNlc3Npb25zRHJhd2VyT3Blbnx8KFRyKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITEsU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksbG4oKSxOcigpKX1mdW5jdGlvbiBQbChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO3IucGx1c1BvcG92ZXJPcGVuPSEhZSx0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWUpLG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsZT8idHJ1ZSI6ImZhbHNlIikpfWZ1bmN0aW9uIE9tKCl7UGwoIXIucGx1c1BvcG92ZXJPcGVuKX1mdW5jdGlvbiB6aSgpe3IucGx1c1BvcG92ZXJPcGVuJiZQbCghMSl9ZnVuY3Rpb24gV3QoKXtqZSgpJiZyLnNlc3Npb25zRHJhd2VyT3BlbiYmX3IoKX1mdW5jdGlvbiBOcigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2lmKGUpe3ZhciB0PWZ1bmN0aW9uKG4pe24ucHJvcGVydHlOYW1lPT09InBhZGRpbmctbGVmdCImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHQpLFB0KCEwKSl9O2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCl9c2V0VGltZW91dChmdW5jdGlvbigpe1B0KCEwKX0sMzUwKX12YXIgenQ9bnVsbDtmdW5jdGlvbiBQbSgpe3JldHVybiB6dCYmZG9jdW1lbnQuYm9keS5jb250YWlucyh6dCl8fCh6dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx6dC5jbGFzc05hbWU9InNpZGViYXItdGlsZS1idWJibGUiLHp0LnNldEF0dHJpYnV0ZSgicm9sZSIsInRvb2x0aXAiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHp0KSksenR9ZnVuY3Rpb24gdG4oKXt6dCYmenQuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfWZ1bmN0aW9uIEhtKGUsdCl7aWYoIXQpe3RuKCk7cmV0dXJufXZhciBuPVBtKCk7bi50ZXh0Q29udGVudD10Lmxlbmd0aD40MDA/dC5zbGljZSgwLDQwMCkrIlx1MjAyNiI6dDt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO24uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpO3ZhciBhPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1pLnRvcCtpLmhlaWdodC8yLG89dS1hLmhlaWdodC8yLHM9OCxsPXdpbmRvdy5pbm5lckhlaWdodC1hLmhlaWdodC04O288cyYmKG89cyksbz5sJiYobz1NYXRoLm1heChzLGwpKSxuLnN0eWxlLmxlZnQ9aS5yaWdodCsxMisicHgiLG4uc3R5bGUudG9wPW8rInB4IixuLnN0eWxlLnNldFByb3BlcnR5KCItLWJ1YmJsZS10YWlsLXkiLHUtbysicHgiKX1mdW5jdGlvbiBfbShlKXtpZihlLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkfSk7aWYoIXQpcmV0dXJuIiI7dmFyIG49YWModCk7cmV0dXJuIG58fHQuc3VtbWFyeXx8dC5jb21tYW5kfHwiIn1pZihlLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXt2YXIgaT1yLmNsYXVkZUhpc3RvcnkuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkfSk7aWYoaSYmaS5maXJzdFVzZXJNZXNzYWdlKXJldHVybiBpLmZpcnN0VXNlck1lc3NhZ2V9cmV0dXJuIiJ9ZnVuY3Rpb24gTm0oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIi5zaWRlYmFyLWNvbGxhcHNlZC10aWxlIik7aWYoIW4pe3RuKCk7cmV0dXJufXZhciBpPV9tKG4pO2lmKCFpKXt0bigpO3JldHVybn1IbShuLGkpfX1mdW5jdGlvbiBqbShlKXt2YXIgdD1lLnJlbGF0ZWRUYXJnZXQ7dCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQmJnQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKXx8dG4oKX1mdW5jdGlvbiBSbSgpe3ZhciBlPWplKCk7ci5zaWRlYmFyUGlubmVkfHwoci5zaWRlYmFyUGlubmVkPSEwLFNlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCkpLHIuc2lkZWJhckNvbGxhcHNlZD0hci5zaWRlYmFyQ29sbGFwc2VkLFNlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIixyLnNpZGViYXJDb2xsYXBzZWQpLHIuc2lkZWJhckNvbGxhcHNlZD9yLnNlc3Npb25zRHJhd2VyT3Blbj0hMTplPyhyLnNpZGViYXJQaW5uZWQ9ITEsci5zZXNzaW9uc0RyYXdlck9wZW49ITAsU2UoIndhbmQtc2lkZWJhci1waW5uZWQiLCExKSk6ci5zZXNzaW9uc0RyYXdlck9wZW49ITAsU2UoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3BlbiksbG4oKSxmZSgpLHptKCksdG4oKSxOcigpfWZ1bmN0aW9uIFdtKCl7amUoKXx8KHIuc2lkZWJhclBpbm5lZD0hci5zaWRlYmFyUGlubmVkLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLFNlKCJ3YW5kLXNpZGViYXItcGlubmVkIixyLnNpZGViYXJQaW5uZWQpLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLGxuKCksTnIoKSl9ZnVuY3Rpb24gem0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtpZihlKXt2YXIgdD0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQ7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLHQpLGUudGl0bGU9dD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIiksZS5pbm5lckhUTUw9dD8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPid9fWZ1bmN0aW9uIFZtKGUpe2lmKGUpe2Uuc3R5bGUubGVmdD0iIixlLnN0eWxlLnJpZ2h0PSIiO3ZhciB0PWUub2Zmc2V0UGFyZW50fHxlLnBhcmVudEVsZW1lbnQ7aWYodCl7dmFyIG49OCxpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9d2luZG93LmlubmVyV2lkdGg7YS5sZWZ0PG4/KGUuc3R5bGUucmlnaHQ9ImF1dG8iLGUuc3R5bGUubGVmdD1uLWkubGVmdCsicHgiKTphLnJpZ2h0PnUtbiYmKGUuc3R5bGUubGVmdD0iYXV0byIsZS5zdHlsZS5yaWdodD1pLnJpZ2h0LSh1LW4pKyJweCIpfX19ZnVuY3Rpb24gYnUoKXt0cigpLHIubW9kYWxPcGVuPSEwLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLEhyKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtlJiYoZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxyLnNlc3Npb25Ub29sPVhlKCksci5wcmVmZXJyZWRDb21tYW5kPXIuc2Vzc2lvblRvb2wsci5zZXNzaW9uQ3JlYXRlS2luZD0ic3RydWN0dXJlZCIsci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9ITEsci5tb2RlVmFsdWU9a3Qoci5zZXNzaW9uVG9vbCxyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZSksT3IoKSxtZygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1jYXJkcyIpO3QmJnQuZm9jdXMoKX0sMjApLFZpKGUpKX1mdW5jdGlvbiBFbigpe3IubW9kYWxPcGVuPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7ZSYmKHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCksRXUoZSkpLHJyKCl9ZnVuY3Rpb24gRXUoZSl7aWYoZSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7dmFyIHQ9ITE7dHJ5e3Q9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXN9Y2F0Y2h7fWlmKHR8fGRvY3VtZW50LmhpZGRlbil7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59ZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LmFkZCgiY2xvc2luZyIpLGUuX3dhbmRDbG9zZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGx9LDE3MCl9fWZ1bmN0aW9uIFZpKGUpe3IuZm9jdXNUcmFwSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKTt2YXIgdD0nYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknO3IuZm9jdXNUcmFwSGFuZGxlcj1mdW5jdGlvbihuKXtpZihuLmtleT09PSJUYWIiKXt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwodCksYT1pWzBdLHU9aVtpLmxlbmd0aC0xXTshYXx8IXV8fChuLnNoaWZ0S2V5P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiYobi5wcmV2ZW50RGVmYXVsdCgpLHUuZm9jdXMoKSk6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXUmJihuLnByZXZlbnREZWZhdWx0KCksYS5mb2N1cygpKSl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpfWZ1bmN0aW9uIFVtKCl7cmV0dXJuIHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCYmci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09ci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfSl8fG51bGx9ZnVuY3Rpb24ganIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29udGVudCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtZXJyb3IiKSxpPVVtKCksYT1yLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdDtpZighKCFlfHwhdCkpe2lmKCFpfHwhaS53b3JrdHJlZSl7ZS5pbm5lckhUTUw9JzxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTY3MkFcdTYyN0VcdTUyMzBcdTUzRUZcdTU0MDhcdTVFNzZcdTc2ODQgd29ya3RyZWUgXHU0RjFBXHU4QkREXHUzMDAyPC9wPicsdC5kaXNhYmxlZD0hMDtyZXR1cm59biYmKHIud29ya3RyZWVNZXJnZUVycm9yP3FlKG4sci53b3JrdHJlZU1lcmdlRXJyb3IpOnZpKG4pKTt2YXIgdT1bJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzY1XHU2RTkwXHU1MjA2XHU2NTJGPC9zcGFuPjxzdHJvbmc+JytwKGkud29ya3RyZWUuYnJhbmNofHwiLSIpKyI8L3N0cm9uZz48L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48c3Ryb25nPicrcChpLndvcmt0cmVlLnBhdGh8fCItIikrIjwvc3Ryb25nPjwvZGl2PiJdO2E/KHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTc2RUVcdTY4MDdcdTUyMDZcdTY1MkY8L3NwYW4+PHN0cm9uZz4nK3AoYS50YXJnZXRCcmFuY2h8fCItIikrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTVGODVcdTU0MDhcdTVFNzZcdTYzRDBcdTRFQTQ8L3NwYW4+PHN0cm9uZz4nK3AoU3RyaW5nKGEuYWhlYWRDb3VudHx8MCkpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzJBXHU2M0QwXHU0RUE0XHU2NTM5XHU1MkE4PC9zcGFuPjxzdHJvbmc+JytwKGEuaGFzVW5jb21taXR0ZWRDaGFuZ2VzPyJcdTY3MDkiOiJcdTY1RTAiKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NTFCMlx1N0E4MVx1OThDRVx1OTY2OTwvc3Bhbj48c3Ryb25nPicrcChhLmhhc0NvbmZsaWN0cz8iXHU2NzA5IjoiXHU2NUUwIikrIjwvc3Ryb25nPjwvZGl2PiIpLGEucmVhc29uJiZ1LnB1c2goJzxwIGNsYXNzPSJmaWVsZC1oaW50Ij4nK3AoYS5yZWFzb24pKyI8L3A+IikpOnIud29ya3RyZWVNZXJnZUxvYWRpbmcmJnUucHVzaCgnPHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNSB3b3JrdHJlZSBcdTU0MDhcdTVFNzZcdTcyQjZcdTYwMDFcdTIwMjY8L3A+JyksZS5pbm5lckhUTUw9dS5qb2luKCIiKSx0LmRpc2FibGVkPXIud29ya3RyZWVNZXJnZUxvYWRpbmd8fHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmd8fCFhfHxhLm9rIT09ITAsdC50ZXh0Q29udGVudD1yLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPyJcdTU0MDhcdTVFNzZcdTRFMkQuLi4iOiJcdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDYifX1mdW5jdGlvbiBIbChlKXtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9ZSxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITAsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixFbigpLHRyKCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7dCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxWaSh0KSksanIoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL21lcmdlL2NoZWNrIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO24mJm4uc2Vzc2lvbiYmWChuLnNlc3Npb24pLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW4ucmVzdWx0fHxudWxsLHIud29ya3RyZWVNZXJnZUVycm9yPSIifSkuY2F0Y2goZnVuY3Rpb24obil7ci53b3JrdHJlZU1lcmdlRXJyb3I9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2OEMwXHU2N0U1IHdvcmt0cmVlIFx1NTQwOFx1NUU3Nlx1NzJCNlx1NjAwMVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMSxqcigpfSl9ZnVuY3Rpb24gZXIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9bnVsbCxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITEsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCl9ZnVuY3Rpb24gS20oKXshci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfHxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nfHwoci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMCxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixqcigpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCkrIi93b3JrdHJlZS9tZXJnZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe30pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUmJmUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGUuZXJyb3IpO3JldHVybiBlJiZlLnNlc3Npb24mJlgoZS5zZXNzaW9uKSxBKCJcdTVERjJcdTU0MDhcdTVFNzZcdTUyMzAgIitwKGUucmVzdWx0JiZlLnJlc3VsdC50YXJnZXRCcmFuY2h8fCJcdTRFM0JcdTUyMDZcdTY1MkYiKSsoZS5yZXN1bHQmJmUucmVzdWx0LmNsZWFudXBEb25lPT09ITE/Ilx1RkYwQ1x1NEY0Nlx1NURFNVx1NEY1Q1x1NjgxMVx1NUY4NVx1NkUwNVx1NzQwNlx1MzAwMiI6Ilx1MzAwMiIpLCJpbmZvIiksZXIoKSxOdCgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7ci53b3JrdHJlZU1lcmdlRXJyb3I9ZSYmZS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDA4XHU1RTc2IHdvcmt0cmVlXHUzMDAyIixqcigpfSkuZmluYWxseShmdW5jdGlvbigpe3Iud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITEsanIoKX0pKX1mdW5jdGlvbiBfbChlKXtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL2NsZWFudXAiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCYmdC5lcnJvcil0aHJvdyBuZXcgRXJyb3IodC5lcnJvcik7cmV0dXJuIHQmJnQuc2Vzc2lvbiYmWCh0LnNlc3Npb24pLEEoIlx1NURGMlx1NUI4Q1x1NjIxMCB3b3JrdHJlZSBcdTZFMDVcdTc0MDZcdTMwMDIiLCJpbmZvIiksTnQoKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe0EodCYmdC5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3NDA2IHdvcmt0cmVlXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIEptKCl7RW4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlKXtlLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIik7dCYmKHQudmFsdWU9IiIpLG4mJihuLnZhbHVlPSIiKSxObCgpLFZpKGUpLEdtKCksZS5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2MuZGF0YXNldC5tb2RlbERpcnR5PSJmYWxzZSIsYy5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9ImZhbHNlIn0pLEZ1KCJhYm91dCIpLFptKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1zb3VuZCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1idWJibGUiKTtpJiYoaS5jaGVja2VkPXIubm90aWZTb3VuZCksYSYmKGEuY2hlY2tlZD1yLm5vdGlmQnViYmxlKTt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZSIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUtdmFsIik7aWYodSl7dS52YWx1ZT1yLm5vdGlmVm9sdW1lLG8mJihvLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKTt0cnl7dS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpfWNhdGNoe319dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmLXZvbHVtZS1maWVsZCIpO2lmKHMmJihzLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIiksd24oKSx0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmdldEFwcEljb249PSJmdW5jdGlvbiIpdHJ5e1dsKFdhbmROYXRpdmUuZ2V0QXBwSWNvbigpfHwic2hvcnRoYWlyIil9Y2F0Y2h7fWlmKFJlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Tb3VuZD09ImZ1bmN0aW9uIil0cnl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1zZWxlY3QiKTtsJiYobC52YWx1ZT1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kKCkpfWNhdGNoe31pZihSZSYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lPT0iZnVuY3Rpb24iKXRyeXt2YXIgZD1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblZvbHVtZSgpO2lmKHIubm90aWZWb2x1bWU9ZCx1JiYodS52YWx1ZT1TdHJpbmcoZCkpLG8mJihvLnRleHRDb250ZW50PWQrIiUiKSx1KXRyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fXRyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhkKSl9Y2F0Y2h7fX1jYXRjaHt9aWYoUmUmJnR5cGVvZiBXYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZD09ImZ1bmN0aW9uIil0cnl7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1oYXB0aWMtZW5hYmxlZCIpO2YmJihmLmNoZWNrZWQ9V2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQoKSl9Y2F0Y2h7fX19ZnVuY3Rpb24gdHIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtlJiYoZS5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3guaXMtb3BlbiIpLmZvckVhY2goZnVuY3Rpb24odCl7aG4odCl9KSxyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpLEV1KGUpKX1mdW5jdGlvbiBObCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1lcnJvciIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXN1Y2Nlc3MiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gWW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIikudmFsdWUsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlybS1wYXNzd29yZCIpLnZhbHVlLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWVycm9yIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtc3VjY2VzcyIpO2lmKE5sKCksIWV8fGUubGVuZ3RoPDYpe24udGV4dENvbnRlbnQ9Ilx1NUJDNlx1NzgwMVx1OTU3Rlx1NUVBNlx1ODFGM1x1NUMxMVx1NEUzQSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59aWYoZSE9PXQpe24udGV4dENvbnRlbnQ9Ilx1NEUyNFx1NkIyMVx1OEY5M1x1NTE2NVx1NzY4NFx1NUJDNlx1NzgwMVx1NEUwRFx1NEUwMFx1ODFGNFx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2V0LXBhc3N3b3JkIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Bhc3N3b3JkOmV9KSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEuZXJyb3Ipe24udGV4dENvbnRlbnQ9YS5lcnJvcixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1pLnRleHRDb250ZW50PSJcdTVCQzZcdTc4MDFcdTRGRUVcdTY1MzlcdTYyMTBcdTUyOUZcdUZGMDEiLGkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLnZhbHVlPSIiLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIikudmFsdWU9IiJ9KS5jYXRjaChmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkZhaWxlZCB0byBzYXZlIHBhc3N3b3JkLiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX0pfWZ1bmN0aW9uIEZ1KGUpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbihzKXtobihzKX0pO2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtcGFuZWwiKSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpPT09ZTthP3RbaV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik6dFtpXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSx0W2ldLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsYT8idHJ1ZSI6ImZhbHNlIiksdFtpXS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixhPyIwIjoiLTEiKX1mb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XS5pZD09PSJzZXR0aW5ncy10YWItIitlO28/KG5bdV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksblt1XS5yZW1vdmVBdHRyaWJ1dGUoImhpZGRlbiIpKTooblt1XS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxuW3VdLnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiaGlkZGVuIikpfX1mdW5jdGlvbiBqbChlKXtpZihlJiYhKGUua2V5IT09IkFycm93VXAiJiZlLmtleSE9PSJBcnJvd0Rvd24iJiZlLmtleSE9PSJBcnJvd0xlZnQiJiZlLmtleSE9PSJBcnJvd1JpZ2h0IiYmZS5rZXkhPT0iSG9tZSImJmUua2V5IT09IkVuZCIpKXt2YXIgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIikpO2lmKHQubGVuZ3RoKXt2YXIgbj1lLmN1cnJlbnRUYXJnZXQmJmUuY3VycmVudFRhcmdldC5jbG9zZXN0P2UuY3VycmVudFRhcmdldC5jbG9zZXN0KCIuc2V0dGluZ3MtdGFicyIpOm51bGwsaT1uJiZuLmdldEF0dHJpYnV0ZSgiYXJpYS1vcmllbnRhdGlvbiIpPT09Imhvcml6b250YWwiO2lmKCEoaSYmKGUua2V5PT09IkFycm93VXAifHxlLmtleT09PSJBcnJvd0Rvd24iKSkmJiEoIWkmJihlLmtleT09PSJBcnJvd0xlZnQifHxlLmtleT09PSJBcnJvd1JpZ2h0IikpKXt2YXIgYT10LmluZGV4T2YoZS5jdXJyZW50VGFyZ2V0KTtpZihhIT09LTEpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdT1hOyhlLmtleT09PSJBcnJvd1VwInx8ZS5rZXk9PT0iQXJyb3dMZWZ0IikmJih1PWE+MD9hLTE6dC5sZW5ndGgtMSksKGUua2V5PT09IkFycm93RG93biJ8fGUua2V5PT09IkFycm93UmlnaHQiKSYmKHU9YTx0Lmxlbmd0aC0xP2ErMTowKSxlLmtleT09PSJIb21lIiYmKHU9MCksZS5rZXk9PT0iRW5kIiYmKHU9dC5sZW5ndGgtMSk7dmFyIG89dFt1XTtpZihvKXt2YXIgcz1vLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTtzJiZGdShzKSx0eXBlb2Ygby5mb2N1cz09ImZ1bmN0aW9uIiYmby5mb2N1cygpfX19fX19ZnVuY3Rpb24gR20oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2V0dGluZ3MtdGFicyIpO2lmKGUpe3ZhciB0PSExO3RyeXt0PSEhKHdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzYwcHgpIikubWF0Y2hlcyl9Y2F0Y2h7fWUuc2V0QXR0cmlidXRlKCJhcmlhLW9yaWVudGF0aW9uIix0PyJob3Jpem9udGFsIjoidmVydGljYWwiKX1mb3IodmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLXRhYiIpLGk9MDtpPG4ubGVuZ3RoO2krKyluW2ldLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGpsKSxuW2ldLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGpsKX1mdW5jdGlvbiBRbShlKXtpZihlKXt2YXIgdD1lLmNvbmZpZ3x8e30sbj17YWJvdXQ6ZS52ZXJzaW9uPyJcdTVGNTNcdTUyNEQgdiIrZS52ZXJzaW9uOiJcdTcyNDhcdTY3MkNcdTRFMEVcdTY2RjRcdTY1QjBcdTRGRTFcdTYwNkYiLGdlbmVyYWw6W3QuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iix0Lmxhbmd1YWdlfHwiXHU4MUVBXHU1MkE4XHU4QkVEXHU4QTAwIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiBceEI3ICIpLG5vdGlmaWNhdGlvbnM6ci5ub3RpZlNvdW5kPyJcdTYzRDBcdTc5M0FcdTk3RjMgIityLm5vdGlmVm9sdW1lKyIlIjoiXHU2M0QwXHU3OTNBXHU5N0YzXHU1REYyXHU1MTczXHU5NUVEIixzZWN1cml0eTplLmhhc0NlcnQ/Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IjoiXHU1QkM2XHU3ODAxXHU0RTBFXHU4QkMxXHU0RTY2XHU3QkExXHU3NDA2IixwcmVzZXRzOnQuY29tbWFuZFByZXNldHMmJnQuY29tbWFuZFByZXNldHMubGVuZ3RoP3QuY29tbWFuZFByZXNldHMubGVuZ3RoKyIgXHU2NzYxXHU5ODg0XHU4QkJFIjoiXHU2NjgyXHU2NUUwXHU5ODg0XHU4QkJFIixkaXNwbGF5OiJcdTYzQTdcdTUyMzZcdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDAifTtmb3IodmFyIGkgaW4gbilpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixpKSl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNldHRpbmdzLXRhYltkYXRhLXRhYj0iJytpKyciXSAuc2V0dGluZ3MtdGFiLW1ldGEnKTthJiYoYS50ZXh0Q29udGVudD1uW2ldfHwiIil9fX1mdW5jdGlvbiAkbShlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5IiksaT13aW5kb3cuUVJDb2RlTGliO2lmKHQpe2lmKCFpfHx0eXBlb2YgaS50b0NhbnZhcyE9ImZ1bmN0aW9uIil7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NUU5M1x1NjcyQVx1NTJBMFx1OEY3RCIpO3JldHVybn10cnl7aS50b0NhbnZhcyh0LGUse3dpZHRoOjIyMCxtYXJnaW46MSxlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmMDAifX0sZnVuY3Rpb24oYSl7aWYoYSl7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIsbi5zdHlsZS5kaXNwbGF5PSIiKSx0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7cmV0dXJufW4mJihuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUifSl9Y2F0Y2h7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIsbi5zdHlsZS5kaXNwbGF5PSIiKSx0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiJ9fX1mdW5jdGlvbiBYbShlKXt2YXIgdD13aW5kb3cuUVJDb2RlTGliO2lmKCF0fHx0eXBlb2YgdC50b0NhbnZhcyE9ImZ1bmN0aW9uIilyZXR1cm47dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbm5lY3QtcXItbW9kYWwiKTtuJiZuLnJlbW92ZSgpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuaWQ9ImNvbm5lY3QtcXItbW9kYWwiLGkuY2xhc3NOYW1lPSJjb25uZWN0LXFyLW1vZGFsLW92ZXJsYXkiLGkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWNhcmQiPjxjYW52YXMgaWQ9ImNvbm5lY3QtcXItbW9kYWwtY2FudmFzIj48L2NhbnZhcz48cCBjbGFzcz0iY29ubmVjdC1xci1tb2RhbC1oaW50Ij5cdTc1MjggV2FuZCBBcHAgXHU2MjZCXHU0RTAwXHU2MjZCXHVGRjBDXHU4RkRFXHU2M0E1XHU1RjUzXHU1MjREXHU2NzBEXHU1MkExXHU1NjY4PC9wPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGNvbm5lY3QtcXItbW9kYWwtY2xvc2UiPlx1NTE3M1x1OTVFRDwvYnV0dG9uPjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt2YXIgYT1pLnF1ZXJ5U2VsZWN0b3IoIiNjb25uZWN0LXFyLW1vZGFsLWNhbnZhcyIpLHU9TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsd2luZG93LmlubmVySGVpZ2h0KSouNzt1PDI0MCYmKHU9MjQwKSx1PjQ4MCYmKHU9NDgwKTt0cnl7dC50b0NhbnZhcyhhLGUse3dpZHRoOnUsbWFyZ2luOjIsZXJyb3JDb3JyZWN0aW9uTGV2ZWw6Ik0iLGNvbG9yOntkYXJrOiIjMWYxYjE3IixsaWdodDoiI2ZmZmZmZiJ9fSl9Y2F0Y2h7fWZ1bmN0aW9uIG8oKXtpLnJlbW92ZSgpfWkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGwpe2wudGFyZ2V0PT09aSYmbygpfSk7dmFyIHM9aS5xdWVyeVNlbGVjdG9yKCIuY29ubmVjdC1xci1tb2RhbC1jbG9zZSIpO3MmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG8pfWZ1bmN0aW9uIFJyKGUsdCxuKXtpZighZSlyZXR1cm47ZnVuY3Rpb24gaSgpe2lmKFluKCJsaWdodCIpLG4pe24oKTtyZXR1cm59aWYodCl7dmFyIGE9dC50ZXh0Q29udGVudDt0LnRleHRDb250ZW50PSJcdTVERjJcdTU5MERcdTUyMzYiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnRleHRDb250ZW50PWF9LDE1MDApfX1pZihSZSYmdHlwZW9mIFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkPT0iZnVuY3Rpb24iKXRyeXtpZihXYW5kTmF0aXZlLmNvcHlUb0NsaXBib2FyZChlKT09PSJvayIpe2koKTtyZXR1cm59fWNhdGNoe31uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGkpLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTthLnZhbHVlPWUsYS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGEuc3R5bGUub3BhY2l0eT0iMCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhLnNlbGVjdCgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKSxpKCl9KX1mdW5jdGlvbiBGbihlKXtpZih0eXBlb2YgZSE9Im51bWJlciJ8fCFpc0Zpbml0ZShlKXx8ZTwwKXJldHVybiItIjtpZihlPDEwMjQpcmV0dXJuIGUrIiBCIjtmb3IodmFyIHQ9WyJLQiIsIk1CIiwiR0IiLCJUQiJdLG49ZS8xMDI0LGk9MDtuPj0xMDI0JiZpPHQubGVuZ3RoLTE7KW49bi8xMDI0LGkrPTE7dmFyIGE9bj49MTA/bi50b0ZpeGVkKDApOm4udG9GaXhlZCgxKTtyZXR1cm4gYSsiICIrdFtpXX1mdW5jdGlvbiBabSgpe2ZldGNoKCIvYXBpL3NldHRpbmdzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtRbShlKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtcGtnLW5hbWUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy12ZXJzaW9uIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtbm9kZS1yZXEiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1yZXBvLXVybCIpO3QmJih0LnRleHRDb250ZW50PWUucGFja2FnZU5hbWV8fCItIiksbiYmKG4udGV4dENvbnRlbnQ9ZS52ZXJzaW9ufHwiLSIpLGkmJihpLnRleHRDb250ZW50PWUubm9kZVZlcnNpb258fCItIiksYSYmZS5yZXBvVXJsJiYoYS5pbm5lckhUTUw9JzxhIGhyZWY9IicrcChlLnJlcG9VcmwpKyciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4nK3AoZS5yZXBvVXJsKSsiPC9hPiIpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTtlLmxhdGVzdFZlcnNpb24mJnUmJih1LnRleHRDb250ZW50PWUubGF0ZXN0VmVyc2lvbixlLnVwZGF0ZUF2YWlsYWJsZSYmbyYmby5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTtzJiYocy5jaGVja2VkPWUudXBkYXRlQ2hhbm5lbD09PSJiZXRhIik7dmFyIGw9ZS5hdXRvVXBkYXRlfHx7fSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIik7ZCYmKGQuY2hlY2tlZD0hIWwud2ViKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpO2YmJihmLmNoZWNrZWQ9ISFMbiYmISFsLmFwayk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTtjJiYoYy5jaGVja2VkPSEhY24mJiEhbC5kbWcpO2Z1bmN0aW9uIHYoYWUsdXQpe2lzKGFlLHt0eXBlOnV0PT09ImVycm9yIj8iZGFuZ2VyIjoiaW5mbyJ9KX1mdW5jdGlvbiBoKGFlLHV0LGtlKXt2YXIgWWU9a2U/a2UudGV4dENvbnRlbnQ6IiI7a2UmJihrZS5kaXNhYmxlZD0hMCxrZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEXHU0RTJEXHUyMDI2Iik7ZnVuY3Rpb24gQWUoKXtrZSYmKGtlLmRpc2FibGVkPSExLGtlLnRleHRDb250ZW50PVllKX1mZXRjaChhZSx7bWV0aG9kOiJIRUFEIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihMZSl7aWYoIUxlLm9rKXt2KExlLnN0YXR1cz09PTQwND8iXHU0RTBCXHU4RjdEXHU2NzJBXHU1NDJGXHU3NTI4XHU2MjE2XHU2NTg3XHU0RUY2XHU1REYyXHU3OUZCXHU5NjY0IjoiXHU0RTBCXHU4RjdEXHU1OTMxXHU4RDI1IChIVFRQICIrTGUuc3RhdHVzKyIpIiwiZXJyb3IiKSxBZSgpO3JldHVybn12YXIgTj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Ti5ocmVmPWFlLE4uZG93bmxvYWQ9dXR8fCIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTiksTi5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoTiksdigiXHU1REYyXHU1RjAwXHU1OUNCXHU0RTBCXHU4RjdEXHVGRjBDXHU4QkY3XHU1NzI4XHU5MDFBXHU3N0U1XHU2ODBGL1x1NEUwQlx1OEY3RFx1N0JBMVx1NzQwNlx1NEUyRFx1NjdFNVx1NzcwQiIsImluZm8iKSxBZSgpfSkuY2F0Y2goZnVuY3Rpb24oTGUpe3YoIlx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoTGUmJkxlLm1lc3NhZ2U/TGUubWVzc2FnZTpMZSksImVycm9yIiksQWUoKX0pfWZ1bmN0aW9uIGcoYWUsdXQpe2Z1bmN0aW9uIGtlKGFyKXt2YXIgUG49U3RyaW5nKGFyfHwiIikucmVwbGFjZSgvXnYvLCIiKSxIbj1Qbi5pbmRleE9mKCItIiksSmk9SG4+PTA/UG4uc2xpY2UoMCxIbik6UG4sVnI9SG4+PTA/UG4uc2xpY2UoSG4rMSk6IiI7cmV0dXJue3BhcnRzOkppLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKFlpKXtyZXR1cm4gcGFyc2VJbnQoWWksMTApfHwwfSkscHJlOlZyLGlzRGVidWc6VnIuaW5kZXhPZigiZGVidWciKT09PTB9fWZvcih2YXIgWWU9a2UoYWUpLEFlPWtlKHV0KSxMZT0wO0xlPDM7TGUrKyl7dmFyIE49KFllLnBhcnRzW0xlXXx8MCktKEFlLnBhcnRzW0xlXXx8MCk7aWYoTiE9PTApcmV0dXJuIE4+MD8xOi0xfWlmKFllLmlzRGVidWchPT1BZS5pc0RlYnVnKXJldHVybiBZZS5pc0RlYnVnPzE6LTE7aWYoWWUuaXNEZWJ1ZyYmQWUuaXNEZWJ1Zylmb3IodmFyIGo9WWUucHJlLnNwbGl0KCIuIiksUT1BZS5wcmUuc3BsaXQoIi4iKSxlZT0wO2VlPE1hdGgubWF4KGoubGVuZ3RoLFEubGVuZ3RoKTtlZSsrKXtpZihqW2VlXT09PXZvaWQgMClyZXR1cm4tMTtpZihRW2VlXT09PXZvaWQgMClyZXR1cm4gMTt2YXIgbWU9cGFyc2VJbnQoaltlZV0sMTApLE5lPXBhcnNlSW50KFFbZWVdLDEwKTtpZighaXNOYU4obWUpJiYhaXNOYU4oTmUpKXtpZihtZSE9PU5lKXJldHVybiBtZT5OZT8xOi0xfWVsc2UgaWYoaltlZV0hPT1RW2VlXSlyZXR1cm4galtlZV0+UVtlZV0/MTotMX1yZXR1cm4gMH1mdW5jdGlvbiBtKGFlLHV0LGtlLFllLEFlLExlKXthZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxhZS5kaXNhYmxlZD0hMSx1dD4wP2FlLnRleHRDb250ZW50PSJcdTUzNDdcdTdFQTciOnV0PT09MD8oYWUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMCIsYWUuZGlzYWJsZWQ9ITApOkxlP2FlLnRleHRDb250ZW50PSJcdTkxQ0RcdTY1QjBcdTVCODlcdTg4QzUiOihhZS50ZXh0Q29udGVudD0iXHU3MjQ4XHU2NzJDXHU4RjgzXHU2NUU3IixhZS5kaXNhYmxlZD0hMCksYWUub25jbGljaz1hZS5kaXNhYmxlZD9udWxsOmZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUoa2UsWWUsQWUpfWNhdGNoKE4pe3YoIlx1OEMwM1x1NzUyOFx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoTiYmTi5tZXNzYWdlP04ubWVzc2FnZTpOKSwiZXJyb3IiKX19fXZhciB5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1zZWN0aW9uIiksdz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstY3VycmVudC1yb3ciKSxFPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1jdXJyZW50IiksQj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstZ2l0aHViLXJvdyIpLEQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWdpdGh1YiIpLEY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWdpdGh1Yi1hcGstYnRuIiksST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstbG9jYWwtcm93IiksTD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstbG9jYWwiKSxQPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1sb2NhbC1hcGstYnRuIiksVj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstbWVzc2FnZSIpLHg9ZS5hbmRyb2lkQXBrfHx7fSxrPSEhTG4sVD14LmVuYWJsZWQhPT0hMSxNPWt8fFQmJighIXguZ2l0aHVifHwhIXgubG9jYWwpO2lmKHkmJihNP3kuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6eS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSksayl7aWYodyYmRSYmKEUudGV4dENvbnRlbnQ9InYiK0xuLHcuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHguZ2l0aHViJiZCJiZEKXt2YXIgSj14LmdpdGh1Yi52ZXJzaW9uPyJ2Iit4LmdpdGh1Yi52ZXJzaW9uOnguZ2l0aHViLmZpbGVOYW1lO2lmKHR5cGVvZiB4LmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKEorPSIgXHhCNyAiK0ZuKHguZ2l0aHViLnNpemUpKSxELnRleHRDb250ZW50PUosQi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxGKXt2YXIgej14LmdpdGh1Yi52ZXJzaW9uP2coeC5naXRodWIudmVyc2lvbixMbik6MTttKEYseix4LmdpdGh1Yi5kb3dubG9hZFVybCx4LmdpdGh1Yi5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsImdpdGh1YiIsITEpfX1pZih4LmxvY2FsJiZJJiZMKXt2YXIgRz14LmxvY2FsLnZlcnNpb24/InYiK3gubG9jYWwudmVyc2lvbjp4LmxvY2FsLmZpbGVOYW1lO2lmKHR5cGVvZiB4LmxvY2FsLnNpemU9PSJudW1iZXIiJiYoRys9IiBceEI3ICIrRm4oeC5sb2NhbC5zaXplKSksTC50ZXh0Q29udGVudD1HLEkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksUCl7dmFyIHNlPXgubG9jYWwudmVyc2lvbj9nKHgubG9jYWwudmVyc2lvbixMbik6MTttKFAsc2UseC5sb2NhbC5kb3dubG9hZFVybCx4LmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIiwibG9jYWwiLCExKX19IXguZ2l0aHViJiYheC5sb2NhbCYmViYmKFYudGV4dENvbnRlbnQ9Ilx1NjY4Mlx1NjVFMFx1NTNFRlx1NzUyOFx1NjZGNFx1NjVCMCIsVi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7dmFyIHRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWF1dG8tdXBkYXRlLXJvdyIpLFo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXV0by11cGRhdGUtaGludCIpO3RlJiZ0ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxaJiZaLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfWVsc2V7aWYoeC5naXRodWImJkImJkQpe3ZhciBxPXguZ2l0aHViLnZlcnNpb24/InYiK3guZ2l0aHViLnZlcnNpb246eC5naXRodWIuZmlsZU5hbWU7dHlwZW9mIHguZ2l0aHViLnNpemU9PSJudW1iZXIiJiYocSs9IiBceEI3ICIrRm4oeC5naXRodWIuc2l6ZSkpLEQudGV4dENvbnRlbnQ9cSxCLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEYmJihGLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLEYuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRi5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93Lm9wZW4oeC5naXRodWIuZG93bmxvYWRVcmwsIl9ibGFuayIpLHYoIlx1NkI2M1x1NTcyOFx1NjI1M1x1NUYwMFx1NEUwQlx1OEY3RFx1OTg3NVx1MjAyNiIsImluZm8iKX0pfWlmKHgubG9jYWwmJkkmJkwpe3ZhciBPPXgubG9jYWwudmVyc2lvbj8idiIreC5sb2NhbC52ZXJzaW9uOngubG9jYWwuZmlsZU5hbWU7dHlwZW9mIHgubG9jYWwuc2l6ZT09Im51bWJlciImJihPKz0iIFx4QjcgIitGbih4LmxvY2FsLnNpemUpKSxMLnRleHRDb250ZW50PU8sSS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxQJiYoUC50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIixQLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFAub25jbGljaz1mdW5jdGlvbigpe2goeC5sb2NhbC5kb3dubG9hZFVybCx4LmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIixQKX0pfSF4LmdpdGh1YiYmIXgubG9jYWwmJlYmJihWLnRleHRDb250ZW50PVQ/Ilx1NTcyOFx1N0VCRlx1NzI0OFx1NjcyQ1x1NjY4Mlx1NjVGNlx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1NTNFRlx1N0EwRFx1NTQwRVx1OTFDRFx1OEJENSI6IkFuZHJvaWQgXHU0RTBCXHU4RjdEXHU2NzJBXHU1NzI4XHU2NzBEXHU1MkExXHU3QUVGXHU1NDJGXHU3NTI4IixWLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX12YXIgXz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLXNlY3Rpb24iKSxZPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctY3VycmVudC1yb3ciKSxLPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tYWNvcy1kbWctY3VycmVudCIpLHJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctZ2l0aHViLXJvdyIpLGRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tYWNvcy1kbWctZ2l0aHViIiksbmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWdpdGh1Yi1kbWctYnRuIiksaWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1sb2NhbC1yb3ciKSxPZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWxvY2FsIiksRmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWxvY2FsLWRtZy1idG4iKSxjZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLW1lc3NhZ2UiKSxSPWUubWFjb3NEbWd8fHt9LG10PSEhY24sUGU9Ui5lbmFibGVkIT09ITEsJD1tdHx8UGUmJighIVIuZ2l0aHVifHwhIVIubG9jYWwpO2lmKF8mJigkP18uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Xy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSksbXQpe2lmKFkmJksmJihLLnRleHRDb250ZW50PSJ2IitjbixZLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxSLmdpdGh1YiYmcmUmJmRlKXt2YXIgaGU9Ui5naXRodWIudmVyc2lvbj8idiIrUi5naXRodWIudmVyc2lvbjpSLmdpdGh1Yi5maWxlTmFtZTtpZih0eXBlb2YgUi5naXRodWIuc2l6ZT09Im51bWJlciImJihoZSs9IiBceEI3ICIrRm4oUi5naXRodWIuc2l6ZSkpLGRlLnRleHRDb250ZW50PWhlLHJlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG5lKXt2YXIgeWU9Ui5naXRodWIudmVyc2lvbj9nKFIuZ2l0aHViLnZlcnNpb24sY24pOjE7bShuZSx5ZSxSLmdpdGh1Yi5kb3dubG9hZFVybCxSLmdpdGh1Yi5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsImdpdGh1YiIsITApfX1pZihSLmxvY2FsJiZpZSYmT2Upe3ZhciB3ZT1SLmxvY2FsLnZlcnNpb24/InYiK1IubG9jYWwudmVyc2lvbjpSLmxvY2FsLmZpbGVOYW1lO2lmKHR5cGVvZiBSLmxvY2FsLnNpemU9PSJudW1iZXIiJiYod2UrPSIgXHhCNyAiK0ZuKFIubG9jYWwuc2l6ZSkpLE9lLnRleHRDb250ZW50PXdlLGllLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEZlKXt2YXIgcGU9Ui5sb2NhbC52ZXJzaW9uP2coUi5sb2NhbC52ZXJzaW9uLGNuKToxO20oRmUscGUsUi5sb2NhbC5kb3dubG9hZFVybCxSLmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIiwibG9jYWwiLCEwKX19IVIuZ2l0aHViJiYhUi5sb2NhbCYmY2UmJihjZS50ZXh0Q29udGVudD0iXHU2NjgyXHU2NUUwXHU1M0VGXHU3NTI4XHU2NkY0XHU2NUIwIixjZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7dmFyIGJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1hdXRvLXVwZGF0ZS1yb3ciKSxBdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtYXV0by11cGRhdGUtaGludCIpO2JlJiZiZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxBdCYmQXQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZWxzZXtpZihSLmdpdGh1YiYmcmUmJmRlKXt2YXIgZXQ9Ui5naXRodWIudmVyc2lvbj8idiIrUi5naXRodWIudmVyc2lvbjpSLmdpdGh1Yi5maWxlTmFtZTt0eXBlb2YgUi5naXRodWIuc2l6ZT09Im51bWJlciImJihldCs9IiBceEI3ICIrRm4oUi5naXRodWIuc2l6ZSkpLGRlLnRleHRDb250ZW50PWV0LHJlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG5lJiYobmUudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsbmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbmUub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5vcGVuKFIuZ2l0aHViLmRvd25sb2FkVXJsLCJfYmxhbmsiKSx2KCJcdTZCNjNcdTU3MjhcdTYyNTNcdTVGMDBcdTRFMEJcdThGN0RcdTk4NzVcdTIwMjYiLCJpbmZvIil9KX1pZihSLmxvY2FsJiZpZSYmT2Upe3ZhciBpdD1SLmxvY2FsLnZlcnNpb24/InYiK1IubG9jYWwudmVyc2lvbjpSLmxvY2FsLmZpbGVOYW1lO3R5cGVvZiBSLmxvY2FsLnNpemU9PSJudW1iZXIiJiYoaXQrPSIgXHhCNyAiK0ZuKFIubG9jYWwuc2l6ZSkpLE9lLnRleHRDb250ZW50PWl0LGllLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEZlJiYoRmUudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsRmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRmUub25jbGljaz1mdW5jdGlvbigpe2goUi5sb2NhbC5kb3dubG9hZFVybCxSLmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIixGZSl9KX0hUi5naXRodWImJiFSLmxvY2FsJiZjZSYmKGNlLnRleHRDb250ZW50PVBlPyJcdTU3MjhcdTdFQkZcdTcyNDhcdTY3MkNcdTY2ODJcdTY1RjZcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiOiJtYWNPUyBcdTRFMEJcdThGN0RcdTY3MkFcdTU3MjhcdTY3MERcdTUyQTFcdTdBRUZcdTU0MkZcdTc1MjgiLGNlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX12YXIgSGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1jb2RlIiksVXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xciIpLEtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiKSxWZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLXdyYXAiKTtpZihIZSl7SGUudGV4dENvbnRlbnQ9Ilx1NTJBMFx1OEY3RFx1NEUyRC4uLiIsS2UmJihLZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU0RTJEXHUyMDI2IiksVXQmJihVdC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKTt2YXIgQ2U9Ii9hcGkvYXBwLWNvbm5lY3QtY29kZSI7d2luZG93LmxvY2F0aW9uJiZ3aW5kb3cubG9jYXRpb24ub3JpZ2luJiYoQ2UrPSI/b3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKSxmZXRjaChDZSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYWUpe3JldHVybiBhZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGFlKXthZS5jb2RlPyhIZS50ZXh0Q29udGVudD1hZS5jb2RlLHIuYW5kcm9pZENvbm5lY3RDb2RlPWFlLmNvZGUsJG0oYWUuY29kZSkpOihIZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixLZSYmKEtlLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjUiKSl9KS5jYXRjaChmdW5jdGlvbigpe0hlLnRleHRDb250ZW50PSJcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjUiLEtlJiYoS2UudGV4dENvbnRlbnQ9Ilx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNSIpfSl9VmUmJiFWZS5kYXRhc2V0LmJvdW5kJiYoVmUuZGF0YXNldC5ib3VuZD0iMSIsVmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5hbmRyb2lkQ29ubmVjdENvZGUmJlhtKHIuYW5kcm9pZENvbm5lY3RDb2RlKX0pKTt2YXIgb2U9ZS5jb25maWd8fHt9LHZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpLEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1wb3J0IiksdHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpLGR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbW9kZSIpLHh0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIiksZ3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpO3ZlJiYodmUudmFsdWU9b2UuaG9zdHx8IiIpLEMmJihDLnZhbHVlPW9lLnBvcnR8fCIiKSx0dCYmKHR0LmNoZWNrZWQ9b2UuaHR0cHM9PT0hMCksZHQmJihkdC52YWx1ZT1vZS5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiKSx4dCYmKHh0LnZhbHVlPW9lLmRlZmF1bHRDd2R8fCIiKSxndCYmKGd0LnZhbHVlPW9lLnNoZWxsfHwiIik7dmFyIFN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKTtTdCYmKFN0LnZhbHVlPW9lLmxhbmd1YWdlfHwiIik7dmFyIEt0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKTtLdCYmKEt0LnZhbHVlPW9lLnN0cnVjdHVyZWRSdW5uZXJ8fCJjbGkiKTt2YXIgSnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpO0p0JiYoSnQuY2hlY2tlZD1vZS5pbmhlcml0RW52IT09ITEpO3ZhciBUZT1vZS5kZWZhdWx0TW9kZWxzJiZ0eXBlb2Ygb2UuZGVmYXVsdE1vZGVscz09Im9iamVjdCI/b2UuZGVmYXVsdE1vZGVsczp7Y2xhdWRlOm9lLmRlZmF1bHRNb2RlbHx8IiIsY29kZXg6b2UuZGVmYXVsdENvZGV4TW9kZWx8fCIifTtyLmNvbmZpZ0RlZmF1bHRNb2RlbHM9e2NsYXVkZTpUZS5jbGF1ZGV8fCIiLGNvZGV4OlRlLmNvZGV4fHwiIn0sci5jb25maWdEZWZhdWx0TW9kZWw9ci5jb25maWdEZWZhdWx0TW9kZWxzLmNsYXVkZTt2YXIgSmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsIiksX2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIik7SmUmJkplLmRhdGFzZXQubW9kZWxEaXJ0eSE9PSJ0cnVlIiYmKEplLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0iZmFsc2UiKSxfZSYmX2UuZGF0YXNldC5tb2RlbERpcnR5IT09InRydWUiJiYoX2UuZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJmYWxzZSIpLFJpKCkseGwoKS50aGVuKGZ1bmN0aW9uKCl7UmkoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk7dmFyIEl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LXN0YXR1cyIpO0l0JiYoSXQudGV4dENvbnRlbnQ9ZS5oYXNDZXJ0PyJcdTVERjJcdTVCODlcdTg4QzUgU1NMIFx1OEJDMVx1NEU2NiI6Ilx1NjcyQVx1NUI4OVx1ODhDNVx1OEJDMVx1NEU2Nlx1RkYwOFx1NEY3Rlx1NzUyOFx1ODFFQVx1N0I3RVx1NTQwRFx1NjIxNiBIVFRQXHVGRjA5IixJdC5zdHlsZS5jb2xvcj1lLmhhc0NlcnQ/InZhcigtLXN1Y2Nlc3MpIjoidmFyKC0tdGV4dC1zZWNvbmRhcnkpIik7dmFyIG5uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVzZXRzLWxpc3QiKTtpZihubiYmb2UuY29tbWFuZFByZXNldHMpe2Zvcih2YXIgVHQ9IiIscm49MDtybjxvZS5jb21tYW5kUHJlc2V0cy5sZW5ndGg7cm4rKyl7dmFyIGN0PW9lLmNvbW1hbmRQcmVzZXRzW3JuXTtUdCs9JzxkaXYgY2xhc3M9InByZXNldC1pdGVtIj48c3BhbiBjbGFzcz0icHJlc2V0LWxhYmVsIj4nK3AoY3QubGFiZWwpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InByZXNldC1kZXRhaWwiPicrcChjdC5jb21tYW5kKSsoY3QubW9kZT8iICgiK3AoY3QubW9kZSkrIikiOiIiKSsiPC9zcGFuPjwvZGl2PiJ9VHR8fChUdD0nPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtY29tcGFjdCI+PHNwYW4gY2xhc3M9ImVtcHR5LWljb24iPlx1MjY5OTwvc3Bhbj48c3Bhbj5cdTZDQTFcdTY3MDlcdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L3NwYW4+PHNwYW4gY2xhc3M9ImhpbnQiPlx1NTcyOCBjb25maWcuanNvbiBcdTc2ODQgY29tbWFuZFByZXNldHMgXHU0RTJEXHU5MTREXHU3RjZFPC9zcGFuPjwvZGl2PicpLG5uLmlubmVySFRNTD1UdH12YXIgWXQ9b2UuY2FyZERlZmF1bHRzfHx7fSxsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtZWRpdCIpLGF0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1pbmxpbmUiKSxodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGVybWluYWwiKSx5dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGhpbmtpbmciKSxhbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdG9vbGdyb3VwIik7bGUmJihsZS5jaGVja2VkPVl0LmVkaXRDYXJkcz09PSEwKSxhdCYmKGF0LmNoZWNrZWQ9WXQuaW5saW5lVG9vbHM9PT0hMCksaHQmJihodC5jaGVja2VkPVl0LnRlcm1pbmFsPT09ITApLHl0JiYoeXQuY2hlY2tlZD1ZdC50aGlua2luZz09PSEwKSxhbiYmKGFuLmNoZWNrZWQ9WXQudG9vbEdyb3VwPT09ITApfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBlZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maWctbWVzc2FnZSIpO2UmJihlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUudGV4dENvbnRlbnQ9IiIpO3ZhciB0PSgoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsIil8fHt9KS52YWx1ZXx8IiIpLnRyaW0oKSxuPSgoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIil8fHt9KS52YWx1ZXx8IiIpLnRyaW0oKSxpPXtob3N0Oihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhvc3QiKXx8e30pLnZhbHVlLHBvcnQ6TnVtYmVyKChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXBvcnQiKXx8e30pLnZhbHVlKSxodHRwczooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpfHx7fSkuY2hlY2tlZCxkZWZhdWx0TW9kZTooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1tb2RlIil8fHt9KS52YWx1ZSxkZWZhdWx0Q3dkOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWN3ZCIpfHx7fSkudmFsdWUsc2hlbGw6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc2hlbGwiKXx8e30pLnZhbHVlLGxhbmd1YWdlOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWxhbmd1YWdlIil8fHt9KS52YWx1ZXx8IiIsZGVmYXVsdE1vZGVsOnQsZGVmYXVsdENvZGV4TW9kZWw6bixkZWZhdWx0TW9kZWxzOntjbGF1ZGU6dCxjb2RleDpufSxzdHJ1Y3R1cmVkUnVubmVyOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXN0cnVjdHVyZWQtcnVubmVyIil8fHt9KS52YWx1ZXx8ImNsaSIsaW5oZXJpdEVudjooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpfHx7fSkuY2hlY2tlZCE9PSExfSxhPWN1KCksdT1pLmRlZmF1bHRNb2RlbHx8IiIsbz1pLmRlZmF1bHRDb2RleE1vZGVsfHwiIjtmZXRjaCgiL2FwaS9zZXR0aW5ncy9jb25maWciLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGkpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHMpe2lmKGUmJihzLmVycm9yPyhlLnRleHRDb250ZW50PXMuZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIik6KGUudGV4dENvbnRlbnQ9cy5yZXN0YXJ0UmVxdWlyZWQ/Ilx1OTE0RFx1N0Y2RVx1NURGMlx1NEZERFx1NUI1OFx1RkYwQ1x1OTBFOFx1NTIwNlx1OTBFOFx1N0Y3Mlx1NUI1N1x1NkJCNVx1RkYwOGhvc3QvcG9ydC9odHRwcy9zaGVsbFx1RkYwOVx1OTcwMFx1ODk4MVx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1NjI0RFx1NzUxRlx1NjU0OFx1MzAwMiI6Ilx1OTE0RFx1N0Y2RVx1NURGMlx1NEZERFx1NUI1OFx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhc3x8IXMuZXJyb3Ipe3IuY29uZmlnJiYoci5jb25maWcuZGVmYXVsdE1vZGVsPXUsci5jb25maWcuZGVmYXVsdENvZGV4TW9kZWw9byxyLmNvbmZpZy5kZWZhdWx0TW9kZWxzPXtjbGF1ZGU6dSxjb2RleDpvfSksci5jb25maWdEZWZhdWx0TW9kZWxzPXtjbGF1ZGU6dSxjb2RleDpvfSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD11O3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIik7bCYmKGwuZGF0YXNldC5tb2RlbERpcnR5PSJmYWxzZSIpLGQmJihkLmRhdGFzZXQubW9kZWxEaXJ0eT0iZmFsc2UiKSx1IT09YS5jbGF1ZGUmJmZ1KCJjbGF1ZGUiLCIiKSxvIT09YS5jb2RleCYmZnUoImNvZGV4IiwiIiksKHUhPT1hLmNsYXVkZXx8byE9PWEuY29kZXgpJiZabihzdCgpKX19KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX1mdW5jdGlvbiB0Zygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXNwbGF5LW1lc3NhZ2UiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLnRleHRDb250ZW50PSIiKTt2YXIgdD17Y2FyZERlZmF1bHRzOntlZGl0Q2FyZHM6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWVkaXQiKXx8e30pLmNoZWNrZWQsaW5saW5lVG9vbHM6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWlubGluZSIpfHx7fSkuY2hlY2tlZCx0ZXJtaW5hbDohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGVybWluYWwiKXx8e30pLmNoZWNrZWQsdGhpbmtpbmc6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRoaW5raW5nIil8fHt9KS5jaGVja2VkLHRvb2xHcm91cDohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdG9vbGdyb3VwIil8fHt9KS5jaGVja2VkfX07ZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtlJiYobi5lcnJvcj8oZS50ZXh0Q29udGVudD1uLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIpOihlLnRleHRDb250ZW50PSJcdTY2M0VcdTc5M0FcdThCQkVcdTdGNkVcdTVERjJcdTRGRERcdTVCNTgiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksIW4uZXJyb3ImJnIuY29uZmlnJiYoci5jb25maWcuY2FyZERlZmF1bHRzPXQuY2FyZERlZmF1bHRzKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pfWZ1bmN0aW9uIG5nKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQta2V5LWZpbGUiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LWNlcnQtZmlsZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtbWVzc2FnZSIpO2lmKG4mJihuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4udGV4dENvbnRlbnQ9IiIpLCFlfHwhZS5maWxlc3x8IWUuZmlsZXNbMF18fCF0fHwhdC5maWxlc3x8IXQuZmlsZXNbMF0pe24mJihuLnRleHRDb250ZW50PSJcdThCRjdcdTkwMDlcdTYyRTlcdTc5QzFcdTk0QTVcdTU0OENcdThCQzFcdTRFNjZcdTY1ODdcdTRFRjZcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7cmV0dXJufXZhciBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGE9aS5yZXN1bHQsdT1uZXcgRmlsZVJlYWRlcjt1Lm9ubG9hZD1mdW5jdGlvbigpe3ZhciBvPXUucmVzdWx0O2ZldGNoKCIvYXBpL3NldHRpbmdzL3VwbG9hZC1jZXJ0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7a2V5OmEsY2VydDpvfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYobil7aWYocy5lcnJvciluLnRleHRDb250ZW50PXMuZXJyb3Isbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIjtlbHNle24udGV4dENvbnRlbnQ9Ilx1OEJDMVx1NEU2Nlx1NURGMlx1NEUwQVx1NEYyMFx1RkYwQ1x1OTFDRFx1NTQyRlx1NTQwRVx1NzUxRlx1NjU0OFx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LXN0YXR1cyIpO2wmJihsLnRleHRDb250ZW50PSJcdTVERjJcdTVCODlcdTg4QzUgU1NMIFx1OEJDMVx1NEU2NiIsbC5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKX1uLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNVx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pfSx1LnJlYWRBc1RleHQodC5maWxlc1swXSl9LGkucmVhZEFzVGV4dChlLmZpbGVzWzBdKX1mdW5jdGlvbiBSbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpO2UmJihlLnRleHRDb250ZW50PSJcdTY4QzBcdTY3RTVcdTRFMkQuLi4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZmV0Y2goIi9hcGkvY2hlY2stdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpLmVycm9yKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU1OTMxXHU4RDI1Iik7cmV0dXJufXZhciBhPWkuY2hhbm5lbD09PSJiZXRhIjtpZihlJiYoZS50ZXh0Q29udGVudD1pLmxhdGVzdHx8KGE/ImJldGEgXHU2NzJBXHU1M0QxXHU1RTAzIjoiLSIpKSwhaS5sYXRlc3Qpe24mJihuLnRleHRDb250ZW50PWE/Ilx1NjVFMFx1NkNENVx1OEJGQlx1NTNENiBucG0gYmV0YSBcdTcyNDhcdTY3MkNcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzAgbnBtIHJlZ2lzdHJ5XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3JldHVybn1pLnVwZGF0ZUF2YWlsYWJsZSYmdCYmKHQudGV4dENvbnRlbnQ9YT8iXHU2NkY0XHU2NUIwXHU1MjMwIEJldGEiOiJcdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDgiLHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCFpLnVwZGF0ZUF2YWlsYWJsZSYmbiYmKG4udGV4dENvbnRlbnQ9YT8iXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwIEJldGEgXHU3MjQ4XHU2NzJDXHUzMDAyIjoiXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwXHU3MjQ4XHU2NzJDXHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTY4QzBcdTY3RTVcdTU5MzFcdThEMjUiKX0pfWZ1bmN0aW9uIHJnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1tZXNzYWdlIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO3QmJih0LmRpc2FibGVkPSEwLGUmJihlLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjBcdUZGMENcdThCRjdcdTdBMERcdTUwMTkuLi4iLGUuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksZmV0Y2goIi9hcGkvdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobi5lcnJvcil7ZSYmKGUudGV4dENvbnRlbnQ9bi5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHQuZGlzYWJsZWQ9ITE7cmV0dXJufWlmKGUmJihlLnRleHRDb250ZW50PShuLm1lc3NhZ2V8fCJcdTY2RjRcdTY1QjBcdTVCOENcdTYyMTAiKSsiXHVGRjBDXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUyMDI2IixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuLmRldGFjaGVkVXBkYXRlKWZuKCk7ZWxzZSBpZihuLnJlc3RhcnRSZXF1aXJlZCE9PSExKWNzKG51bGwsZSk7ZWxzZXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tcmVzdGFydC1idXR0b24iKTtpJiZpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjZGNFx1NjVCMFx1NTkzMVx1OEQyNVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSx0LmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIGlnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKTtjcyhlLHQpfWZ1bmN0aW9uIGFnKCl7ZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUuYXBrKXJldHVybiBmZXRjaCgiL2FwaS9hbmRyb2lkLWFway11cGRhdGU/Y3VycmVudFZlcnNpb249IitlbmNvZGVVUklDb21wb25lbnQoTG4pLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCEoIXQudXBkYXRlQXZhaWxhYmxlfHwhdC5kb3dubG9hZFVybCkpdHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUodC5kb3dubG9hZFVybCx0LmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIix0LnNvdXJjZXx8ImxvY2FsIil9Y2F0Y2h7fX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiB1Zygpe2NuJiZmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZS5kbWcpcmV0dXJuIGZldGNoKCIvYXBpL21hY29zLWRtZy11cGRhdGU/Y3VycmVudFZlcnNpb249IitlbmNvZGVVUklDb21wb25lbnQoY24pLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCEoIXQudXBkYXRlQXZhaWxhYmxlfHwhdC5kb3dubG9hZFVybCkpdHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUodC5kb3dubG9hZFVybCx0LmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIix0LnNvdXJjZXx8ImxvY2FsIil9Y2F0Y2h7fX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiB3dShlLHQpe3ZhciBuPXt9O25bZV09dCxmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobil9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKSx1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2EmJihhLmNoZWNrZWQ9ISFpLndlYiksdSYmKHUuY2hlY2tlZD0hIWkuYXBrKSxvJiYoby5jaGVja2VkPSEhaS5kbWcpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtIitlKyItdG9nZ2xlIik7aSYmKGkuY2hlY2tlZD0hdCl9KX1mdW5jdGlvbiBvZyhlKXtmZXRjaCgiL2FwaS91cGRhdGUtY2hhbm5lbCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NoYW5uZWw6ZX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7biYmKG4uY2hlY2tlZD10LmNoYW5uZWw9PT0iYmV0YSIpLFJsKCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7dCYmKHQuY2hlY2tlZD1lIT09ImJldGEiKX0pfWZ1bmN0aW9uIFdsKGUpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIik9PT1lO3Rbbl0uY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLGkpLHRbbl0uc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLGk/InRydWUiOiJmYWxzZSIpfX1mdW5jdGlvbiB3bigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcGVybWlzc2lvbi1zdGF0dXMiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVzZXQtYnRuIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO2lmKGUpe3ZhciBhPW1pKCk7aWYoYT09PW51bGwpe2lmKHR5cGVvZiBOb3RpZmljYXRpb24+InUiKXtlLnRleHRDb250ZW50PSJcdTRFMERcdTY1MkZcdTYzMDEiLGUuc3R5bGUuY29sb3I9InZhcigtLWZnLW11dGVkKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3JldHVybn1hPU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9ufWE9PT0iZ3JhbnRlZCI/KGUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjM4OFx1Njc0MyBcdTI3MTMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpOmE9PT0iZGVuaWVkIj8oZS50ZXh0Q29udGVudD0iXHU1REYyXHU2MkQyXHU3RUREIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1kYW5nZXIpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihlLnRleHRDb250ZW50PSJcdTY3MkFcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXdhcm5pbmcpIix0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfX1mdW5jdGlvbiBzZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIik7aWYoUmUpe3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKHQpe3duKCksZSYmKHQ9PT0iZ3JhbnRlZCI/KGUudGV4dENvbnRlbnQ9Ilx1MjcxMyBcdTVERjJcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIik6KGUudGV4dENvbnRlbnQ9Ilx1MjcxNyBcdTY3MkFcdTYzODhcdTY3NDNcdUZGMENcdThCRjdcdTU3MjhcdTdDRkJcdTdFREZcdThCQkVcdTdGNkVcdTRFMkRcdTVGMDBcdTU0MkYgV2FuZCBcdTc2ODRcdTkwMUFcdTc3RTVcdTY3NDNcdTk2NTAiLGUuc3R5bGUuY29sb3I9InZhcigtLWRhbmdlcikiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10eXBlb2YgTm90aWZpY2F0aW9uPiJ1Inx8Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbih0KXtpZih3bigpLHQ9PT0iZ3JhbnRlZCIpZSYmKGUudGV4dENvbnRlbnQ9Ilx1MjcxMyBcdTVERjJcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtlbHNlIGlmKHQ9PT0iZGVuaWVkIiYmZSl7dmFyIG49bG9jYXRpb24ub3JpZ2luO2UuaW5uZXJIVE1MPSdcdTZENEZcdTg5QzhcdTU2NjhcdTVERjJcdTYyRTZcdTYyMkFcdTYzODhcdTY3NDNcdTVGMzlcdTdBOTdcdUZGMENcdThCRjdcdTYyNEJcdTUyQThcdTkxQ0RcdTdGNkVcdUZGMUE8YnI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7bWFyZ2luOjRweCAwIj5cdTI0NjAgXHU3MEI5XHU1MUZCXHU1NzMwXHU1NzQwXHU2ODBGXHU1REU2XHU0RkE3XHU3Njg0IDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2ZvbnQtc2l6ZToxMXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSI+aTwvc3Bhbj4gXHU2MjE2XHU5NTAxXHU1NkZFXHU2ODA3PC9zcGFuPjxicj5cdTI0NjEgXHU2MjdFXHU1MjMwXHUzMDBDXHU5MDFBXHU3N0U1XHUzMDBEXHUyMTkyIFx1NjUzOVx1NEUzQVx1MzAwQ1x1NTE0MVx1OEJCOFx1MzAwRDxicj5cdTI0NjIgXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHU1MzczXHU1M0VGJyxlLnN0eWxlLmNvbG9yPSJ2YXIoLS1mZy1tdXRlZCkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fSl9ZnVuY3Rpb24gemwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITEsZS50ZXh0Q29udGVudD0iMTAgXHU3OUQyXHU1NDBFXHU1M0QxXHU5MDAxIil9ZnVuY3Rpb24gbGcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO3IuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7dCYmKHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU1REYyXHU1Qjg5XHU2MzkyXHVGRjA4MTBzXHVGRjA5IiksZSYmKGUuaW5uZXJIVE1MPSJcdTVERjJcdTVCODlcdTYzOTIgMTAgXHU3OUQyXHU1NDBFXHU1M0QxXHU5MDAxXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1XHVGRjBDXHU4QkY3XHU1MjA3XHU1MjMwXHU1NDBFXHU1M0YwXHU3QjQ5XHU1Rjg1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsLHpsKCksVmwoKX0sMWU0KX1mdW5jdGlvbiBWbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIiksdD1bXTtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciYmKGNsZWFyVGltZW91dChyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCx6bCgpKTt2YXIgbj1LZigpO3QucHVzaChuPyJcdTI3MTMgXHU2M0QwXHU3OTNBXHU5N0YzIjoiXHUyNzE3IFx1NjNEMFx1NzkzQVx1OTdGM1x1RkYwOFx1NjVFMFx1NkNENVx1NjRBRFx1NjUzRVx1RkYwOSIpO3ZhciBpPXIubm90aWZCdWJibGU7aWYoeGEoe3RpdGxlOiJcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLGJvZHk6Ilx1OEZEOVx1NjYyRlx1NEUwMFx1Njc2MVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNVx1MzAwMiIsdHlwZToiaW5mbyIsaWNvbjoiXHUyNjZBIixkdXJhdGlvbjo1ZTMscGxheVNvdW5kOiExfSksdC5wdXNoKGk/Ilx1MjcxMyBcdTVFOTRcdTc1MjhcdTUxODVcdTZDMTRcdTZDRTEiOiJcdTIwMTMgXHU1RTk0XHU3NTI4XHU1MTg1XHU2QzE0XHU2Q0UxXHVGRjA4XHU1REYyXHU1MTczXHU5NUVEXHVGRjA5IiksUmUpe3ZhciBhPW1pKCk7aWYoYT09PSJncmFudGVkIil0cnl7V2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsIlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsIndhbmQtdGVzdCIpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwOSIpfWVsc2UgaWYoYT09PSJkZW5pZWQiKXQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjJEMlx1N0VERFx1RkYwQ1x1OEJGN1x1NTcyOFx1N0NGQlx1N0VERlx1OEJCRVx1N0Y2RVx1NEUyRFx1NUYwMFx1NTQyRlx1RkYwOSIpO2Vsc2V7d2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHQ9ZnVuY3Rpb24ocyl7aWYod24oKSxzPT09ImdyYW50ZWQiKXRyeXtXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1IiwiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIiwid2FuZC10ZXN0IiksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2Mzg4XHU2NzQzXHVGRjA5Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjA5Iil9ZWxzZSB0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTY3MkFcdTYzODhcdTY3NDNcdUZGMDkiKTtucihlLHQpLGRlbGV0ZSB3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdH07dHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJufW5yKGUsdCk7cmV0dXJufWlmKHR5cGVvZiBOb3RpZmljYXRpb24+InUiKXt0LnB1c2goIlx1MjAxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTRFMERcdTY1MkZcdTYzMDFcdUZGMDkiKSxucihlLHQpO3JldHVybn12YXIgdT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbjtpZih1PT09ImdyYW50ZWQiKXt0cnl7dmFyIG89bmV3IE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLHtib2R5OiJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLGljb246Ii9mYXZpY29uLmljbyIsdGFnOiJ3YW5kLXRlc3QifSk7c2V0VGltZW91dChmdW5jdGlvbigpe28uY2xvc2UoKX0sNWUzKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTUiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTgwRkRcdTk3MDBcdTg5ODEgSFRUUFNcdUZGMDkiKX1ucihlLHQpfWVsc2UgdT09PSJkZW5pZWQiPyh0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYyRDJcdTdFRERcdUZGMDkiKSxucihlLHQpKTpOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKGZ1bmN0aW9uKHMpe3duKCkscz09PSJncmFudGVkIj90LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYzODhcdTY3NDNcdUZGMDkiKTp0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTY3MkFcdTYzODhcdTY3NDNcdUZGMDkiKSxucihlLHQpfSl9ZnVuY3Rpb24gbnIoZSx0KXtpZihlKXtlLmlubmVySFRNTD10Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gcChpKX0pLmpvaW4oIjxicj4iKTt2YXIgbj10LmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpLmluZGV4T2YoIlx1MjcxMyIpPT09MHx8aS5pbmRleE9mKCJcdTIwMTMiKT09PTB9KTtlLnN0eWxlLmNvbG9yPW4/InZhcigtLXN1Y2Nlc3MpIjoidmFyKC0td2FybmluZykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fWZ1bmN0aW9uIGx0KGUpe2lmKCFlfHx0eXBlb2YgZSE9Im9iamVjdCJ8fCFyLnRlcm1pbmFsKXJldHVybiBlO3RyeXt0eXBlb2Ygci50ZXJtaW5hbC5yZW1lYXN1cmU9PSJmdW5jdGlvbiImJnIudGVybWluYWwucmVtZWFzdXJlKCl9Y2F0Y2h7fXZhciB0PXIudGVybWluYWwuY29scyxuPXIudGVybWluYWwucm93cztyZXR1cm4gdHlwZW9mIHQ9PSJudW1iZXIiJiZ0eXBlb2Ygbj09Im51bWJlciImJk51bWJlci5pc0Zpbml0ZSh0KSYmTnVtYmVyLmlzRmluaXRlKG4pJiZ0PjAmJm4+MCYmKGUuY29scz10LGUucm93cz1uKSxlfWZ1bmN0aW9uIFVsKCl7cmV0dXJuIHIudGVybWluYWwmJnIudGVybWluYWwuY29scz9Qcm9taXNlLnJlc29sdmUoKTpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgdD0hMSxuPWZ1bmN0aW9uKCl7dHx8KHQ9ITAsZSgpKX0saT1zZXRUaW1lb3V0KG4sMmUzKTt0cnl7Sm4oKX1jYXRjaHt9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5jb2xzJiYoY2xlYXJUaW1lb3V0KGkpLG4oKSl9KX0pfSl9ZnVuY3Rpb24gS2woKXt2YXIgZT1YZSgpLHQ9JGUoKSxuPWt0KGUsci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlP3IuY29uZmlnLmRlZmF1bHRNb2RlOiJkZWZhdWx0Iik7ci5wcmVmZXJyZWRDb21tYW5kPWUsci5jaGF0TW9kZT1rdChlLHIuY2hhdE1vZGUpLFVsKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6ZSxwcm92aWRlcjplLGN3ZDp0LG1vZGU6bn0pKX0pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe0EoaS5lcnJvciwiZXJyb3IiKTtyZXR1cm59cmV0dXJuIHIuc2VsZWN0ZWRJZD1pLmlkLEVlKCksci5kcmFmdHNbaS5pZF09IiIsQ3QoKSxOdCgpfSkudGhlbihmdW5jdGlvbigpe190KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKCl7QSgiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfXZhciBXcj0hMTtmdW5jdGlvbiBkZygpe2lmKCFXcil7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsLWVycm9yIiksbj1YZSgpLGk9ci5zZXNzaW9uQ3JlYXRlS2luZHx8InN0cnVjdHVyZWQiLGE9ci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9PT0hMDt2aSh0KTt2YXIgdT0kZSgpLG89KGU/ZS52YWx1ZS50cmltKCk6IiIpfHx1LHM9a3QobixyLm1vZGVWYWx1ZSk7aWYoaT09PSJzdHJ1Y3R1cmVkIil7Y2cobyxzLGEsdCk7cmV0dXJufWZnKG4sbyxzLGEsdCl9fWZ1bmN0aW9uIGNnKGUsdCxuLGkpe3ZhciBhPXIuc2Vzc2lvblRvb2w9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSI7cmV0dXJuIFdyPSEwLHIubW9kZVZhbHVlPXQsci5jaGF0TW9kZT10LHIuc2Vzc2lvblRvb2w9YSxyLnByZWZlcnJlZENvbW1hbmQ9YSxNaSgpLFpuKHN0KCkpLE9sKHZvaWQgMCxlLHQsbikudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gWHQoZSksRW4oKSxXdCgpLHV9KS50aGVuKGZ1bmN0aW9uKCl7X3QoITApfSkuY2F0Y2goZnVuY3Rpb24odSl7cWUoaSx1JiZ1Lm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTdFRDNcdTY3ODRcdTUzMTZcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgQ2xhdWRlIFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1MzAwMiIpfSkuZmluYWxseShmdW5jdGlvbigpe1dyPSExfSl9ZnVuY3Rpb24gZmcoZSx0LG4saSxhKXtXcj0hMCxyLm1vZGVWYWx1ZT1uLHIuY2hhdE1vZGU9bixyLnNlc3Npb25Ub29sPWUsci5wcmVmZXJyZWRDb21tYW5kPWUsTWkoKSxVbCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGx0KHtjb21tYW5kOmUscHJvdmlkZXI6ZSxjd2Q6dCxtb2RlOm4sd29ya3RyZWVFbmFibGVkOml9KSl9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbih1KXtpZih1LmVycm9yKXtxZShhLHUuZXJyb3IpO3JldHVybn1yZXR1cm4gci5zZWxlY3RlZElkPXUuaWQsRWUoKSxYdCh0KSxyLmRyYWZ0c1t1LmlkXT0iIixDdCgpLEVuKCksV3QoKSxOdCgpfSkudGhlbihmdW5jdGlvbigpe3Iuc2VsZWN0ZWRJZD9SdChyLnNlbGVjdGVkSWQpOl90KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cWUoYSxlPT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1Nzg2RVx1OEJBNCBjb2RleCBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTVFNzZcdTUzRUZcdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdTYyNjdcdTg4NENcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1Nzg2RVx1OEJBNCBDbGF1ZGUgXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHUzMDAyIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7V3I9ITF9KX1mdW5jdGlvbiBwZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZCIpO2UmJihlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixKbCksZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXsodC5rZXk9PT0iRW50ZXIifHx0LmtleT09PSIgIikmJih0LnByZXZlbnREZWZhdWx0KCksSmwoKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIik7aWYoISghbnx8bi5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKSYmIXQudGFyZ2V0LmNsb3Nlc3QoIi5ibGFuay1jaGF0LWN3ZC13cmFwIikpe24uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWFycm93Iik7aSYmKGkudGV4dENvbnRlbnQ9Ilx1MjVCQyIpfX0pKX1mdW5jdGlvbiBKbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1kcm9wZG93biIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWFycm93Iik7aWYoZSl7dmFyIG49ZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpO24/KHZnKGUpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1MjVCMiIpKTooZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiYodC50ZXh0Q29udGVudD0iXHUyNUJDIikpfX1mdW5jdGlvbiB2ZyhlKXt2YXIgdD1zbigpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkQuLi48L2Rpdj4nLGJhKGZ1bmN0aW9uKG4pe3ZhciBpPSIiLGE9ci53b3JraW5nRGlyfHx0O2lmKGkrPSc8ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pdGVtJysoYT09PXQ/IiBhY3RpdmUiOiIiKSsnIiBkYXRhLXBhdGg9IicrcCh0KSsnIj48c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbS1sYWJlbCI+XHU5RUQ4XHU4QkE0PC9zcGFuPicrdnQodCwiYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoIikrIjwvZGl2PiIsbi5sZW5ndGgpe3ZhciB1PXt9O3VbdF09ITAsbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe3Vbby5wYXRoXXx8KHVbby5wYXRoXT0hMCxpKz0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbScrKGE9PT1vLnBhdGg/IiBhY3RpdmUiOiIiKSsnIiBkYXRhLXBhdGg9IicrcChvLnBhdGgpKyciPicrdnQoby5wYXRoLCJibGFuay1jaGF0LWN3ZC1pdGVtLXBhdGgiKSsiPC9kaXY+Iil9KX1lLmlubmVySFRNTD1pLFZ0KGUpLGUucXVlcnlTZWxlY3RvckFsbCgiLmJsYW5rLWNoYXQtY3dkLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHMpe3Muc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGw9by5kYXRhc2V0LnBhdGg7ci53b3JraW5nRGlyPWw7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXdvcmtpbmctZGlyIixsKX1jYXRjaHt9dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLXBhdGgiKTtJdShkLGwpLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWFycm93Iik7ZiYmKGYudGV4dENvbnRlbnQ9Ilx1MjVCQyIpO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWlucHV0Iik7YyYmKGMudmFsdWU9bCl9KX0pfSl9ZnVuY3Rpb24gbWcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjZW50LXBhdGhzLWJ1YmJsZXMiKTtlJiZiYShmdW5jdGlvbih0KXtpZighdC5sZW5ndGgpe2UuaW5uZXJIVE1MPSIiO3JldHVybn1lLmlubmVySFRNTD10Lm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0icmVjZW50LXBhdGgtYnViYmxlIiBkYXRhLXBhdGg9IicrcChuLnBhdGgpKyciIHRpdGxlPSInK3Aobi5wYXRoKSsnIj4nK3Z0KG4ucGF0aCwicmVjZW50LXBhdGgtYnViYmxlLXBhdGgiKSsiPC9idXR0b24+In0pLmpvaW4oIiIpLFZ0KGUpLGUucXVlcnlTZWxlY3RvckFsbCgiLnJlY2VudC1wYXRoLWJ1YmJsZSIpLmZvckVhY2goZnVuY3Rpb24obil7bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7aSYmKGkudmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHIuY3dkVmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiKX0pfSl9KX1mdW5jdGlvbiBZbCgpe3Iuc3VnZ2VzdGlvblRpbWVyJiZjbGVhclRpbWVvdXQoci5zdWdnZXN0aW9uVGltZXIpLHIuc3VnZ2VzdGlvblRpbWVyPXNldFRpbWVvdXQoZ2csMTIwKX1mdW5jdGlvbiBnZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYoZSYmZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXtycigpO3JldHVybn12YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7dCYmZmV0Y2goIi9hcGkvcGF0aC1zdWdnZXN0aW9ucz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQudmFsdWUudHJpbSgpKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihoZykuY2F0Y2gocnIpfWZ1bmN0aW9uIGhnKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2Qtc3VnZ2VzdGlvbnMiKTtpZighdHx8IWUubGVuZ3RoKXtycigpO3JldHVybn10LmlubmVySFRNTD1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic3VnZ2VzdGlvbi1pdGVtIiBkYXRhLXBhdGg9IicrcChuLnBhdGgpKyciPjxzdHJvbmc+JytwKG4ubmFtZSkrIjwvc3Ryb25nPjxzbWFsbD4iK3Z0KG4ucGF0aCwic3VnZ2VzdGlvbi1pdGVtLXBhdGgiKSsiPC9zbWFsbD48L2J1dHRvbj4ifSkuam9pbigiIiksVnQodCksdC5xdWVyeVNlbGVjdG9yQWxsKCIuc3VnZ2VzdGlvbi1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihuKXtuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKS52YWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIsci5jd2RWYWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIscnIoKX0pfSksdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1mdW5jdGlvbiBycigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2Qtc3VnZ2VzdGlvbnMiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmlubmVySFRNTD0iIil9ZnVuY3Rpb24geWcoZSl7aWYoIWUuaXNDb21wb3Npbmcpe2lmKEFzKGUpKXtXYShlKTtyZXR1cm59aWYoZS5rZXk9PT0iRW50ZXIiKXtpZihlLnNoaWZ0S2V5KXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKHQpe3ZhciBuPXQuc2VsZWN0aW9uU3RhcnR8fDAsaT10LnZhbHVlLGE9aS5zbGljZSgwLG4pK2AKYCtpLnNsaWNlKG4pO3QudmFsdWU9YSx0LnNlbGVjdGlvblN0YXJ0PW4rMSx0LnNlbGVjdGlvbkVuZD1uKzEscnQoYSwhMCksSHQodCl9cmV0dXJufWUucHJldmVudERlZmF1bHQoKTt2YXIgdT0hIShlLm1ldGFLZXl8fGUuY3RybEtleSk7eXModT97aW50ZXJydXB0OiEwfTp2b2lkIDApO3JldHVybn1pZihlLmtleT09PSJCYWNrc3BhY2UiKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO20mJnJ0KG0udmFsdWUsITApfSwwKTtyZXR1cm59aWYoZS5rZXk9PT0iVGFiIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih0KXt2YXIgbj10LnNlbGVjdGlvblN0YXJ0fHwwLGk9dC52YWx1ZSxhPWkuc2xpY2UoMCxuKSsiCSIraS5zbGljZShuKTt0LnZhbHVlPWEscnQoYSwhMCl9cmV0dXJufWlmKGUua2V5PT09IkVzY2FwZSIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbz1zdCgpO3VlKG8pP28mJm8uc3RydWN0dXJlZFN0YXRlJiZvLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmemEoKTpwdChTcigiZXNjYXBlIiksImVzY2FwZSIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImMiKXt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksbD1zJiZzLnNlbGVjdGlvblN0YXJ0IT09cy5zZWxlY3Rpb25FbmR8fEZpKCk7aWYobClyZXR1cm47dmFyIGQ9c3QoKTtpZih1ZShkKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGQmJmQuc3RydWN0dXJlZFN0YXRlJiZkLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmemEoKTtyZXR1cm59ZS5wcmV2ZW50RGVmYXVsdCgpLHB0KFNyKCJjdHJsX2MiKSwiY3RybF9jIik7cmV0dXJufWlmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0iZCIpe3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxjPWYmJmYuc2VsZWN0aW9uU3RhcnQhPT1mLnNlbGVjdGlvbkVuZHx8RmkoKTtpZihjKXJldHVybjt2YXIgdj1zdCgpO2lmKHVlKHYpKXtlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWUucHJldmVudERlZmF1bHQoKSxwdChTcigiY3RybF9kIiksImN0cmxfZCIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImwiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGg9c3QoKTtpZih1ZShoKSlyZXR1cm47cHQoU3IoImN0cmxfbCIpLCJjdHJsX2wiKTtyZXR1cm59aWYoISgoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImEiKSYmISgoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09InYiKSl7aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJ4Iil7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGc9dCYmdC5zZWxlY3Rpb25TdGFydCE9PXQuc2VsZWN0aW9uRW5kO2lmKGcpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxwdCgiGCIsImN0cmxfeCIpO3JldHVybn1lLmtleS5sZW5ndGg9PT0xJiYhZS5jdHJsS2V5JiYhZS5tZXRhS2V5JiYhZS5hbHRLZXkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmcnQobS52YWx1ZSl9LDApfX19dmFyIGJnPTEwKjEwMjQqMTAyNDtmdW5jdGlvbiBFZyhlKXtyZXR1cm4gZTwxMDI0P2UrIiBCIjplPDEwMjQqMTAyND8oZS8xMDI0KS50b0ZpeGVkKDEpKyIgS0IiOihlLygxMDI0KjEwMjQpKS50b0ZpeGVkKDEpKyIgTUIifWZ1bmN0aW9uIEZnKGUpe3JldHVybi9eaW1hZ2VcLyhwbmd8anBlP2d8Z2lmfHdlYnB8Ym1wfHN2Z1wreG1sKS8udGVzdChlKX1mdW5jdGlvbiBDdShlKXtpZihlKXtpZihlLnNpemU+Ymcpe0EoIlx1NjU4N1x1NEVGNlx1OEZDN1x1NTkyN1x1RkYwOFx1NEUwQVx1OTY1MCAxMCBNQlx1RkYwOTogIitlLm5hbWUsImVycm9yIik7cmV0dXJufXZhciB0PXtmaWxlOmUsbmFtZTplLm5hbWUsc2l6ZTplLnNpemUscHJldmlld1VybDpudWxsfTtGZyhlLnR5cGUpJiYodC5wcmV2aWV3VXJsPVVSTC5jcmVhdGVPYmplY3RVUkwoZSkpLHIucGVuZGluZ0F0dGFjaG1lbnRzLnB1c2godCksQnUoKX19ZnVuY3Rpb24gd2coZSl7dmFyIHQ9ci5wZW5kaW5nQXR0YWNobWVudHMuc3BsaWNlKGUsMSk7dC5sZW5ndGgmJnRbMF0ucHJldmlld1VybCYmVVJMLnJldm9rZU9iamVjdFVSTCh0WzBdLnByZXZpZXdVcmwpLEJ1KCl9ZnVuY3Rpb24gQ2coKXtyLnBlbmRpbmdBdHRhY2htZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucHJldmlld1VybCYmVVJMLnJldm9rZU9iamVjdFVSTChlLnByZXZpZXdVcmwpfSksci5wZW5kaW5nQXR0YWNobWVudHM9W10sQnUoKX1mdW5jdGlvbiBCdSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2htZW50LXByZXZpZXciKTtpZihlKXt2YXIgdD1yLnBlbmRpbmdBdHRhY2htZW50cztpZih0Lmxlbmd0aD09PTApe2UuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Zm9yKHZhciBuPSIiLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXSx1PWEucHJldmlld1VybD8nPGltZyBzcmM9IicrcChhLnByZXZpZXdVcmwpKyciIGFsdD0iIj4nOic8c3BhbiBjbGFzcz0iYXR0LWljb24iPicrVSgiZmlsZSIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrIjwvc3Bhbj4iO24rPSc8c3BhbiBjbGFzcz0iYXR0YWNobWVudC1waWxsIiBkYXRhLWluZGV4PSInK2krJyI+Jyt1Kyc8c3BhbiBjbGFzcz0iYXR0LW5hbWUiIHRpdGxlPSInK3AoYS5uYW1lKSsnIj4nK3AoYS5uYW1lKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhdHQtc2l6ZSI+JytFZyhhLnNpemUpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYXR0LXJlbW92ZSIgZGF0YS1pbmRleD0iJytpKyciIHRpdGxlPSJcdTc5RkJcdTk2NjQiPlx4RDc8L2J1dHRvbj48L3NwYW4+J31lLmlubmVySFRNTD1uLGUucXVlcnlTZWxlY3RvckFsbCgiLmF0dC1yZW1vdmUiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHMpe3MucHJldmVudERlZmF1bHQoKSxzLnN0b3BQcm9wYWdhdGlvbigpLHdnKHBhcnNlSW50KG8uZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IiksMTApKX0pfSl9fWZ1bmN0aW9uIEJnKGUpe2lmKCFyLnBlbmRpbmdBdHRhY2htZW50cy5sZW5ndGgpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIHQ9bmV3IEZvcm1EYXRhO3JldHVybiByLnBlbmRpbmdBdHRhY2htZW50cy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3QuYXBwZW5kKCJmaWxlcyIsbi5maWxlLG4ubmFtZSl9KSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3VwbG9hZCIse21ldGhvZDoiUE9TVCIsYm9keTp0LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLnRoZW4oZnVuY3Rpb24oaSl7dGhyb3cgbmV3IEVycm9yKGkuZXJyb3J8fCJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjUiKX0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5maWxlc3x8W119KX1mdW5jdGlvbiBEZyhlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiIiO3ZhciB0PWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnNhdmVkUGF0aH0pO3JldHVybmBbXHU5NjQ0XHU0RUY2XHU1REYyXHU0RTBBXHU0RjIwXHVGRjBDXHU4QkY3XHU2N0U1XHU3NzBCXHU0RUU1XHU0RTBCXHU2NTg3XHU0RUY2OgpgK3Quam9pbihgCmApK2BdCgpgfWZ1bmN0aW9uIEdsKGUpe2lmKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmV8fCFlfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikpcmV0dXJuITE7dmFyIHQ9ZS52YWx1ZXx8IiI7cmV0dXJuIHQ/KHB0KHQsImludGVyYWN0aXZlX3RleHQiKS5jYXRjaChmdW5jdGlvbigpe30pLGUudmFsdWU9IiIsSHQoZSkscnQoIiIsITApLCEwKTohMX1mdW5jdGlvbiBrZyhlKXt2YXIgdD1lLmNsaXBib2FyZERhdGEmJmUuY2xpcGJvYXJkRGF0YS5pdGVtcztpZih0JiYhci50ZXJtaW5hbEludGVyYWN0aXZlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLnR5cGUuaW5kZXhPZigiaW1hZ2UvIik9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGk9dFtuXS5nZXRBc0ZpbGUoKTtpJiZDdShpKTtyZXR1cm59fXZhciBhPWUuY2xpcGJvYXJkRGF0YSYmZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQiKTtpZihhKXtpZihlLnByZXZlbnREZWZhdWx0KCksci50ZXJtaW5hbEludGVyYWN0aXZlKXtwdChhLCJwYXN0ZSIpLmNhdGNoKGZ1bmN0aW9uKCl7fSk7cmV0dXJufXZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih1KXt2YXIgbz11LnNlbGVjdGlvblN0YXJ0fHwwLHM9dS5zZWxlY3Rpb25FbmR8fDAsbD11LnZhbHVlLGQ9bC5zbGljZSgwLG8pK2ErbC5zbGljZShzKTt1LnZhbHVlPWQscnQoZCl9fX1mdW5jdGlvbiBoaChlKXtwdChlKSxydChBZygpK2UpfWZ1bmN0aW9uIEFnKCl7aWYoci5zZWxlY3RlZElkKXtpZihyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdIT09dm9pZCAwKXJldHVybiByLmRyYWZ0c1tyLnNlbGVjdGVkSWRdO3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1kcmFmdC0iK3Iuc2VsZWN0ZWRJZCk7aWYoZSlyZXR1cm4gZX1jYXRjaHt9fXJldHVybiIifWZ1bmN0aW9uIHJ0KGUsdCl7aWYoci5zZWxlY3RlZElkKXtyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWRyYWZ0LSIrci5zZWxlY3RlZElkLGUpfWNhdGNoe31pZighdCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO24mJihuLnZhbHVlPWUpfX19dmFyIER1PSExO2Z1bmN0aW9uIHhnKCl7aWYoIUR1KXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvbXB0LW9wdGltaXplLWJ0biIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYoZSl7dmFyIGk9KGUudmFsdWV8fCIiKS50cmltKCk7aWYoIWkpe3R5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKCJcdThCRjdcdTUxNDhcdThGOTNcdTUxNjVcdTg5ODFcdTRGMThcdTUzMTZcdTc2ODRcdTUxODVcdTVCQjlcdTMwMDIiLCJpbmZvIiksZS5mb2N1cygpO3JldHVybn1EdT0hMCx0JiYodC5jbGFzc0xpc3QuYWRkKCJpcy1sb2FkaW5nIiksdC5kaXNhYmxlZD0hMCx0LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTZCNjNcdTU3MjhcdTRGMThcdTUzMTZcdTIwMjYiKSksbiYmbi5jbGFzc0xpc3QuYWRkKCJpcy1vcHRpbWl6aW5nIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtYnVzeSIsInRydWUiKTt2YXIgYT1lLnJlYWRPbmx5O2UucmVhZE9ubHk9ITA7dmFyIHU9e3RleHQ6aX07ciYmci5zZWxlY3RlZElkJiYodS5zZXNzaW9uSWQ9ci5zZWxlY3RlZElkKSxmZXRjaCgiL2FwaS9vcHRpbWl6ZS1wcm9tcHQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHUpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCkudGhlbihmdW5jdGlvbihzKXtyZXR1cm57b2s6by5vayxkYXRhOnN9fSl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihvLmRhdGEmJm8uZGF0YS5lcnJvcnx8Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1NTkzMVx1OEQyNVx1MzAwMiIpO3ZhciBzPW8uZGF0YSYmby5kYXRhLm9wdGltaXplZHx8IiI7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJDbGF1ZGUgXHU4RkQ0XHU1NkRFXHU0RTNBXHU3QTdBXHUzMDAyIik7U2coZSxzKX0pLmNhdGNoKGZ1bmN0aW9uKG8pe3R5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKG8mJm8ubWVzc2FnZXx8Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIiksdCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpLHQuY2xhc3NMaXN0LmFkZCgiaXMtc2hha2UiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1zaGFrZSIpfSw0MDApKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtEdT0hMSx0JiYodC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksdC5kaXNhYmxlZD0hMSx0LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdUZGMDhBSVx1RkYwOSIpKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImlzLW9wdGltaXppbmciKSxlLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1idXN5IiksZS5yZWFkT25seT1hfSl9fX1mdW5jdGlvbiBTZyhlLHQpe2lmKCFlKXJldHVybjt2YXIgbj1BcnJheS5mcm9tKHQpLGk9bi5sZW5ndGg7aWYoaT09PTApe2UudmFsdWU9IiIscnQoIiIsITApLEh0KGUpO3JldHVybn12YXIgYT1NYXRoLm1pbig3MDAsTWF0aC5tYXgoMjIwLGkqOCkpLHU9TWF0aC5taW4oaSw2MCksbz1NYXRoLmNlaWwoaS91KSxzPWEvdSxsPTA7ZS52YWx1ZT0iIixIdChlKTtmdW5jdGlvbiBkKCl7aWYobD1NYXRoLm1pbihpLGwrbyksZS52YWx1ZT1uLnNsaWNlKDAsbCkuam9pbigiIiksSHQoZSksbDxpKXNldFRpbWVvdXQoZCxzKTtlbHNle3J0KHQsITApO3RyeXtlLnNldFNlbGVjdGlvblJhbmdlKHQubGVuZ3RoLHQubGVuZ3RoKX1jYXRjaHt9fX1kKCl9ZnVuY3Rpb24gVWkoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYodCl7dmFyIG49ZXx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGk9ISEobiYmbi52YWx1ZSYmbi52YWx1ZS5sZW5ndGg+MCk7dC5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdGV4dCIsaSl9fXIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbCxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgenI9bnVsbCxLaT0wO2Z1bmN0aW9uIGt1KGUpe2lmKCFlKXJldHVybnthY3RpdmU6ITF9O2lmKGUuYXJjaGl2ZWQpcmV0dXJue2FjdGl2ZTohMX07dmFyIHQ9ISFlLnBlcm1pc3Npb25CbG9ja2VkLG49ISEodWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCksaT0hdWUoZSkmJmUuc3RhdHVzPT09InJ1bm5pbmciO3JldHVybnthY3RpdmU6bnx8aXx8dCxpbkZsaWdodDpuLHB0eVJ1bm5pbmc6aSxwZXJtaXNzaW9uQmxvY2tlZDp0fX1mdW5jdGlvbiBJZyhlKXt2YXIgdD1NYXRoLm1heCgwLE1hdGguZmxvb3IoZS8xZTMpKTtpZih0PDYwKXJldHVybiB0KyJzIjt2YXIgbj1NYXRoLmZsb29yKHQvNjApLGk9dCU2MDtpZihuPDYwKXJldHVybiBuKyJtIisoaT8iICIraSsicyI6IiIpO3ZhciBhPU1hdGguZmxvb3Iobi82MCksdT1uJTYwO3JldHVybiBhKyJoIisodT8iICIrdSsibSI6IiIpfWZ1bmN0aW9uIEF1KGUpe3ZhciB0PWt1KGUpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4taGVhZGVyLXJvdyIpLGk9bj9uLnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN0YXR1cy1waWxsIik6bnVsbCxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7aWYobiYmKG4uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtcnVubmluZyIsdC5hY3RpdmUpLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtcGVybWlzc2lvbi1ibG9ja2VkIix0LnBlcm1pc3Npb25CbG9ja2VkKSksaSl7dmFyIHU9aS5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdGF0dXMtZWxhcHNlZCIpO2lmKHQuaW5GbGlnaHQpe0tpfHwoS2k9ci5fc3RhdHVzQmFyU3RhcnRUaW1lPjA/ci5fc3RhdHVzQmFyU3RhcnRUaW1lOkRhdGUubm93KCkpO3ZhciBvPUlnKERhdGUubm93KCktS2kpO3V8fCh1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSx1LmNsYXNzTmFtZT0ic2Vzc2lvbi1zdGF0dXMtZWxhcHNlZCIsaS5hcHBlbmRDaGlsZCh1KSksdS50ZXh0Q29udGVudD1vfWVsc2UgS2k9MCx1JiZ1LnJlbW92ZSgpfXQuYWN0aXZlP3pyfHwoenI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgcz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1yLnNlbGVjdGVkSWR9KTtBdShzKX0sMWUzKSk6enImJihjbGVhckludGVydmFsKHpyKSx6cj1udWxsKX1mdW5jdGlvbiB4dShlLHQpe0F1KHQpO3ZhciBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci10b3Atcm93IiksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIiksYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZighdHx8IXVlKHQpKXtpJiZpLnJlbW92ZSgpLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0IiksY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGw7cmV0dXJufXZhciB1PXQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodDtpZih1KXtpZihyLl9zdGF0dXNCYXJUaW1lcklkfHwoci5fc3RhdHVzQmFyU3RhcnRUaW1lPURhdGUubm93KCkpLGEmJmEuY2xhc3NMaXN0LmFkZCgiaW4tZmxpZ2h0IiksIWkmJm4pe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uY2xhc3NOYW1lPSJzdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiLG8uaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0ic3RhdHVzLWJhci1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhci1sYWJlbCI+XHU1NkRFXHU1OTBEXHU0RTJEPC9zcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFyLXRpbWVyIj4wLjBzPC9zcGFuPicsbi5hcHBlbmRDaGlsZChvKSxpPW99ZWxzZSBpZihpJiZpLmNsYXNzTGlzdC5jb250YWlucygiY29tcGxldGVkIikpe2kuY2xhc3NMaXN0LnJlbW92ZSgiY29tcGxldGVkIiksaS5zdHlsZS5hbmltYXRpb249Im5vbmUiLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItbGFiZWwiKS50ZXh0Q29udGVudD0iXHU1NkRFXHU1OTBEXHU0RTJEIjt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWRvdCIpO3MmJihzLnN0eWxlLmRpc3BsYXk9IiIpLHIuX3N0YXR1c0JhclN0YXJ0VGltZT1EYXRlLm5vdygpfXIuX3N0YXR1c0JhclRpbWVySWR8fChyLl9zdGF0dXNCYXJUaW1lcklkPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhcjpub3QoLmNvbXBsZXRlZCkiKTtpZighZCl7Y2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGw7cmV0dXJufXZhciBmPSgoRGF0ZS5ub3coKS1yLl9zdGF0dXNCYXJTdGFydFRpbWUpLzFlMykudG9GaXhlZCgxKSxjPWQucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItdGltZXIiKTtjJiYoYy50ZXh0Q29udGVudD1mKyJzIil9LDEwMCkpfWVsc2UgaWYoY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGwsYSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJpbi1mbGlnaHQiKSxpJiYhaS5jbGFzc0xpc3QuY29udGFpbnMoImNvbXBsZXRlZCIpKXt2YXIgbD1yLl9zdGF0dXNCYXJTdGFydFRpbWU/KChEYXRlLm5vdygpLXIuX3N0YXR1c0JhclN0YXJ0VGltZSkvMWUzKS50b0ZpeGVkKDEpOiIwLjAiO2kuY2xhc3NMaXN0LmFkZCgiY29tcGxldGVkIiksaS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1sYWJlbCIpLnRleHRDb250ZW50PSJcdTVCOENcdTYyMTAiLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItdGltZXIiKS50ZXh0Q29udGVudD1sKyJzIjt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWRvdCIpO3MmJihzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5wYXJlbnROb2RlJiZpLnJlbW92ZSgpfSwzZTMpfX1mdW5jdGlvbiBwKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpfWZ1bmN0aW9uIHZ0KGUsdCxuKXt2YXIgaT1TdHJpbmcoZXx8IiIpO3JldHVybic8c3BhbiBjbGFzcz0iJyt0KycgdGFpbC1tYXJxdWVlLXBhdGgiIHRpdGxlPSInK3AoaSkrJyInKyhufHwiIikrJz48c3BhbiBjbGFzcz0idGFpbC1tYXJxdWVlLXBhdGgtaW5uZXIiPicrcChpKSsiPC9zcGFuPjwvc3Bhbj4ifXZhciBUZz0vXC4ocG5nfGpwZT9nfGdpZnx3ZWJwfHN2Z3xhdmlmfGJtcHxpY298aGVpY3xoZWlmKSQvaTtmdW5jdGlvbiBTdShlKXtpZih0eXBlb2YgZSE9InN0cmluZyIpcmV0dXJuITE7dmFyIHQ9ZS50cmltKCkuc3BsaXQoL1s/I10vKVswXTtyZXR1cm4gVGcudGVzdCh0KX1mdW5jdGlvbiBpcihlKXtpZihlKXt2YXIgdD1mdW5jdGlvbigpe3RyeXt2YXIgbj1lLmZpcnN0RWxlbWVudENoaWxkJiZlLmZpcnN0RWxlbWVudENoaWxkLmNsYXNzTGlzdCYmZS5maXJzdEVsZW1lbnRDaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoInRhaWwtbWFycXVlZS1wYXRoLWlubmVyIik/ZS5maXJzdEVsZW1lbnRDaGlsZDpudWxsO2lmKG4pe3ZhciBpPU1hdGgubWF4KDAsbi5zY3JvbGxXaWR0aC1lLmNsaWVudFdpZHRoKTtlLmNsYXNzTGlzdC50b2dnbGUoImlzLW92ZXJmbG93aW5nIixpPjEpLGUuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGFpbC1tYXJxdWVlLXNoaWZ0IixpKyJweCIpO3ZhciBhPU1hdGgubWF4KDQuOCxpLzE4KTtlLnN0eWxlLnNldFByb3BlcnR5KCItLXRhaWwtbWFycXVlZS1kdXJhdGlvbiIsTWF0aC5tYXgoNi44LGEvLjY4KSsicyIpO3JldHVybn1lLnNjcm9sbFdpZHRoPmUuY2xpZW50V2lkdGgmJihlLnNjcm9sbExlZnQ9ZS5zY3JvbGxXaWR0aCl9Y2F0Y2h7fX07dCgpLHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU9PSJmdW5jdGlvbiImJnJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX19ZnVuY3Rpb24gVnQoZSl7dmFyIHQ9ZXx8ZG9jdW1lbnQ7IXR8fHR5cGVvZiB0LnF1ZXJ5U2VsZWN0b3JBbGwhPSJmdW5jdGlvbiJ8fHQucXVlcnlTZWxlY3RvckFsbCgiLnRhaWwtbWFycXVlZS1wYXRoIikuZm9yRWFjaChmdW5jdGlvbihuKXtpcihuKX0pfWZ1bmN0aW9uIEl1KGUsdCl7aWYoZSl7dmFyIG49U3RyaW5nKHR8fCIiKSxpPWUucXVlcnlTZWxlY3RvciYmZS5xdWVyeVNlbGVjdG9yKCIudGFpbC1tYXJxdWVlLXBhdGgtaW5uZXIiKTtpP2kudGV4dENvbnRlbnQ9bjplLnRleHRDb250ZW50PW4sZS5zZXRBdHRyaWJ1dGUmJmUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsbiksaXIoZSl9fWZ1bmN0aW9uIExnKGUpe2lmKGUpe3ZhciB0PWZ1bmN0aW9uKCl7dHJ5e2lmKHR5cGVvZiBlLnNldFNlbGVjdGlvblJhbmdlPT0iZnVuY3Rpb24iJiZlLnZhbHVlIT1udWxsKXt2YXIgbj1lLnZhbHVlLmxlbmd0aDt0cnl7ZS5zZXRTZWxlY3Rpb25SYW5nZShuLG4pfWNhdGNoe319ZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoJiYoZS5zY3JvbGxMZWZ0PWUuc2Nyb2xsV2lkdGgpfWNhdGNoe319O3QoKSx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9fShmdW5jdGlvbigpe3RyeXt2YXIgZT1uYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnR8fCIiOy9XYW5kQXBwXC8vLnRlc3QoZSkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWFwcCIpLC9XYW5kUGxhdGZvcm1cL2lPUy8udGVzdChlKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtaW9zIiksL1dhbmRQbGF0Zm9ybVwvQW5kcm9pZC8udGVzdChlKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtYW5kcm9pZCIpfWNhdGNoe310cnl7Y29uc3QgdD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXM7dC5nZXQoImVtYmVkIik9PT0idGVybWluYWwiJiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSx0LmdldCgibmF0aXZlSW5wdXQiKT09PSIxIiYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtbmF0aXZlLWlucHV0IikpfWNhdGNoe310cnl7d2luZG93Ll9fd2FuZE5hdGl2ZUJhY2tIb29rZWQ9ITB9Y2F0Y2h7fX0pKCl9KSgpOwo="),
|
|
8
|
+
scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciBIdT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLHBkPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uIFFyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHZkKGUpe3JldHVybiBRcihlLmluc3RhbGxpbmcpfHxRcihlLndhaXRpbmcpfHxRcihlLmFjdGl2ZSl9ZnVuY3Rpb24gbWQoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKEh1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gZ2QoKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oSHUsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIGhkKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcih2ZCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIHlkKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT5wZC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIGJkKCl7aWYobWQoKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJlFyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFtoZCgpLHlkKCldKTshdHx8IW58fChnZCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX1iZCgpO3ZhciBqZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsdGE9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLCRyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPCRyLmxlbmd0aDtpKyspdHJ5eyRyW2ldKCl9Y2F0Y2h7fW48JHIubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZygkci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBuYShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiBBZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjpuYSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOm5hKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDpuYSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWxzOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIiO3JldHVybntjbGF1ZGU6bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtY2hhdC1tb2RlbC1jbGF1ZGUiKXx8ZSxjb2RleDpsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsLWNvZGV4Iil8fCIifX1jYXRjaHtyZXR1cm57Y2xhdWRlOiIiLGNvZGV4OiIifX19KSgpLGNoYXRNb2RlbDooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiKXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fSkoKSxjaGF0VGhpbmtpbmc6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIpfHwib2ZmIjtyZXR1cm4gZT09PSJvZmYifHxlPT09InN0YW5kYXJkInx8ZT09PSJkZWVwInx8ZT09PSJtYXgiP2U6Im9mZiJ9Y2F0Y2h7cmV0dXJuIm9mZiJ9fSkoKSxhdmFpbGFibGVNb2RlbHM6W10sYXZhaWxhYmxlQ29kZXhNb2RlbHM6W10sbW9kZWxzUmVmcmVzaGluZzohMSxzZXNzaW9uQ3JlYXRlS2luZDoic3RydWN0dXJlZCIsc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlOiExLHNlc3Npb25Ub29sOiJjbGF1ZGUiLGFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ6bnVsbCx3b3JrdHJlZU1lcmdlQ2hlY2tSZXN1bHQ6bnVsbCx3b3JrdHJlZU1lcmdlTG9hZGluZzohMSx3b3JrdHJlZU1lcmdlU3VibWl0dGluZzohMSx3b3JrdHJlZU1lcmdlRXJyb3I6IiIscHJlZmVycmVkQ29tbWFuZDoiY2xhdWRlIixzdHJ1Y3R1cmVkUnVubmVyOiJjbGF1ZGUtY2xpLXByaW50IixsYXN0UmVzaXplOntjb2xzOjAscm93czowfSxpc09ubGluZTpuYXZpZ2F0b3Iub25MaW5lLHdzOm51bGwsd3NDb25uZWN0ZWQ6ITEsbGFzdFdzTWVzc2FnZUF0OjAsd3NIZWFydGJlYXRDaGVja1RpbWVyOm51bGwsX3VwZGF0ZUJ1YmJsZVNob3duOiExLG5vdGlmaWNhdGlvbkhpc3Rvcnk6e30sZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyOm51bGwsbm90aWZTb3VuZDooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtc291bmQiKTtyZXR1cm4gZT09PW51bGw/ITA6ZT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMH19KSgpLG5vdGlmVm9sdW1lOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiKTtyZXR1cm4gZT09PW51bGw/ODA6TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAscGFyc2VJbnQoZSwxMCl8fDgwKSl9Y2F0Y2h7cmV0dXJuIDgwfX0pKCksbm90aWZCdWJibGU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLWJ1YmJsZSIpO3JldHVybiBlPT09bnVsbD8hMDplPT09InRydWUifWNhdGNoe3JldHVybiEwfX0pKCksdG9vbENvbnRlbnRDYWNoZTp7fSxsYXN0U2VxQnlTZXNzaW9uOnt9LGN1cnJlbnRWaWV3OiJ0ZXJtaW5hbCIsdGVybWluYWxTY2FsZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtdGVybWluYWwtc2NhbGUiKTtyZXR1cm4gZT9wYXJzZUZsb2F0KGUpOjF9Y2F0Y2h7cmV0dXJuIDF9fSkoKSx0ZXJtaW5hbEJhc2VGb250U2l6ZToxMyxrZXlib2FyZFBvcHVwT3BlbjohMSxmaWxlUGFuZWxPcGVuOihmdW5jdGlvbigpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtZmlsZS1wYW5lbC1vcGVuIik9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITF9fSkoKSx0b3BiYXJNb3JlT3BlbjohMSxnaXRTdGF0dXM6bnVsbCxnaXRTdGF0dXNTZXNzaW9uSWQ6bnVsbCxnaXRTdGF0dXNMb2FkaW5nOiExLGdpdFN0YXR1c0luZmxpZ2h0Om51bGwsZ2l0U3RhdHVzTGFzdEZldGNoQXQ6MCxxdWlja0NvbW1pdE9wZW46ITEscXVpY2tDb21taXRTdWJtaXR0aW5nOiExLHF1aWNrQ29tbWl0R2VuZXJhdGluZzohMSxxdWlja0NvbW1pdEVycm9yOiIiLHF1aWNrQ29tbWl0Rm9ybTp7Y3VzdG9tTWVzc2FnZToiIix0YWc6IiIsdGFnRWRpdGVkOiExfSxxdWlja0NvbW1pdFB1c2hpbmc6ITEscXVpY2tDb21taXRQdXNoRXJyb3I6IiIscXVpY2tDb21taXRSZXN1bHQ6bnVsbCxxdWlja0NvbW1pdERyYWdBY3Rpb246ImNvbW1pdCIscXVpY2tDb21taXRTdWJtb2R1bGVJbnRlbnQ6ITEsY2hhdFN0aWNrVG9Cb3R0b206ITAsY2hhdEF1dG9Gb2xkRW5hYmxlZDohMSxjaGF0QXV0b0ZvbGRTbmFwc2hvdDpudWxsLGNoYXRVbnJlYWRDb3VudDowLGNoYXRVbnJlYWRTdGFydEluZGV4Oi0xLGNoYXRTY3JvbGxUaHJlc2hvbGQ6MTYwLGNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbDohMSxjaGF0UHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCxjaGF0U2Nyb2xsRWxlbWVudDpudWxsLGNoYXRTY3JvbGxIYW5kbGVyOm51bGwsY2hhdFNjcm9sbFdoZWVsSGFuZGxlcjpudWxsLGNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcjpudWxsLGNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyOm51bGwsY2hhdFRvdWNoU3RhcnRZOjAsY2hhdEluaXRpYWxSZW5kZXJEb25lOiExLGxhc3RGb3JlZ3JvdW5kU3luY0F0OjAsZm9yZWdyb3VuZFN5bmNUaW1lcjpudWxsLHdzUmVjb25uZWN0QXR0ZW1wdHM6MCx3c1JlY29ubmVjdFRpbWVyOm51bGwsY3VycmVudE1lc3NhZ2VzOltdLGxhc3RSZW5kZXJlZEhhc2g6MCxsYXN0UmVuZGVyZWRNc2dDb3VudDowLGxhc3RSZW5kZXJlZEVtcHR5Om51bGwscmVuZGVyUGVuZGluZzohMSxjaGF0UGFnZVNpemU6MjAsY2hhdFJlbmRlcmVkQ291bnQ6MjAsY3VycmVudFRhc2s6bnVsbCx0ZXJtaW5hbEludGVyYWN0aXZlOiExLG1pbmlLZXlib2FyZFZpc2libGU6ITEsbW9kaWZpZXJzOntjdHJsOiExLGFsdDohMSxzaGlmdDohMX0sam95c3RpY2tQb3M6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWJhbGwtcG9zIik7aWYoIWUpcmV0dXJuIG51bGw7dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLGpveXN0aWNrUGlubmVkT3BlbjohMSxqb3lzdGlja1Jvb3RFbDpudWxsLGpveXN0aWNrUGFuZWxFbDpudWxsLGpveXN0aWNrQmFja2Ryb3BFbDpudWxsLGpveXN0aWNrQmFsbEVsOm51bGwsam95c3RpY2tQb2ludGVySWQ6bnVsbCxqb3lzdGlja0dlc3R1cmU6bnVsbCxqb3lzdGlja1ByZXNzU3RhcnQ6bnVsbCxqb3lzdGlja0xvbmdQcmVzc1RpbWVyOm51bGwsam95c3RpY2tNb3ZlSGFuZGxlcjpudWxsLGpveXN0aWNrVXBIYW5kbGVyOm51bGwsam95c3RpY2tSZXNpemVIYW5kbGVyOm51bGwsZmlsZVNlYXJjaFF1ZXJ5OiIiLGZpbGVFeHBsb3JlckxvYWRpbmc6ITEsYWxsRmlsZXM6W10sZmlsZUV4cGxvcmVyQ3dkOiIiLGZpbGVFeHBsb3JlclRydW5jYXRlZDohMSxmaWxlRXhwbG9yZXJUb3RhbDowLGNsYXVkZUhpc3Rvcnk6W10sY2xhdWRlSGlzdG9yeUxvYWRlZDohMSxjbGF1ZGVIaXN0b3J5RXhwYW5kZWQ6ITEsY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyczp7fSxhcmNoaXZlZEV4cGFuZGVkOiExLHNlc3Npb25zTWFuYWdlTW9kZTohMSxzZWxlY3RlZFNlc3Npb25JZHM6e30sc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzOnt9LGNvZGV4SGlzdG9yeTpbXSxjb2RleEhpc3RvcnlMb2FkZWQ6ITEsY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzOnt9LHNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzOnt9LGFza1VzZXJTZWxlY3Rpb25zOnt9LHF1ZXVlRXBvY2g6MCxwZW5kaW5nQXR0YWNobWVudHM6W10sd29ya2luZ0RpcjooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiKTtyZXR1cm4gZXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fSkoKX0scmE9Ilx1NEUyRFx1NjU4NyIsWHI9e1x1NEUyRFx1NjU4Nzp7InN1YmFnZW50LnRhZyI6Ilx1NUI1MFx1NEVFM1x1NzQwNiIsInN1YmFnZW50LmhhbmRvZmYiOiJ7cGFyZW50fSBcdThCQTkge3N1Yn0gXHU1RTJFXHU1RkQ5Iiwic3ViYWdlbnQuaGFuZG9mZi53aXRoX2Rlc2MiOiJ7cGFyZW50fSBcdThCQTkge3N1Yn0gXHU1RTJFXHU1RkQ5XHVGRjFBIiwic3ViYWdlbnQuY29udGludWVkIjoiXHU3RUU3XHU3RUVEXHU4RjkzXHU1MUZBIiwic3ViYWdlbnQudGFzay5kb25lIjoiXHU0RUZCXHU1MkExXHU1QjhDXHU2MjEwIiwic3ViYWdlbnQudGFzay5mYWlsZWQiOiJcdTRFRkJcdTUyQTFcdTU5MzFcdThEMjUiLCJzdWJhZ2VudC5ydW5uaW5nIjoiXHU4RkQwXHU4ODRDXHU0RTJEIiwic3ViYWdlbnQubm9fb3V0cHV0IjoiXHVGRjA4XHU2NUUwXHU4RjkzXHU1MUZBXHVGRjA5Iiwic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCI6Ilx1NTM0Rlx1NEY1Q1x1NzMyQlx4QjciLCJzdWJhZ2VudC50aXRsZV9hcmlhIjoiXHU3MEI5XHU1MUZCXHU1QzU1XHU1RjAwIC8gXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwic3ViYWdlbnQudGFnX3RpdGxlIjoiXHU1QjUwXHU0RUUzXHU3NDA2IC8gc3ViYWdlbnQiLCJ1aS5leHBhbmQiOiJcdTVDNTVcdTVGMDAiLCJ1aS5jb2xsYXBzZSI6Ilx1NjUzNlx1OEQ3NyIsInVpLmV4cGFuZF9wYW5lbF9hcmlhIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwidWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsImhpc3RvcnkuZXhwYW5kIjoiXHU1QzU1XHU1RjAwXHU1Mzg2XHU1M0YyXHU1QkY5XHU4QkREIiwiaGlzdG9yeS5jb2xsYXBzZSI6Ilx1NjUzNlx1OEQ3N1x1NTM4Nlx1NTNGMlx1NUJGOVx1OEJERCIsImhpc3Rvcnkucm91bmRzIjoie259IFx1OEY2RVx1NUJGOVx1OEJERCIsImhpc3RvcnkudG9vbHMiOiJ7bn0gXHU2QjIxXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4IiwiaGlzdG9yeS5hZ2VudHMiOiJ7bn0gXHU0RTJBXHU1QjUwXHU0RUUzXHU3NDA2IiwiaGlzdG9yeS5lcnJvcnMiOiJ7bn0gXHU0RTJBXHU1OTMxXHU4RDI1Iiwic3RvcC5jb25maXJtLnRpdGxlIjoiXHU1MDVDXHU2QjYyXHU0RUZCXHU1MkExIiwic3RvcC5jb25maXJtLm1lc3NhZ2UiOiJcdTc4NkVcdTVCOUFcdTg5ODFcdTUwNUNcdTZCNjJcdTVGNTNcdTUyNERcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTc2ODRcdTRFRkJcdTUyQTFcdTU0MTdcdUZGMUYiLCJzdG9wLmNvbmZpcm0ub2siOiJcdTUwNUNcdTZCNjIiLCJzdG9wLmNvbmZpcm0uY2FuY2VsIjoiXHU1M0Q2XHU2RDg4In0sRW5nbGlzaDp7InN1YmFnZW50LnRhZyI6IlN1YmFnZW50Iiwic3ViYWdlbnQuaGFuZG9mZiI6IntwYXJlbnR9IGFza2VkIHtzdWJ9IGZvciBoZWxwIiwic3ViYWdlbnQuaGFuZG9mZi53aXRoX2Rlc2MiOiJ7cGFyZW50fSBhc2tlZCB7c3VifSBmb3IgaGVscCB3aXRoOiAiLCJzdWJhZ2VudC5jb250aW51ZWQiOiJjb250aW51ZWQiLCJzdWJhZ2VudC50YXNrLmRvbmUiOiJUYXNrIGNvbXBsZXRlIiwic3ViYWdlbnQudGFzay5mYWlsZWQiOiJUYXNrIGZhaWxlZCIsInN1YmFnZW50LnJ1bm5pbmciOiJSdW5uaW5nIiwic3ViYWdlbnQubm9fb3V0cHV0IjoiKG5vIG91dHB1dCkiLCJzdWJhZ2VudC5oZWxwZXJfZmFsbGJhY2tfcHJlZml4IjoiSGVscGVyXHhCNyIsInN1YmFnZW50LnRpdGxlX2FyaWEiOiJDbGljayB0byBleHBhbmQgLyBjb2xsYXBzZSBzdWJhZ2VudCBvdXRwdXQiLCJzdWJhZ2VudC50YWdfdGl0bGUiOiJTdWJhZ2VudCIsInVpLmV4cGFuZCI6IkV4cGFuZCIsInVpLmNvbGxhcHNlIjoiQ29sbGFwc2UiLCJ1aS5leHBhbmRfcGFuZWxfYXJpYSI6IkV4cGFuZCBzdWJhZ2VudCBvdXRwdXQiLCJ1aS5jb2xsYXBzZV9wYW5lbF9hcmlhIjoiQ29sbGFwc2Ugc3ViYWdlbnQgb3V0cHV0IiwiaGlzdG9yeS5leHBhbmQiOiJTaG93IGVhcmxpZXIgY29udmVyc2F0aW9uIiwiaGlzdG9yeS5jb2xsYXBzZSI6IkhpZGUgZWFybGllciBjb252ZXJzYXRpb24iLCJoaXN0b3J5LnJvdW5kcyI6IntufSByb3VuZHMiLCJoaXN0b3J5LnRvb2xzIjoie259IHRvb2wgY2FsbHMiLCJoaXN0b3J5LmFnZW50cyI6IntufSBzdWJhZ2VudHMiLCJoaXN0b3J5LmVycm9ycyI6IntufSBmYWlsZWQiLCJzdG9wLmNvbmZpcm0udGl0bGUiOiJTdG9wIHRhc2siLCJzdG9wLmNvbmZpcm0ubWVzc2FnZSI6IlN0b3AgdGhlIHRhc2sgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nPyIsInN0b3AuY29uZmlybS5vayI6IlN0b3AiLCJzdG9wLmNvbmZpcm0uY2FuY2VsIjoiQ2FuY2VsIn19O2Z1bmN0aW9uIF91KCl7dmFyIGU9ci5jb25maWcmJnR5cGVvZiByLmNvbmZpZy5sYW5ndWFnZT09InN0cmluZyI/ci5jb25maWcubGFuZ3VhZ2UudHJpbSgpOiIiO2lmKCFlKXJldHVybiByYTtpZihYcltlXSlyZXR1cm4gZTt2YXIgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ9PT0iZW5nbGlzaCJ8fHQ9PT0iZW4ifHx0LmluZGV4T2YoImVuZ2xpc2giKT09PTB8fHQuaW5kZXhPZigiXHU4MkYxIik9PT0wPyJFbmdsaXNoIjp0PT09Ilx1NEUyRFx1NjU4NyJ8fHQ9PT0iemgifHx0LmluZGV4T2YoInpoIik9PT0wfHx0LmluZGV4T2YoIlx1NEUyRCIpPT09MHx8dC5pbmRleE9mKCJjaGluZXNlIik9PT0wPyJcdTRFMkRcdTY1ODciOiJFbmdsaXNoIn1mdW5jdGlvbiB3ZShlLHQpe3ZhciBuPV91KCksaT1YcltuXXx8WHJbcmFdLGE9aSYmZSBpbiBpP2lbZV06bnVsbDtpZihhPT1udWxsKXt2YXIgdT1YcltyYV07YT11JiZlIGluIHU/dVtlXTplfWlmKHQmJnR5cGVvZiBhPT0ic3RyaW5nIilmb3IodmFyIG8gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmKGE9YS5zcGxpdCgieyIrbysifSIpLmpvaW4odFtvXSkpO3JldHVybiBhfXZhciBFZD17c2hpZWxkOic8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+JyxzaGllbGRDaGVjazonPHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjxwb2x5bGluZSBwb2ludHM9IjkgMTIgMTEgMTQgMTUgMTAiLz4nLGxvY2s6JzxyZWN0IHg9IjUiIHk9IjEwIiB3aWR0aD0iMTQiIGhlaWdodD0iMTEiIHJ4PSIyIi8+PHBhdGggZD0iTTggMTBWN2E0IDQgMCAwIDEgOCAwdjMiLz48cGF0aCBkPSJNMTIgMTR2MyIvPicsY2VydGlmaWNhdGU6JzxwYXRoIGQ9Ik02IDNoMTJ2MTRINnoiLz48cGF0aCBkPSJNOSA3aDYiLz48cGF0aCBkPSJNOSAxMWg0Ii8+PHBhdGggZD0ibTEwIDE3LTEgNCAzLTEgMyAxLTEtNCIvPicsY3B1Oic8cmVjdCB4PSI3IiB5PSI3IiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIi8+PHBhdGggZD0iTTkgMXYzIi8+PHBhdGggZD0iTTE1IDF2MyIvPjxwYXRoIGQ9Ik05IDIwdjMiLz48cGF0aCBkPSJNMTUgMjB2MyIvPjxwYXRoIGQ9Ik0yMCA5aDMiLz48cGF0aCBkPSJNMjAgMTVoMyIvPjxwYXRoIGQ9Ik0xIDloMyIvPjxwYXRoIGQ9Ik0xIDE1aDMiLz48cmVjdCB4PSIxMCIgeT0iMTAiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiIHJ4PSIxIi8+JyxicmFpbjonPHBhdGggZD0iTTkuNSA0LjVhMyAzIDAgMCAwLTQuNyAzLjEgMy4zIDMuMyAwIDAgMCAuMyA2LjFBMyAzIDAgMCAwIDggMTloMS41VjQuNXoiLz48cGF0aCBkPSJNMTQuNSA0LjVhMyAzIDAgMCAxIDQuNyAzLjEgMy4zIDMuMyAwIDAgMS0uMyA2LjFBMyAzIDAgMCAxIDE2IDE5aC0xLjVWNC41eiIvPjxwYXRoIGQ9Ik05LjUgOEg3LjgiLz48cGF0aCBkPSJNMTQuNSA4aDEuNyIvPjxwYXRoIGQ9Ik05LjUgMTNINy42Ii8+PHBhdGggZD0iTTE0LjUgMTNoMS45Ii8+JyxrZXlib2FyZDonPHJlY3QgeD0iMiIgeT0iNiIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEyIiByeD0iMiIvPjxsaW5lIHgxPSI2IiB5MT0iMTAiIHgyPSI2IiB5Mj0iMTAiLz48bGluZSB4MT0iMTAiIHkxPSIxMCIgeDI9IjEwIiB5Mj0iMTAiLz48bGluZSB4MT0iMTQiIHkxPSIxMCIgeDI9IjE0IiB5Mj0iMTAiLz48bGluZSB4MT0iMTgiIHkxPSIxMCIgeDI9IjE4IiB5Mj0iMTAiLz48bGluZSB4MT0iNiIgeTE9IjE0IiB4Mj0iNiIgeTI9IjE0Ii8+PGxpbmUgeDE9IjE4IiB5MT0iMTQiIHgyPSIxOCIgeTI9IjE0Ii8+PGxpbmUgeDE9IjkiIHkxPSIxNCIgeDI9IjE1IiB5Mj0iMTQiLz4nLHRlcm1pbmFsOic8cG9seWxpbmUgcG9pbnRzPSI0IDcgOSAxMiA0IDE3Ii8+PGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIyMCIgeTI9IjE3Ii8+JyxjaGF0Oic8cGF0aCBkPSJNMjEgMTJhOCA4IDAgMCAxLTEyLjkgNi4zTDMgMjBsMS43LTUuMUE4IDggMCAxIDEgMjEgMTJ6Ii8+Jyxmb2xkZXI6JzxwYXRoIGQ9Ik0zIDdhMiAyIDAgMCAxIDItMmg0bDIgMmg4YTIgMiAwIDAgMSAyIDJ2OGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiLz4nLHRyYXNoOic8cG9seWxpbmUgcG9pbnRzPSIzIDYgNSA2IDIxIDYiLz48cGF0aCBkPSJNMTkgNmwtMSAxM2EyIDIgMCAwIDEtMiAySDhhMiAyIDAgMCAxLTItMkw1IDYiLz48cGF0aCBkPSJNMTAgMTF2NiIvPjxwYXRoIGQ9Ik0xNCAxMXY2Ii8+PHBhdGggZD0iTTkgNlY0YTEgMSAwIDAgMSAxLTFoNGExIDEgMCAwIDEgMSAxdjIiLz4nLGNoZXZyb25Eb3duOic8cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPicsYmVsbDonPHBhdGggZD0iTTE4IDE2di01YTYgNiAwIDEgMC0xMiAwdjVsLTIgMmgxNnoiLz48cGF0aCBkPSJNMTAgMjFhMiAyIDAgMCAwIDQgMCIvPicsbXVzaWM6JzxwYXRoIGQ9Ik05IDE4VjVsMTItMnYxMyIvPjxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMyIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTYiIHI9IjMiLz4nLHZpYnJhdGU6JzxyZWN0IHg9IjkiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiByeD0iMSIvPjxwYXRoIGQ9Ik01IDh2OCIvPjxwYXRoIGQ9Ik0zIDEwdjQiLz48cGF0aCBkPSJNMTkgOHY4Ii8+PHBhdGggZD0iTTIxIDEwdjQiLz4nLGdsb2JlOic8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PGxpbmUgeDE9IjMiIHkxPSIxMiIgeDI9IjIxIiB5Mj0iMTIiLz48cGF0aCBkPSJNMTIgM2ExNCAxNCAwIDAgMSAwIDE4Ii8+PHBhdGggZD0iTTEyIDNhMTQgMTQgMCAwIDAgMCAxOCIvPicsc21hcnRwaG9uZTonPHJlY3QgeD0iNiIgeT0iMiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIwIiByeD0iMi41Ii8+PGxpbmUgeDE9IjExIiB5MT0iMTgiIHgyPSIxMyIgeTI9IjE4Ii8+JyxkZXNrdG9wOic8cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PGxpbmUgeDE9IjgiIHkxPSIyMCIgeDI9IjE2IiB5Mj0iMjAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMjAiLz4nLGxpbms6JzxwYXRoIGQ9Ik0xMCAxNGE0LjUgNC41IDAgMCAwIDYuMzYgMGwzLTNhNC41IDQuNSAwIDEgMC02LjM2LTYuMzZsLTEuNDIgMS40MSIvPjxwYXRoIGQ9Ik0xNCAxMGE0LjUgNC41IDAgMCAwLTYuMzYgMGwtMyAzYTQuNSA0LjUgMCAxIDAgNi4zNiA2LjM2bDEuNDItMS40MSIvPicscGFsZXR0ZTonPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjYuNSIgcj0iMSIvPjxjaXJjbGUgY3g9IjE3LjUiIGN5PSIxMC41IiByPSIxIi8+PGNpcmNsZSBjeD0iOC41IiBjeT0iNy41IiByPSIxIi8+PGNpcmNsZSBjeD0iNi41IiBjeT0iMTIuNSIgcj0iMSIvPjxwYXRoIGQ9Ik0xMiAzYTkgOSAwIDEgMCAwIDE4IDEuNSAxLjUgMCAwIDAgMS4xLTIuNSAxLjUgMS41IDAgMCAxIDEuMS0yLjVoMi4zQTQuNSA0LjUgMCAwIDAgMjEgMTEuNUMyMSA2LjggMTYuOTcgMyAxMiAzeiIvPicscGxheTonPHBvbHlnb24gcG9pbnRzPSI2IDQgMjAgMTIgNiAyMCA2IDQiLz4nLHdyZW5jaDonPHBhdGggZD0iTTE0LjcgNi4zYTQgNCAwIDEgMSA0IDRsLTkgOS0zLjUgMSAxLTMuNSA3LjUtNy41eiIvPicscGF3Oic8Y2lyY2xlIGN4PSI3LjUiIGN5PSI5IiByPSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNi44IiByPSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxjaXJjbGUgY3g9IjE2LjUiIGN5PSI5IiByPSIyIiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTMuMyIgcj0iMS44IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPjxwYXRoIGQ9Ik03LjIgMTYuM2MuNS0yLjkgMi4zLTQuOCA0LjgtNC44czQuMyAxLjkgNC44IDQuOGMuMyAxLjgtLjkgMy4yLTIuNiAyLjYtLjgtLjMtMS40LS42LTIuMi0uNnMtMS40LjMtMi4yLjZjLTEuNy42LTIuOS0uOC0yLjYtMi42eiIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiLz4nLGVkaXQ6JzxwYXRoIGQ9Ik0xMiAyMGg5Ii8+PHBhdGggZD0iTTE2LjUgMy41YTIuMTIgMi4xMiAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNHoiLz4nLHNpZ25hbDonPHBhdGggZD0iTTIgMTJhMTUgMTUgMCAwIDEgMjAgMCIvPjxwYXRoIGQ9Ik01IDE2YTEwIDEwIDAgMCAxIDE0IDAiLz48cGF0aCBkPSJNOSAyMGE0IDQgMCAwIDEgNiAwIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIyMCIgcj0iMC41IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4nLGZpbGU6JzxwYXRoIGQ9Ik0xNCAzSDZhMiAyIDAgMCAwLTIgMnYxNGEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOXoiLz48cG9seWxpbmUgcG9pbnRzPSIxNCAzIDE0IDkgMjAgOSIvPicsc2lnbWE6Jzxwb2x5bGluZSBwb2ludHM9IjE4IDQgNiA0IDEzIDEyIDYgMjAgMTggMjAiLz4nLHg6JzxwYXRoIGQ9Ik0xOCA2IDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+JyxwbHVzOic8bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSIvPjxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+JyxtaWM6JzxyZWN0IHg9IjkiIHk9IjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjExIiByeD0iMyIvPjxwYXRoIGQ9Ik01IDExYTcgNyAwIDAgMCAxNCAwIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTgiIHgyPSIxMiIgeTI9IjIxIi8+PGxpbmUgeDE9IjkiIHkxPSIyMSIgeDI9IjE1IiB5Mj0iMjEiLz4nLHBhcGVyY2xpcDonPHBhdGggZD0iTTIxLjQ0IDExLjA1IDEyLjI1IDIwLjI0YTYgNiAwIDAgMS04LjQ5LTguNDlsOC44NC04Ljg0YTQgNCAwIDEgMSA1LjY2IDUuNjZMOS40MSAxNy40MWEyIDIgMCAxIDEtMi44My0yLjgzbDguODQtOC44MyIvPid9O2Z1bmN0aW9uIFYoZSx0KXt2YXIgbj1FZFtlXTtpZighbilyZXR1cm4iIjt0PXR8fHt9O3ZhciBpPXQuc2l6ZXx8MTQsYT10LnN0cm9rZVdpZHRofHwxLjgsdT10LmNscz8nIGNsYXNzPSInK3QuY2xzKyciJzoiIixvPXQuZmlsbHx8Im5vbmUiO3JldHVybiI8c3ZnIit1Kycgd2lkdGg9IicraSsnIiBoZWlnaHQ9IicraSsnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IicrbysnIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSInK2ErJyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytuKyI8L3N2Zz4ifWZ1bmN0aW9uIHJuKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7aWYoIWUpcmV0dXJuIHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxudWxsO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtyZXR1cm4gdD8oci5jaGF0U2Nyb2xsRWxlbWVudD10LHQpOihyLmNoYXRTY3JvbGxFbGVtZW50PW51bGwsbnVsbCl9ZnVuY3Rpb24gaWEoZSl7dmFyIHQ9ZXx8cm4oKTtyZXR1cm4gdD9NYXRoLmFicyh0LnNjcm9sbFRvcCk8ci5jaGF0U2Nyb2xsVGhyZXNob2xkOiEwfWZ1bmN0aW9uIFJnKGUpe3IuY2hhdFN0aWNrVG9Cb3R0b209ISFlLHIuY2hhdFN0aWNrVG9Cb3R0b20mJmtuKHtyZW1vdmVEaXZpZGVyOiEwfSksWWUoKX1mdW5jdGlvbiBrbihlKXtlPWV8fHt9O3ZhciB0PXIuY2hhdFVucmVhZENvdW50PjB8fHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg+PTA7aWYoci5jaGF0VW5yZWFkQ291bnQ9MCxyLmNoYXRVbnJlYWRTdGFydEluZGV4PS0xLGUucmVtb3ZlRGl2aWRlciE9PSExKXt2YXIgbj1ybigpO2lmKG4pe3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWRpdmlkZXIiKTtpJiZpLnBhcmVudE5vZGUmJmkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpKX19dCYmWWUoKX1mdW5jdGlvbiBhYShlKXtpZihlfHwoZT1ybigpKSwhIWUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWRpdmlkZXIiKTtpZihyLmNoYXRVbnJlYWRTdGFydEluZGV4PDB8fHIuY2hhdFVucmVhZENvdW50PD0wKXt0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KTtyZXR1cm59Zm9yKHZhciBuPXIuY2hhdFVucmVhZFN0YXJ0SW5kZXgsaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UiKSxhPW51bGwsdT0wO3U8aS5sZW5ndGg7dSsrKXt2YXIgbz1pW3VdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZihvIT09bnVsbCl7dmFyIHM9cGFyc2VJbnQobywxMCk7aWYoIWlzTmFOKHMpJiZzPG4pe2E9aVt1XTticmVha319fXZhciBsPXIuY2hhdFVucmVhZENvdW50KyIgXHU2NzYxXHU2NUIwXHU2RDg4XHU2MDZGIjt0fHwodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0LmNsYXNzTmFtZT0iY2hhdC11bnJlYWQtZGl2aWRlciIsdC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJzZXBhcmF0b3IiKSx0LmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGluZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1kaXZpZGVyLWxhYmVsIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGluZSI+PC9zcGFuPicpLHQucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWRpdmlkZXItbGFiZWwiKS50ZXh0Q29udGVudD1sLGE/KHQubmV4dFNpYmxpbmchPT1hfHx0LnBhcmVudE5vZGUhPT1lKSYmZS5pbnNlcnRCZWZvcmUodCxhKToodC5wYXJlbnROb2RlIT09ZXx8dC5uZXh0U2libGluZyE9PW51bGwpJiZlLmFwcGVuZENoaWxkKHQpfX1mdW5jdGlvbiBZZSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LXVucmVhZC1idWJibGUiKTtpZihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPSFpYSgpLGk9ISF0JiZyLmN1cnJlbnRWaWV3PT09ImNoYXQiJiZuO2UuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsaSksZS5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdW5yZWFkIixyLmNoYXRVbnJlYWRDb3VudD4wKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXVucmVhZC1idWJibGUtY291bnQiKTthJiYoci5jaGF0VW5yZWFkQ291bnQ+MD8oYS50ZXh0Q29udGVudD1yLmNoYXRVbnJlYWRDb3VudD45OT8iOTkrIjpTdHJpbmcoci5jaGF0VW5yZWFkQ291bnQpLGEuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpKTooYS50ZXh0Q29udGVudD0iIixhLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSkpO3ZhciB1PXIuY2hhdFVucmVhZENvdW50PjA/ci5jaGF0VW5yZWFkQ291bnQrIiBcdTY3NjFcdTY1QjBcdTZEODhcdTYwNkZcdUZGMENcdTcwQjlcdTUxRkJcdTY3RTVcdTc3MEIiOiJcdTU2REVcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiO2Uuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix1KSxlLnNldEF0dHJpYnV0ZSgidGl0bGUiLHUpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpO28mJm8uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLWp1bXAtYnRuIixpKX19ZnVuY3Rpb24gWnIoKXt1YSgpfWZ1bmN0aW9uIHVhKGUpe3ZhciB0PWV8fHJuKCk7aWYodCl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1waW4tc3BhY2VyIik7biYmbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9fWZ1bmN0aW9uIE51KGUpe3ZhciB0PXJuKCk7aWYoISghdHx8IXQuaXNDb25uZWN0ZWQpKXtacigpLHVhKHQpLHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwO3ZhciBuPWZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITEsci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxrbih7cmVtb3ZlRGl2aWRlcjohMH0pLFllKCl9O2lmKGUmJnR5cGVvZiB0LnNjcm9sbFRvPT0iZnVuY3Rpb24iKXt0LnNjcm9sbFRvKHt0b3A6MCxiZWhhdmlvcjoic21vb3RoIn0pLHNldFRpbWVvdXQobiwyNjApO3JldHVybn10LnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShuKX19ZnVuY3Rpb24ganUoKXt2YXIgZT1ybigpO1pyKCksZSYmdWEoZSksci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxrbih7cmVtb3ZlRGl2aWRlcjohMH0pLGUmJmUuaXNDb25uZWN0ZWQmJihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMCxyLmNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1EYXRlLm5vdygpKzE4MCxlLnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpLFllKCl9ZnVuY3Rpb24gbHIoKXt2YXIgZT1ybigpO2lmKCFlfHwhZS5pc0Nvbm5lY3RlZClyZXR1cm47aWYoci5jaGF0U2Nyb2xsRWxlbWVudD09PWUmJnIuY2hhdFNjcm9sbEhhbmRsZXIpe1llKCk7cmV0dXJufXIuY2hhdFNjcm9sbEVsZW1lbnQmJihyLmNoYXRTY3JvbGxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci5jaGF0U2Nyb2xsSGFuZGxlciksci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcikpLHIuY2hhdFNjcm9sbEVsZW1lbnQ9ZTtmdW5jdGlvbiB0KCl7WnIoKSxyLmNoYXRTdGlja1RvQm90dG9tPSExLGUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5IikmJmplKCEwKSxZZSgpfXIuY2hhdFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihlLmlzQ29ubmVjdGVkKXtpZihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8RGF0ZS5ub3coKTxyLmNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7WWUoKTtyZXR1cm59dmFyIG49aWEoZSk7aWYobilacigpLHIuY2hhdFN0aWNrVG9Cb3R0b209ITAsa24oe3JlbW92ZURpdmlkZXI6ITB9KTtlbHNle3QoKTtyZXR1cm59WWUoKX19LHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlcj1mdW5jdGlvbihuKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8bi5kZWx0YVk8MCYmdCgpfSxyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcj1mdW5jdGlvbihuKXshbi50b3VjaGVzfHxuLnRvdWNoZXMubGVuZ3RoPT09MHx8KHIuY2hhdFRvdWNoU3RhcnRZPW4udG91Y2hlc1swXS5jbGllbnRZKX0sci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcj1mdW5jdGlvbihuKXtpZighci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGwmJiEoIW4udG91Y2hlc3x8bi50b3VjaGVzLmxlbmd0aD09PTApKXt2YXIgaT1uLnRvdWNoZXNbMF0uY2xpZW50WS1yLmNoYXRUb3VjaFN0YXJ0WTtpPjQmJnQoKX19LGUuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcix7cGFzc2l2ZTohMH0pLGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyLHtwYXNzaXZlOiEwfSksWWUoKX1mdW5jdGlvbiBSdSgpe2lmKHIuY2hhdFJlbmRlcmVkQ291bnQ8ci5jdXJyZW50TWVzc2FnZXMubGVuZ3RoKXtyLmNoYXRSZW5kZXJlZENvdW50Kz1yLmNoYXRQYWdlU2l6ZSxqZSghMCk7cmV0dXJufXZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO2UmJnR5cGVvZiBlLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZlLm1lc3NhZ2VPZmZzZXQ+MCYmUG0oKX12YXIgZHI9bnVsbDtmdW5jdGlvbiBGZCgpe2RyJiYoZHIuZGlzY29ubmVjdCgpLGRyPW51bGwpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCIpO2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbG9hZC1tb3JlLWJ0biIpO3QmJih0Lm9uY2xpY2s9ZnVuY3Rpb24oKXtSdSgpfSk7dmFyIG49ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXMpLGk9d2luZG93LmlubmVyV2lkdGg8PTc2ODtufHxpfHx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHx3aW5kb3cuX193YW5kSW9zTmF0aXZlfHx0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI+InUifHwoZHI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0uaXNJbnRlcnNlY3Rpbmcpe1J1KCk7YnJlYWt9fSx7cm9vdDpybigpLHJvb3RNYXJnaW46IjIwMHB4In0pLGRyLm9ic2VydmUoZSkpfX1mdW5jdGlvbiBoZSgpe3RyeXtyLnNlbGVjdGVkSWQ/bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc2VsZWN0ZWQtc2Vzc2lvbiIsci5zZWxlY3RlZElkKTpsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIil9Y2F0Y2h7fX1mdW5jdGlvbiBvYShlKXtyZXR1cm4gZSYmQXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzOnIuc3RydWN0dXJlZElucHV0UXVldWV9ZnVuY3Rpb24gd2QoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gb2EoZSl9ZnVuY3Rpb24gZWkoZSl7dmFyIHQ9b2EoZSk7ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1BcnJheS5pc0FycmF5KHQpP3Quc2xpY2UoKTpbXX1mdW5jdGlvbiBXdShlLHQpe3JldHVybiEhKGUmJkFycmF5LmlzQXJyYXkoZS5jb250ZW50KSYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4mJnR5cGVvZiBuPT0ib2JqZWN0IiYmblt0XX0pKX1mdW5jdGlvbiBDZChlKXtyZXR1cm4hIShlJiZlLnJvbGU9PT0idXNlciImJld1KGUsIl9fcXVldWVkIikpfWZ1bmN0aW9uIEJkKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJhc3Npc3RhbnQiJiZXdShlLCJfX3Byb2Nlc3NpbmciKSl9ZnVuY3Rpb24gY3IoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuW107Zm9yKHZhciB0PSExLG49W10saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldO2lmKENkKGEpfHxCZChhKSl7dD0hMDtjb250aW51ZX1uLnB1c2goYSl9cmV0dXJuIHQ/bjplfWZ1bmN0aW9uIERkKGUsdCl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpKXJldHVybiBlO3ZhciBuPWUuc2Vzc2lvbktpbmR8fHQmJnQuc2Vzc2lvbktpbmQ7aWYobiE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gZTt2YXIgaT1jcihlLm1lc3NhZ2VzKTtyZXR1cm4gaT09PWUubWVzc2FnZXM/ZTpPYmplY3QuYXNzaWduKHt9LGUse21lc3NhZ2VzOml9KX1mdW5jdGlvbiB6dSgpe3RyeXt2YXIgZT13ZCgpO2lmKCFyLnNlbGVjdGVkSWR8fGUubGVuZ3RoPT09MClyZXR1cm47bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaXRlbXM6ZX0pKX1jYXRjaHt9fWZ1bmN0aW9uIFZ1KGUpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7KCFlfHwhbnx8bi5zZXNzaW9uSWQ9PT1lKSYmbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfWNhdGNoe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKX19ZnVuY3Rpb24gVXUoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpKXtlaShlKSx6dSgpO3JldHVybn10cnl7dmFyIHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpO2lmKCF0KXJldHVybjt2YXIgbj1KU09OLnBhcnNlKHQpO2lmKCFufHxuLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZHx8IUFycmF5LmlzQXJyYXkobi5pdGVtcykpcmV0dXJuO3Iuc3RydWN0dXJlZElucHV0UXVldWU9bi5pdGVtcy5zbGljZSgwLDEwKX1jYXRjaHtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPVtdfX1mdW5jdGlvbiBRdCgpe3RyeXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTApe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKTtyZXR1cm59bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoci5jcm9zc1Nlc3Npb25RdWV1ZSkpfWNhdGNoe319ZnVuY3Rpb24gYW4oKXtyZXR1cm4gci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRDd2R8fCIvdG1wIn1mdW5jdGlvbiBLdSgpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0YSk7aWYoIWUpcmV0dXJue307dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e319Y2F0Y2h7cmV0dXJue319fWZ1bmN0aW9uIGtkKGUpe3RyeXtpZighZXx8T2JqZWN0LmtleXMoZSkubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGEpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0YSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2h7fX1mdW5jdGlvbiBBZCgpe3ZhciBlPXIuc2VsZWN0ZWRJZDtpZighZSlyZXR1cm57fTt2YXIgdD1LdSgpLG49dFtlXTtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiP246e319ZnVuY3Rpb24gRXQoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIG51bGw7dmFyIHQ9QWQoKTtyZXR1cm4gdHlwZW9mIHRbZV09PSJib29sZWFuIj90W2VdOm51bGx9ZnVuY3Rpb24gSnUoZSx0KXtpZighKCFlfHwhci5zZWxlY3RlZElkKSl7dmFyIG49S3UoKSxpPXIuc2VsZWN0ZWRJZCxhPW5baV07KCFhfHx0eXBlb2YgYSE9Im9iamVjdCIpJiYoYT17fSksYVtlXT0hIXQsbltpXT1hLGtkKG4pfX1mdW5jdGlvbiBZdShlLHQpe3JldHVybiBlP2UudXVpZD8ibXNnOiIrZS51dWlkOmUuaWQ/Im1zZzoiK2UuaWQ6ZS5tZXNzYWdlSWQ/Im1zZzoiK2UubWVzc2FnZUlkOmUudHVybklkPyJtc2c6IitlLnR1cm5JZDoibXNnOiIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApOiJtc2c6dW5rbm93bi0iKyh0eXBlb2YgdD09Im51bWJlciI/dDowKX1mdW5jdGlvbiBMdChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07YT09bnVsbHx8YT09PSIifHxuLnB1c2goU3RyaW5nKGEpKX1yZXR1cm4gZSsiOiIrbi5qb2luKCI6Iil9ZnVuY3Rpb24gc2EoZSl7cmV0dXJuIWV8fCFlLmRhdGFzZXQ/IiI6ZS5kYXRhc2V0LmV4cGFuZEtleXx8IiJ9ZnVuY3Rpb24geGQoZSx0KXtpZighZSlyZXR1cm4hMTtzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6cmV0dXJuIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlInRoaW5raW5nIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cGFuZGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7Y2FzZSJpbmxpbmUtdG9vbCI6cmV0dXJuIGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJpbmxpbmUtdG9vbC1vcGVuIik7Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO3JldHVybiBuP24uc3R5bGUuZGlzcGxheSE9PSJub25lIjplLmRhdGFzZXQuZXhwYW5kZWQ9PT0idHJ1ZSJ9Y2FzZSJ0b29sLWdyb3VwIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXJlcGx5IjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXBhbmVsIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBHdShlLHQsbil7aWYoZSlzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbik7YnJlYWt9Y2FzZSJ0aGlua2luZyI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbiksZS5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFuKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpO2lmKGkpe3ZhciBhPWUuZGF0YXNldC50aGlua2luZ3x8IiIsdT1hLnNsaWNlKDAsNTcpKyhhLmxlbmd0aD42MD8iXHUyMDI2IjoiIik7aS50ZXh0Q29udGVudD1uP2E6dX12YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7byYmKG8udGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7YnJlYWt9Y2FzZSJpbmxpbmUtdG9vbCI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIsISFuKTt2YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO3MmJihzLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7YnJlYWt9Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2wmJihsLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIiksZS5kYXRhc2V0LmV4cGFuZGVkPW4/InRydWUiOiJmYWxzZSI7dmFyIGQ9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2QmJihkLnRleHRDb250ZW50PW4/Ilx1MjVCQyI6Ilx1MjVCNiIpO2JyZWFrfWNhc2UidG9vbC1ncm91cCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgZj1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWJvZHkiKTtmJiYoZi5zdHlsZS5kaXNwbGF5PW4/ImJsb2NrIjoibm9uZSIpO3ZhciBjPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtY2hldnJvbiIpO2MmJihjLnN0eWxlLnRyYW5zZm9ybT1uPyJyb3RhdGUoMTgwZGVnKSI6IiIpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcmVwbHkiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7dmFyIHY9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlLWxhYmVsIik7diYmKHYudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7dmFyIGg9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlIik7aCYmKGguc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSxoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEXHU1MTY4XHU2NTg3IikpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcGFuZWwiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7Zm9yKHZhciBnPWUucXVlcnlTZWxlY3RvckFsbCgiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZSIpLG09MDttPGcubGVuZ3RoO20rKyl7dmFyIHk9Z1ttXTt5LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIikseS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG4/Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIpO3ZhciBDPXkucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZS1sYWJlbCIpO0MmJihDLnRleHRDb250ZW50PW4/Ilx1NjUzNlx1OEQ3NyI6Ilx1NUM1NVx1NUYwMCIpfXZhciBFPWUucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtFJiYobj9FLnNjcm9sbFRvcD0wOkUuc2Nyb2xsVG9wPUUuc2Nyb2xsSGVpZ2h0KTticmVha319fWZ1bmN0aW9uIFJuKGUsdCl7dmFyIG49c2EoZSk7biYmSnUobix4ZChlLHQpKX1mdW5jdGlvbiBsYShlKXshZXx8IXIuc2VsZWN0ZWRJZHx8ZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1leHBhbmQta2V5XSIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49c2EodCksaT10LmRhdGFzZXQuZXhwYW5kS2luZHx8IiIsYT1FdChuKTthPT09bnVsbHx8IWl8fEd1KHQsaSxhKX0pfWZ1bmN0aW9uIEhlKCl7cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoPD03Njh9ZnVuY3Rpb24gUXUoKXtyZXR1cm4hIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiYoSGUoKXx8IXIuc2lkZWJhclBpbm5lZCl9ZnVuY3Rpb24gZGEoZSl7ci5maWxlUGFuZWxPcGVuPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsU3RyaW5nKHIuZmlsZVBhbmVsT3BlbikpfWNhdGNoe31yLmZpbGVQYW5lbE9wZW4mJkhlKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSksdW4oKSxyLmZpbGVQYW5lbE9wZW4mJk10KCl9ZnVuY3Rpb24gdGkoKXtkYSghci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiBTZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWNvbnRlbnQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiZmlsZS1wYW5lbC1vcGVuIixyLmZpbGVQYW5lbE9wZW4pLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5maWxlUGFuZWxPcGVuKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiB1bigpe2pyKCksU2QoKX1mdW5jdGlvbiBJZChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1jd2QiKTtpZih0KXt2YXIgbj1lJiZlLmN3ZD9lLmN3ZDphbigpO3QudGFnTmFtZT09PSJJTlBVVCI/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXQmJih0LnZhbHVlPW4sT2codCkpOnQudGV4dENvbnRlbnQ9bix0LnRpdGxlPW47dmFyIGk9dC5jbG9zZXN0KCIuZmlsZS1leHBsb3Jlci1oZWFkZXIiKTtpJiZ1cihpKX19ZnVuY3Rpb24gJHUoKXtyLmZpbGVQYW5lbE9wZW4mJmRhKCExKX1mdW5jdGlvbiBYdShlKXt2YXIgdD1yLnRlcm1pbmFsU2NhbGUrZTtpZih0PU1hdGgubWF4KC41LE1hdGgubWluKDIsdCkpLHQ9TWF0aC5yb3VuZCh0KjQpLzQsdCE9PXIudGVybWluYWxTY2FsZSl7ci50ZXJtaW5hbFNjYWxlPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIixTdHJpbmcodCkpfWNhdGNoe31adSgpLFRkKCl9fWZ1bmN0aW9uIFp1KCl7aWYoISghci50ZXJtaW5hbHx8IXIudGVybWluYWwuZWxlbWVudCkpe3ZhciBlPXIudGVybWluYWxCYXNlRm9udFNpemUqci50ZXJtaW5hbFNjYWxlLHQ9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUpKSxuPU1hdGgubWF4KDEsTWF0aC5yb3VuZChlKjEuNSkpO3IudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLWZvbnQtc2l6ZSIsdCsicHgiKSxyLnRlcm1pbmFsLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGVybS1yb3ctaGVpZ2h0IixuKyJweCIpLHR5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pfX1mdW5jdGlvbiBUZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiKTtlJiYoZS50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyIlIil9dmFyIExkPXsiY2hldnJvbi1sZWZ0IjonPHBhdGggZD0iTTE1IDE4bC02LTYgNi02Ii8+JywiYXJyb3ctdXAiOic8cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz4nLHJlZnJlc2g6JzxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAxIDEtMy02LjciLz48cGF0aCBkPSJNMjEgNHY1aC01Ii8+JyxleWU6JzxwYXRoIGQ9Ik0xIDEyczQtNyAxMS03IDExIDcgMTEgNy00IDctMTEgN1MxIDEyIDEgMTJ6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPicsImV5ZS1vZmYiOic8cGF0aCBkPSJNMTcuOTQgMTcuOTRBMTAuOTQgMTAuOTQgMCAwIDEgMTIgMTljLTcgMC0xMS03LTExLTdhMTkuODYgMTkuODYgMCAwIDEgNC4yMi01LjE4Ii8+PHBhdGggZD0iTTEgMWwyMiAyMiIvPjxwYXRoIGQ9Ik05LjkgNC4yNEExMC45NCAxMC45NCAwIDAgMSAxMiA0YzcgMCAxMSA3IDExIDdhMTkuODMgMTkuODMgMCAwIDEtMy4zNiA0LjI3Ii8+PHBhdGggZD0iTTE0LjEyIDE0LjEyYTMgMyAwIDEgMS00LjI0LTQuMjQiLz4nLHg6JzxwYXRoIGQ9Ik0xOCA2TDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+JyxzZWFyY2g6JzxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjciLz48cGF0aCBkPSJNMjEgMjFsLTQuMy00LjMiLz4nLGNvcHk6JzxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgcng9IjIiLz48cGF0aCBkPSJNNSAxNVY1YTIgMiAwIDAgMSAyLTJoMTAiLz4nLGNsaXBib2FyZDonPHJlY3QgeD0iOCIgeT0iMyIgd2lkdGg9IjgiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTYgNWgyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIiLz4nLGRvd25sb2FkOic8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTUiLz48cGF0aCBkPSJNMTIgMTVWMyIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMjEgMi4xMjEgMCAwIDEgMyAzTDcgMTlsLTQgMSAxLTR6Ii8+JyxzYXZlOic8cGF0aCBkPSJNMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMWw1IDV2MTFhMiAyIDAgMCAxLTIgMnoiLz48cGF0aCBkPSJNMTcgMjF2LThIN3Y4Ii8+PHBhdGggZD0iTTcgM3Y1aDgiLz4nLCJyb3RhdGUtY2N3IjonPHBhdGggZD0iTTMgMTJhOSA5IDAgMSAwIDMtNi43Ii8+PHBhdGggZD0iTTMgNHY1aDUiLz4nLCJ3cmFwLXRleHQiOic8cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTMgMTJoMTVhMyAzIDAgMSAxIDAgNmgtNCIvPjxwYXRoIGQ9Ik0xNiAxNmwtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0zIDE4aDYiLz4nLHR5cGU6JzxwYXRoIGQ9Ik00IDdWNGgxNnYzIi8+PHBhdGggZD0iTTkgMjBoNiIvPjxwYXRoIGQ9Ik0xMiA0djE2Ii8+JyxtaW51czonPHBhdGggZD0iTTUgMTJoMTQiLz4nLHBsdXM6JzxwYXRoIGQ9Ik0xMiA1djE0Ii8+PHBhdGggZD0iTTUgMTJoMTQiLz4nLCJzZW5kLXRvLWlucHV0IjonPHBhdGggZD0iTTIyIDJMMTEgMTMiLz48cGF0aCBkPSJNMjIgMmwtNyAyMC00LTktOS00eiIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ii8+PGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ii8+JywiZm9sZGVyLW9wZW4iOic8cGF0aCBkPSJNNiAxNGwxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiIvPicsaW5mbzonPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIuMDEiIHkyPSI4Ii8+J307ZnVuY3Rpb24gTGUoZSx0KXt0PXR8fHt9O3ZhciBuPUxkW2VdfHwiIixpPXQuc2l6ZXx8MTYsYT10LmNsYXNzTmFtZT8iICIrdC5jbGFzc05hbWU6IiI7cmV0dXJuJzxzdmcgY2xhc3M9IndhbmQtaWNvbiB3YW5kLWljb24tJytlK2ErJyIgd2lkdGg9IicraSsnIiBoZWlnaHQ9IicraSsnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPicrbisiPC9zdmc+In1mdW5jdGlvbiBNZChlKXt2YXIgdD1lfHxhbigpO3JldHVybiB0Pyc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nOic8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTY3MkFcdTkxNERcdTdGNkVcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nfXZhciBxZD17cG5nOiJcdXsxRjVCQ31cdUZFMEYiLGpwZzoiXHV7MUY1QkN9XHVGRTBGIixqcGVnOiJcdXsxRjVCQ31cdUZFMEYiLGdpZjoiXHV7MUY1QkN9XHVGRTBGIix3ZWJwOiJcdXsxRjVCQ31cdUZFMEYiLHN2ZzoiXHV7MUY1QkN9XHVGRTBGIixhdmlmOiJcdXsxRjVCQ31cdUZFMEYiLGJtcDoiXHV7MUY1QkN9XHVGRTBGIixpY286Ilx1ezFGNUJDfVx1RkUwRiIsaGVpYzoiXHV7MUY1QkN9XHVGRTBGIixoZWlmOiJcdXsxRjVCQ31cdUZFMEYiLHBkZjoiXHV7MUY0RDV9Iixkb2M6Ilx1ezFGNEQ4fSIsZG9jeDoiXHV7MUY0RDh9IixvZHQ6Ilx1ezFGNEQ4fSIseGxzOiJcdXsxRjRDQX0iLHhsc3g6Ilx1ezFGNENBfSIsY3N2OiJcdXsxRjRDQX0iLHRzdjoiXHV7MUY0Q0F9IixwcHQ6Ilx1ezFGNEQ5fSIscHB0eDoiXHV7MUY0RDl9IixtcDQ6Ilx1ezFGM0FDfSIsd2VibToiXHV7MUYzQUN9Iixtb3Y6Ilx1ezFGM0FDfSIsbWt2OiJcdXsxRjNBQ30iLG00djoiXHV7MUYzQUN9IixvZ3Y6Ilx1ezFGM0FDfSIsbXAzOiJcdXsxRjNCNX0iLHdhdjoiXHV7MUYzQjV9IixvZ2c6Ilx1ezFGM0I1fSIsbTRhOiJcdXsxRjNCNX0iLGZsYWM6Ilx1ezFGM0I1fSIsYWFjOiJcdXsxRjNCNX0iLG9wdXM6Ilx1ezFGM0I1fSIsemlwOiJcdXsxRjRFNn0iLHRhcjoiXHV7MUY0RTZ9IixnejoiXHV7MUY0RTZ9Iix0Z3o6Ilx1ezFGNEU2fSIsYnoyOiJcdXsxRjRFNn0iLCI3eiI6Ilx1ezFGNEU2fSIscmFyOiJcdXsxRjRFNn0iLHh6OiJcdXsxRjRFNn0iLG1kOiJcdXsxRjRERH0iLG1hcmtkb3duOiJcdXsxRjRERH0iLG1keDoiXHV7MUY0RER9Iixyc3Q6Ilx1ezFGNEREfSIsdHh0OiJcdXsxRjRERH0iLGxvZzoiXHV7MUY0RER9IixodG1sOiJcdXsxRjMxMH0iLGh0bToiXHV7MUYzMTB9Iix4bWw6Ilx1ezFGMzEwfSIsY3NzOiJcdXsxRjNBOH0iLHNjc3M6Ilx1ezFGM0E4fSIsbGVzczoiXHV7MUYzQTh9Iixqc29uOiJcdTI2OTlcdUZFMEYiLGpzb25jOiJcdTI2OTlcdUZFMEYiLHlhbWw6Ilx1MjY5OVx1RkUwRiIseW1sOiJcdTI2OTlcdUZFMEYiLHRvbWw6Ilx1MjY5OVx1RkUwRiIsaW5pOiJcdTI2OTlcdUZFMEYiLGNmZzoiXHUyNjk5XHVGRTBGIixjb25mOiJcdTI2OTlcdUZFMEYiLGVudjoiXHUyNjk5XHVGRTBGIixlZGl0b3Jjb25maWc6Ilx1MjY5OVx1RkUwRiIsdHM6Ilx1ezFGNERDfSIsdHN4OiJcdXsxRjREQ30iLGpzOiJcdXsxRjREQ30iLGpzeDoiXHV7MUY0REN9IixtanM6Ilx1ezFGNERDfSIsY2pzOiJcdXsxRjREQ30iLHB5OiJcdXsxRjREQ30iLHJiOiJcdXsxRjREQ30iLGdvOiJcdXsxRjREQ30iLHJzOiJcdXsxRjREQ30iLGphdmE6Ilx1ezFGNERDfSIsYzoiXHV7MUY0REN9IixjcHA6Ilx1ezFGNERDfSIsaDoiXHV7MUY0REN9IixocHA6Ilx1ezFGNERDfSIsY3M6Ilx1ezFGNERDfSIsc3dpZnQ6Ilx1ezFGNERDfSIsa3Q6Ilx1ezFGNERDfSIsc2NhbGE6Ilx1ezFGNERDfSIscGhwOiJcdXsxRjREQ30iLHNoOiJcdXsxRjREQ30iLGJhc2g6Ilx1ezFGNERDfSIsenNoOiJcdXsxRjREQ30iLGZpc2g6Ilx1ezFGNERDfSIsbHVhOiJcdXsxRjREQ30iLHNxbDoiXHV7MUY0REN9IixncmFwaHFsOiJcdXsxRjREQ30iLHByb3RvOiJcdXsxRjREQ30iLHZ1ZToiXHV7MUY0REN9IixzdmVsdGU6Ilx1ezFGNERDfSIsZGlmZjoiXHV7MUY0REN9IixwYXRjaDoiXHV7MUY0REN9Iix0dGY6Ilx1ezFGNTI0fSIsb3RmOiJcdXsxRjUyNH0iLHdvZmY6Ilx1ezFGNTI0fSIsd29mZjI6Ilx1ezFGNTI0fSIsZW90OiJcdXsxRjUyNH0ifTtmdW5jdGlvbiBlbyhlKXtpZighZSlyZXR1cm4iXHV7MUY0QzR9IjtpZihlLnR5cGU9PT0iZGlyIilyZXR1cm4iXHV7MUY0QzF9Ijt2YXIgdD0oZS5uYW1lfHwiIikudG9Mb3dlckNhc2UoKTtpZih0PT09ImRvY2tlcmZpbGUiKXJldHVybiJcdXsxRjQzM30iO2lmKHQ9PT0ibWFrZWZpbGUiKXJldHVybiJcdXsxRjZFMH1cdUZFMEYiO2lmKHQ9PT0ibGljZW5zZSIpcmV0dXJuIlx1ezFGNERDfSI7aWYodD09PSJyZWFkbWUiKXJldHVybiJcdXsxRjRERH0iO3ZhciBuPXQubGFzdEluZGV4T2YoIi4iKTtpZihuPDB8fG49PT10Lmxlbmd0aC0xKXJldHVybiJcdXsxRjRDNH0iO3ZhciBpPXQuc2xpY2UobisxKTtyZXR1cm4gcWRbaV18fCJcdXsxRjRDNH0ifWZ1bmN0aW9uIFduKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIiI7aWYoZTwxMDI0KXJldHVybiBlKyIgQiI7dmFyIHQ9ZS8xMDI0O2lmKHQ8MTAyNClyZXR1cm4odD49MTA/TWF0aC5yb3VuZCh0KTp0LnRvRml4ZWQoMSkpKyIgS0IiO3ZhciBuPXQvMTAyNDtpZihuPDEwMjQpcmV0dXJuKG4+PTEwP01hdGgucm91bmQobik6bi50b0ZpeGVkKDEpKSsiIE1CIjt2YXIgaT1uLzEwMjQ7cmV0dXJuKGk+PTEwP01hdGgucm91bmQoaSk6aS50b0ZpeGVkKDEpKSsiIEdCIn1mdW5jdGlvbiBQZChlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLnBhcnNlKGUpO3JldHVybiBpc05hTih0KT8iIjpuZXcgRGF0ZSh0KS50b0xvY2FsZVN0cmluZygpfWZ1bmN0aW9uIHRvKCl7aWYoci5maWxlRXhwbG9yZXJDd2QpcmV0dXJuIHIuZmlsZUV4cGxvcmVyQ3dkO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSYmZS5jd2QpcmV0dXJuIGUuY3dkfXJldHVybiBhbigpfWZ1bmN0aW9uIE10KGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBpPWUuY3dkfHx0bygpO2lmKCFpKXt0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2NjNFXHU3OTNBXHU3Njg0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9kaXY+JztyZXR1cm59ci5maWxlRXhwbG9yZXJDd2Q9aSxyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITAsci5hbGxGaWxlcz1bXSxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD0hMSxyLmZpbGVFeHBsb3JlclRvdGFsPTAsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiPjxkaXYgY2xhc3M9InRyZWUtbG9hZGluZyIgc3R5bGU9InBhZGRpbmc6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MC44MTI1cmVtOyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PC9kaXY+JyxuJiYobi50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09biYmKG4udmFsdWU9aSk6bi50ZXh0Q29udGVudD1pLG4udGl0bGU9aSk7dmFyIGE9Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQoaSkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2goYSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7aWYoIXUub2spdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkuIik7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbih1KXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITE7dmFyIG8scyxsO2lmKEFycmF5LmlzQXJyYXkodSk/KG89dSxzPSExLGw9dS5sZW5ndGgpOihvPXUmJnUuaXRlbXN8fFtdLHM9ISEodSYmdS50cnVuY2F0ZWQpLGw9dSYmdS50b3RhbHx8by5sZW5ndGgpLCFvfHxvLmxlbmd0aD09PTApe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTdBN0FcdTc2RUVcdTVGNTVcdTYyMTZcdTY1RTBcdTZDRDVcdThCQkZcdTk1RUVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmFsbEZpbGVzPW8sci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQ9cyxyLmZpbGVFeHBsb3JlclRvdGFsPWwsbm8oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5maWxlRXhwbG9yZXJMb2FkaW5nPSExLHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTY4QzBcdTY3RTVcdThERUZcdTVGODRcdTYyMTZcdTY3NDNcdTk2NTBcdTMwMDI8L2Rpdj4nfSl9fWZ1bmN0aW9uIG5vKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKTtpZihlKXt2YXIgdD1yLmZpbGVFeHBsb3JlckN3ZHx8IiI7aWYodCl7dmFyIG49ci5maWxlU2VhcmNoUXVlcnksaT1yLmFsbEZpbGVzfHxbXSxhPWk7aWYobil7dmFyIHU9bi50b0xvd2VyQ2FzZSgpO2E9aS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIGwubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodSkhPT0tMX0pfWlmKGEubGVuZ3RoPT09MCl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPicrKG4/Ilx1NkNBMVx1NjcwOVx1NjI3RVx1NTIzMFx1NTMzOVx1OTE0RFx1NzY4NFx1NjU4N1x1NEVGNiI6Ilx1N0E3QVx1NzZFRVx1NUY1NSIpKyI8L2Rpdj4iO3JldHVybn12YXIgbz0iIjtpZighbiYmci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQpe3ZhciBzPWkubGVuZ3RoO289JzxkaXYgY2xhc3M9InRyZWUtdHJ1bmNhdGVkIiB0aXRsZT0iXHU1NDBFXHU3QUVGXHU2MzA5XHU1QjU3XHU2QkNEXHU1RThGXHU2NzAwXHU1OTFBXHU4RkQ0XHU1NkRFICcrcysnIFx1OTg3OSI+XHU2NjNFXHU3OTNBXHU1MjREICcrcysiIFx1OTg3OSAvIFx1NTE3MSAiK3IuZmlsZUV4cGxvcmVyVG90YWwrIiBcdTk4Nzk8L2Rpdj4ifWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+JythLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gcm8obCl9KS5qb2luKCIiKSsiPC9kaXY+IitvLGlvKCl9fX1mdW5jdGlvbiBybyhlLHQpe3Q9dHx8MDt2YXIgbj1wKGUubmFtZSksaT1lLnR5cGU9PT0iZGlyIixhPWVvKGUpLHU9aT8iXHUyNUI4IjoiIixvPWk/IiI6IiBlbXB0eSIscz1lLmdpdFN0YXR1cyxsPU9kKHMpLGQ9IiI7cmV0dXJuIWkmJnR5cGVvZiBlLnNpemU9PSJudW1iZXIiJiYoZD0nPHNwYW4gY2xhc3M9InRyZWUtbWV0YSIgdGl0bGU9Ilx1NTkyN1x1NUMwRlx1RkYxQScrcChXbihlLnNpemUpKSsoZS5tdGltZT9gClx1NEZFRVx1NjUzOVx1NjVGNlx1OTVGNFx1RkYxQWArcChQZChlLm10aW1lKSk6IiIpKyciPicrcChXbihlLnNpemUpKSsiPC9zcGFuPiIpLCc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIGRhdGEtcGF0aD0iJytwKGUucGF0aCkrJyIgZGF0YS10eXBlPSInK3AoZS50eXBlKSsnIiBkYXRhLW5hbWU9IicrcChlLm5hbWUpKyciIHRhYmluZGV4PSIwIj48c3BhbiBjbGFzcz0idHJlZS10b2dnbGUnK28rJyI+Jyt1Kyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtaWNvbiI+JythKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+JytuKyI8L3NwYW4+IitkKyhsPyc8c3BhbiBjbGFzcz0iZ2l0LXN0YXR1cy1iYWRnZSAnK2wuY2xhc3MrJyIgdGl0bGU9IicrbC50aXRsZSsnIj4nK2wudGV4dCsiPC9zcGFuPiI6IiIpKyI8L2Rpdj4ifWZ1bmN0aW9uIE9kKGUpe3JldHVybiBlP2Uuc3RhZ2VkPT09ImFkZGVkIj97dGV4dDoiQSIsY2xhc3M6ImdpdC1hZGRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NjVCMFx1NTg5RVx1RkYwOSJ9OmUuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC1tb2RpZmllZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LWRlbGV0ZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnN0YWdlZD09PSJyZW5hbWVkIj97dGV4dDoiUiIsY2xhc3M6ImdpdC1yZW5hbWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU5MUNEXHU1NDdEXHU1NDBEXHVGRjA5In06ZS51bnN0YWdlZD09PSJtb2RpZmllZCI/e3RleHQ6Ik0iLGNsYXNzOiJnaXQtdW5zdGFnZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTRGRUVcdTY1MzlcdUZGMDkifTplLnVuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LXVuc3RhZ2VkLWRlbGV0ZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnVudHJhY2tlZD97dGV4dDoiPyIsY2xhc3M6ImdpdC11bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTpudWxsOm51bGx9ZnVuY3Rpb24gaW8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS10cmVlIik7aWYoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIudHJlZS1pdGVtW2RhdGEtdHlwZT0nZGlyJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe0hkKGkpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdmaWxlJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPWZ1bmN0aW9uKCl7cmkoaS5kYXRhc2V0LnBhdGgpfTtpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhKSxpLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixhKX0pO3ZhciB0PW51bGwsbj0hMTtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxhbyhhLmNsaWVudFgsYS5jbGllbnRZLGkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXtuPSExLHQ9c2V0VGltZW91dChmdW5jdGlvbigpe249ITA7dmFyIHU9YS50b3VjaGVzJiZhLnRvdWNoZXNbMF07YW8odT91LmNsaWVudFg6MCx1P3UuY2xpZW50WTowLGkpfSw1MDApfSx7cGFzc2l2ZTohMH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSl9KX19ZnVuY3Rpb24gSGQoZSl7dmFyIHQ9ZS5kYXRhc2V0LnBhdGgsbj1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLXRvZ2dsZSIpLGk9ZS5uZXh0RWxlbWVudFNpYmxpbmc7aWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoInRyZWUtY2hpbGRyZW4iKSl7dmFyIGE9aS5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTtpLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLCFhKTt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTt1JiYodS50ZXh0Q29udGVudD1hPyJcdXsxRjRDMX0iOiJcdXsxRjRDMn0iKTtyZXR1cm59biYmbi5jbGFzc0xpc3QuYWRkKCJvcGVuIik7dmFyIG89ZS5xdWVyeVNlbGVjdG9yKCIudHJlZS1pY29uIik7byYmKG8udGV4dENvbnRlbnQ9Ilx1ezFGNEMyfSIpO3ZhciBzPSIvYXBpL2RpcmVjdG9yeT9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyImZ2l0U3RhdHVzPXRydWUiO2ZldGNoKHMse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obCl7dmFyIGQ7QXJyYXkuaXNBcnJheShsKT9kPWw6ZD1sJiZsLml0ZW1zfHxbXTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTmFtZT0idHJlZS1jaGlsZHJlbiBvcGVuIiwhZHx8ZC5sZW5ndGg9PT0wP2YuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6ZGVmYXVsdDsiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZSBlbXB0eSI+XHUyNUI4PC9zcGFuPjxzcGFuIGNsYXNzPSJ0cmVlLW5hbWUiPlx1RkYwOFx1N0E3QVx1NzZFRVx1NUY1NVx1RkYwOTwvc3Bhbj48L2Rpdj4nOmYuaW5uZXJIVE1MPWQubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBybyhjKX0pLmpvaW4oIiIpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZixlLm5leHRTaWJsaW5nKSxpbygpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBfZCgpe3ZhciBlPXRvKCk7aWYoZSl7dmFyIHQ9ZS5yZXBsYWNlKC9cLyskLywiIikucmVwbGFjZSgvXC9bXlwvXSskLywiIik7dHx8KHQ9Ii8iKSx0IT09ZSYmTXQoe2N3ZDp0fSl9fWZ1bmN0aW9uIGNhKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighdClyZXR1cm4hMTt2YXIgbj10LnZhbHVlfHwiIixpPW4mJiFuLmVuZHNXaXRoKCIgIikmJiFuLmVuZHNXaXRoKGAKYCk/IiAiOiIiO3QudmFsdWU9bitpK2UsdC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpO3RyeXt0LmZvY3VzKCksdC5zZXRTZWxlY3Rpb25SYW5nZSh0LnZhbHVlLmxlbmd0aCx0LnZhbHVlLmxlbmd0aCl9Y2F0Y2h7fXJldHVybiEwfWZ1bmN0aW9uIG5pKGUpe2lmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KXJldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0KCl9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQoKSk7ZnVuY3Rpb24gdCgpe3RyeXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO24udmFsdWU9ZSxuLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbi5zdHlsZS5sZWZ0PSItOTk5OXB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLG4uc2VsZWN0KCk7dmFyIGk9ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSxpfWNhdGNoe3JldHVybiExfX19ZnVuY3Rpb24gRnQoZSl7aWYodHlwZW9mIHdpbmRvdy5zaG93VG9hc3Q9PSJmdW5jdGlvbiIpe3dpbmRvdy5zaG93VG9hc3QoZSk7cmV0dXJufXZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLW1pbmktdG9hc3QiLHQudGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5hZGQoInNob3ciKX0sMTApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmUoKX0sMjIwKX0sMTYwMCl9ZnVuY3Rpb24gem4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1jb250ZXh0LW1lbnUiKTtlJiZlLnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix6biwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix6biwhMCl9ZnVuY3Rpb24gYW8oZSx0LG4pe3puKCk7dmFyIGk9bi5kYXRhc2V0LnBhdGh8fCIiLGE9bi5kYXRhc2V0LnR5cGV8fCJmaWxlIix1PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIixvPWk7dSYmaS5pbmRleE9mKHUpPT09MCYmKG89aS5zbGljZSh1Lmxlbmd0aCkucmVwbGFjZSgvXlwvKy8sIiIpfHwiLiIpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuaWQ9ImZpbGUtY29udGV4dC1tZW51IixzLmNsYXNzTmFtZT0iZmlsZS1jb250ZXh0LW1lbnUiO3ZhciBsPVtdO2E9PT0iZmlsZSI/bC5wdXNoKHtsYWJlbDoiXHU2MjUzXHU1RjAwXHU5ODg0XHU4OUM4IixpY29uOiJcdXsxRjQ0MX0iLHJ1bjpmdW5jdGlvbigpe3JpKGkpfX0pOmwucHVzaCh7bGFiZWw6Ilx1OEZEQlx1NTE2NVx1NkI2NFx1NzZFRVx1NUY1NSIsaWNvbjoiXHV7MUY0QzJ9IixydW46ZnVuY3Rpb24oKXtNdCh7Y3dkOml9KX19KSxsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTVCOENcdTY1NzRcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7bmkoaSkudGhlbihmdW5jdGlvbigpe0Z0KCJcdTVERjJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiKX0pfX0pLG8mJm8hPT1pJiZsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7bmkobykudGhlbihmdW5jdGlvbigpe0Z0KCJcdTVERjJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiKX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1N0M5OFx1OEQzNFx1OERFRlx1NUY4NFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIsaWNvbjoiXHUyNzBGXHVGRTBGIixydW46ZnVuY3Rpb24oKXtjYShpKSYmRnQoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGE9PT0iZmlsZSImJmwucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNiIsaWNvbjoiXHUyQjA3IixydW46ZnVuY3Rpb24oKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Zy5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChpKSxnLnJlbD0ibm9vcGVuZXIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZyksZy5jbGljaygpLGcucmVtb3ZlKCl9fSkscy5pbm5lckhUTUw9bC5tYXAoZnVuY3Rpb24oZyxtKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmaWxlLWNvbnRleHQtbWVudS1pdGVtIiBkYXRhLWlkeD0iJyttKyciPjxzcGFuIGNsYXNzPSJjdHgtaWNvbiI+JytnLmljb24rJzwvc3Bhbj48c3BhbiBjbGFzcz0iY3R4LWxhYmVsIj4nK3AoZy5sYWJlbCkrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKTt2YXIgZD13aW5kb3cuaW5uZXJXaWR0aCxmPXdpbmRvdy5pbm5lckhlaWdodCxjPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1NYXRoLm1pbihlLGQtYy53aWR0aC04KSxoPU1hdGgubWluKHQsZi1jLmhlaWdodC04KTtzLnN0eWxlLmxlZnQ9TWF0aC5tYXgoOCx2KSsicHgiLHMuc3R5bGUudG9wPU1hdGgubWF4KDgsaCkrInB4IixzLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLWNvbnRleHQtbWVudS1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihnKXtnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihtKXttLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB5PXBhcnNlSW50KGcuZGF0YXNldC5pZHgsMTApO3puKCksbFt5XSYmbFt5XS5ydW4oKX0pfSksc2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix6biwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix6biwhMCl9LDApfXZhciBOPW51bGw7ZnVuY3Rpb24gcmkoZSl7dmFyIHQ9TiYmTi5vdmVybGF5O2lmKHQpe04ucGF0aD1lLE4uZWRpdGluZz0hMSxOLmRpcnR5PSExO3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpO28mJihvLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PicrZ3QoIiIsImZpbGUtcHJldmlldy1wYXRoIikrIjwvZGl2PiIpO3ZhciBzPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7cyYmKHMuaW5uZXJIVE1MPSIiKTt2YXIgbD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO011KGwsIiIpO3ZhciBkPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7ZCYmKGQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+Jyl9ZWxzZXt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctb3ZlcmxheSIsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1tb2RhbCIgdGFiaW5kZXg9Ii0xIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdGl0bGUiPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctaWNvbiI+XHV7MUY0QzR9PC9zcGFuPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLWJsb2NrIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1yb3ciPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctZmlsZW5hbWUiPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvc3Bhbj48L2Rpdj4nK2d0KCIiLCJmaWxlLXByZXZpZXctcGF0aCIpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdG9vbGJhciI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWNsb3NlIiB0aXRsZT0iXHU1MTczXHU5NUVEIChFc2MpIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPicrTGUoIngiLHtzaXplOjE4fSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1jbG9zZSIpLGk9ZnVuY3Rpb24oKXtpZihOJiZOLmRpcnR5JiZ0eXBlb2Ygb249PSJmdW5jdGlvbiIpe29uKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTUxNzNcdTk1RURcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbihjKXtjJiZhKCl9KTtyZXR1cm59YSgpfSxhPWZ1bmN0aW9uKCl7dC5yZW1vdmUoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix1KSxOPW51bGx9O24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGMpe2MudGFyZ2V0PT09dCYmaSgpfSk7dmFyIHU9ZnVuY3Rpb24oYyl7aWYoKGMua2V5PT09InMifHxjLmtleT09PSJTIikmJihjLmN0cmxLZXl8fGMubWV0YUtleSkmJk4mJk4uZWRpdGluZyl7Yy5wcmV2ZW50RGVmYXVsdCgpLGZvKCk7cmV0dXJufWlmKGMua2V5PT09IkVzY2FwZSIpe2lmKE4mJk4uZWRpdGluZyl7Yy5wcmV2ZW50RGVmYXVsdCgpLGNvKCk7cmV0dXJufWkoKTtyZXR1cm59TiYmKGMudGFyZ2V0JiYoYy50YXJnZXQudGFnTmFtZT09PSJJTlBVVCJ8fGMudGFyZ2V0LnRhZ05hbWU9PT0iVEVYVEFSRUEiKXx8Ti5lZGl0aW5nfHwoYy5rZXk9PT0iQXJyb3dMZWZ0Ij8oYy5wcmV2ZW50RGVmYXVsdCgpLHVvKC0xKSk6Yy5rZXk9PT0iQXJyb3dSaWdodCImJihjLnByZXZlbnREZWZhdWx0KCksdW8oMSkpKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLE49e292ZXJsYXk6dCxjbG9zZTppLHBhdGg6ZSxkYXRhOm51bGwsZWRpdGluZzohMSxkaXJ0eTohMX19dmFyIGY9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXBhdGgiKTtNdShmLGUpLGZldGNoKCIvYXBpL2ZpbGUtcHJldmlldz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gYy5qc29uKCkudGhlbihmdW5jdGlvbih2KXtyZXR1cm57b2s6Yy5vayxzdGF0dXM6Yy5zdGF0dXMsZGF0YTp2fX0pfSkudGhlbihmdW5jdGlvbihjKXt2YXIgdj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2lmKCFjLm9rfHxjLmRhdGEmJmMuZGF0YS5lcnJvcil7dmFyIGg9Yy5kYXRhJiZjLmRhdGEuZXJyb3J8fCJcdTUyQTBcdThGN0RcdTU5MzFcdThEMjUiO2Muc3RhdHVzPT09NDEzJiZjLmRhdGEmJmMuZGF0YS5zaXplJiYoaCs9Ilx1RkYwOFx1NjU4N1x1NEVGNlx1NTkyN1x1NUMwRlx1RkYxQSIrV24oYy5kYXRhLnNpemUpKyJcdUZGMDkiKSx2LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWVycm9yIj48c3BhbiBjbGFzcz0icHJldmlldy1lcnJvci1pY29uIj5cdTI2QTA8L3NwYW4+PHNwYW4+JytwKGgpKyI8L3NwYW4+PC9kaXY+IixjLnN0YXR1cz09PTQxMyYmZmEodCx7a2luZDoiYmluYXJ5IixwYXRoOmUsbmFtZTplLnNwbGl0KCIvIikucG9wKCl8fGUsZXh0OiIiLHNpemU6Yy5kYXRhJiZjLmRhdGEuc2l6ZXx8MH0pO3JldHVybn1OLmRhdGE9Yy5kYXRhLG9vKHQsYy5kYXRhKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGM9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtjLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWVycm9yIj48c3BhbiBjbGFzcz0icHJldmlldy1lcnJvci1pY29uIj5cdTI2QTA8L3NwYW4+PHNwYW4+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHU1OTMxXHU4RDI1PC9zcGFuPjwvZGl2Pid9KX1mdW5jdGlvbiB1byhlKXtpZihOKXt2YXIgdD0oci5hbGxGaWxlc3x8W10pLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gcy50eXBlPT09ImZpbGUifSk7aWYodC5sZW5ndGgpe2Zvcih2YXIgbj1OLnBhdGgsaT0tMSxhPTA7YTx0Lmxlbmd0aDthKyspaWYodFthXS5wYXRoPT09bil7aT1hO2JyZWFrfWlmKCEoaTwwKSl7dmFyIHU9KGkrZSt0Lmxlbmd0aCkldC5sZW5ndGgsbz10W3VdLnBhdGg7byYmbyE9PW4mJnJpKG8pfX19fWZ1bmN0aW9uIG9vKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWZpbGVuYW1lIik7biYmKG4udGV4dENvbnRlbnQ9dC5uYW1lKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctaWNvbiIpO2kmJihpLnRleHRDb250ZW50PWVvKHtuYW1lOnQubmFtZSx0eXBlOiJmaWxlIn0pKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdGl0bGUiKSx1PWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1sYW5nIik7dSYmdS5yZW1vdmUoKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7by5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1sYW5nIjt2YXIgcz17aW1hZ2U6Ilx1NTZGRVx1NzI0NyIscGRmOiJQREYiLHZpZGVvOiJcdTg5QzZcdTk4OTEiLGF1ZGlvOiJcdTk3RjNcdTk4OTEiLGJpbmFyeToiXHU0RThDXHU4RkRCXHU1MjM2In07dC5raW5kPT09InRleHQiP28udGV4dENvbnRlbnQ9dC5sYW5nfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fCJ0ZXh0IjpvLnRleHRDb250ZW50PXNbdC5raW5kXXx8KHQuZXh0fHwiIikucmVwbGFjZSgiLiIsIiIpfHx0LmtpbmQsYSYmYS5hcHBlbmRDaGlsZChvKSxmYShlLHQpO3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7bC5pbm5lckhUTUw9IiIsbC5jbGFzc0xpc3QucmVtb3ZlKCJraW5kLXRleHQiLCJraW5kLWltYWdlIiwia2luZC1wZGYiLCJraW5kLXZpZGVvIiwia2luZC1hdWRpbyIsImtpbmQtYmluYXJ5IiksbC5jbGFzc0xpc3QuYWRkKCJraW5kLSIrKHQua2luZHx8InRleHQiKSksdC5raW5kPT09ImltYWdlIj9qZChsLHQpOnQua2luZD09PSJwZGYiP1JkKGwsdCk6dC5raW5kPT09InZpZGVvIj9XZChsLHQpOnQua2luZD09PSJhdWRpbyI/emQobCx0KTp0LmtpbmQ9PT0iYmluYXJ5Ij9WZChsLHQpOnQubGFuZz09PSJtYXJrZG93biJ8fC9cLihtZHxtYXJrZG93bnxtZHgpJC9pLnRlc3QodC5uYW1lfHwiIik/bC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im1hcmtkb3duLXByZXZpZXciPicrWWQodC5jb250ZW50fHwiIikrIjwvZGl2PiI6TmQobCx0KX1mdW5jdGlvbiBOZChlLHQpe3ZhciBuPXZvKHQuY29udGVudHx8IiIsdC5sYW5nKSxpPW4uc3BsaXQoYApgKSxhPWkubWFwKGZ1bmN0aW9uKHUsbyl7cmV0dXJuIG8rMX0pO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctd3JhcHBlciI+PGRpdiBjbGFzcz0iY29kZS1wcmV2aWV3LWxpbmVzIj4nK2Euam9pbihgCmApKyc8L2Rpdj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctY29udGVudCI+PHByZT4nK2kuam9pbihgCmApKyI8L3ByZT48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGpkKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJpbWFnZS1wcmV2aWV3LXdyYXBwZXIiPjxpbWcgY2xhc3M9ImltYWdlLXByZXZpZXctaW1nIiBzcmM9IicrbisnIiBhbHQ9IicrcCh0Lm5hbWUpKyciIC8+PC9kaXY+Jzt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi5pbWFnZS1wcmV2aWV3LWltZyIpO2lmKGkpe3ZhciBhPSExO2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7YT0hYSxpLmNsYXNzTGlzdC50b2dnbGUoInpvb21lZCIsYSl9KX19ZnVuY3Rpb24gUmQoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxpZnJhbWUgY2xhc3M9InBkZi1wcmV2aWV3LWZyYW1lIiBzcmM9IicrbisnIiB0aXRsZT0iJytwKHQubmFtZSkrJyI+PC9pZnJhbWU+J31mdW5jdGlvbiBXZChlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy13cmFwcGVyIj48dmlkZW8gY2xhc3M9Im1lZGlhLXByZXZpZXctdmlkZW8iIGNvbnRyb2xzIHByZWxvYWQ9Im1ldGFkYXRhIiBzcmM9IicrbisnIj5cdTYwQThcdTc2ODRcdTZENEZcdTg5QzhcdTU2NjhcdTRFMERcdTY1MkZcdTYzMDEgdmlkZW8gXHU2ODA3XHU3QjdFXHUzMDAyPC92aWRlbz48ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LW1ldGEiPicrcChXbih0LnNpemUpKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiB6ZChlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy13cmFwcGVyIGF1ZGlvIj48ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LWljb24iPlx1ezFGM0I1fTwvZGl2PjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxhdWRpbyBjbGFzcz0ibWVkaWEtcHJldmlldy1hdWRpbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSBhdWRpbyBcdTY4MDdcdTdCN0VcdTMwMDI8L2F1ZGlvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKFduKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIFZkKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWNhcmQiPjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWljb24iPlx1ezFGNEU2fTwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW5hbWUiPicrcCh0Lm5hbWUpKyc8L2Rpdj48ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1tZXRhIj48c3Bhbj4nK3AoKHQuZXh0fHwiIikucmVwbGFjZSgvXlwuLywiIil8fCJcdTY3MkFcdTc3RTVcdTY4M0NcdTVGMEYiKSsiPC9zcGFuPjxzcGFuPlx4Qjc8L3NwYW4+PHNwYW4+IitwKFduKHQuc2l6ZSkpKyI8L3NwYW4+PC9kaXY+IitndCh0LnBhdGgsImJpbmFyeS1wcmV2aWV3LXBhdGgiKSsnPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctYWN0aW9ucyI+PGEgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWJ0biIgaHJlZj0iJytuKyciIGRvd25sb2FkPSInK3AodC5uYW1lKSsnIj5cdTRFMEJcdThGN0RcdTY1ODdcdTRFRjY8L2E+PGJ1dHRvbiBjbGFzcz0iYmluYXJ5LXByZXZpZXctYnRuIiB0eXBlPSJidXR0b24iIGRhdGEtYWN0aW9uPSJ2aWV3LWNhdCI+XHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU2N0U1XHU3NzBCPC9idXR0b24+PC9kaXY+PC9kaXY+JyxXdChlKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFjdGlvbj0idmlldy1jYXQiXScpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7Y2EoJ2NhdCAtLSAiJyt0LnBhdGgrJyInKSYmRnQoIlx1NTQ3RFx1NEVFNFx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfSl9ZnVuY3Rpb24gZmEoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdG9vbGJhciIpO2lmKG4pe2lmKG4uaW5uZXJIVE1MPSIiLG4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLE4mJk4uZWRpdGluZyl7bi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksZnIoZSx0KTtyZXR1cm59dmFyIGk9W107dC5raW5kPT09InRleHQiJiZpLnB1c2goe2xhYmVsOiJcdTdGMTZcdThGOTFcdTY1ODdcdTRFRjYgKEUpIixpY29uOkxlKCJlZGl0IikscHJpbWFyeTohMCxhY3Rpb246ZnVuY3Rpb24oKXtVZCgpfX0pLGkucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIsaWNvbjpMZSgiY2xpcGJvYXJkIiksYWN0aW9uOmZ1bmN0aW9uKCl7bmkodC5wYXRoKS50aGVuKGZ1bmN0aW9uKCl7RnQoIlx1NURGMlx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIpfSl9fSksaS5wdXNoKHtsYWJlbDoiXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2IixpY29uOkxlKCJzZW5kLXRvLWlucHV0IiksYWN0aW9uOmZ1bmN0aW9uKCl7Y2EodC5wYXRoKSYmRnQoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGkucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RCIsaWNvbjpMZSgiZG93bmxvYWQiKSxhY3Rpb246ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7YS5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpLGEuZG93bmxvYWQ9dC5uYW1lfHwiIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuY2xpY2soKSxhLnJlbW92ZSgpfX0pLHQua2luZD09PSJ0ZXh0IiYmKGkucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NTE2OFx1OTBFOFx1NTE4NVx1NUJCOSIsaWNvbjpMZSgiY29weSIpLGFjdGlvbjpmdW5jdGlvbigpe25pKHQuY29udGVudHx8IiIpLnRoZW4oZnVuY3Rpb24oKXtGdCgiXHU1REYyXHU1OTBEXHU1MjM2XHU1MTg1XHU1QkI5Iil9KX19KSxpLnB1c2goe2xhYmVsOiJcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYzNjJcdTg4NEMiLGljb246TGUoIndyYXAtdGV4dCIpLHRvZ2dsZUNsYXNzOiJ0b29sYmFyLWFjdGl2ZSIsZ2V0SW5pdGlhbDpmdW5jdGlvbigpe3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1jb250ZW50IHByZSIpO3JldHVybiBhJiZhLmNsYXNzTGlzdC5jb250YWlucygid3JhcCIpfSxhY3Rpb246ZnVuY3Rpb24oYSl7dmFyIHU9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIik7dSYmKHUuY2xhc3NMaXN0LnRvZ2dsZSgid3JhcCIpLGEuY2xhc3NMaXN0LnRvZ2dsZSgidG9vbGJhci1hY3RpdmUiLHUuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3cmFwIikpKX19KSxpLnB1c2goe2tpbmQ6Imdyb3VwIixjbGFzc05hbWU6InRvb2xiYXItZ3JvdXAtZm9udHNpemUiLGNoaWxkcmVuOlt7bGFiZWw6Ilx1N0YyOVx1NUMwRlx1NUI1N1x1NTNGNyIsaWNvbjpMZSgibWludXMiKSxhY3Rpb246ZnVuY3Rpb24oKXtwbyhlLC0xKX19LHtraW5kOiJsYWJlbCIsaWNvbjpMZSgidHlwZSIpLGxhYmVsOiJcdTVCNTdcdTUzRjcifSx7bGFiZWw6Ilx1NjUzRVx1NTkyN1x1NUI1N1x1NTNGNyIsaWNvbjpMZSgicGx1cyIpLGFjdGlvbjpmdW5jdGlvbigpe3BvKGUsMSl9fV19KSksc28obixpLGUpfX1mdW5jdGlvbiBzbyhlLHQsbil7dC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2lmKGkua2luZD09PSJncm91cCIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1ncm91cCIrKGkuY2xhc3NOYW1lPyIgIitpLmNsYXNzTmFtZToiIiksaS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKHUua2luZD09PSJsYWJlbCIpe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtvLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXBsYWJlbCIsby50aXRsZT11LmxhYmVsfHwiIixvLmlubmVySFRNTD11Lmljb258fCIiLGEuYXBwZW5kQ2hpbGQobyk7cmV0dXJufWEuYXBwZW5kQ2hpbGQobG8odSkpfSksZS5hcHBlbmRDaGlsZChhKTtyZXR1cm59ZS5hcHBlbmRDaGlsZChsbyhpKSl9KX1mdW5jdGlvbiBsbyhlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtyZXR1cm4gdC50eXBlPSJidXR0b24iLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1idG4iLGUucHJpbWFyeSYmdC5jbGFzc0xpc3QuYWRkKCJwcmltYXJ5IiksZS5kYW5nZXImJnQuY2xhc3NMaXN0LmFkZCgiZGFuZ2VyIiksdC50aXRsZT1lLmxhYmVsLHQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlLmxhYmVsKSx0LmlubmVySFRNTD0nPHNwYW4gY2xhc3M9InRvb2xiYXItaWNvbiI+JysoZS5pY29ufHwiIikrIjwvc3Bhbj4iKyhlLnRleHQ/JzxzcGFuIGNsYXNzPSJ0b29sYmFyLXRleHQiPicrcChlLnRleHQpKyI8L3NwYW4+IjoiIiksZS5nZXRJbml0aWFsJiZlLmdldEluaXRpYWwoKSYmdC5jbGFzc0xpc3QuYWRkKCJ0b29sYmFyLWFjdGl2ZSIpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG4pe24uc3RvcFByb3BhZ2F0aW9uKCksdHlwZW9mIGUuYWN0aW9uPT0iZnVuY3Rpb24iJiZlLmFjdGlvbih0KX0pLHR9ZnVuY3Rpb24gZnIoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctdG9vbGJhciIpO2lmKG4pe24uaW5uZXJIVE1MPSIiO3ZhciBpPU4mJk4uc2F2aW5nLGE9W3tsYWJlbDoiXHU0RkREXHU1QjU4IChDdHJsK1MpIixpY29uOkxlKCJzYXZlIiksdGV4dDoiXHU0RkREXHU1QjU4IixwcmltYXJ5OiEwLGFjdGlvbjpmdW5jdGlvbigpe2ZvKCl9fSx7bGFiZWw6Ilx1NjRBNFx1OTUwMFx1NjUzOVx1NTJBOCIsaWNvbjpMZSgicm90YXRlLWNjdyIpLGFjdGlvbjpmdW5jdGlvbigpe0tkKCl9fSx7bGFiZWw6Ilx1OTAwMFx1NTFGQVx1N0YxNlx1OEY5MSAoRXNjKSIsaWNvbjpMZSgieCIpLGFjdGlvbjpmdW5jdGlvbigpe2NvKCl9fV07c28obixhLGUpLGkmJm4ucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtcHJldmlldy10b29sYmFyLWJ0biIpLmZvckVhY2goZnVuY3Rpb24odSl7dS5kaXNhYmxlZD0hMH0pfX1mdW5jdGlvbiBVZCgpe2lmKCEoIU58fCFOLmRhdGEpKXt2YXIgZT1OLmRhdGE7aWYoZS5raW5kPT09InRleHQiKXtOLmVkaXRpbmc9ITAsTi5kaXJ0eT0hMSxOLm9yaWdpbmFsQ29udGVudD1lLmNvbnRlbnR8fCIiO3ZhciB0PU4ub3ZlcmxheSxuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYobil7bi5jbGFzc0xpc3QuYWRkKCJlZGl0aW5nIiksbi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtZWRpdG9yLXdyYXBwZXIiPjx0ZXh0YXJlYSBjbGFzcz0iY29kZS1lZGl0b3ItdGV4dGFyZWEiIHNwZWxsY2hlY2s9ImZhbHNlIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgd3JhcD0ib2ZmIj48L3RleHRhcmVhPjwvZGl2Pic7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTtpJiYoaS52YWx1ZT1lLmNvbnRlbnR8fCIiLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7dmFyIGE9aS52YWx1ZSE9PShOLm9yaWdpbmFsQ29udGVudHx8IiIpO2EhPT1OLmRpcnR5JiYoTi5kaXJ0eT1hLHByKCkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihhKXtpZihhLmtleT09PSJUYWIiKXthLnByZXZlbnREZWZhdWx0KCk7dmFyIHU9aS5zZWxlY3Rpb25TdGFydCxvPWkuc2VsZWN0aW9uRW5kLHM9IiAgIjtpLnZhbHVlPWkudmFsdWUuc2xpY2UoMCx1KStzK2kudmFsdWUuc2xpY2UobyksaS5zZWxlY3Rpb25TdGFydD1pLnNlbGVjdGlvbkVuZD11K3MubGVuZ3RoLGkuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0IikpfX0pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmZvY3VzKCksaS5zZXRTZWxlY3Rpb25SYW5nZSgwLDApLGkuc2Nyb2xsVG9wPTB9LDMwKSksZmEodCxlKSxwcigpfX19fWZ1bmN0aW9uIGNvKCl7aWYoISghTnx8IU4uZWRpdGluZykpe3ZhciBlPWZ1bmN0aW9uKCl7Ti5lZGl0aW5nPSExLE4uZGlydHk9ITE7dmFyIHQ9Ti5vdmVybGF5LG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSxvbyh0LE4uZGF0YSkscHIoKX07aWYoTi5kaXJ0eSYmdHlwZW9mIG9uPT0iZnVuY3Rpb24iKXtvbih7dHlwZToid2FybmluZyIsdGl0bGU6Ilx1NjUzRVx1NUYwM1x1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NEZFRVx1NjUzOVx1RkYxRiIsbWVzc2FnZToiXHU1RjUzXHU1MjREXHU2NTg3XHU0RUY2XHU2NzA5XHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU2NTM5XHU1MkE4XHVGRjBDXHU5MDAwXHU1MUZBXHU3RjE2XHU4RjkxXHU1NDBFXHU0RjFBXHU0RTIyXHU1OTMxXHUzMDAyIixidXR0b25zOlt7bGFiZWw6Ilx1N0VFN1x1N0VFRFx1N0YxNlx1OEY5MSIsdmFsdWU6ITEsa2luZDoiZ2hvc3QifSx7bGFiZWw6Ilx1NjUzRVx1NUYwM1x1NEZFRVx1NjUzOSIsdmFsdWU6ITAsa2luZDoiZGFuZ2VyIixhdXRvZm9jdXM6ITB9XSxjYW5jZWxWYWx1ZTohMX0pLnRoZW4oZnVuY3Rpb24odCl7dCYmZSgpfSk7cmV0dXJufWUoKX19ZnVuY3Rpb24gS2QoKXtpZighKCFOfHwhTi5lZGl0aW5nKSl7dmFyIGU9Ti5vdmVybGF5LHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTt0JiYodC52YWx1ZT1OLm9yaWdpbmFsQ29udGVudHx8IiIsTi5kaXJ0eT0hMSxwcigpLHQuZm9jdXMoKSl9fWZ1bmN0aW9uIGZvKCl7aWYoISghTnx8IU4uZWRpdGluZykmJiFOLnNhdmluZyl7dmFyIGU9Ti5vdmVybGF5LHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1lZGl0b3ItdGV4dGFyZWEiKTtpZih0KXt2YXIgbj10LnZhbHVlO2lmKG49PT0oTi5vcmlnaW5hbENvbnRlbnR8fCIiKSl7RnQoIlx1NkNBMVx1NjcwOVx1NjUzOVx1NTJBOCIpO3JldHVybn1OLnNhdmluZz0hMCxmcihlLE4uZGF0YSksZmV0Y2goIi9hcGkvZmlsZS13cml0ZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3BhdGg6Ti5wYXRoLGNvbnRlbnQ6bn0pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCkudGhlbihmdW5jdGlvbihhKXtyZXR1cm57b2s6aS5vayxzdGF0dXM6aS5zdGF0dXMsZGF0YTphfX0pfSkudGhlbihmdW5jdGlvbihpKXtpZihOLnNhdmluZz0hMSwhaS5va3x8aS5kYXRhJiZpLmRhdGEuZXJyb3Ipe3ZhciBhPWkuZGF0YSYmaS5kYXRhLmVycm9yfHwiXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1ICgiK2kuc3RhdHVzKyIpIjtGdChhKSxmcihlLE4uZGF0YSk7cmV0dXJufWlmKE4uZGF0YS5jb250ZW50PW4sTi5kYXRhLnNpemU9aS5kYXRhJiZpLmRhdGEuc2l6ZXx8bi5sZW5ndGgsTi5vcmlnaW5hbENvbnRlbnQ9bixOLmRpcnR5PSExLEZ0KCJcdTVERjJcdTRGRERcdTVCNTgiKSxwcigpLGZyKGUsTi5kYXRhKSx0eXBlb2YgTXQ9PSJmdW5jdGlvbiIpdHJ5e010KCl9Y2F0Y2h7fX0pLmNhdGNoKGZ1bmN0aW9uKGkpe04uc2F2aW5nPSExLEZ0KCJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdUZGMUEiKyhpJiZpLm1lc3NhZ2U/aS5tZXNzYWdlOiJcdTdGNTFcdTdFRENcdTk1MTlcdThCRUYiKSksZnIoZSxOLmRhdGEpfSl9fX1mdW5jdGlvbiBwcigpe2lmKE4pe3ZhciBlPU4ub3ZlcmxheTtpZihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctbmFtZS1yb3ciKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZGlydHkiKTtpZihOLmRpcnR5KXtpZighbil7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2kuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctZGlydHkiLGkudGl0bGU9Ilx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NEZFRVx1NjUzOSIsaS50ZXh0Q29udGVudD0iXHUyNUNGIFx1NjcyQVx1NEZERFx1NUI1OCIsdC5hcHBlbmRDaGlsZChpKX19ZWxzZSBuJiZuLnJlbW92ZSgpfX19fWZ1bmN0aW9uIHBvKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIiksaT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctbGluZXMiKTtpZihuKXt2YXIgYT1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUobikuZm9udFNpemUpfHwxMyx1PU1hdGgubWF4KDEwLE1hdGgubWluKDIyLGErdCkpO24uc3R5bGUuZm9udFNpemU9dSsicHgiLGkmJihpLnN0eWxlLmZvbnRTaXplPXUrInB4Iil9fWZ1bmN0aW9uIHZvKGUsdCl7dmFyIG49ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksaT1KZCgpO2lmKCFpKXJldHVybiBuO3ZhciBhPVtdO2Zvcih2YXIgdSBpbiBpKXt2YXIgbz1pW3VdO28mJm8ucGF0dGVybiYmYS5wdXNoKHtwYXR0ZXJuOm8ucGF0dGVybixjbHM6by5jbHMscHJpb3JpdHk6by5wcmlvcml0eXx8NX0pfWEuc29ydChmdW5jdGlvbihkLGYpe3JldHVybiBmLnByaW9yaXR5LWQucHJpb3JpdHl9KTt2YXIgcz1hLm1hcChmdW5jdGlvbihkKXtyZXR1cm4iKCIrZC5wYXR0ZXJuLnNvdXJjZSsiKSJ9KSxsPW5ldyBSZWdFeHAocy5qb2luKCJ8IiksImdtIik7cmV0dXJuIG4ucmVwbGFjZShsLGZ1bmN0aW9uKGQpe2Zvcih2YXIgZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgYz1hW2ZdLHY9bmV3IFJlZ0V4cCgiXiIrYy5wYXR0ZXJuLnNvdXJjZSsiJCIsImdtIik7aWYodi50ZXN0KGQpKXJldHVybic8c3BhbiBjbGFzcz0iJytjLmNscysnIj4nK2QrIjwvc3Bhbj4ifXJldHVybiBkfSl9ZnVuY3Rpb24gSmQoKXtyZXR1cm57Y29tbWVudDp7cGF0dGVybjovXC9cLy4qfCNbXlxuXSoveSxjbHM6InN5bnRheC1jb21tZW50Iixwcmlvcml0eToxfSxzdHJpbmc6e3BhdHRlcm46LyIoPzpbXiJcXF18XFwuKSoifCcoPzpbXidcXF18XFwuKSonfGAoPzpbXmBcXF18XFwuKSpgL3ksY2xzOiJzeW50YXgtc3RyaW5nIixwcmlvcml0eToyfSxrZXl3b3JkOntwYXR0ZXJuOi9cYig/OmFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVidWdnZXJ8ZGVjbGFyZXxkZWZhdWx0fGRlbGV0ZXxkb3xlbHNlfGVudW18ZXhwb3J0fGV4dGVuZHN8ZmluYWxseXxmb3J8ZnJvbXxmdW5jdGlvbnxnZXR8aWZ8aW1wbGVtZW50c3xpbXBvcnR8aW58aW5zdGFuY2VvZnxpbnRlcmZhY2V8bGV0fG1vZHVsZXxuYW1lc3BhY2V8bmV3fG51bGx8b2Z8b3ZlcnJpZGV8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJlYWRvbmx5fHJldHVybnxzZXR8c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRocm93fHRyeXx0eXBlfHR5cGVvZnx1bmRlZmluZWR8dmFyfHZvaWR8d2hpbGV8eWllbGR8YWJzdHJhY3R8YXN8YmFzZXxib29sfGJ5dGV8Y2hhcnxkZWNpbWFsfGRvdWJsZXxldmVudHxleHBsaWNpdHxleHRlcm58ZmFsc2V8Zml4ZWR8ZmxvYXR8Zm9yZWFjaHxnb3RvfGltcGxpY2l0fGlufGludHxpbnRlcm5hbHxpc3xsb2NrfGxvbmd8b2JqZWN0fG9wZXJhdG9yfG91dHxwYXJhbXN8cGFydGlhbHxyZWFkb25seXxyZWZ8c2J5dGV8c2VhbGVkfHNob3J0fHNpemVvZnxzdGFja2FsbG9jfHN0cmluZ3xzdHJ1Y3R8c3dpdGNofHRocm93fHRydWV8dHJ5fHVpbnR8dWxvbmd8dW5jaGVja2VkfHVuc2FmZXx1c2hvcnR8dXNpbmd8dmlydHVhbHx2b2xhdGlsZXx3aGVyZXx3aGlsZXx3aXRofHlpZWxkfGRlZnxlbGlmfGVsc2V8ZXhjZXB0fGV4ZWN8ZmluYWxseXxmb3J8ZnJvbXxnbG9iYWx8aWZ8aW1wb3J0fGxhbWJkYXxub25sb2NhbHxub3R8b3J8cGFzc3xwcmludHxyYWlzZXxyZXR1cm58dHJ5fHdoaWxlfHdpdGh8eWllbGR8VHJ1ZXxGYWxzZXxOb25lfGFuZHxpbnxpc3xsYW1iZGF8bm90fG9yfGZufHB1Ynx1c2V8bW9kfGltcGx8dHJhaXR8c3RydWN0fGVudW18bWF0Y2h8bG9vcHx3aGlsZXxmb3J8aWZ8ZWxzZXxyZXR1cm58c2VsZnxzdXBlcnxjcmF0ZXx3aGVyZXxhc3luY3xhd2FpdHxtb3ZlfHJlZnxtdXR8c3RhdGljfGNvbnN0fHVuc2FmZXxleHRlcm58dXNlfGFzfGltcGx8c3RydWN0fGVudW18dHlwZXxmbnxsZXR8bG9vcHxpZnxlbHNlfG1hdGNofHJldHVybnxzZWxmfFNlbGZ8bW9kfHB1YnxjcmF0ZXxtYWNyb3xkZXJpdmV8d2hlcmV8YXN5bmN8YXdhaXR8ZHlufHNlbGZ8cGFja2FnZXxmdW5jfGdvfHJldHVybnxkZWZlcnxnb3xpZnxlbHNlfHN3aXRjaHxjYXNlfGRlZmF1bHR8Zm9yfHJhbmdlfHNlbGVjdHxicmVha3xjb250aW51ZXxmYWxsdGhyb3VnaHxjb25zdHxzdHJ1Y3R8ZW51bXx0eXBlfGludGVyZmFjZXxtYXB8Y2hhbnx2YXJ8bmlsfHRydWV8ZmFsc2V8aW90YXxsZW58Y2FwfGFwcGVuZHxtYWtlfG5ld3xwYW5pY3xyZWNvdmVyfHNlbGVjdHxlbHNlfGlmfGVsaWZ8ZW5kfGZvcnxmdW5jdGlvbnxpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlfGVuZHxhbmR8YmVnaW58ZG98ZW5kfGZhbHNlfGZvcnxmdW5jdGlvbnxpZnxpbnxsb2NhbHxuaWx8bm90fG9yfHJlcGVhdHxyZXR1cm58dGhlbnx0cnVlfHVudGlsfHdoaWxlKVxiL3ksY2xzOiJzeW50YXgta2V5d29yZCIscHJpb3JpdHk6M30sbnVtYmVyOntwYXR0ZXJuOi9cYig/OjB4W1xkYS1mQS1GXSt8MGJbMDFdK3wwb1swLTddK3xcZCtcLj9cZCooPzplWystXT9cZCspPylcYi95LGNsczoic3ludGF4LW51bWJlciIscHJpb3JpdHk6Mn0sZnVuY3Rpb246e3BhdHRlcm46L1xiW0EtWl1bYS16QS1aMC05XSpbYS16XVx3Kig/PVxzKlwoKS95LGNsczoic3ludGF4LWZ1bmN0aW9uIixwcmlvcml0eTo0fSx0eXBlOntwYXR0ZXJuOi9cYig/OnN0cmluZ3xudW1iZXJ8Ym9vbGVhbnx2b2lkfGFueXx1bmtub3dufG5ldmVyfG9iamVjdHxzeW1ib2x8YmlnaW50fEFycmF5fE9iamVjdHxTdHJpbmd8TnVtYmVyfEJvb2xlYW58TWFwfFNldHxXZWFrTWFwfFdlYWtTZXR8UHJvbWlzZXxFcnJvcnxUeXBlfEludGVyZmFjZXxFbnVtfENsYXNzfFN0cnVjdHxJbXBsfFRyYWl0fGZufGZuY3xmdW5jfGZ1bmN0aW9ufGRlZnxwcm9jfGZ1bnxwdWJ8c3RhdGljfGNvbnN0fGxldHx2YXJ8aW50fGZsb2F0fGRvdWJsZXxib29sfGNoYXJ8Ynl0ZXxzdHJpbmd8dTh8dTE2fHUzMnx1NjR8aTh8aTE2fGkzMnxpNjR8ZjMyfGY2NHx1c2l6ZXxpc2l6ZXxzdHJ8VmVjfEhhc2hNYXB8T3B0aW9ufFJlc3VsdHxCb3h8UmN8QXJjfENlbGx8UmVmQ2VsbClcYi95LGNsczoic3ludGF4LXR5cGUiLHByaW9yaXR5OjR9LG9wZXJhdG9yOntwYXR0ZXJuOi9bK1wtKi8lPTw+ISZ8Xn4/Ol0rfFwuXC5cLj8veSxjbHM6InN5bnRheC1vcGVyYXRvciIscHJpb3JpdHk6NX0scHVuY3R1YXRpb246e3BhdHRlcm46L1t7fVtcXSgpOyxcLl0veSxjbHM6InN5bnRheC1wdW5jdHVhdGlvbiIscHJpb3JpdHk6Nn19fWZ1bmN0aW9uIFlkKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXAoZSk7dD10LnJlcGxhY2UoL2BgYChcdyopXG4oW1xzXFNdKj8pYGBgL2csZnVuY3Rpb24oaSxhLHUpe3ZhciBvPXZvKHUudHJpbSgpLGEpLHM9by5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKTtyZXR1cm4nPHByZT48Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtJythKyciPicrcysiPC9jb2RlPjwvcHJlPiJ9KSx0PXQucmVwbGFjZSgvYChbXmBdKylgL2csZnVuY3Rpb24oaSxhKXtyZXR1cm4iPGNvZGU+IithLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpKyI8L2NvZGU+In0pLHQ9dC5yZXBsYWNlKC9eIyMjIyMjXHMrKC4qKSQvZ20sIjxoNj4kMTwvaDY+IiksdD10LnJlcGxhY2UoL14jIyMjI1xzKyguKikkL2dtLCI8aDU+JDE8L2g1PiIpLHQ9dC5yZXBsYWNlKC9eIyMjI1xzKyguKikkL2dtLCI8aDQ+JDE8L2g0PiIpLHQ9dC5yZXBsYWNlKC9eIyMjXHMrKC4qKSQvZ20sIjxoMz4kMTwvaDM+IiksdD10LnJlcGxhY2UoL14jI1xzKyguKikkL2dtLCI8aDI+JDE8L2gyPiIpLHQ9dC5yZXBsYWNlKC9eI1xzKyguKikkL2dtLCI8aDE+JDE8L2gxPiIpLHQ9dC5yZXBsYWNlKC9cKlwqXCooLis/KVwqXCpcKi9nLCI8c3Ryb25nPjxlbT4kMTwvZW0+PC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqXCooLis/KVwqXCovZywiPHN0cm9uZz4kMTwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKiguKz8pXCovZywiPGVtPiQxPC9lbT4iKSx0PXQucmVwbGFjZSgvKF58W15cd10pX19fKFxTKD86W15cbl0qP1xTKT8pX19fKD8hXHcpL2csIiQxPHN0cm9uZz48ZW0+JDI8L2VtPjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfXyhcUyg/OlteXG5dKj9cUyk/KV9fKD8hXHcpL2csIiQxPHN0cm9uZz4kMjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfKFxTKD86W15cbl9dKj9cUyk/KV8oPyFcdykvZywiJDE8ZW0+JDI8L2VtPiIpLHQ9dC5yZXBsYWNlKC9+figuKz8pfn4vZywiPGRlbD4kMTwvZGVsPiIpLHQ9dC5yZXBsYWNlKC9cWyhbXlxdXSspXF1cKChbXildKylcKS9nLCc8YSBocmVmPSIkMiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPiQxPC9hPicpLHQ9dC5yZXBsYWNlKC8hXFsoW15cXV0qKVxdXCgoW14pXSspXCkvZywnPGltZyBzcmM9IiQyIiBhbHQ9IiQxIj4nKSx0PXQucmVwbGFjZSgvXiZndDtccysoLiopJC9nbSwiPGJsb2NrcXVvdGU+JDE8L2Jsb2NrcXVvdGU+IiksdD10LnJlcGxhY2UoL14tLS0rJC9nbSwiPGhyPiIpLHQ9dC5yZXBsYWNlKC9eXCpcKlwqKyQvZ20sIjxocj4iKSx0PXQucmVwbGFjZSgvXltcLVwqXVxzKyguKikkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9dC5yZXBsYWNlKC8oPGxpPi4qPFwvbGk+XG4/KSsvZywiPHVsPiQmPC91bD4iKSx0PXQucmVwbGFjZSgvXlxkK1wuXHMrKC4qKSQvZ20sIjxsaT4kMTwvbGk+IiksdD1tbCh0KTt2YXIgbj10LnNwbGl0KC9cbnsyLH0vKTtyZXR1cm4gdD1uLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gaT1pLnRyaW0oKSxpPy9ePChoWzEtNl18dWx8b2x8bGl8YmxvY2txdW90ZXxwcmV8dGFibGV8aHJ8ZGl2KS8udGVzdChpKT9pOiI8cD4iK2kucmVwbGFjZSgvXG4vZywiPGJyPiIpKyI8L3A+IjoiIn0pLmpvaW4oYApgKSx0fWZ1bmN0aW9uIG1vKCl7aWYoIXIuc2VsZWN0ZWRJZHx8IXIuZ2l0U3RhdHVzfHwhci5naXRTdGF0dXMuaXNHaXR8fHIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkKXJldHVybiIiO3ZhciBlPXIuZ2l0U3RhdHVzLmJyYW5jaHx8Ij8iLHQ9ci5naXRTdGF0dXMubW9kaWZpZWRDb3VudHx8MCxuPWUrKHQ/IiAgXHhCNyAgIit0KyIgXHU0RTJBXHU2NTg3XHU0RUY2XHU1Rjg1XHU2M0QwXHU0RUE0IjoiICBceEI3ICBcdTVERTVcdTRGNUNcdTUzM0FcdTVFNzJcdTUxQzAiKTtyZXR1cm4nPGJ1dHRvbiBpZD0idG9wYmFyLWdpdC1iYWRnZSIgY2xhc3M9InRvcGJhci1naXQtYmFkZ2UiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrcChuKSsnIiBhcmlhLWxhYmVsPSJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTQiPjxzdmcgY2xhc3M9InRvcGJhci1naXQtaWNvbiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIyIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIyIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSI5IiByPSIyIi8+PHBhdGggZD0iTTYgOHY4Ii8+PHBhdGggZD0iTTE4IDExdjFhMyAzIDAgMCAxLTMgM0g5Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InRvcGJhci1naXQtYnJhbmNoIj4nK3AoZSkrIjwvc3Bhbj4iKyh0PjA/JzxzcGFuIGNsYXNzPSJ0b3BiYXItZ2l0LWNvdW50Ij5ceEI3Jyt0KyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InRvcGJhci1naXQtY2xlYW4iIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTI3MTM8L3NwYW4+JykrIjwvYnV0dG9uPiJ9ZnVuY3Rpb24gcGEoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1zbG90Iik7aWYoZSl7ZS5pbm5lckhUTUw9bW8oKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1iYWRnZSIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG4pe24ucHJldmVudERlZmF1bHQoKSxnbygpfSl9fWZ1bmN0aW9uIEdkKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXIudG9wYmFyTW9yZU9wZW4sbj0hIWUuY2xhdWRlU2Vzc2lvbklkLGk9ISFlLmN3ZCxhPWUud29ya3RyZWVFbmFibGVkJiZlLndvcmt0cmVlJiZlLndvcmt0cmVlLmJyYW5jaCYmZS53b3JrdHJlZS5wYXRoLHU9ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdlZCImJmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMSxvPWUuc3RhdHVzPT09InJ1bm5pbmcifHxlLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2luZyIscz1hJiZlLndvcmt0cmVlTWVyZ2VTdGF0dXMhPT0ibWVyZ2VkIixsPXUsZD1ufHxpfHwhMCxmPXN8fGx8fCEwLGM9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiByeD0iMiIgcnk9IjIiLz48cGF0aCBkPSJNNSAxNUg0YTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDlhMiAyIDAgMCAxIDIgMnYxIi8+PC9zdmc+Jyx2PSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xNy41IDE5YTQuNSA0LjUgMCAxIDAtMS41LTguNzRBNiA2IDAgMSAwIDYgMTRoMTEuNXoiLz48L3N2Zz4nLGg9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+JyxnPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSI0IiB5MT0iOSIgeDI9IjIwIiB5Mj0iOSIvPjxsaW5lIHgxPSI0IiB5MT0iMTUiIHgyPSIyMCIgeTI9IjE1Ii8+PGxpbmUgeDE9IjEwIiB5MT0iMyIgeDI9IjgiIHkyPSIyMSIvPjxsaW5lIHgxPSIxNiIgeTE9IjMiIHgyPSIxNCIgeTI9IjIxIi8+PC9zdmc+JyxtPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik03IDdoMTAiLz48cGF0aCBkPSJNNyAxMmgxMCIvPjxwYXRoIGQ9Ik03IDE3aDEwIi8+PHBhdGggZD0iTTUgN2wtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0xOSAxNWwyIDItMiAyIi8+PC9zdmc+Jyx5PSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPicsQz0iIjtpZihuKXt2YXIgRT1lLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHU1OTBEXHU1MjM2IENvZGV4IHRocmVhZCBJRCI6Ilx1NTkwRFx1NTIzNiBDbGF1ZGUgXHU0RjFBXHU4QkREIElEIjtDKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktY2xhdWRlLXNlc3Npb24taWQiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrdisiPHNwYW4+IitFKyI8L3NwYW4+PC9idXR0b24+In1pJiYoQys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LWN3ZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytoKyI8c3Bhbj5cdTU5MERcdTUyMzZcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+IiksQys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LXNlc3Npb24taWQiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrZysiPHNwYW4+XHU1OTBEXHU1MjM2XHU0RjFBXHU4QkREIElEPC9zcGFuPjwvYnV0dG9uPiI7dmFyIEI9IiI7cz9CKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249Indvcmt0cmVlLW1lcmdlIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIicrKG8/IiBkaXNhYmxlZCI6IiIpKyI+IittKyI8c3Bhbj5cdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkZcdTIwMjY8L3NwYW4+PC9idXR0b24+IjpsJiYoQis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1jbGVhbnVwIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK20rIjxzcGFuPlx1OTFDRFx1OEJENSB3b3JrdHJlZSBcdTZFMDVcdTc0MDY8L3NwYW4+PC9idXR0b24+IiksQis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0gdG9wYmFyLW1vcmUtaXRlbS1kYW5nZXIiIGRhdGEtYWN0aW9uPSJkZWxldGUtc2Vzc2lvbiIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+Jyt5KyI8c3Bhbj5cdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCREQ8L3NwYW4+PC9idXR0b24+Ijt2YXIgRD1kJiZmPyc8ZGl2IGNsYXNzPSJ0b3BiYXItbW9yZS1kaXZpZGVyIiByb2xlPSJzZXBhcmF0b3IiPjwvZGl2Pic6IiI7cmV0dXJuJzxkaXYgY2xhc3M9InRvcGJhci1tb3JlLXdyYXAiPjxidXR0b24gaWQ9InRvcGJhci1tb3JlLWJ1dHRvbiIgY2xhc3M9InRvcGJhci1idG4gc3F1YXJlJysodD8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2NENEXHU0RjVDIiBhcmlhLWhhc3BvcHVwPSJtZW51IiBhcmlhLWV4cGFuZGVkPSInKyh0PyJ0cnVlIjoiZmFsc2UiKSsnIiB0aXRsZT0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2NENEXHU0RjVDIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxIi8+PC9zdmc+PC9idXR0b24+PGRpdiBpZD0idG9wYmFyLW1vcmUtbWVudSIgY2xhc3M9InRvcGJhci1tb3JlLW1lbnUnKyh0PyIiOiIgaGlkZGVuIikrJyIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIj4nK0MrRCtCKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEFuKGUsdCl7aWYoIWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTt2YXIgbj10JiZ0LmZvcmNlLGk9RGF0ZS5ub3coKTtpZighbiYmci5naXRTdGF0dXNTZXNzaW9uSWQ9PT1lJiZyLmdpdFN0YXR1cyYmaS1yLmdpdFN0YXR1c0xhc3RGZXRjaEF0PDFlMylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIuZ2l0U3RhdHVzKTtpZihyLmdpdFN0YXR1c0luZmxpZ2h0JiZyLmdpdFN0YXR1c0luZmxpZ2h0LnNlc3Npb25JZD09PWUpcmV0dXJuIHIuZ2l0U3RhdHVzSW5mbGlnaHQucHJvbWlzZTtyLmdpdFN0YXR1c0xvYWRpbmc9ITA7dmFyIGE9ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi9naXQtc3RhdHVzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUub2s/dS5qc29uKCk6e2lzR2l0OiExfX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHIuZ2l0U3RhdHVzPXV8fHtpc0dpdDohMX0sci5naXRTdGF0dXNTZXNzaW9uSWQ9ZSxyLmdpdFN0YXR1c0xhc3RGZXRjaEF0PURhdGUubm93KCkscGEoKSx1fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gci5naXRTdGF0dXM9e2lzR2l0OiExfSxyLmdpdFN0YXR1c1Nlc3Npb25JZD1lLHIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ9RGF0ZS5ub3coKSxwYSgpLG51bGx9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5naXRTdGF0dXNMb2FkaW5nPSExLHIuZ2l0U3RhdHVzSW5mbGlnaHQmJnIuZ2l0U3RhdHVzSW5mbGlnaHQuc2Vzc2lvbklkPT09ZSYmKHIuZ2l0U3RhdHVzSW5mbGlnaHQ9bnVsbCl9KTtyZXR1cm4gci5naXRTdGF0dXNJbmZsaWdodD17c2Vzc2lvbklkOmUscHJvbWlzZTphfSxhfXZhciB4bj1udWxsLFNuPW51bGwsV2c9bnVsbDtmdW5jdGlvbiBRZChlKXtyZXR1cm4gZT09PSJjb21taXQtdGFnInx8ZT09PSJjb21taXQtdGFnLXB1c2gifHxlPT09ImNvbW1pdC1wdXNoIj9lOiJjb21taXQifWZ1bmN0aW9uICRkKGUpe3JldHVybiBlPVFkKGUpLGU9PT0iY29tbWl0LXRhZy1wdXNoIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFRhZyArIFB1c2giLHZlcmI6Ilx1NjNEMFx1NEVBNFx1MzAwMVx1NjI1MyBUYWcgXHU1RTc2XHU2M0E4XHU5MDAxIix3aXRoVGFnOiEwLHB1c2g6ITAsdG9uZToiYWxsIn06ZT09PSJjb21taXQtdGFnIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFRhZyIsdmVyYjoiXHU2M0QwXHU0RUE0XHU1RTc2XHU2MjUzIFRhZyIsd2l0aFRhZzohMCxwdXNoOiExLHRvbmU6InRhZyJ9OmU9PT0iY29tbWl0LXB1c2giP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgUHVzaCIsdmVyYjoiXHU2M0QwXHU0RUE0XHU1RTc2XHU2M0E4XHU5MDAxIix3aXRoVGFnOiExLHB1c2g6ITAsdG9uZToicHVzaCJ9OnthY3Rpb246ImNvbW1pdCIsbGFiZWw6IkNvbW1pdCIsdmVyYjoiXHU0RUM1XHU2M0QwXHU0RUE0Iix3aXRoVGFnOiExLHB1c2g6ITEsdG9uZToiY29tbWl0In19ZnVuY3Rpb24gZ28oKXtpZihyLnNlbGVjdGVkSWQpe3IucXVpY2tDb21taXRPcGVuPSEwLHIucXVpY2tDb21taXRTdWJtaXR0aW5nPSExLHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz0hMSxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdEZvcm09e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0sci5xdWlja0NvbW1pdFB1c2hpbmc9ITEsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdCIsbnIoKSxobigpLHJyKCkscXQoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7ZSYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxKaShlKSkseG4mJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHhuKSx4bj1mdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnF1aWNrQ29tbWl0T3BlbiYmIXIucXVpY2tDb21taXRTdWJtaXR0aW5nJiYhci5xdWlja0NvbW1pdFB1c2hpbmcmJlZuKCl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHhuKSxBbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZxdCgpfSl9fWZ1bmN0aW9uIFZuKCl7ci5xdWlja0NvbW1pdE9wZW49ITEsci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0Ijt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7ZSYmZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSx4biYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHhuKSx4bj1udWxsKSxTbiYmKFNuKCksU249bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKX1mdW5jdGlvbiBxdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtpZihlKXtTbiYmKFNuKCksU249bnVsbCk7dmFyIHQ9Ym8oKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uaW5uZXJIVE1MPXQ7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIjcXVpY2stY29tbWl0LW1vZGFsIik7aSYmKGUuaW5uZXJIVE1MPWkuaW5uZXJIVE1MLGhvKCkpfX1mdW5jdGlvbiBobygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtY2xvc2UtYnRuIik7ZSYmZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsVm4pO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtY2FuY2VsLWJ0biIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFZuKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LWFpLWJ0biIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRjKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtpJiYoaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWkudmFsdWV9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKG8peyhvLm1ldGFLZXl8fG8uY3RybEtleSkmJm8ua2V5PT09IkVudGVyIiYmKG8ucHJldmVudERlZmF1bHQoKSxVbigiY29tbWl0IikpfSkpO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7YSYmKGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEZvcm0udGFnPWEudmFsdWUsci5xdWlja0NvbW1pdEZvcm0udGFnRWRpdGVkPSEwfSksYS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihvKXtvLmtleT09PSJFbnRlciImJihvLnByZXZlbnREZWZhdWx0KCksVW4oImNvbW1pdC10YWciKSl9KSk7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1wdXNoLWFmdGVyLWJ0biIpO3UmJnUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIG89ci5xdWlja0NvbW1pdFJlc3VsdHx8e307bmMoe3B1c2hDb21taXRzOiEwLHB1c2hUYWdzOiEhby50YWdOYW1lLGNsb3NlT25TdWNjZXNzOiEwfSl9KSxlYygpfWZ1bmN0aW9uIFhkKGUpe3ZhciB0PSEhKGUmJmUudGFnKSxuPSEhKGUmJmUucHVzaCk7cmV0dXJuIHQmJm4/ImNvbW1pdC10YWctcHVzaCI6dD8iY29tbWl0LXRhZyI6bj8iY29tbWl0LXB1c2giOiJjb21taXQifXZhciBaZD01OCxpaT0xMDtmdW5jdGlvbiB5byhlKXtyZXR1cm4gZT09PSJ0YWciP3thY3Rpb246ImNvbW1pdC10YWciLHN1YjohMX06ZT09PSJwdXNoIj97YWN0aW9uOiJjb21taXQtcHVzaCIsc3ViOiExfTplPT09InN1YiI/e2FjdGlvbjoiY29tbWl0IixzdWI6ITB9OnthY3Rpb246ImNvbW1pdCIsc3ViOiExfX1mdW5jdGlvbiBlYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWZpZWxkIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1zdGFnZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stbGF1bmNoIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1jbHVzdGVyIik7aWYoIWV8fCF0fHwhbnx8IWkpcmV0dXJuO3ZhciBhPVsiY29tbWl0IiwidGFnIiwicHVzaCJdLHU9e307aWYoYS5mb3JFYWNoKGZ1bmN0aW9uKGspe3Vba109ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jaGlwPSInK2srJyJdJyl9KSwhdS5jb21taXR8fCF1LnRhZ3x8IXUucHVzaClyZXR1cm47dS5zdWI9ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jaGlwPSJzdWIiXScpO3ZhciBvPSEhdS5zdWIscz1vP2EuY29uY2F0KFsic3ViIl0pOmE7ZnVuY3Rpb24gbChrKXtyZXR1cm4gdVtrXT91W2tdLm9mZnNldFdpZHRoOjkwfWZ1bmN0aW9uIGQoKXtyZXR1cm4gdS5jb21taXQ/dS5jb21taXQub2Zmc2V0SGVpZ2h0OjM4fWZ1bmN0aW9uIGYoKXtyZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3MjBweCkiKS5tYXRjaGVzfWZ1bmN0aW9uIGMoKXt2YXIgaz1lLmNsaWVudFdpZHRoLFQ9ZS5jbGllbnRIZWlnaHQsTT1kKCksWT1sKCJjb21taXQiKSx6PWwoInRhZyIpLFE9bCgicHVzaCIpO2lmKGYoKSYmbyl7dmFyIGxlPU1hdGgubWF4KDgsVCouMi1NLzIpLGVlPU1hdGgubWluKFQtTS04LFQqLjctTS8yKSxaPWZ1bmN0aW9uKHJlKXtyZXR1cm4gTWF0aC5tYXgoOCxrKi4yNy1yZS8yKX0scT1mdW5jdGlvbihyZSl7cmV0dXJuIE1hdGgubWluKGstcmUtOCxrKi43My1yZS8yKX07cmV0dXJue2NvbW1pdDp7eDpaKFkpLHk6bGV9LHRhZzp7eDpxKHopLHk6bGV9LHB1c2g6e3g6WihRKSx5OmVlfSxzdWI6e3g6cShsKCJzdWIiKSkseTplZX19fXZhciBQPWYoKSxqPVA/TWF0aC5tYXgoOCxUKi4xOC1NLzIpOk1hdGgubWF4KDgsVCouMTIpLEc9UD9NYXRoLm1pbihULU0tOCxUKi43Mi1NLzIpOk1hdGgubWluKFQtTS04LFQqLjg4LU0pLEo9UD8uMjQ6LjI4LHRlPVA/Ljc2Oi43MixkZT17Y29tbWl0Ont4Ok1hdGgubWF4KDgsKGstWSkvMikseTpqfSx0YWc6e3g6TWF0aC5tYXgoOCxrKkotei8yKSx5Okd9LHB1c2g6e3g6TWF0aC5taW4oay1RLTgsayp0ZS1RLzIpLHk6R319O2lmKG8pe3ZhciBuZT1sKCJzdWIiKTtkZS5zdWI9e3g6TWF0aC5taW4oay1uZS04LGsqLjk0LW5lLzIpLHk6TWF0aC5tYXgoOCxNYXRoLm1pbihULU0tOCwoVC1NKS8yKSl9fXJldHVybiBkZX12YXIgdj17fTtmdW5jdGlvbiBoKGssVCxNKXt1W2tdJiYodVtrXS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgiK1QudG9GaXhlZCgxKSsicHgsIitNLnRvRml4ZWQoMSkrInB4KSIpfWZ1bmN0aW9uIGcoayl7dj1jKCkscy5mb3JFYWNoKGZ1bmN0aW9uKFQpe3VbVF0uY2xhc3NMaXN0LnRvZ2dsZSgicWMtY2hpcC0tYW5pbSIsISFrKSxoKFQsdltUXS54LHZbVF0ueSl9KX1nKCExKTt2YXIgbT1udWxsO2Z1bmN0aW9uIHkoayxULE0pe3ZhciBZPWQoKSx6PTI0LFE9cy5maWx0ZXIoZnVuY3Rpb24oail7cmV0dXJuIGsuaW5kZXhPZihqKT49MH0pLGxlPVEucmVkdWNlKGZ1bmN0aW9uKGosRyl7cmV0dXJuIE1hdGgubWF4KGosbChHKSl9LDApLGVlPWxlK01hdGgubWF4KDAsUS5sZW5ndGgtMSkqeixaPWUuY2xpZW50SGVpZ2h0LHE9VC1lZS8yLFA9TWF0aC5tYXgoMixNYXRoLm1pbihaLVktMixNLVkvMikpO3JldHVybiBRLmZvckVhY2goZnVuY3Rpb24oail7aChqLHEsUCkscSs9en0pLHt4OlQtZWUvMi03LHk6UC03LHc6ZWUrMTQsaDpZKzE0fX1mdW5jdGlvbiBDKGspe2kuY2xhc3NMaXN0LmFkZCgiaXMtYWN0aXZlIiksaS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgiK2sueC50b0ZpeGVkKDEpKyJweCwiK2sueS50b0ZpeGVkKDEpKyJweCkiLGkuc3R5bGUud2lkdGg9ay53LnRvRml4ZWQoMSkrInB4IixpLnN0eWxlLmhlaWdodD1rLmgudG9GaXhlZCgxKSsicHgifWZ1bmN0aW9uIEUoKXtpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWFjdGl2ZSIpfWZ1bmN0aW9uIEIoayl7cmV0dXJuIFhkKHtjb21taXQ6ITAsdGFnOmsuaW5kZXhPZigidGFnIik+PTAscHVzaDprLmluZGV4T2YoInB1c2giKT49MH0pfWZ1bmN0aW9uIEQoayl7cmV0dXJuIGsuaW5kZXhPZigic3ViIik+PTB9ZnVuY3Rpb24gRihrKXt2YXIgVD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1sYXVuY2gtbGFiZWwiKTtUJiYoVC50ZXh0Q29udGVudD1rKX1mdW5jdGlvbiBJKGssVCl7dmFyIE09bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaz49TS5sZWZ0JiZrPD1NLnJpZ2h0JiZUPj1NLnRvcCYmVDw9TS5ib3R0b219ZnVuY3Rpb24gTChrKXtyZXR1cm4gZnVuY3Rpb24oVCl7aWYoISh1W2tdLmRpc2FibGVkfHxhaSgpKSl7bT17YW5jaG9yOmsscG9pbnRlcklkOlQucG9pbnRlcklkLHN0YXJ0WDpULmNsaWVudFgsc3RhcnRZOlQuY2xpZW50WSxtb3ZlZDohMSxtZW1iZXJzOltrXX0scy5mb3JFYWNoKGZ1bmN0aW9uKE0pe3VbTV0uY2xhc3NMaXN0LnJlbW92ZSgicWMtY2hpcC0tYW5pbSIpfSksdVtrXS5jbGFzc0xpc3QuYWRkKCJpcy1ncmFiYmluZyIpO3RyeXt1W2tdLnNldFBvaW50ZXJDYXB0dXJlKFQucG9pbnRlcklkKX1jYXRjaHt9dC5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLFQucHJldmVudERlZmF1bHQoKX19fWZ1bmN0aW9uIEgoayl7aWYoISghbXx8bS5wb2ludGVySWQhPT1rLnBvaW50ZXJJZCkpeyhNYXRoLmFicyhrLmNsaWVudFgtbS5zdGFydFgpPjN8fE1hdGguYWJzKGsuY2xpZW50WS1tLnN0YXJ0WSk+MykmJihtLm1vdmVkPSEwKTt2YXIgVD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLE09ay5jbGllbnRYLVQubGVmdCxZPWsuY2xpZW50WS1ULnRvcDtpZihhLmZvckVhY2goZnVuY3Rpb24oUCl7aWYoIShtLm1lbWJlcnMuaW5kZXhPZihQKT49MCkpe3ZhciBqPXZbUF0ueCtsKFApLzIsRz12W1BdLnkrZCgpLzIsSj1NLWosdGU9WS1HO01hdGguc3FydChKKkordGUqdGUpPFpkJiYobS5tZW1iZXJzLnB1c2goUCksdVtQXS5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIiksdVtQXS5jbGFzc0xpc3QuYWRkKCJpcy1hdHRhY2hlZCIpKX19KSxvJiZtLm1lbWJlcnMuaW5kZXhPZigic3ViIik8MCl7dmFyIHo9di5zdWIueC1paSxRPXYuc3ViLnktaWksbGU9di5zdWIueCtsKCJzdWIiKStpaSxlZT12LnN1Yi55K2QoKStpaTtNPj16JiZNPD1sZSYmWT49USYmWTw9ZWUmJihtLm1lbWJlcnMucHVzaCgic3ViIiksdS5zdWIuY2xhc3NMaXN0LnJlbW92ZSgicWMtY2hpcC0tYW5pbSIpLHUuc3ViLmNsYXNzTGlzdC5hZGQoImlzLWF0dGFjaGVkIikpfXZhciBaPXkobS5tZW1iZXJzLE0sWSkscT1JKGsuY2xpZW50WCxrLmNsaWVudFkpO3Quc2V0QXR0cmlidXRlKCJkYXRhLWhvdCIscT8iMSI6IjAiKSx0LnNldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iLEIobS5tZW1iZXJzKSksbS5tZW1iZXJzLmxlbmd0aD4xP0MoWik6RSgpLEYocT8iXHU2NzdFXHU2MjRCXHU2MjY3XHU4ODRDIjoiXHU2M0QwXHU0RUE0Iil9fWZ1bmN0aW9uIFUoayxUKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PWsucG9pbnRlcklkKSl7dmFyIE09bTttPW51bGwsdC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1kcmFnZ2luZyIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWhvdCIsIjAiKSxGKCJcdTYzRDBcdTRFQTQiKSxFKCkscy5mb3JFYWNoKGZ1bmN0aW9uKHope3Vbel0uY2xhc3NMaXN0LnJlbW92ZSgiaXMtZ3JhYmJpbmciLCJpcy1hdHRhY2hlZCIpfSk7dHJ5e3VbTS5hbmNob3JdLnJlbGVhc2VQb2ludGVyQ2FwdHVyZShNLnBvaW50ZXJJZCl9Y2F0Y2h7fWlmKCFUJiYhTS5tb3ZlZCl7dmFyIFk9eW8oTS5hbmNob3IpO1VuKFkuYWN0aW9uLFkuc3ViKTtyZXR1cm59aWYoIVQmJkkoay5jbGllbnRYLGsuY2xpZW50WSkpe1VuKEIoTS5tZW1iZXJzKSxEKE0ubWVtYmVycykpO3JldHVybn10LnNldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iLCJjb21taXQiKSxnKCEwKX19dmFyIHg9ZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmIW0mJmcoITEpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix4KSxzLmZvckVhY2goZnVuY3Rpb24oayl7dmFyIFQ9dVtrXTtULmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixMKGspKSxULmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixIKSxULmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZnVuY3Rpb24oTSl7VShNLCExKX0pLFQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsZnVuY3Rpb24oTSl7VShNLCEwKX0pLFQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oTSl7aWYoIShULmRpc2FibGVkfHxhaSgpKSYmKE0ua2V5PT09IkVudGVyInx8TS5rZXk9PT0iICJ8fE0ua2V5PT09IlNwYWNlYmFyIikpe00ucHJldmVudERlZmF1bHQoKTt2YXIgWT15byhrKTtVbihZLmFjdGlvbixZLnN1Yil9fSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe24uZGlzYWJsZWR8fGFpKCl8fG18fFVuKCJjb21taXQiKX0pLFNuPWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIseCksbT1udWxsfX1mdW5jdGlvbiB0Yygpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdEdlbmVyYXRpbmcpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtlJiYoci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1lLnZhbHVlKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXRhZyIpO3QmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dC52YWx1ZSksci5xdWlja0NvbW1pdEdlbmVyYXRpbmc9ITAsci5xdWlja0NvbW1pdEVycm9yPSIiLHF0KCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2dlbmVyYXRlLWNvbW1pdC1tZXNzYWdlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7fSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybntvazpuLm9rLGRhdGE6aX19KX0pLnRoZW4oZnVuY3Rpb24obil7aWYoIW4ub2spdGhyb3cgbmV3IEVycm9yKG4uZGF0YSYmbi5kYXRhLmVycm9yfHwiQUkgXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1XHUzMDAyIik7dmFyIGk9bi5kYXRhfHx7fSxhPXR5cGVvZiBpLm1lc3NhZ2U9PSJzdHJpbmciP2kubWVzc2FnZToiIix1PXR5cGVvZiBpLnN1Z2dlc3RlZFRhZz09InN0cmluZyI/aS5zdWdnZXN0ZWRUYWcudHJpbSgpOiIiLG89KHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2V8fCIiKS50cmltKCk7IW8mJmEmJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWEpLHUmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWdFZGl0ZWR8fChyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dSksci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdC10YWciKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3IucXVpY2tDb21taXRFcnJvcj1uJiZuLm1lc3NhZ2V8fCJBSSBcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjVcdTMwMDIifSkuZmluYWxseShmdW5jdGlvbigpe3IucXVpY2tDb21taXRHZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZxdCgpfSl9fWZ1bmN0aW9uIFVuKGUsdCl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0U3VibWl0dGluZykpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO24mJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPW4udmFsdWUpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7aSYmKHIucXVpY2tDb21taXRGb3JtLnRhZz1pLnZhbHVlKTt2YXIgYT1yLnF1aWNrQ29tbWl0Rm9ybXx8e30sdT0kZChlfHxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbnx8ImNvbW1pdCIpLG89dS53aXRoVGFnLHM9bz8oYS50YWd8fCIiKS50cmltKCk6IiIsbD0oYS5jdXN0b21NZXNzYWdlfHwiIikudHJpbSgpLGQ9IWwsZj17YnJhbmNoOihyLmdpdFN0YXR1c3x8e30pLmJyYW5jaHx8IiIsY29tbWl0SGFzaDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaD8oci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaDooci5naXRTdGF0dXN8fHt9KS5oZWFkPyhyLmdpdFN0YXR1c3x8e30pLmhlYWQuc3Vic3RyaW5nKDAsNyk6IiIsY29tbWl0U3ViamVjdDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnN1YmplY3Q/KHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdC5zdWJqZWN0OiIiLHRhZzooci5naXRTdGF0dXN8fHt9KS5sYXRlc3RUYWd8fCIifSxjPXthdXRvTWVzc2FnZTpkLGN1c3RvbU1lc3NhZ2U6ZD8iIjpsLHRhZzpzLGF1dG9UYWc6ISEobyYmIXMpLHB1c2g6ISF1LnB1c2gsc3VibW9kdWxlOiEhdH07ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITAsci5xdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudD0hIXQsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPWR8fGMuYXV0b1RhZyxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249dS5hY3Rpb24scXQoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvcXVpY2stY29tbWl0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeShjKX0pLnRoZW4oZnVuY3Rpb24odil7cmV0dXJuIHYuanNvbigpLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJue29rOnYub2ssZGF0YTpofX0pfSkudGhlbihmdW5jdGlvbih2KXtpZighdi5vayl0aHJvdyBuZXcgRXJyb3Iodi5kYXRhJiZ2LmRhdGEuZXJyb3J8fCJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTRcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgaD12LmRhdGF8fHt9LGc9aC5jb21taXQmJmguY29tbWl0Lmhhc2g/aC5jb21taXQuaGFzaC5zdWJzdHJpbmcoMCw3KToiIixtPWgudGFnJiZoLnRhZy5uYW1lP2gudGFnLm5hbWU6IiIseT1BcnJheS5pc0FycmF5KGguc3VibW9kdWxlQ29tbWl0cyk/aC5zdWJtb2R1bGVDb21taXRzOltdLEM9eS5sZW5ndGg+MD8iXHU1REYyXHU1MTQ4XHU2M0QwXHU0RUE0ICIreS5sZW5ndGgrIiBcdTRFMkEgc3VibW9kdWxlXHVGRjA4Iit5Lm1hcChmdW5jdGlvbihCKXtyZXR1cm4gQi5wYXRofSkuam9pbigiXHUzMDAxIikrIlx1RkYwOVx1RkYwQyI6IiIsRT1DKyJcdTVERjJcdTYzRDBcdTRFQTQiKyhnPyIgIitnOiIiKSsobT8iXHVGRjBDXHU1REYyXHU2MjUzIFRhZyAiK206IiIpO3IucXVpY2tDb21taXRSZXN1bHQ9e2FjdGlvbjp1LmFjdGlvbixpbmNsdWRlU3VibW9kdWxlOiEhdCxwdXNoZWQ6ISFoLnB1c2hlZCxwdXNoRXJyb3I6aC5wdXNoRXJyb3J8fCIiLGNvbW1pdEhhc2g6Zyxjb21taXRNZXNzYWdlOmguY29tbWl0JiZoLmNvbW1pdC5tZXNzYWdlP2guY29tbWl0Lm1lc3NhZ2U6bCx0YWdOYW1lOm0sb2xkVGFnOmYudGFnLG9sZENvbW1pdEhhc2g6Zi5jb21taXRIYXNoLG9sZENvbW1pdFN1YmplY3Q6Zi5jb21taXRTdWJqZWN0LHN1Ym1vZHVsZUNvdW50OnkubGVuZ3RofSx1LnB1c2gmJiFoLnB1c2hFcnJvcj8odHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoRSsiXHVGRjBDXHU1REYyXHU2M0E4XHU5MDAxXHUzMDAyIiwic3VjY2VzcyIpLFZuKCkpOih0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQShFKyhoLnB1c2hFcnJvcj8iXHVGRjFCcHVzaCBcdTU5MzFcdThEMjVcdUZGMUEiK2gucHVzaEVycm9yOiJcdTMwMDIiKSxoLnB1c2hFcnJvcj8iZXJyb3IiOiJzdWNjZXNzIiksci5zZWxlY3RlZElkJiZBbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZxdCgpfSkpfSkuY2F0Y2goZnVuY3Rpb24odil7ci5xdWlja0NvbW1pdEVycm9yPXYmJnYubWVzc2FnZXx8Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZxdCgpfSl9fWZ1bmN0aW9uIG5jKGUpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdFB1c2hpbmcpKXt2YXIgdD0hIShlJiZlLnB1c2hDb21taXRzKSxuPSEhKGUmJmUucHVzaFRhZ3MpLGk9ISEoZSYmZS5jbG9zZU9uU3VjY2Vzcyk7aWYoISghdCYmIW4pKXt2YXIgYT1yLnF1aWNrQ29tbWl0UmVzdWx0fHx7fSx1PSEhYS5pbmNsdWRlU3VibW9kdWxlO3IucXVpY2tDb21taXRQdXNoaW5nPSEwLHIucXVpY2tDb21taXRQdXNoRXJyb3I9IiIscXQoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZ2l0L3B1c2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwdXNoQ29tbWl0czp0LHB1c2hUYWdzOm4sc3VibW9kdWxlOnUsdGFnOmEudGFnTmFtZXx8IiJ9KX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJue29rOm8ub2ssZGF0YTpzfX0pfSkudGhlbihmdW5jdGlvbihvKXt2YXIgcz1vLmRhdGF8fHt9O2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihzJiZzLmVycm9yfHwiXHU2M0E4XHU5MDAxXHU1OTMxXHU4RDI1XHUzMDAyIik7aWYocy5lcnJvcil7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1zLmVycm9yLHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdUZGMUEiK3MuZXJyb3IsImVycm9yIik7cmV0dXJufXZhciBsPVtdO3MucHVzaGVkQ29tbWl0cyYmbC5wdXNoKCJjb21taXRzIikscy5wdXNoZWRUYWdzJiZsLnB1c2goInRhZ3MiKTt2YXIgZD1sLmxlbmd0aD9sLmpvaW4oIiBcdTU0OEMgIik6Ilx1RkYwOFx1NjVFMFx1NTE4NVx1NUJCOVx1RkYwOSI7dHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NURGMlx1NjNBOFx1OTAwMSAiK2QsInN1Y2Nlc3MiKSxyLnF1aWNrQ29tbWl0UmVzdWx0JiYoci5xdWlja0NvbW1pdFJlc3VsdC5wdXNoZWQ9ITApLGk/KFZuKCksci5zZWxlY3RlZElkJiZBbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkpOnIuc2VsZWN0ZWRJZCYmQW4oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pLnRoZW4oZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmcXQoKX0pfSkuY2F0Y2goZnVuY3Rpb24obyl7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1vJiZvLm1lc3NhZ2V8fCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiLHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKHIucXVpY2tDb21taXRQdXNoRXJyb3IsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFB1c2hpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJnF0KCl9KX19fWZ1bmN0aW9uIHJjKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKHQ9PT0iPz8iKXJldHVybntsZXR0ZXI6IlUiLGNsczoidW50cmFja2VkIix0aXRsZToiXHU2NzJBXHU4RERGXHU4RTJBIn07aWYodD09PSIhISIpcmV0dXJue2xldHRlcjoiSSIsY2xzOiJpZ25vcmVkIix0aXRsZToiXHU1REYyXHU1RkZEXHU3NTY1In07Zm9yKHZhciBuPSIiLGk9MDtpPGUubGVuZ3RoO2krKylpZihlW2ldJiZlW2ldIT09Ii4iJiZlW2ldIT09IiAiKXtuPWVbaV07YnJlYWt9bj0obnx8dFswXXx8Ij8iKS50b1VwcGVyQ2FzZSgpO3ZhciBhPXtBOntjbHM6ImFkZCIsdGl0bGU6Ilx1NjVCMFx1NTg5RSJ9LE06e2NsczoibW9kIix0aXRsZToiXHU0RkVFXHU2NTM5In0sRDp7Y2xzOiJkZWwiLHRpdGxlOiJcdTUyMjBcdTk2NjQifSxSOntjbHM6InJlbiIsdGl0bGU6Ilx1OTFDRFx1NTQ3RFx1NTQwRCJ9LEM6e2NsczoicmVuIix0aXRsZToiXHU1OTBEXHU1MjM2In0sVDp7Y2xzOiJtb2QiLHRpdGxlOiJcdTdDN0JcdTU3OEJcdTUzRDhcdTY2RjQifSxVOntjbHM6ImRlbCIsdGl0bGU6Ilx1NTFCMlx1N0E4MSJ9fSx1PWFbbl18fHtjbHM6Im90aGVyIix0aXRsZToiXHU1REYyXHU2NkY0XHU2NTM5In07cmV0dXJue2xldHRlcjpuLGNsczp1LmNscyx0aXRsZTp1LnRpdGxlfX1mdW5jdGlvbiB6ZyhlKXt2YXIgdD1lLm1hcChmdW5jdGlvbihuKXt2YXIgaT1yYyhuLnN0YXR1c3x8IiIpLGE9bi5wYXRofHwiIix1PWEubGFzdEluZGV4T2YoIi8iKSxvPXU+PTA/YS5zbGljZSgwLHUrMSk6IiIscz11Pj0wP2Euc2xpY2UodSsxKTphLGw9IiI7aWYobi5pc1N1Ym1vZHVsZSl7dmFyIGQ9bi5zdWJtb2R1bGVTdGF0ZXx8e30sZj1bXTtkLmNvbW1pdENoYW5nZWQmJmYucHVzaCgiXHU2NUIwXHU2MzA3XHU5NDg4IiksZC5oYXNUcmFja2VkQ2hhbmdlcyYmZi5wdXNoKCJkaXJ0eSIpLGQuaGFzVW50cmFja2VkJiZmLnB1c2goIlx1NjcyQVx1OERERlx1OEUyQSIpO3ZhciBjPWYubGVuZ3RoPyJzdWJtb2R1bGUgXHhCNyAiK2Yuam9pbigiIC8gIik6InN1Ym1vZHVsZSI7bD0nPHNwYW4gY2xhc3M9InFjLXN1Ym1vZHVsZS1iYWRnZSI+JytwKGMpKyI8L3NwYW4+In1yZXR1cm4nPGRpdiBjbGFzcz0icWMtZmlsZS1yb3ciIHRpdGxlPSInK3AoYSkrJyI+PHNwYW4gY2xhc3M9InFjLWZpbGUtYmFkZ2UgcWMtYmFkZ2UtJytpLmNscysnIiB0aXRsZT0iJytwKGkudGl0bGUpKyciPicrcChpLmxldHRlcikrJzwvc3Bhbj48c3BhbiBjbGFzcz0icWMtZmlsZS1wYXRoIj4nKyhvPyc8c3BhbiBjbGFzcz0icWMtZmlsZS1kaXIiPicrcChvKSsiPC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0icWMtZmlsZS1uYW1lIj4nK3AocykrIjwvc3Bhbj48L3NwYW4+IitsKyI8L2Rpdj4ifSkuam9pbigiIik7cmV0dXJuIHR8fCc8ZGl2IGNsYXNzPSJxYy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2M0QwXHU0RUE0XHU3Njg0XHU2NTM5XHU1MkE4XHUzMDAyPC9kaXY+J31mdW5jdGlvbiBhaSgpe3JldHVybiByLnF1aWNrQ29tbWl0U3VibWl0dGluZ3x8ci5xdWlja0NvbW1pdFB1c2hpbmd9ZnVuY3Rpb24gdWkoZSx0LG4saSl7cmV0dXJuJzxkaXYgY2xhc3M9InFjLXBhaXInKyhpPyIgIitpOiIiKSsnIj48ZGl2IGNsYXNzPSJxYy1wYWlyLWxhYmVsIj4nK3AoZSkrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItZmxvdyI+PGRpdiBjbGFzcz0icWMtcGFpci12YWx1ZSBxYy1wYWlyLXZhbHVlLS1mcm9tIj4nK3QrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTIxOTI8L2Rpdj48ZGl2IGNsYXNzPSJxYy1wYWlyLXZhbHVlIHFjLXBhaXItdmFsdWUtLXRvIj4nK24rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gaWMoKXt2YXIgZT1yLmdpdFN0YXR1c3x8e307aWYoZS5oYXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtmb3IodmFyIHQ9ZS5maWxlc3x8W10sbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0mJnRbbl0uaXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBhYyhlKXt2YXIgdD0hZXx8YWkoKSxuPWljKCk7aWYoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcpe3ZhciBpPXIucXVpY2tDb21taXRTdWJtb2R1bGVJbnRlbnQ/Ilx1RkYwOFx1NTQyQiBzdWJtb2R1bGVcdUZGMDkiOiIiLGE9KHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz8iQUkgXHU3NTFGXHU2MjEwICsgXHU2M0QwXHU0RUE0XHU0RTJEXHUyMDI2IjoiXHU2MjY3XHU4ODRDXHU0RTJEXHUyMDI2IikraTtyZXR1cm4nPGRpdiBjbGFzcz0icWMtZG9jay13cmFwIj48ZGl2IGNsYXNzPSJxYy1kb2NrLWJ1c3kiIHJvbGU9InN0YXR1cyI+PHNwYW4gY2xhc3M9InFjLWRvY2stYnVzeS1kb3QiPjwvc3Bhbj4nK3AoYSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdShzLGwsZCl7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWMtY2hpcCBxYy1jaGlwLS0nK3MrJyIgZGF0YS1jaGlwPSInK3MrJyInKyhkPycgdGl0bGU9IicrcChkKSsnIic6IiIpKyh0PyIgZGlzYWJsZWQiOiIiKSsnPjxzcGFuIGNsYXNzPSJxYy1jaGlwLWRvdCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48c3BhbiBjbGFzcz0icWMtY2hpcC1sYWJlbCI+JytsKyI8L3NwYW4+PC9idXR0b24+In12YXIgbz10P2U/IiI6Ilx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMFx1RkYwQ1x1NjVFMFx1NTNFRlx1NjNEMFx1NEVBNCI6Ilx1NjJENlx1NTJBOFx1NzhDMVx1NTQzOFx1N0VDNFx1NTQwOCBceEI3IFx1NEUyMlx1OEZEQlx1NjNEMFx1NEVBNFx1NTMzQVx1NjI2N1x1ODg0QyBceEI3IFx1NTM1NVx1NTFGQlx1NzZGNFx1NjNBNVx1NjI2N1x1ODg0Q1x1OEJFNVx1OTg3OSIrKG4/IiBceEI3IFN1YiBcdTc0MDNcdTUzRUZcdTkwMDlcdUZGMENcdTdFQjNcdTUxNjVcdTU0MEVcdTkwMTJcdTVGNTJcdTU5MDRcdTc0MDYgc3VibW9kdWxlIjoiIik7cmV0dXJuJzxkaXYgY2xhc3M9InFjLWRvY2std3JhcCBxYy1kb2NrLXdyYXAtLW1hZ25ldGljIicrKHQ/JyBkYXRhLWRpc2FibGVkPSIxIic6IiIpKyc+PGRpdiBpZD0icWMtZG9jay1zdGFnZSIgY2xhc3M9InFjLWRvY2stc3RhZ2UiIGRhdGEtYWN0aW9uPSJjb21taXQiIGRhdGEtaG90PSIwIj48ZGl2IGlkPSJxYy1kb2NrLWZpZWxkIiBjbGFzcz0icWMtZG9jay1maWVsZCI+PGRpdiBpZD0icWMtZG9jay1jbHVzdGVyIiBjbGFzcz0icWMtZG9jay1jbHVzdGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+Jyt1KCJjb21taXQiLCJDb21taXQiKSt1KCJ0YWciLCJUYWciKSt1KCJwdXNoIiwiUHVzaCIpKyhuP3UoInN1YiIsIlN1YiIsIlx1NjNEMFx1NEVBNFx1NzIzNlx1NEVEM1x1NUU5M1x1NUU3Nlx1OTAxMlx1NUY1Mlx1OEZEQlx1NTE2NSBzdWJtb2R1bGVcdUZGMDhjb21taXQgLyB0YWcgLyBcdTUyMDZcdTUyMkJcdTYzQThcdTkwMDFcdUZGMDkiKToiIikrJzwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icWMtZG9jay1sYXVuY2giIGNsYXNzPSJxYy1kb2NrLWxhdW5jaCInKyh0PyIgZGlzYWJsZWQiOiIiKSsnIGFyaWEtbGFiZWw9Ilx1NjI2N1x1ODg0Q1x1NjNEMFx1NEVBNCI+PHNwYW4gY2xhc3M9InFjLWRvY2stbGF1bmNoLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDEyaDEyTTEzIDZsNiA2LTYgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBpZD0icWMtZG9jay1sYXVuY2gtbGFiZWwiIGNsYXNzPSJxYy1kb2NrLWxhdW5jaC1sYWJlbCI+XHU2M0QwXHU0RUE0PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InFjLWRvY2staGludCI+JytwKG8pKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHVjKCl7dmFyIGU9ci5xdWlja0NvbW1pdFJlc3VsdDtpZighZSlyZXR1cm4iIjt2YXIgdD1lLm9sZENvbW1pdEhhc2g/Ijxjb2RlPiIrcChlLm9sZENvbW1pdEhhc2gpKyI8L2NvZGU+IisoZS5vbGRDb21taXRTdWJqZWN0PyI8c3Bhbj4iK3AoZS5vbGRDb21taXRTdWJqZWN0KSsiPC9zcGFuPiI6IiIpOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMDwvc3Bhbj4nLG49ZS5jb21taXRIYXNoPyI8Y29kZT4iK3AoZS5jb21taXRIYXNoKSsiPC9jb2RlPjxzcGFuPiIrcChlLmNvbW1pdE1lc3NhZ2V8fCIiKSsiPC9zcGFuPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwPC9zcGFuPicsaT1lLm9sZFRhZz8iPGNvZGU+IitwKGUub2xkVGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLGE9ZS50YWdOYW1lPyI8Y29kZT4iK3AoZS50YWdOYW1lKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NzJBXHU2MjUzIHRhZzwvc3Bhbj4nLHU9ZS5wdXNoZWQ/JzxzcGFuIGNsYXNzPSJxYy1yZXN1bHQtcHVzaGVkIj5cdTVERjJcdTYzQThcdTkwMDE8L3NwYW4+JzonPGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LXB1c2gtYWZ0ZXItYnRuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIicrKHIucXVpY2tDb21taXRQdXNoaW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIrKHIucXVpY2tDb21taXRQdXNoaW5nPyJcdTYzQThcdTkwMDFcdTRFMkQuLi4iOiJQdXNoICYgQ2xvc2UiKSsiPC9idXR0b24+IjtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InFjLXJlc3VsdC1wYW5lbCI+Jyt1aSgiQ29tbWl0Iix0LG4sIiIpK3VpKCJUYWciLGksYSwicWMtcGFpci0tdGFnIikrKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yKSsiPC9wPiI6IiIpKyc8ZGl2IGNsYXNzPSJxYy1yZXN1bHQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj4nK3UrIjwvZGl2Pjwvc2VjdGlvbj4ifWZ1bmN0aW9uIGJvKCl7dmFyIGU9ci5naXRTdGF0dXN8fHt9LHQ9ci5xdWlja0NvbW1pdEZvcm18fHtjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LG49KGUubW9kaWZpZWRDb3VudHx8MCk+MCxpPXIucXVpY2tDb21taXRHZW5lcmF0aW5nLGE9ZS5sYXN0Q29tbWl0fHx7fSx1PWEuc2hvcnRIYXNoPyI8Y29kZT4iK3AoYS5zaG9ydEhhc2gpKyI8L2NvZGU+PHNwYW4+IitwKGEuc3ViamVjdHx8IiIpKyI8L3NwYW4+IjplLmhlYWQ/Ijxjb2RlPiIrcChlLmhlYWQuc3Vic3RyaW5nKDAsNykpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgY29tbWl0PC9zcGFuPicsbz1lLmxhdGVzdFRhZz8iPGNvZGU+IitwKGUubGF0ZXN0VGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLHM9JzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icXVpY2stY29tbWl0LXRhZyIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLXRhZy1maWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NzU1OVx1N0E3QVx1NTIxOSBBSSBcdTc1MUZcdTYyMTAiIHZhbHVlPSInK3AodC50YWd8fCIiKSsnIicrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIsbD0nPHRleHRhcmVhIGlkPSJxdWljay1jb21taXQtbWVzc2FnZSIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLW1lc3NhZ2UtaW5wdXQiIHJvd3M9IjMiIHBsYWNlaG9sZGVyPSJOZXcgY29tbWl0IG1lc3NhZ2UiICcrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyJkaXNhYmxlZCI6IiIpKyI+IitwKHQuY3VzdG9tTWVzc2FnZXx8IiIpKyI8L3RleHRhcmVhPiIsZD1bXTtkLnB1c2goZS5icmFuY2h8fCIobm8gYnJhbmNoKSIpLGQucHVzaChuPyhlLm1vZGlmaWVkQ291bnR8fDApKyIgXHU0RTJBXHU2NTM5XHU1MkE4IjoiXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwIiksdHlwZW9mIGUuYWhlYWQ9PSJudW1iZXIiJiZlLmFoZWFkPjAmJmQucHVzaCgiXHUyMTkxIitlLmFoZWFkKSx0eXBlb2YgZS5iZWhpbmQ9PSJudW1iZXIiJiZlLmJlaGluZD4wJiZkLnB1c2goIlx1MjE5MyIrZS5iZWhpbmQpO3ZhciBmPXIucXVpY2tDb21taXRSZXN1bHQ/IiI6JzxzZWN0aW9uIGNsYXNzPSJxYy1yZWxlYXNlLXBhbmVsIj48ZGl2IGNsYXNzPSJxYy1tZXNzYWdlLWhlYWRlciI+PHNwYW4gY2xhc3M9InFjLXNlY3Rpb24tdGl0bGUiPk5ldzwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InF1aWNrLWNvbW1pdC1haS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBxYy1haS1idG4iJysoaT8iIGRpc2FibGVkIjoiIikrJyB0aXRsZT0iQUkgXHU3NTFGXHU2MjEwIGNvbW1pdCBtZXNzYWdlIFx1NEUwRSB0YWciPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAxLjVsMS40IDMuNkwxMyA2LjUgOS40IDcuOSA4IDExLjUgNi42IDcuOSAzIDYuNWwzLjYtMS40TDggMS41ek0xMi41IDEwLjVsLjcgMS44IDEuOC43LTEuOC43LS43IDEuOC0uNy0xLjgtMS44LS43IDEuOC0uNy43LTEuOHoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPjwvc3ZnPjxzcGFuPicrKGk/Ilx1NzUxRlx1NjIxMFx1NEUyRC4uLiI6IkFJIikrIjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4iK3VpKCJDb21taXQiLHUsbCwicWMtcGFpci0tY29tbWl0IikrdWkoIlRhZyIsbyxzLCJxYy1wYWlyLS10YWciKSsoci5xdWlja0NvbW1pdEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKHIucXVpY2tDb21taXRFcnJvcikrIjwvcD4iOiIiKSthYyhuKSsnPGRpdiBjbGFzcz0icWMtbW9kYWwtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDZcdTZEODg8L2J1dHRvbj48L2Rpdj48L3NlY3Rpb24+JyxjPXVjKCk7cmV0dXJuJzxzZWN0aW9uIGlkPSJxdWljay1jb21taXQtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCcrKHIucXVpY2tDb21taXRPcGVuPyIiOiIgaGlkZGVuIikrJyI+PGRpdiBjbGFzcz0ibW9kYWwgcXVpY2stY29tbWl0LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0icXVpY2stY29tbWl0LXRpdGxlIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGlkPSJxdWljay1jb21taXQtdGl0bGUiIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0PC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPicrcChkLmpvaW4oIiBceEI3ICIpKSsnPC9wPjwvZGl2PjxidXR0b24gaWQ9InF1aWNrLWNvbW1pdC1jbG9zZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4nK2YrYysiPC9kaXY+PC9kaXY+PC9zZWN0aW9uPiJ9ZnVuY3Rpb24gb2MoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9Indvcmt0cmVlLW1lcmdlLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCB3b3JrdHJlZS1tZXJnZS1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NTQwOFx1NUU3NiBXb3JrdHJlZTwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTY4QzBcdTY3RTVcdTVGNTNcdTUyNERcdTRFRkJcdTUyQTFcdTUyMDZcdTY1MkZcdTVFNzZcdTVGRUJcdTYzNzdcdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkZcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utd29ya3RyZWUtbWVyZ2UtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBpZD0id29ya3RyZWUtbWVyZ2UtY29udGVudCIgY2xhc3M9Indvcmt0cmVlLW1lcmdlLWNvbnRlbnQiPjwvZGl2PjxwIGlkPSJ3b3JrdHJlZS1tZXJnZS1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2UtYWN0aW9ucyI+PGJ1dHRvbiBpZD0id29ya3RyZWUtbWVyZ2UtY2FuY2VsLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5Ij5cdTUzRDZcdTZEODg8L2J1dHRvbj48YnV0dG9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU3ODZFXHU4QkE0XHU1NDA4XHU1RTc2XHU1RTc2XHU2RTA1XHU3NDA2PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gc2MoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9InNldHRpbmdzLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBzZXR0aW5ncy1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIHNldHRpbmdzLW1vZGFsLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OEJCRVx1N0Y2RTwvaDI+PHAgY2xhc3M9InNldHRpbmdzLW1vZGFsLXN1YnRpdGxlIj5cdThDMDNcdTY1NzRcdTVFOTRcdTc1MjhcdTkxNERcdTdGNkVcdTMwMDFcdTkwMUFcdTc3RTVcdTMwMDFcdTVCODlcdTUxNjhcdTU0OENcdTY2M0VcdTc5M0FcdTUwNEZcdTU5N0Q8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utc2V0dGluZ3MtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSBzZXR0aW5ncy1tb2RhbC1ib2R5Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYXlvdXQiPjxhc2lkZSBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhciI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItdGl0bGUiPlx1NTA0Rlx1NTk3RFx1OEJCRVx1N0Y2RTwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItaGludCI+XHU1REU2XHU0RkE3XHU1MjA3XHU2MzYyXHU1MjA2XHU1MzNBXHVGRjBDXHU1M0YzXHU0RkE3XHU2N0U1XHU3NzBCXHU4QkU2XHU3RUM2XHU4QkY0XHU2NjBFXHU0RTBFXHU5MDA5XHU5ODc5XHUzMDAyPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdGFicyIgcm9sZT0idGFibGlzdCIgYXJpYS1sYWJlbD0iXHU4QkJFXHU3RjZFXHU1MjA2XHU3RUM0IiBhcmlhLW9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIGFjdGl2ZSIgZGF0YS10YWI9ImFib3V0IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1hYm91dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTUxNzNcdTRFOEU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTcyNDhcdTY3MkNcdTMwMDFcdTY2RjRcdTY1QjBcdTRFMEVcdThGREVcdTYzQTVcdTY1QjlcdTVGMEY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZ2VuZXJhbCIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWdlbmVyYWwiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU2QTIxXHU1NzhCXHUzMDAxXHU2QTIxXHU1RjBGXHU0RTBFXHU4RkQwXHU4ODRDXHU3M0FGXHU1ODgzPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9Im5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1ub3RpZmljYXRpb25zIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1OTAxQVx1NzdFNTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NjNEMFx1NzkzQVx1OTdGM1x1NEUwRVx1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJzZWN1cml0eSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLXNlY3VyaXR5Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NUI4OVx1NTE2ODwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NUJDNlx1NzgwMVx1NEUwRVx1OEJDMVx1NEU2Njwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJwcmVzZXRzIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItcHJlc2V0cyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTY3RTVcdTc3MEJcdTVERjJcdTY3MDlcdTk4ODRcdThCQkU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZGlzcGxheSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU2NjNFXHU3OTNBPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU1MzYxXHU3MjQ3XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU4ODRDXHU0RTNBPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvYXNpZGU+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29udGVudCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwgYWN0aXZlIiBpZD0ic2V0dGluZ3MtdGFiLWFib3V0IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTUxNzNcdTRFOEUgV2FuZDwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjdFNVx1NzcwQlx1NzI0OFx1NjcyQ1x1NEZFMVx1NjA2Rlx1MzAwMVx1NjZGNFx1NjVCMFx1NzJCNlx1NjAwMVx1NTQ4QyBBbmRyb2lkIEFwcCBcdThGREVcdTYzQTVcdTY1QjlcdTVGMEZcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtaW5mbyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NTMwNVx1NTQwRDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1wa2ctbmFtZSI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXZlcnNpb24iPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPk5vZGUuanMgXHU4OTgxXHU2QzQyPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLW5vZGUtcmVxIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTRFRDNcdTVFOTNcdTU3MzBcdTU3NDA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtcmVwby11cmwiPjxhIGhyZWY9IiMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4tPC9hPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiIgaWQ9IndlYi11cGRhdGUtc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoImdsb2JlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+V2ViIFx1N0FFRjwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTZENEZcdTg5QzhcdTU2NjhcdThCQkZcdTk1RUVcdTc2ODRcdTY3MERcdTUyQTFcdTcyNDhcdTY3MkM8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtYWN0aW9ucyI+PGJ1dHRvbiBpZD0iY2hlY2stdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSI+XHU2OEMwXHU2N0U1XHU2NkY0XHU2NUIwPC9idXR0b24+PGJ1dHRvbiBpZD0iZG8tdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIj5cdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDg8L2J1dHRvbj48YnV0dG9uIGlkPSJkby1yZXN0YXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc3VjY2VzcyBidG4tc20gaGlkZGVuIj5cdTkxQ0RcdTU0MkZcdTc1MUZcdTY1NDg8L2J1dHRvbj48L2Rpdj48cCBpZD0idXBkYXRlLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5CZXRhIFx1OTAxQVx1OTA1Mzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NjZGNFx1NjVCMFx1NTIzMCBucG0gYmV0YSBcdTcyNDhcdTY3MkNcdUZGMDh0YWcgKyBjb21taXQgXHU1QzNFXHU2ODA3XHVGRjA5XHVGRjBDXHU1QzFEXHU5QzlDXHU2NUIwXHU1MjlGXHU4MEZEXHVGRjBDXHU1M0VGXHU4MEZEXHU0RTBEXHU3QTMzXHU1QjlBXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJiZXRhLWNoYW5uZWwtdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDhcdTY3MkNcdTVDMDZcdTgxRUFcdTUyQThcdTRFMEJcdThGN0RcdTVCODlcdTg4QzVcdTVFNzZcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24gaGlkZGVuIiBpZD0iYW5kcm9pZC1hcGstc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoInNtYXJ0cGhvbmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5BbmRyb2lkIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgQVBLIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1jdXJyZW50LXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWN1cnJlbnQiPi08L3NwYW4+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1naXRodWIiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtZ2l0aHViLWFway1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWxvY2FsLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTY3MkNcdTU3MzBcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1hcGstYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWF1dG8tdXBkYXRlLXJvdyIgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3cgaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyIgaWQ9ImFuZHJvaWQtYXV0by11cGRhdGUtaGludCI+XHU2OEMwXHU2RDRCXHU1MjMwXHU2NUIwXHU3MjQ4IEFQSyBcdTY1RjZcdTgxRUFcdTUyQThcdTYyQzlcdThENzdcdTRFMEJcdThGN0RcdUZGMENcdTVCODlcdTg4QzVcdTRFQ0RcdTk3MDBcdTU3MjhcdTdDRkJcdTdFREZcdTRFMkRcdTc4NkVcdThCQTRcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLWFway10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PHAgaWQ9ImFuZHJvaWQtYXBrLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIGhpZGRlbiIgaWQ9Im1hY29zLWRtZy1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiZGVza3RvcCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPm1hY09TIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgRE1HIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctY3VycmVudC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NUY1M1x1NTI0RFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctY3VycmVudCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctZ2l0aHViIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWdpdGh1Yi1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctbG9jYWwtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcyQ1x1NTczMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1yb3ciIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93IGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiIGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1oaW50Ij5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDggRE1HIFx1NUMwNlx1ODFFQVx1NTJBOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NjMwMlx1OEY3RFx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48cCBpZD0ibWFjb3MtZG1nLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIiBpZD0iYW5kcm9pZC1jb25uZWN0LXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJsaW5rIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+QXBwIFx1OEZERVx1NjNBNVx1NzgwMTwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTdDOThcdThEMzRcdTUyMzAgQW5kcm9pZCBBcHAgXHU1MzczXHU1M0VGXHU4MUVBXHU1MkE4XHU4RkRFXHU2M0E1XHVGRjBDXHU2NUUwXHU5NzAwXHU1QkM2XHU3ODAxXHVGRjFCXHU2NTM5XHU1QkM2XHU3ODAxXHU1NDBFXHU1OTMxXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtdXJsLWJveCI+PGNvZGUgaWQ9ImFuZHJvaWQtY29ubmVjdC1jb2RlIiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC11cmwtdGV4dCI+LTwvY29kZT48YnV0dG9uIGlkPSJjb3B5LWNvbm5lY3QtY29kZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTkwRFx1NTIzNlx1OEZERVx1NjNBNVx1NzgwMSI+XHU1OTBEXHU1MjM2PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1ib3giPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItd3JhcCIgaWQ9ImFuZHJvaWQtY29ubmVjdC1xci13cmFwIiB0aXRsZT0iXHU3MEI5XHU1MUZCXHU2NTNFXHU1OTI3Ij48Y2FudmFzIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXIiIHdpZHRoPSIxODAiIGhlaWdodD0iMTgwIj48L2NhbnZhcz48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWVtcHR5IiBpZD0iYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5Ij5cdTc1MUZcdTYyMTBcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj48cCBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1oaW50Ij5cdTc1MjggV2FuZCBBcHAgXHU2MjZCXHU0RTAwXHU2MjZCXHVGRjBDXHU1MzczXHU1M0VGXHU0RTAwXHU5NTJFXHU1ODZCXHU1MTY1XHU2NzBEXHU1MkExXHU1NjY4XHU1NzMwXHU1NzQwXHU0RTBFXHU4RkRFXHU2M0E1XHU3ODAxXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLW5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1OTAxQVx1NzdFNTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1OEJCRVx1N0Y2RVx1NjNEMFx1NzkzQVx1OTdGM1x1MzAwMVx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NTQ4Q1x1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNVx1NzY4NFx1ODg0Q1x1NEUzQVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoImJlbGwiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTkwMUFcdTc3RTVcdTUwNEZcdTU5N0Q8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2M0QwXHU3OTNBXHU5N0YzXHU0RTBFXHU1RTk0XHU3NTI4XHU1MTg1XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtc291bmQiPlx1NjRBRFx1NjUzRVx1NjNEMFx1NzkzQVx1OTdGMzwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTkxQ0RcdTg5ODFcdTkwMUFcdTc3RTVcdUZGMDhcdTcyNDhcdTY3MkNcdTY2RjRcdTY1QjBcdTMwMDFcdTY3NDNcdTk2NTBcdTdCNDlcdTVGODVcdTdCNDlcdUZGMDlcdTY1RjZcdTY0QURcdTY1M0VcdTY3RDRcdTU0OENcdTYzRDBcdTc5M0FcdTk3RjNcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXNvdW5kIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXJhbmdlLXJvdyIgaWQ9Im5vdGlmLXZvbHVtZS1maWVsZCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS1sYWJlbCIgZm9yPSJjZmctbm90aWYtdm9sdW1lIj5cdTk3RjNcdTkxQ0Y8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXZvbHVtZSIgdHlwZT0icmFuZ2UiIG1pbj0iMCIgbWF4PSIxMDAiIHN0ZXA9IjUiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZSIgLz48c3BhbiBpZD0iY2ZnLW5vdGlmLXZvbHVtZS12YWwiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS12YWx1ZSI+ODAlPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtYnViYmxlIj5cdTVFOTRcdTc1MjhcdTUxODVcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTE8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NzI4XHU5ODc1XHU5NzYyXHU5ODc2XHU5MEU4XHU1RjM5XHU1MUZBXHU2RDZFXHU1MkE4XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1ub3RpZi1idWJibGUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmF0aXZlLXNvdW5kLXNlY3Rpb24iIGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJtdXNpYyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1OTRDM1x1NThGMDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQW5kcm9pZCBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTRGN0ZcdTc1MjhcdTc2ODRcdTk0QzNcdTU4RjA8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uIj48c2VsZWN0IGlkPSJuYXRpdmUtc291bmQtc2VsZWN0IiBjbGFzcz0iZmllbGQtaW5wdXQgZmllbGQtc2VsZWN0Ij48L3NlbGVjdD48YnV0dG9uIGlkPSJuYXRpdmUtc291bmQtcHJldmlldyIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBidG4td2l0aC1pY29uIiB0eXBlPSJidXR0b24iPicrVigicGxheSIse3NpemU6MTEsc3Ryb2tlV2lkdGg6MS44LGZpbGw6ImN1cnJlbnRDb2xvciJ9KSsnPHNwYW4+XHU4QkQ1XHU1NDJDPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im5hdGl2ZS1oYXB0aWMtc2VjdGlvbiIgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoInZpYnJhdGUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTg5RTZcdTYxMUZcdTUzQ0RcdTk5ODg8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2MzA5XHU5NEFFXHU2NENEXHU0RjVDXHU1NDhDXHU0RUZCXHU1MkExXHU1QjhDXHU2MjEwXHU2NUY2XHU2M0QwXHU0RjlCXHU2MzJGXHU1MkE4XHU1M0NEXHU5OTg4PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaGFwdGljLWVuYWJsZWQiPlx1NTQyRlx1NzUyOFx1ODlFNlx1NjExRlx1NTNDRFx1OTk4ODwvbGFiZWw+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWhhcHRpYy1lbmFibGVkIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiZ2xvYmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTZENEZcdTg5QzhcdTU2NjhcdTkwMUFcdTc3RTU8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2NzY1XHU4MUVBXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU0RTJEXHU1RkMzXHU3Njg0XHU1RjM5XHU3QTk3PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTYzODhcdTY3NDNcdTcyQjZcdTYwMDE8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ibm90aWZpY2F0aW9uLXBlcm1pc3Npb24tc3RhdHVzIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTYzODhcdTY3NDNcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVzZXQtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1OTFDRFx1NjVCMFx1NjM4OFx1Njc0MzwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDFcdTkwMDFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj4xMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDE8L2J1dHRvbj48L2Rpdj48cCBpZD0ibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItZ2VuZXJhbCIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU5MTREXHU3RjZFXHU2NzBEXHU1MkExXHU4RkRFXHU2M0E1XHUzMDAxXHU5RUQ4XHU4QkE0XHU2QTIxXHU1NzhCXHUzMDAxXHU2MjY3XHU4ODRDXHU2NUI5XHU1RjBGXHU1NDhDXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWhvc3QiPlx1NzZEMVx1NTQyQ1x1NTczMFx1NTc0MCAoaG9zdCk8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLWhvc3QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9IjEyNy4wLjAuMSIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctcG9ydCI+XHU3QUVGXHU1M0UzIChwb3J0KTwvbGFiZWw+PGlucHV0IGlkPSJjZmctcG9ydCIgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSI4NDQzIiBtaW49IjEiIG1heD0iNjU1MzUiIC8+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1odHRwcyI+XHU1NDJGXHU3NTI4IEhUVFBTPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NEY3Rlx1NzUyOFx1ODFFQVx1N0I3RVx1NTQwRFx1OEJDMVx1NEU2Nlx1NTJBMFx1NUJDNlx1NkQ0Rlx1ODlDOFx1NTY2OFx1NTIzMFx1NjcwRFx1NTJBMVx1NzY4NFx1OEZERVx1NjNBNVx1RkYwQ2hvc3QgXHU0RTNBXHU5NzVFIDEyNy4wLjAuMSBcdTY1RjZcdTVFRkFcdThCQUVcdTVGMDBcdTU0MkZcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWh0dHBzIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLW1vZGUiPlx1OUVEOFx1OEJBNFx1NjI2N1x1ODg0Q1x1NkEyMVx1NUYwRjwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLW1vZGUiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iZGVmYXVsdCI+ZGVmYXVsdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFzc2lzdCI+YXNzaXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQiPmFnZW50PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQtbWF4Ij5hZ2VudC1tYXg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRvLWVkaXQiPmF1dG8tZWRpdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZ1bGwtYWNjZXNzIj5mdWxsLWFjY2Vzczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im5hdGl2ZSI+bmF0aXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibWFuYWdlZCI+bWFuYWdlZDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1sYW5ndWFnZSI+XHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctbGFuZ3VhZ2UiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iIj5cdTgxRUFcdTUyQThcdUZGMDhcdTRFMERcdTYzMDdcdTVCOUFcdUZGMDk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTRFMkRcdTY1ODciPlx1NEUyRFx1NjU4Nzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVuZ2xpc2giPkVuZ2xpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTY1RTVcdTY3MkNcdThBOUUiPlx1NjVFNVx1NjcyQ1x1OEE5RTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1RDU1Q1x1QUQ2RFx1QzVCNCI+XHVENTVDXHVBRDZEXHVDNUI0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRXNwYVx4RjFvbCI+RXNwYVx4RjFvbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZyYW5ceEU3YWlzIj5GcmFuXHhFN2Fpczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRldXRzY2giPkRldXRzY2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzkiPlx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJmaWVsZC1oaW50IiBzdHlsZT0ibWFyZ2luLXRvcDotNHB4OyI+XHU4QkJFXHU3RjZFXHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwXHU1NDBFXHVGRjBDQ2xhdWRlIFx1NUMwNlx1NUMzRFx1OTFDRlx1NEY3Rlx1NzUyOFx1NjMwN1x1NUI5QVx1OEJFRFx1OEEwMFx1NTZERVx1NTkwRFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctc3RydWN0dXJlZC1ydW5uZXIiPlx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERCBSdW5uZXI8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJzZGsiPlNES1x1RkYwOEBhbnRocm9waWMtYWkvY2xhdWRlLWFnZW50LXNka1x1RkYwQ1x1OUVEOFx1OEJBNFx1RkYwOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNsaSI+Q0xJXHVGRjA4c3Bhd24gY2xhdWRlIC1wXHVGRjA5PC9vcHRpb24+PC9zZWxlY3Q+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjRweDsiPlNESyBcdTZBMjFcdTVGMEZcdTRGN0ZcdTc1MjhcdTVCOThcdTY1QjkgQWdlbnQgU0RLIFx1NjZGRlx1NEVFMyBDTEkgc3VicHJvY2Vzc1x1RkYwQ1x1NjNBNVx1NTNFM1x1NjZGNFx1NjU3NFx1NkQwMVx1RkYwQ1x1NTI5Rlx1ODBGRFx1N0I0OVx1NEVGN1x1MzAwMlx1NEZERFx1NUI1OFx1NTQwRVx1NUJGOVx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1N0FDQlx1NTM3M1x1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWluaGVyaXQtZW52Ij5cdTdFRTdcdTYyN0ZcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0Y8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NDJGXHU1MkE4IFBUWSAvIFx1N0VEM1x1Njc4NFx1NTMxNlx1NUI1MFx1OEZEQlx1N0EwQlx1NjVGNlx1RkYwQ1x1NjI4QVx1NUY1M1x1NTI0RFx1NjcwRFx1NTJBMVx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1MzAwMlx1NTE3M1x1OTVFRFx1NTQwRVx1NUI1MFx1OEZEQlx1N0EwQlx1NEVDNVx1ODNCN1x1NUY5N1x1NjcwMFx1NUMwRlx1NTNFRlx1NzUyOFx1NzNBRlx1NTg4M1x1RkYwOFBBVEgvSE9NRS9TSEVMTC9MQU5HL1RFUk0gXHU3QjQ5XHVGRjA5XHVGRjBDXHU1M0VGXHU3NTI4XHU0RThFXHU5Njk0XHU3OUJCIEFQSSBrZXkgXHU3QjQ5XHU2NTRGXHU2MTFGXHU1MUVEXHU2MzZFXHUzMDAyPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1hc2lkZSI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJjZmctdmlldy1lbnYtYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU1QjlFXHU5NjQ1XHU0RjFBXHU2Q0U4XHU1MTY1XHU1MjMwXHU1QjUwXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGIj5cdTY3RTVcdTc3MEI8L2J1dHRvbj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaW5oZXJpdC1lbnYiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PHNlY3Rpb24gY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQiIGFyaWEtbGFiZWxsZWRieT0ic2V0dGluZ3MtbW9kZWwtY2FyZC10aXRsZSI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGluZyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrVigiY3B1Iix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxkaXY+PGg0IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLXRpdGxlIiBpZD0ic2V0dGluZ3MtbW9kZWwtY2FyZC10aXRsZSI+XHU5RUQ4XHU4QkE0XHU2QTIxXHU1NzhCPC9oND48cCBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1kZXNjIj5cdTRFQ0VcdTVERjJcdTY4QzBcdTZENEJcdTUyMTdcdTg4NjhcdTRFMkRcdTkwMDlcdTYyRTlcdUZGMENcdTYyMTZcdTc2RjRcdTYzQTVcdThGOTNcdTUxNjVcdTgxRUFcdTVCOUFcdTRFNDlcdTZBMjFcdTU3OEJcdTU0MERcdTc5RjAgLyBJRFx1MzAwMjwvcD48L2Rpdj48L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gc2V0dGluZ3MtbW9kZWwtcmVmcmVzaCIgdGl0bGU9Ilx1OTFDRFx1NjVCMFx1NjhDMFx1NkQ0QiBDbGF1ZGUgXHU0RTBFIENvZGV4IFx1NkEyMVx1NTc4QiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIwIDExYTguMSA4LjEgMCAwIDAtMTUuNS0yTTQgNHY1aDUiLz48cGF0aCBkPSJNNCAxM2E4LjEgOC4xIDAgMCAwIDE1LjUgMk0yMCAyMHYtNWgtNSIvPjwvc3ZnPjxzcGFuPlx1NTIzN1x1NjVCMFx1NTIxN1x1ODg2ODwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1ncmlkIj48ZGl2IGNsYXNzPSJmaWVsZCBzZXR0aW5ncy1tb2RlbC1maWVsZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93Ij48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1kZWZhdWx0LW1vZGVsIj5DbGF1ZGU8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciI+Q2xhdWRlIENvZGU8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3giIGRhdGEtcHJvdmlkZXI9ImNsYXVkZSI+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtY29udHJvbCI+PGlucHV0IGlkPSJjZmctZGVmYXVsdC1tb2RlbCIgY2xhc3M9ImZpZWxkLWlucHV0IG1vZGVsLWNvbWJvYm94LWlucHV0IiB0eXBlPSJ0ZXh0IiByb2xlPSJjb21ib2JveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJjZmctZGVmYXVsdC1tb2RlbC1saXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im5vbmUiIGF1dG9jb3JyZWN0PSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0iXHU4RERGXHU5NjhGIENsYXVkZSBDb2RlIFx1OUVEOFx1OEJBNCIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU1QzU1XHU1RjAwIENsYXVkZSBcdTZBMjFcdTU3OEJcdTUyMTdcdTg4NjgiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03IDEwIDUgNSA1LTUiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJjZmctZGVmYXVsdC1tb2RlbC1saXN0Ym94IiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtbWVudSBoaWRkZW4iIHJvbGU9Imxpc3Rib3giIGFyaWEtbGFiZWw9IkNsYXVkZSBcdTZBMjFcdTU3OEIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1zdGF0dXMiIGRhdGEtbW9kZWwtc3RhdHVzPSJjbGF1ZGUiPlx1OERERlx1OTY4RiBDTEkgXHU5RUQ4XHU4QkE0PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1oZWxwIj5cdTRGMUFcdTUzOUZcdTY4MzdcdTRGMjBcdTdFRDkgPGNvZGU+LS1tb2RlbDwvY29kZT48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQgc2V0dGluZ3MtbW9kZWwtZmllbGQiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWxhYmVsLXJvdyI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCI+Q29kZXg8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciI+Q29kZXggQ0xJPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGVsLWNvbWJvYm94IiBkYXRhLXByb3ZpZGVyPSJjb2RleCI+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtY29udHJvbCI+PGlucHV0IGlkPSJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIgY2xhc3M9ImZpZWxkLWlucHV0IG1vZGVsLWNvbWJvYm94LWlucHV0IiB0eXBlPSJ0ZXh0IiByb2xlPSJjb21ib2JveCIgYXJpYS1hdXRvY29tcGxldGU9Imxpc3QiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJjZmctZGVmYXVsdC1jb2RleC1tb2RlbC1saXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im5vbmUiIGF1dG9jb3JyZWN0PSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0iXHU4RERGXHU5NjhGIENvZGV4IFx1OUVEOFx1OEJBNCIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU1QzU1XHU1RjAwIENvZGV4IFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcgMTAgNSA1IDUtNSIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsLWxpc3Rib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveC1tZW51IGhpZGRlbiIgcm9sZT0ibGlzdGJveCIgYXJpYS1sYWJlbD0iQ29kZXggXHU2QTIxXHU1NzhCIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1tZXRhIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtc3RhdHVzIiBkYXRhLW1vZGVsLXN0YXR1cz0iY29kZXgiPlx1OERERlx1OTY4RiBDTEkgXHU5RUQ4XHU4QkE0PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1oZWxwIj5cdTc1NTlcdTdBN0FcdTUyMTlcdTRFMERcdTRGMjBcdTZBMjFcdTU3OEJcdTUzQzJcdTY1NzA8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQgc2V0dGluZ3MtbW9kZWwtdmVyc2lvbiIgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLXZlcnNpb24iPlx1NkEyMVx1NTc4Qlx1NTQwRFx1NzlGMFx1NEVDNVx1NTcyOFx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1NjVGNlx1NEY1Q1x1NEUzQVx1OUVEOFx1OEJBNFx1NTAzQ1x1RkYxQlx1OEZEMFx1ODg0Q1x1NEUyRFx1NzY4NFx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERFx1NEVDRFx1NTNFRlx1NTM1NVx1NzJFQ1x1NTIwN1x1NjM2Mlx1MzAwMjwvcD48L3NlY3Rpb24+PHNlY3Rpb24gY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQiIGFyaWEtbGFiZWxsZWRieT0ic2V0dGluZ3MtY29tbWl0LW1vZGVsLWNhcmQtdGl0bGUiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGVyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRpbmciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK1YoImVkaXQiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PGRpdj48aDQgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtdGl0bGUiIGlkPSJzZXR0aW5ncy1jb21taXQtbW9kZWwtY2FyZC10aXRsZSI+Q29tbWl0IFx1NzUxRlx1NjIxMDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtZGVzYyI+XHU2MzA3XHU1QjlBXHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0XHU3NTFGXHU2MjEwIG1lc3NhZ2UgXHU0RTBFIHRhZyBcdTY1RjZcdTRGN0ZcdTc1MjhcdTc2ODQgQ0xJIFx1NTQ4Q1x1NkEyMVx1NTc4Qlx1MzAwMjwvcD48L2Rpdj48L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNmZy1jb21taXQtbW9kZWwtcmVmcmVzaCIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBzZXR0aW5ncy1tb2RlbC1yZWZyZXNoIiB0aXRsZT0iXHU5MUNEXHU2NUIwXHU2OEMwXHU2RDRCXHU2MjQwXHU5MDA5IENMSSBcdTc2ODRcdTZBMjFcdTU3OEIiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0yMCAxMWE4LjEgOC4xIDAgMCAwLTE1LjUtMk00IDR2NWg1Ii8+PHBhdGggZD0iTTQgMTNhOC4xIDguMSAwIDAgMCAxNS41IDJNMjAgMjB2LTVoLTUiLz48L3N2Zz48c3Bhbj5cdTUyMzdcdTY1QjBcdTUyMTdcdTg4Njg8L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtZ3JpZCI+PGRpdiBjbGFzcz0iZmllbGQgc2V0dGluZ3MtbW9kZWwtZmllbGQiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWxhYmVsLXJvdyI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctY29tbWl0LWNsaSI+Q0xJPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtcHJvdmlkZXIiPlx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNDwvc3Bhbj48L2Rpdj48c2VsZWN0IGlkPSJjZmctY29tbWl0LWNsaSIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJjbGF1ZGUiPkNsYXVkZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvZGV4Ij5Db2RleDwvb3B0aW9uPjwvc2VsZWN0PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1zdGF0dXMiPlx1NzUxRlx1NjIxMCBjb21taXQgbWVzc2FnZSBcdTRFMEUgdGFnPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIHNldHRpbmdzLW1vZGVsLWZpZWxkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1sYWJlbC1yb3ciPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWNvbW1pdC1tb2RlbCI+XHU2QTIxXHU1NzhCPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtcHJvdmlkZXIiIGlkPSJjZmctY29tbWl0LW1vZGVsLXByb3ZpZGVyIj5DbGF1ZGUgQ29kZTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJjZmctY29tbWl0LW1vZGVsLWNvbWJvYm94IiBjbGFzcz0ibW9kZWwtY29tYm9ib3giIGRhdGEtcHJvdmlkZXI9ImNsYXVkZSI+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtY29udHJvbCI+PGlucHV0IGlkPSJjZmctY29tbWl0LW1vZGVsIiBjbGFzcz0iZmllbGQtaW5wdXQgbW9kZWwtY29tYm9ib3gtaW5wdXQiIHR5cGU9InRleHQiIHJvbGU9ImNvbWJvYm94IiBhcmlhLWF1dG9jb21wbGV0ZT0ibGlzdCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNmZy1jb21taXQtbW9kZWwtbGlzdGJveCIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jYXBpdGFsaXplPSJub25lIiBhdXRvY29ycmVjdD0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgcGxhY2Vob2xkZXI9Ilx1OERERlx1OTY4RiBDbGF1ZGUgQ29kZSBcdTlFRDhcdThCQTQiIC8+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlbC1jb21ib2JveC10b2dnbGUiIGFyaWEtbGFiZWw9Ilx1NUM1NVx1NUYwMCBjb21taXQgXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJtNyAxMCA1IDUgNS01Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2ZnLWNvbW1pdC1tb2RlbC1saXN0Ym94IiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtbWVudSBoaWRkZW4iIHJvbGU9Imxpc3Rib3giIGFyaWEtbGFiZWw9IkNvbW1pdCBcdTZBMjFcdTU3OEIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1zdGF0dXMiIGRhdGEtbW9kZWwtc3RhdHVzPlx1OERERlx1OTY4RiBDTEkgXHU5RUQ4XHU4QkE0PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1oZWxwIj5cdTUyMTdcdTg4NjhcdTY3NjVcdTgxRUFcdTgxRUFcdTUyQThcdTY4QzBcdTZENEI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1jd2QiPlx1OUVEOFx1OEJBNFx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvbGFiZWw+PGlucHV0IGlkPSJjZmctY3dkIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSIvaG9tZS91c2VyIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1zaGVsbCI+U2hlbGw8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLXNoZWxsIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSIvYmluL2Jhc2giIC8+PC9kaXY+JysodHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRBcHBJY29uPT0iZnVuY3Rpb24iPyc8ZGl2IGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1ibG9jayI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoInBhbGV0dGUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTVFOTRcdTc1MjhcdTU2RkVcdTY4MDc8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU5MDA5XHU2MkU5IEFwcCBcdTU0MkZcdTUyQThcdTU2NjhcdTU2RkVcdTY4MDdcdUZGMENcdThGRDRcdTU2REVcdTY4NENcdTk3NjJcdTU0MEVcdTc1MUZcdTY1NDg8L3A+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYXBwLWljb24tcGlja2VyIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcGlja2VyIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIgZGF0YS1pY29uPSJzaG9ydGhhaXIiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1wcmV2aWV3Ij4nK3FpLnVzZXIrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tbGFiZWwiPlx1OEQ1Qlx1NTM1QVx1ODY0RVx1NTk5RTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIgZGF0YS1pY29uPSJnYXJmaWVsZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXByZXZpZXciPicrcWkuYXNzaXN0YW50Kyc8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWxhYmVsIj5cdTUyRTRcdTUyQjNcdTUyMURcdTRFOEM8L3NwYW4+PC9idXR0b24+PC9kaXY+PHAgaWQ9ImFwcC1pY29uLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2Pic6IiIpKyc8ZGl2IGNsYXNzPSJzZXR0aW5ncy1hY3Rpb25zIHNldHRpbmdzLWFjdGlvbnMtc3RpY2t5Ij48YnV0dG9uIGlkPSJzYXZlLWNvbmZpZy1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTRGRERcdTVCNThcdTkxNERcdTdGNkU8L2J1dHRvbj48L2Rpdj48cCBpZD0iY29uZmlnLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiBzZXR0aW5ncy1zdGF0dXMtbWVzc2FnZSI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLXNlY3VyaXR5IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTVCODlcdTUxNjg8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTdCQTFcdTc0MDZcdTc2N0JcdTVGNTVcdTVCQzZcdTc4MDFcdTRFMEUgU1NMIFx1OEJDMVx1NEU2Nlx1RkYwQ1x1NjU0Rlx1NjExRlx1NTNEOFx1NjZGNFx1OEJGN1x1Nzg2RVx1OEJBNFx1NTQwRVx1NTE4RFx1NEZERFx1NUI1OFx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK1YoImxvY2siLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkLXRleHQiPjxoMyBjbGFzcz0ic2V0dGluZ3MtY2FyZC10aXRsZSI+XHU0RkVFXHU2NTM5XHU1QkM2XHU3ODAxPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtY2FyZC1kZXNjIj5cdTgxRjNcdTVDMTEgNiBcdTRFMkFcdTVCNTdcdTdCMjZcdUZGMUJcdTRGRERcdTVCNThcdTU0MEVcdTRFMEJcdTZCMjFcdTc2N0JcdTVGNTVcdTc1MUZcdTY1NDhcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PGZvcm0gaWQ9ImNoYW5nZS1wYXNzd29yZC1mb3JtIiBhdXRvY29tcGxldGU9Im9uIiBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiB2YWx1ZT0id2FuZCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZSIgcmVhZG9ubHkgLz48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJuZXctcGFzc3dvcmQiPlx1NjVCMFx1NUJDNlx1NzgwMTwvbGFiZWw+PGlucHV0IGlkPSJuZXctcGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDhcdTgxRjNcdTVDMTEgNiBcdTRFMkFcdTVCNTdcdTdCMjZcdUZGMDkiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNvbmZpcm0tcGFzc3dvcmQiPlx1Nzg2RVx1OEJBNFx1NUJDNlx1NzgwMTwvbGFiZWw+PGlucHV0IGlkPSJjb25maXJtLXBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU1MThEXHU2QjIxXHU4RjkzXHU1MTY1XHU2NUIwXHU1QkM2XHU3ODAxIiBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCIgLz48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWFjdGlvbnMiPjxidXR0b24gaWQ9InNhdmUtcGFzc3dvcmQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiB0eXBlPSJzdWJtaXQiPlx1NEZERFx1NUI1OFx1NUJDNlx1NzgwMTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJzZXR0aW5ncy1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PHAgaWQ9InNldHRpbmdzLXN1Y2Nlc3MiIGNsYXNzPSJoaW50IHNldHRpbmdzLXN1Y2Nlc3MtbWVzc2FnZSBoaWRkZW4iPjwvcD48L2Zvcm0+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytWKCJjZXJ0aWZpY2F0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQtdGV4dCI+PGgzIGNsYXNzPSJzZXR0aW5ncy1jYXJkLXRpdGxlIj5TU0wgXHU4QkMxXHU0RTY2PC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtY2FyZC1kZXNjIiBpZD0iY2VydC1zdGF0dXMiPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZXJ0LWtleS1maWxlIj5cdTc5QzFcdTk0QTVcdTY1ODdcdTRFRjYgKC5rZXkpPC9sYWJlbD48ZGl2IGNsYXNzPSJmaWxlLXBpY2tlciI+PGlucHV0IGlkPSJjZXJ0LWtleS1maWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZS1waWNrZXItaW5wdXQiIGFjY2VwdD0iLmtleSwucGVtIiAvPjxsYWJlbCBmb3I9ImNlcnQta2V5LWZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci10cmlnZ2VyIj48c3ZnIGNsYXNzPSJmaWxlLXBpY2tlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0yMS40NCAxMS4wNWwtOS4xOSA5LjE5YTYgNiAwIDAgMS04LjQ5LTguNDlsOS4xOS05LjE5YTQgNCAwIDAgMSA1LjY2IDUuNjZsLTkuMiA5LjE5YTIgMiAwIDAgMS0yLjgzLTIuODNsOC40OS04LjQ4Ij48L3BhdGg+PC9zdmc+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLWxhYmVsIj5cdTkwMDlcdTYyRTlcdTc5QzFcdTk0QTU8L3NwYW4+PC9sYWJlbD48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbmFtZSIgZGF0YS1kZWZhdWx0PSJcdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjYiPlx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZXJ0LWNlcnQtZmlsZSI+XHU4QkMxXHU0RTY2XHU2NTg3XHU0RUY2ICguY3J0Ly5wZW0pPC9sYWJlbD48ZGl2IGNsYXNzPSJmaWxlLXBpY2tlciI+PGlucHV0IGlkPSJjZXJ0LWNlcnQtZmlsZSIgdHlwZT0iZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLWlucHV0IiBhY2NlcHQ9Ii5jcnQsLnBlbSwuY2VydCIgLz48bGFiZWwgZm9yPSJjZXJ0LWNlcnQtZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLXRyaWdnZXIiPjxzdmcgY2xhc3M9ImZpbGUtcGlja2VyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiI+PC9wYXRoPjxwb2x5bGluZSBwb2ludHM9IjE0IDIgMTQgOCAyMCA4Ij48L3BvbHlsaW5lPjwvc3ZnPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1sYWJlbCI+XHU5MDA5XHU2MkU5XHU4QkMxXHU0RTY2PC9zcGFuPjwvbGFiZWw+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLW5hbWUiIGRhdGEtZGVmYXVsdD0iXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2Ij5cdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjY8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1hY3Rpb25zIj48YnV0dG9uIGlkPSJ1cGxvYWQtY2VydC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPlx1NEUwQVx1NEYyMFx1OEJDMVx1NEU2NjwvYnV0dG9uPjwvZGl2PjxwIGlkPSJjZXJ0LW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLXByZXNldHMiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NUY1M1x1NTI0RFx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRVx1NEVDRSBjb25maWcuanNvbiBcdThCRkJcdTUzRDZcdUZGMENcdTUzRUZcdTU3MjhcdThGRDlcdTkxQ0NcdTVGRUJcdTkwMUZcdTY3RTVcdTc3MEJcdTVERjJcdTY3MDlcdTkxNERcdTdGNkVcdTMwMDI8L3A+PC9kaXY+PGRpdiBpZD0icHJlc2V0cy1saXN0IiBjbGFzcz0icHJlc2V0cy1saXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1kaXNwbGF5IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTY2M0VcdTc5M0E8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTYzQTdcdTUyMzZcdTgwNEFcdTU5MjlcdTg5QzZcdTU2RkVcdTkxQ0NcdTRFMERcdTU0MENcdTUzNjFcdTcyNDdcdTdDN0JcdTU3OEJcdTc2ODRcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDFcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi10aXRsZSI+XHU1MzYxXHU3MjQ3XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU3MkI2XHU2MDAxPC9kaXY+PHAgY2xhc3M9ImhpbnQgc2V0dGluZ3MtaW5saW5lLWhpbnQiPlx1OEJCRVx1N0Y2RVx1N0VEM1x1Njc4NFx1NTMxNlx1ODA0QVx1NTkyOVx1ODlDNlx1NTZGRVx1NEUyRFx1NTQwNFx1N0M3Qlx1NTM2MVx1NzI0N1x1NzY4NFx1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMC9cdTYyOThcdTUzRTBcdTcyQjZcdTYwMDFcdTMwMDJcdTYyNEJcdTUyQThcdTY0Q0RcdTRGNUNcdTc2ODRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDFcdTRGMThcdTUxNDhcdTRFOEVcdTZCNjRcdTlFRDhcdThCQTRcdThCQkVcdTdGNkVcdTMwMDI8L3A+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtbGlzdCI+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC1lZGl0Ij48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU3RjE2XHU4RjkxXHU1MzYxXHU3MjQ3IChFZGl0L1dyaXRlKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLWVkaXQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NjU4N1x1NEVGNlx1N0YxNlx1OEY5MVx1NTQ4Q1x1NTE5OVx1NTE2NVx1NjRDRFx1NEY1Q1x1NzY4NCBkaWZmIFx1ODlDNlx1NTZGRTwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC1pbmxpbmUiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTUxODVcdTgwNTRcdTVERTVcdTUxNzcgKFJlYWQvR2xvYi9HcmVwKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLWlubGluZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU2NTg3XHU0RUY2XHU4QkZCXHU1M0Q2XHUzMDAxXHU2NDFDXHU3RDIyXHU3QjQ5XHU1REU1XHU1MTc3XHU3Njg0XHU3RUQzXHU2NzlDPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLXRlcm1pbmFsIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU3RUM4XHU3QUVGXHU4RjkzXHU1MUZBIChCYXNoKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLXRlcm1pbmFsIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTU0N0RcdTRFRTRcdTg4NENcdTYyNjdcdTg4NENcdTdFRDNcdTY3OUM8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdGhpbmtpbmciPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTYwMURcdTgwMDNcdThGQzdcdTdBMEIgKFRoaW5raW5nKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLXRoaW5raW5nIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5DbGF1ZGUgXHU3Njg0XHU2MDFEXHU4MDAzXHU4RkM3XHU3QTBCXHU1NzU3PC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLXRvb2xncm91cCI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NURFNVx1NTE3N1x1N0VDNDwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLXRvb2xncm91cCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU4RkRFXHU3RUVEXHU1NDBDXHU3QzdCXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU3Njg0XHU2Mjk4XHU1M0UwXHU3RUM0PC9kaXY+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hY3Rpb25zIHNldHRpbmdzLWFjdGlvbnMtc3RpY2t5Ij48YnV0dG9uIGlkPSJzYXZlLWRpc3BsYXktYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+XHU0RkREXHU1QjU4XHU2NjNFXHU3OTNBXHU4QkJFXHU3RjZFPC9idXR0b24+PC9kaXY+PHAgaWQ9ImRpc3BsYXktbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIHNldHRpbmdzLXN0YXR1cy1tZXNzYWdlIj48L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gVmcoZSl7dmFyIHQ9UWUoKTtyZXR1cm4gZS5zZWxlY3RlZElkPyIiOic8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3QiIGlkPSJmb2xkZXItcGlja2VyLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LXJvdyI+PHNwYW4gY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1pY29uIj4nK1YoImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvbGRlci1waWNrZXItaW5wdXQiIGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3QtaW5wdXQiIHZhbHVlPSInK3AodCkrJyIgcGxhY2Vob2xkZXI9Ilx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NSIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJmb2xkZXItcGlja2VyLXRvZ2dsZSIgY2xhc3M9ImZvbGRlci1waWNrZXItdG9nZ2xlIiB0aXRsZT0iXHU5MDA5XHU2MkU5XHU3NkVFXHU1RjU1IiBhcmlhLWxhYmVsPSJcdTkwMDlcdTYyRTlcdTc2RUVcdTVGNTUiPicrVigiY2hldnJvbkRvd24iLHtzaXplOjExLHN0cm9rZVdpZHRoOjJ9KSsnPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci1kcm9wZG93biIgY2xhc3M9ImZvbGRlci1waWNrZXItZHJvcGRvd24gaGlkZGVuIj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLXJvdyI+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4iIGRhdGEtcGF0aD0iL3RtcCI+XHU0RTM0XHU2NUY2PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4iIGRhdGEtcGF0aD0iLyI+XHU2ODM5XHU3NkVFXHU1RjU1PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIiBjbGFzcz0iZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIj48L2Rpdj48L2Rpdj4nfWZ1bmN0aW9uIFVnKGUpe3ZhciB0PVFlKCksbj10O2lmKGUuc2VsZWN0ZWRJZCl7dmFyIGk9ZS5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ZS5zZWxlY3RlZElkfSk7bj1pJiZpLmN3ZD9pLmN3ZDp0fXJldHVybic8ZGl2IGNsYXNzPSJ3b3JraW5nLWRpci1pbmRpY2F0b3IiIGlkPSJ3b3JraW5nLWRpci1pbmRpY2F0b3IiIHRpdGxlPSInK3AobikrJyIgZGF0YS1wYXRoPSInK3AobikrJyI+PHNwYW4gY2xhc3M9IndvcmtpbmctZGlyLWluZGljYXRvci1pY29uIj4nK1YoImZvbGRlciIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43fSkrIjwvc3Bhbj4iK2d0KG4sIndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoIiwnIGlkPSJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCInKSsiPC9kaXY+In1mdW5jdGlvbiBFbyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLm5vdygpLG49bmV3IERhdGUoZSkuZ2V0VGltZSgpLGk9TWF0aC5tYXgoMCx0LW4pLGE9TWF0aC5mbG9vcihpLzFlMyk7aWYoYTw2MClyZXR1cm4iXHU1MjFBXHU1MjFBIjt2YXIgdT1NYXRoLmZsb29yKGEvNjApO2lmKHU8NjApcmV0dXJuIHUrIlx1NTIwNlx1OTQ5Rlx1NTI0RCI7dmFyIG89TWF0aC5mbG9vcih1LzYwKTtpZihvPDI0KXJldHVybiBvKyJcdTVDMEZcdTY1RjZcdTUyNEQiO3ZhciBzPU1hdGguZmxvb3Ioby8yNCk7cmV0dXJuIHM8MzA/cysiXHU1OTI5XHU1MjREIjpNYXRoLmZsb29yKHMvMzApKyJcdTRFMkFcdTY3MDhcdTUyNEQifWZ1bmN0aW9uIEZvKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUubm93KCksbj1uZXcgRGF0ZShlKS5nZXRUaW1lKCksaT1NYXRoLm1heCgwLHQtbiksYT1NYXRoLmZsb29yKGkvMWUzKSx1PU1hdGguZmxvb3IoYS82MCksbz1NYXRoLmZsb29yKHUvNjApO3JldHVybiBvPjA/bysiaCIrKHUlNjA+MD91JTYwKyJtIjoiIik6dT4wP3UrIm0iOmErInMifWZ1bmN0aW9uIHZyKGUpe2lmKCFlKXJldHVybiIiO2lmKGUucGVybWlzc2lvbkJsb2NrZWQpcmV0dXJuIlx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI7aWYodWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodClyZXR1cm4iXHU2MDFEXHU4MDAzXHU0RTJEIjt2YXIgdD17aWRsZToiXHU3QTdBXHU5NUYyIixzdG9wcGVkOiJcdTVERjJcdTUwNUNcdTZCNjIiLHJ1bm5pbmc6Ilx1OEZEMFx1ODg0Q1x1NEUyRCIsZXhpdGVkOiJcdTVERjJcdTkwMDBcdTUxRkEiLGZhaWxlZDoiXHU1REYyXHU1OTMxXHU4RDI1In07cmV0dXJuIHRbZS5zdGF0dXNdfHxlLnN0YXR1c31mdW5jdGlvbiB3byhlKXtyZXR1cm4gZT9lLnBlcm1pc3Npb25CbG9ja2VkPyJwZXJtaXNzaW9uLWJsb2NrZWQiOnVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ/InJ1bm5pbmciOmUuc3RhdHVzfHwiIjoiIn1mdW5jdGlvbiBsYyhlKXtyZXR1cm4gZT9lLnBlcm1pc3Npb25CbG9ja2VkPyJcdTdCNDlcdTVGODVcdTRGNjBcdTc2ODRcdTYzODhcdTY3NDMiOmUuc3RhdHVzIT09InJ1bm5pbmciPyIiOmUuaWQ9PT1yLnNlbGVjdGVkSWQmJnIuY3VycmVudFRhc2smJnIuY3VycmVudFRhc2sudGl0bGU/ci5jdXJyZW50VGFzay50aXRsZTplLmN1cnJlbnRUYXNrVGl0bGU/ZS5jdXJyZW50VGFza1RpdGxlOiIiOiIifWZ1bmN0aW9uIGRjKGUpe3ZhciB0PWUmJmUubWVzc2FnZXM7aWYoIXR8fHQubGVuZ3RoPT09MClyZXR1cm4iIjtmb3IodmFyIG49dC5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9dFtuXTtpZighKCFpfHxpLnJvbGUhPT0idXNlciIpKXt2YXIgYT1pLmNvbnRlbnQ7aWYodHlwZW9mIGE9PSJzdHJpbmciKXt2YXIgdT1hLnRyaW0oKTtpZih1KXJldHVybiB1O2NvbnRpbnVlfWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107aWYoISghc3x8cy50eXBlIT09InRleHQifHwhcy50ZXh0KSYmIXMuX19xdWV1ZWQpe3ZhciBsPVN0cmluZyhzLnRleHQpLnRyaW0oKTtpZihsKXJldHVybiBsfX19fXJldHVybiIifWZ1bmN0aW9uIGNjKGUpe3ZhciB0PWUmJmUubWVzc2FnZXM7aWYoIXR8fHQubGVuZ3RoPT09MClyZXR1cm4iIjtmb3IodmFyIG49dC5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9dFtuXTtpZihpLnJvbGU9PT0iYXNzaXN0YW50Iil7Zm9yKHZhciBhPWkuY29udGVudHx8W10sdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0udHlwZT09PSJ0ZXh0IiYmYVt1XS50ZXh0JiZhW3VdLnRleHQudHJpbSgpKXt2YXIgbz1hW3VdLnRleHQudHJpbSgpO289by5yZXBsYWNlKC9eIytccysvZ20sIiIpLnJlcGxhY2UoL1wqXCovZywiIikucmVwbGFjZSgvYC9nLCIiKTt2YXIgcz1vLnNwbGl0KGAKYClbMF0udHJpbSgpO3JldHVybiBzLnNsaWNlKDAsMTAwKX19fXJldHVybiIifWZ1bmN0aW9uIGZjKGUsdCl7dmFyIG49ZS5pZD09PXIuc2VsZWN0ZWRJZD8iIGFjdGl2ZSI6IiIsaT1yLnNlc3Npb25zTWFuYWdlTW9kZSYmci5zZWxlY3RlZFNlc3Npb25JZHNbZS5pZF0/IiBzZWxlY3RlZCI6IiIsYT12cihlKSx1PXdvKGUpLG89IiIscz1Mbygic2Vzc2lvbnMiLGUuaWQsIlx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCAiK2UuY29tbWFuZCk7aWYoKGUucHJvdmlkZXI9PT0iY2xhdWRlInx8ZS5wcm92aWRlcj09PSJjb2RleCIpJiZlLmNsYXVkZVNlc3Npb25JZCYmZS5zdGF0dXMhPT0icnVubmluZyImJiFyLnNlc3Npb25zTWFuYWdlTW9kZSYmIXVlKGUpKXt2YXIgbD1lLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHU2MDYyXHU1OTBEIENvZGV4IFx1NEYxQVx1OEJERCI6Ilx1NjA2Mlx1NTkwRCBDbGF1ZGUgXHU0RjFBXHU4QkREIjtvPSc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4iIGRhdGEtYWN0aW9uPSJyZXN1bWUiIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iJytsKyciIHRpdGxlPSInK2wrJyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMSA0djZoNiIvPjxwYXRoIGQ9Ik0zLjUxIDE1YTkgOSAwIDEwNS42NC0xMS4zNkwzIDEwIi8+PC9zdmc+PC9idXR0b24+J312YXIgZD0hci5zZXNzaW9uc01hbmFnZU1vZGUmJmUud29ya3RyZWVFbmFibGVkJiZlLndvcmt0cmVlJiZlLndvcmt0cmVlLmJyYW5jaCYmZS53b3JrdHJlZS5wYXRoLGY9ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdlZCImJmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMSxjPWUuc3RhdHVzPT09InJ1bm5pbmcifHxlLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2luZyIsdj1mPyJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiOiJcdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkYiLGg9ZCYmZS53b3JrdHJlZU1lcmdlU3RhdHVzIT09Im1lcmdlZCI/JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBtZXJnZS1idG4iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1tZXJnZSIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSInK3AodikrJyIgdGl0bGU9IicrcCh2KSsnIicrKGM/IiBkaXNhYmxlZCI6IiIpKyc+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNyA3aDEwIi8+PHBhdGggZD0iTTcgMTJoMTAiLz48cGF0aCBkPSJNNyAxN2gxMCIvPjxwYXRoIGQ9Ik01IDdsLTIgMiAyIDIiLz48cGF0aCBkPSJNMTkgMTVsMiAyLTIgMiIvPjwvc3ZnPjwvYnV0dG9uPic6Zj8nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIG1lcmdlLWJ0biIgZGF0YS1hY3Rpb249Indvcmt0cmVlLWNsZWFudXAiIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU5MUNEXHU4QkQ1XHU2RTA1XHU3NDA2IHdvcmt0cmVlIiB0aXRsZT0iXHU5MUNEXHU4QkQ1XHU2RTA1XHU3NDA2IHdvcmt0cmVlIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjwvYnV0dG9uPic6IiIsZz1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIGRlbGV0ZS1idG4iIGRhdGEtYWN0aW9uPSJkZWxldGUtc2Vzc2lvbiIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiIHRpdGxlPSJcdTUyMjBcdTk2NjRcdTZCNjRcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JyxtPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb25zIj4nK28raCtnKyI8L3NwYW4+Iix5PWUudGl0bGV8fGUuc3VtbWFyeT8nPGRpdiBjbGFzcz0ic2Vzc2lvbi10aXRsZSI+JytwKGUudGl0bGV8fGUuc3VtbWFyeSkrIjwvZGl2PiI6JzxkaXYgY2xhc3M9InNlc3Npb24tY29tbWFuZCI+JytwKGUucmVzdW1lZEZyb21TZXNzaW9uSWQ/ZS5jb21tYW5kLnJlcGxhY2UoL1xzKy0tcmVzdW1lXHMrXFMrLywiIikucmVwbGFjZSgvXHMrcmVzdW1lXHMrWzAtOWEtZi1dKy8sIiIpOmUuY29tbWFuZCkrIjwvZGl2PiIsQz1sYyhlKSxFPSIiO2Uuc3RhdHVzPT09InJ1bm5pbmciJiZDJiYoRT0nPGRpdiBjbGFzcz0ic2Vzc2lvbi1hY3Rpdml0eSI+JytwKEMpKyI8L2Rpdj4iKTt2YXIgQj1lLmRlc2NyaXB0aW9uPyc8ZGl2IGNsYXNzPSJzZXNzaW9uLWRlc2NyaXB0aW9uIj4nK3AoZS5kZXNjcmlwdGlvbikrIjwvZGl2PiI6IiIsRD0iIjtlLnN0YXR1cz09PSJydW5uaW5nIj9EPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iXHU1REYyXHU4RkQwXHU4ODRDICcrcChGbyhlLnN0YXJ0ZWRBdCkpKyciPicrcChGbyhlLnN0YXJ0ZWRBdCkpKyI8L3NwYW4+IjplLmVuZGVkQXQ/RD0nPHNwYW4gY2xhc3M9InNlc3Npb24tdGltZSIgdGl0bGU9IicrcChuZXcgRGF0ZShlLmVuZGVkQXQpLnRvTG9jYWxlU3RyaW5nKCkpKyciPicrcChFbyhlLmVuZGVkQXQpKSsiPC9zcGFuPiI6ZS5zdGFydGVkQXQmJihEPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iJytwKG5ldyBEYXRlKGUuc3RhcnRlZEF0KS50b0xvY2FsZVN0cmluZygpKSsnIj4nK3AoRW8oZS5zdGFydGVkQXQpKSsiPC9zcGFuPiIpO3ZhciBGPUNvKGUpLEk9ZS5hdXRvUmVjb3ZlcmVkPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1yZWNvdmVyeS1oaW50Ij5cdTgxRUFcdTUyQThcdTYwNjJcdTU5MEQ8L3NwYW4+JzoiIixMPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8ZGl2IGNsYXNzPSJzZXNzaW9uLXN3aXBlLWJnIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1zd2lwZS1kZWxldGUiIGRhdGEtYWN0aW9uPSJzd2lwZS1kZWxldGUtc2Vzc2lvbiIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48c3Bhbj5cdTUyMjBcdTk2NjQ8L3NwYW4+PC9idXR0b24+PC9kaXY+JztyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtJytuK2krJyIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+JytMKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tY29udGVudCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLXJvdyI+JytzKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1haW4iPjxkaXYgY2xhc3M9InNlc3Npb24tdGl0bGUtcm93Ij4nK3krRCsiPC9kaXY+IitCK0UrJzxkaXYgY2xhc3M9InNlc3Npb24tbWV0YSI+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzICcrdSsnIj4nK3AoYSkrIjwvc3Bhbj4iK0YrSSsiPC9kaXY+PC9kaXY+IittKyI8L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHBjKGUpe2lmKCFlfHwhZS53b3JrdHJlZU1lcmdlU3RhdHVzKXJldHVybiIiO3ZhciB0PXtyZWFkeToiXHU1M0VGXHU1NDA4XHU1RTc2IixjaGVja2luZzoiXHU2OEMwXHU2N0U1XHU0RTJEIixtZXJnaW5nOiJcdTU0MDhcdTVFNzZcdTRFMkQiLG1lcmdlZDplLndvcmt0cmVlTWVyZ2VJbmZvJiZlLndvcmt0cmVlTWVyZ2VJbmZvLmNsZWFudXBEb25lPT09ITE/Ilx1NURGMlx1NTQwOFx1NUU3Nlx1NUY4NVx1NkUwNVx1NzQwNiI6Ilx1NURGMlx1NTQwOFx1NUU3NiIsZmFpbGVkOiJcdTU0MDhcdTVFNzZcdTU5MzFcdThEMjUifTtyZXR1cm4gdFtlLndvcmt0cmVlTWVyZ2VTdGF0dXNdfHwiIn1mdW5jdGlvbiB2YyhlKXt2YXIgdD1wYyhlKTtyZXR1cm4gdD8nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSB3b3JrdHJlZS1tZXJnZSAnK3AoZS53b3JrdHJlZU1lcmdlU3RhdHVzfHwiIikrJyI+JytwKHQpKyI8L3NwYW4+IjoiIn1mdW5jdGlvbiBDbyhlKXtpZighZXx8IWUud29ya3RyZWVFbmFibGVkKXJldHVybiIiO3ZhciB0PVtdO2Uud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZ0LnB1c2goIldvcmt0cmVlOiAiK2Uud29ya3RyZWUuYnJhbmNoKSxlLndvcmt0cmVlJiZlLndvcmt0cmVlLnBhdGgmJnQucHVzaCgiUGF0aDogIitlLndvcmt0cmVlLnBhdGgpO3ZhciBuPXQubGVuZ3RoPjA/JyB0aXRsZT0iJytwKHQuam9pbihgCmApKSsnIic6IiI7cmV0dXJuJzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2Ugd29ya3RyZWUiJytuKyI+V29ya3RyZWU8L3NwYW4+Iit2YyhlKX1mdW5jdGlvbiBLZyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD11ZShlKT8nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSBzdHJ1Y3R1cmVkIj5TdHJ1Y3R1cmVkPC9zcGFuPic6JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2UgcHR5Ij5QVFk8L3NwYW4+JztyZXR1cm4gdCtDbyhlKX1mdW5jdGlvbiBtYyhlKXt2YXIgdD1be2lkOiJtYW5hZ2VkIixsYWJlbDoiXHU2MjU4XHU3QkExIixkZXNjOiJcdTUxNjhcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTRFRkJcdTUyQTEifSx7aWQ6ImZ1bGwtYWNjZXNzIixsYWJlbDoiXHU1MTY4XHU2NzQzXHU5NjUwIixkZXNjOiJcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTAifSx7aWQ6ImF1dG8tZWRpdCIsbGFiZWw6Ilx1ODFFQVx1NTJBOFx1N0YxNlx1OEY5MSIsZGVzYzoiXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU0RkVFXHU2NTM5In0se2lkOiJkZWZhdWx0IixsYWJlbDoiXHU2ODA3XHU1MUM2IixkZXNjOiJcdTkwMTBcdTZCNjVcdTc4NkVcdThCQTRcdTY0Q0RcdTRGNUMifSx7aWQ6Im5hdGl2ZSIsbGFiZWw6Ilx1NTM5Rlx1NzUxRiIsZGVzYzoiXHU1MzlGXHU3NTFGXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RjkzXHU1MUZBIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiI7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZS1jYXJkJytpKyciIGRhdGEtbW9kZT0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gZ2MoZSl7dmFyIHQ9W3tpZDoiY2xhdWRlIixsYWJlbDoiQ2xhdWRlIixkZXNjOiJcdTVCOENcdTY1NzQgQ2xhdWRlIFx1NEYxQVx1OEJERFx1ODBGRFx1NTI5QiJ9LHtpZDoiY29kZXgiLGxhYmVsOiJDb2RleCIsZGVzYzoiXHU3RUQzXHU2Nzg0XHU1MzE2IEpTT05MIFx1NjIxNiBQVFkgXHU0RjFBXHU4QkREIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiI7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZS1jYXJkIHByb3ZpZGVyLWNhcmQnK2krJyIgZGF0YS1wcm92aWRlcj0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gaGMoZSl7dmFyIHQ9W3tpZDoic3RydWN0dXJlZCIsbGFiZWw6Ilx1N0VEM1x1Njc4NFx1NTMxNiIsZGVzYzoiXHU2NjdBXHU4MEZEXHU1QkY5XHU4QkREXHU2QTIxXHU1RjBGIn0se2lkOiJwdHkiLGxhYmVsOiJQVFkiLGRlc2M6Ilx1NEVBNFx1NEU5Mlx1NUYwRlx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERCJ9XTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24obil7dmFyIGk9bi5pZD09PWU/IiBhY3RpdmUiOiIiLGE9IiI7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZS1jYXJkIHNlc3Npb24ta2luZC1jYXJkJytpK2ErJyIgZGF0YS1zZXNzaW9uLWtpbmQ9Iicrbi5pZCsnIj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWxhYmVsIj4nK24ubGFiZWwrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWRlc2MiPicrbi5kZXNjKyI8L3NwYW4+PC9idXR0b24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uIEpnKGUpe3JldHVybic8bGFiZWwgY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZSIgZm9yPSJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIgdGl0bGU9Ilx1NEUzQVx1OEJFNVx1NEYxQVx1OEJERFx1NTIxQlx1NUVGQVx1NzJFQ1x1N0FDQlx1NzY4NCBnaXQgd29ya3RyZWUgXHU1MjA2XHU2NTJGIj48c3ZnIGNsYXNzPSJzZXNzaW9uLWlubGluZS10b2dnbGUtaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIyLjIiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjYiIHI9IjIuMiIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTgiIHI9IjIuMiIvPjxwYXRoIGQ9Ik02IDguMnYzLjRhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOC4yIi8+PHBhdGggZD0iTTEyIDEzLjZ2Mi4yIi8+PC9zdmc+PHNwYW4gY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZS1sYWJlbCI+V29ya3RyZWUgXHU2QTIxXHU1RjBGPC9zcGFuPjxpbnB1dCBpZD0ic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSInKyhlPyIgY2hlY2tlZCI6IiIpKycgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2xhYmVsPid9ZnVuY3Rpb24gQm8oZSl7dmFyIHQ9ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSI7cmV0dXJuIGU9PT0ic3RydWN0dXJlZCI/dD09PSJjb2RleCI/IkNvZGV4IEpTT05MIFx1N0VEM1x1Njc4NFx1NTMxNlx1ODA0QVx1NTkyOVx1NzU0Q1x1OTc2Mlx1RkYwQ1x1NjUyRlx1NjMwMVx1NTkxQVx1OEY2RVx1NUJGOVx1OEJERFx1NTQ4Q1x1NURFNVx1NTE3N1x1OEMwM1x1NzUyOFx1NUM1NVx1NzkzQVx1MzAwMiI6Ilx1N0VEM1x1Njc4NFx1NTMxNlx1ODA0QVx1NTkyOVx1NzU0Q1x1OTc2Mlx1RkYwQ1x1NjUyRlx1NjMwMVx1NTkxQVx1OEY2RVx1NUJGOVx1OEJERFx1MzAwMVx1NkQ0MVx1NUYwRlx1OEY5M1x1NTFGQVx1NTQ4Q1x1NURFNVx1NTE3N1x1OEMwM1x1NzUyOFx1NUM1NVx1NzkzQVx1MzAwMiI6dD09PSJjb2RleCI/IkNvZGV4IFBUWSBcdTdFQzhcdTdBRUZcdTRGMUFcdThCRERcdUZGMUJ0ZXJtaW5hbCBcdTY2MkZcdTUzOUZcdTU5Q0JcdThGOTNcdTUxRkFcdUZGMENjaGF0IFx1NjYyRlx1ODlFM1x1Njc5MFx1NTQwRVx1NzY4NFx1OTYwNVx1OEJGQlx1ODlDNlx1NTZGRVx1MzAwMiI6Ilx1NTM5Rlx1NTlDQiBQVFkgXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREXHVGRjBDXHU2NTJGXHU2MzAxXHU2MzAxXHU3RUVEXHU0RUE0XHU0RTkyXHUzMDAxXHU3RUM4XHU3QUVGXHU4OUM2XHU1NkZFXHU1NDhDXHU2NzQzXHU5NjUwXHU2RDQxXHUzMDAyIn1mdW5jdGlvbiB5Yygpe3ZhciBlPSRlKCksdD1BdChlLHIubW9kZVZhbHVlfHxyLmNoYXRNb2RlfHwiZGVmYXVsdCIpLG49ci5zZXNzaW9uQ3JlYXRlS2luZHx8InN0cnVjdHVyZWQiLGk9ci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9PT0hMDtyZXR1cm4nPHNlY3Rpb24gaWQ9InNlc3Npb24tbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHNlc3Npb24tbW9kYWwiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdTY1QjBcdTVCRjlcdThCREQ8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSI+XHU1NDJGXHU1MkE4IENsYXVkZSBcdTYyMTYgQ29kZXggXHU0RjFBXHU4QkREXHVGRjBDXHU5MDA5XHU2MkU5IHByb3ZpZGVyXHUzMDAxXHU0RjFBXHU4QkREXHU3QzdCXHU1NzhCXHUzMDAxXHU2QTIxXHU1RjBGXHU1NDhDXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9wPjwvZGl2PjxidXR0b24gaWQ9ImNsb3NlLW1vZGFsLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5Qcm92aWRlcjwvbGFiZWw+PGRpdiBpZD0icHJvdmlkZXItY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK2djKGUpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCI+XHU0RjFBXHU4QkREXHU3QzdCXHU1NzhCPC9sYWJlbD48ZGl2IGlkPSJzZXNzaW9uLWtpbmQtY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK2hjKG4pKyc8L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZC1oaW50IHNlc3Npb24ta2luZC1oaW50LXJvdyI+PHNwYW4gaWQ9InNlc3Npb24ta2luZC1kZXNjcmlwdGlvbiI+JytwKEJvKG4pKSsnPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImN3ZCI+XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9sYWJlbD48ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy13cmFwIj48aW5wdXQgaWQ9ImN3ZCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBhdXRvY29tcGxldGU9Im9mZiIgcGxhY2Vob2xkZXI9IicrcChRZSgpKSsnIiAvPjxkaXYgaWQ9ImN3ZC1zdWdnZXN0aW9ucyIgY2xhc3M9InN1Z2dlc3Rpb25zIGhpZGRlbiI+PC9kaXY+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NTIxQlx1NUVGQVx1NTI0RFx1NTE0OFx1Nzg2RVx1OEJBNFx1NzZFRVx1NUY1NVx1RkYxQlx1NzU1OVx1N0E3QVx1NTIxOVx1NEY3Rlx1NzUyOFx1NEUwQVx1NjVCOVx1NzZFRVx1NUY1NVx1RkYwQ1x1NjUyRlx1NjMwMVx1OERFRlx1NUY4NFx1ODFFQVx1NTJBOFx1ODg2NVx1NTE2OFx1MzAwMjwvcD48ZGl2IGlkPSJyZWNlbnQtcGF0aHMtYnViYmxlcyIgY2xhc3M9InJlY2VudC1wYXRocy1idWJibGVzIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCI+XHU2QTIxXHU1RjBGPC9sYWJlbD48ZGl2IGlkPSJtb2RlLWNhcmRzIiBjbGFzcz0ibW9kZS1jYXJkcyI+JyttYyh0KSsnPC9kaXY+PHAgaWQ9Im1vZGUtZGVzY3JpcHRpb24iIGNsYXNzPSJmaWVsZC1oaW50Ij4nK3AoYmwoZSx0KSkrJzwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPjxidXR0b24gaWQ9InJ1bi1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTU0MkZcdTUyQThcdTRGMUFcdThCREQ8L2J1dHRvbj48cCBpZD0ibW9kYWwtZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj4nfWZ1bmN0aW9uIERvKCl7dmFyIGU9W107cmV0dXJuIHIuc2Vzc2lvbnMuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LnN0YXJ0ZWRBdD9uZXcgRGF0ZSh0LnN0YXJ0ZWRBdCkuZ2V0VGltZSgpOjA7ZS5wdXNoKHtraW5kOiJzZXNzaW9uIixyZWY6dCx0OmlzRmluaXRlKG4pP246MH0pfSksci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiZtcigpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC50aW1lc3RhbXA/bmV3IERhdGUodC50aW1lc3RhbXApLmdldFRpbWUoKTpOdW1iZXIodC5tdGltZU1zKXx8MDtpc0Zpbml0ZShuKXx8KG49TnVtYmVyKHQubXRpbWVNcyl8fDApLGUucHVzaCh7a2luZDoiaGlzdG9yeSIscmVmOnQsdDpufSl9KSxyLmNvZGV4SGlzdG9yeUxvYWRlZCYmbWEoKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQudGltZXN0YW1wP25ldyBEYXRlKHQudGltZXN0YW1wKS5nZXRUaW1lKCk6TnVtYmVyKHQubXRpbWVNcyl8fDA7ZS5wdXNoKHtraW5kOiJjb2RleCIscmVmOnQsdDppc0Zpbml0ZShuKT9uOjB9KX0pLGUuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBuLnQtdC50fSksZX1mdW5jdGlvbiBiYygpe3ZhciBlPVtdO2UucHVzaChrbygpKTt2YXIgdD1EbygpO3JldHVybiB0Lmxlbmd0aD09PTA/a28oKSsnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU4RkQ4XHU2Q0ExXHU2NzA5XHU0RjFBXHU4QkREXHU4QkIwXHU1RjU1PC9zdHJvbmc+PGJyPlx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMjwvZGl2Pic6KGUucHVzaCh3Yyh0KSksZS5qb2luKCIiKSl9ZnVuY3Rpb24gRWMoKXtyZXR1cm4hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWR9ZnVuY3Rpb24gRmMoKXt2YXIgZT1EbygpLHQ9ZS5tYXAoZnVuY3Rpb24oaSxhKXt2YXIgdT1hKzE7aWYoaS5raW5kPT09InNlc3Npb24iKXt2YXIgbz1pLnJlZixzPW8uaWQ9PT1yLnNlbGVjdGVkSWQ/IiBhY3RpdmUiOiIiLGw9by50aXRsZXx8by5kZXNjcmlwdGlvbnx8by5zdW1tYXJ5fHxvLmNvbW1hbmR8fCJcdTRGMUFcdThCREQgIit1O3JldHVybic8YnV0dG9uIGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlJytzKyciIHR5cGU9ImJ1dHRvbiIgZGF0YS1jb2xsYXBzZWQtc2Vzc2lvbi1pZD0iJytwKG8uaWQpKyciIHRpdGxlPSInK3AobCkrJyI+Jyt1KyI8L2J1dHRvbj4ifXZhciBkPWkucmVmLGY9ZC5maXJzdFVzZXJNZXNzYWdlfHwiKFx1N0E3QVx1NEYxQVx1OEJERCkiLGM9ZisiIFx4QjcgIitNbyhkLnRpbWVzdGFtcCk7cmV0dXJuJzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUiIHR5cGU9ImJ1dHRvbiIgZGF0YS1jb2xsYXBzZWQtaGlzdG9yeS1pZD0iJytwKGQuY2xhdWRlU2Vzc2lvbklkKSsnIiBkYXRhLXByb3ZpZGVyPSInK3AoaS5raW5kPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiKSsnIiBkYXRhLWN3ZD0iJytwKGQuY3dkfHwiIikrJyIgdGl0bGU9IicrcChjKSsnIj4nK3UrIjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxuPSc8YnV0dG9uIGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlIGFkZCIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1uZXctc2Vzc2lvbj0iMSIgdGl0bGU9Ilx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERCIgYXJpYS1sYWJlbD0iXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz48L3N2Zz48L2J1dHRvbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlcyI+Jyt0K24rIjwvZGl2PiJ9ZnVuY3Rpb24gdmEoKXtyZXR1cm4gRWMoKT9GYygpOmJjKCl9ZnVuY3Rpb24ga28oKXtpZighci5zZXNzaW9uc01hbmFnZU1vZGUpcmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLWJhciI+PHNwYW4gY2xhc3M9InNpZGViYXItaW50cm8iPlx1NTE2OFx1OTBFOFx1NEYxQVx1OEJERDwvc3Bhbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi14cyBzZXNzaW9uLW1hbmFnZS10b2dnbGUiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtbWFuYWdlLW1vZGUiIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOSAxMWwzIDNMMjIgNCIvPjxwYXRoIGQ9Ik0yMSAxMnY3YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMSIvPjwvc3ZnPjxzcGFuPlx1N0JBMVx1NzQwNjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nO3ZhciBlPUFvKCkubGVuZ3RoLHQ9eG8oKS5sZW5ndGgsbj1TbygpLmxlbmd0aCxpPWUrdCtuLGE9aT4wLHU9QmMoKSxvPXU+MCYmaT49dSxzPW8/Ilx1NTNENlx1NkQ4OFx1NTE2OFx1OTAwOSI6Ilx1NTE2OFx1OTAwOSIsbD1vPyJjbGVhci1zZWxlY3Rpb24iOiJzZWxlY3QtYWxsLXZpc2libGUiLGQ9dT09PTA/IiBkaXNhYmxlZCI6IiIsZj0nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtZXhpdCIgZGF0YS1hY3Rpb249InRvZ2dsZS1tYW5hZ2UtbW9kZSIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTkwMDBcdTUxRkFcdTdCQTFcdTc0MDZcdTZBMjFcdTVGMEYiIHRpdGxlPSJcdTkwMDBcdTUxRkFcdTdCQTFcdTc0MDZcdTZBMjFcdTVGMEYiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj4nLGM9YT8nPHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLWNvdW50Ij4nK2krJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeS1sYWJlbCI+XHU1REYyXHU5MDA5XHU2MkU5PC9zcGFuPic6JzxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsIG11dGVkIj5cdTkwMDlcdTYyRTlcdTg5ODFcdTdCQTFcdTc0MDZcdTc2ODRcdTk4NzlcdTc2RUU8L3NwYW4+JztyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYmFyIGFjdGl2ZSI+JytmKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5Ij4nK2MrJzwvZGl2PjxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIiBkYXRhLWFjdGlvbj0iJytsKyciIHR5cGU9ImJ1dHRvbiInK2QrIj4iK3MrJzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZGFuZ2VyIGJ0bi14cyIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZWxlY3RlZCIgdHlwZT0iYnV0dG9uIicrKGE/IiI6IiBkaXNhYmxlZCIpKyI+XHU1MjIwXHU5NjY0IisoYT8iICIraToiIikrIjwvYnV0dG9uPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gd2MoZSl7dmFyIHQ9JzxzZWN0aW9uIGNsYXNzPSJzZXNzaW9uLWdyb3VwIj4nO3JldHVybiB0Kz1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5raW5kPT09InNlc3Npb24iP2ZjKG4ucmVmLCJzZXNzaW9ucyIpOnhjKG4ucmVmLG4ua2luZCl9KS5qb2luKCIiKSx0Kz0iPC9zZWN0aW9uPiIsdH1mdW5jdGlvbiBtcigpe3ZhciBlPW5ldyBTZXQ7cmV0dXJuIHIuc2Vzc2lvbnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNsYXVkZVNlc3Npb25JZCYmZS5hZGQodC5jbGF1ZGVTZXNzaW9uSWQpfSksci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5oYXNDb252ZXJzYXRpb24mJiF0Lm1hbmFnZWRCeVdhbmQmJiFlLmhhcyh0LmNsYXVkZVNlc3Npb25JZCl9KX1mdW5jdGlvbiBBbygpe3JldHVybiBPYmplY3Qua2V5cyhyLnNlbGVjdGVkU2Vzc2lvbklkcykuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiEhci5zZWxlY3RlZFNlc3Npb25JZHNbZV19KX1mdW5jdGlvbiB4bygpe3JldHVybiBPYmplY3Qua2V5cyhyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkcykuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiEhci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbZV19KX1mdW5jdGlvbiBTbygpe3JldHVybiBPYmplY3Qua2V5cyhyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzW2VdfSl9ZnVuY3Rpb24gb2koKXtyLnNlbGVjdGVkU2Vzc2lvbklkcz17fSxyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkcz17fSxyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzPXt9fWZ1bmN0aW9uIENjKGUpe3Iuc2Vzc2lvbnNNYW5hZ2VNb2RlPXR5cGVvZiBlPT0iYm9vbGVhbiI/ZTohci5zZXNzaW9uc01hbmFnZU1vZGUsci5zZXNzaW9uc01hbmFnZU1vZGUmJighci5jbGF1ZGVIaXN0b3J5TG9hZGVkfHwhci5jb2RleEhpc3RvcnlMb2FkZWQpJiZzaSgpLnRoZW4oZmUpLHIuc2Vzc2lvbnNNYW5hZ2VNb2RlfHwob2koKSxNcigpKSxmZSgpfWZ1bmN0aW9uIElvKCl7cmV0dXJuIHIuc2Vzc2lvbnMuc2xpY2UoKX1mdW5jdGlvbiBCYygpe3JldHVybiBJbygpLmxlbmd0aCttcigpLmxlbmd0aCttYSgpLmxlbmd0aH1mdW5jdGlvbiBUbygpe2lmKCFyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fCFyLmNvZGV4SGlzdG9yeUxvYWRlZCl7c2koKS50aGVuKFRvKTtyZXR1cm59dmFyIGU9e307SW8oKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2VbaS5pZF09ITB9KTt2YXIgdD17fTttcigpLmZvckVhY2goZnVuY3Rpb24oaSl7dFtpLmNsYXVkZVNlc3Npb25JZF09ITB9KTt2YXIgbj17fTttYSgpLmZvckVhY2goZnVuY3Rpb24oaSl7bltpLmNsYXVkZVNlc3Npb25JZF09ITB9KSxyLnNlbGVjdGVkU2Vzc2lvbklkcz1lLHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzPXQsci5zZWxlY3RlZENvZGV4SGlzdG9yeUlkcz1uLGZlKCl9ZnVuY3Rpb24gRGMoKXtvaSgpLGZlKCl9ZnVuY3Rpb24gZ3IoZSx0KXtpZighKCFyLnNlc3Npb25zTWFuYWdlTW9kZXx8IXQpKXt2YXIgbj1lPT09Imhpc3RvcnkiP3Iuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzOmU9PT0iY29kZXgiP3Iuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM6ci5zZWxlY3RlZFNlc3Npb25JZHM7blt0XT9kZWxldGUgblt0XTpuW3RdPSEwLGZlKCl9fWZ1bmN0aW9uIExvKGUsdCxuKXtpZighci5zZXNzaW9uc01hbmFnZU1vZGUpcmV0dXJuIiI7dmFyIGk9ZT09PSJoaXN0b3J5Ij8hIXIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzW3RdOmU9PT0iY29kZXgiPyEhci5zZWxlY3RlZENvZGV4SGlzdG9yeUlkc1t0XTohIXIuc2VsZWN0ZWRTZXNzaW9uSWRzW3RdO3JldHVybic8bGFiZWwgY2xhc3M9InNlc3Npb24tbWFuYWdlLWNoZWNrIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEtYWN0aW9uPSJ0b2dnbGUtc2VsZWN0aW9uIiBkYXRhLWtpbmQ9IicrcChlKSsnIiBkYXRhLWlkPSInK3AodCkrJyInKyhpPyIgY2hlY2tlZCI6IiIpKycgYXJpYS1sYWJlbD0iJytwKG4pKyciPjxzcGFuPjwvc3Bhbj48L2xhYmVsPid9ZnVuY3Rpb24gSW4oZSx0KXtyZXR1cm4gSWEoZSxPYmplY3QuYXNzaWduKHt0eXBlOiJkYW5nZXIiLGRhbmdlcjohMCxva0xhYmVsOiJcdTUyMjBcdTk2NjQifSx0fHx7fSkpfWZ1bmN0aW9uIGtjKCl7dmFyIGU9QW8oKSx0PXhvKCksbj1TbygpLGk9ZS5sZW5ndGgrdC5sZW5ndGgrbi5sZW5ndGg7aSYmSW4oIlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOSAiK2krIiBcdTk4NzlcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5ICIraSsiIFx1OTg3OSJ9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEpe3ZhciB1PVtdO2UubGVuZ3RoPjAmJnUucHVzaChmZXRjaCgiL2FwaS9zZXNzaW9ucy9iYXRjaC1kZWxldGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtzZXNzaW9uSWRzOmV9KX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkpLHQubGVuZ3RoPjAmJnUucHVzaChmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeS9iYXRjaC1kZWxldGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtjbGF1ZGVTZXNzaW9uSWRzOnR9KX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkpLG4ubGVuZ3RoPjAmJnUucHVzaChmZXRjaCgiL2FwaS9jb2RleC1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6bn0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KSksUHJvbWlzZS5hbGwodSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLmluZGV4T2Yoci5zZWxlY3RlZElkKSE9PS0xJiYoci5zZWxlY3RlZElkPW51bGwsaGUoKSksci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuIHQuaW5kZXhPZihvLmNsYXVkZVNlc3Npb25JZCk9PT0tMX0pLHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gbi5pbmRleE9mKG8uY2xhdWRlU2Vzc2lvbklkKT09PS0xfSksb2koKSxIdCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7UGUobywiXHU2NUUwXHU2Q0Q1XHU2Mjc5XHU5MUNGXHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5XHU5ODc5XHU3NkVFXHUzMDAyIil9KX19KX1mdW5jdGlvbiBBYygpe3ZhciBlPURhdGUubm93KCktODY0ZTUsdD1tcigpLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hbi50aW1lc3RhbXB8fG5ldyBEYXRlKG4udGltZXN0YW1wKS5nZXRUaW1lKCk8PWV9KTtpZih0Lmxlbmd0aClyZXR1cm4gSW4oIlx1Nzg2RVx1OEJBNFx1NkUwNVx1N0E3QVx1NUY1M1x1NTI0RFx1NjYzRVx1NzkzQVx1NzY4NCAiK3QubGVuZ3RoKyIgXHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU2RTA1XHU3QTdBIENsYXVkZSBcdTUzODZcdTUzRjIiLG9rTGFiZWw6Ilx1NkUwNVx1N0E3QSJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPXQubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZH0pO3JldHVybiBmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeS9iYXRjaC1kZWxldGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtjbGF1ZGVTZXNzaW9uSWRzOml9KX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZihhJiZhLmVycm9yKXRocm93IG5ldyBFcnJvcihhLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gaS5pbmRleE9mKHUuY2xhdWRlU2Vzc2lvbklkKT09PS0xfSksb2koKSxmZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7UGUoYSwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3QTdBXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHUzMDAyIil9KX19KX1mdW5jdGlvbiB4YyhlLHQpe3ZhciBuPXQ9PT0iY29kZXgiLGk9bj8icmVzdW1lLWNvZGV4LWhpc3RvcnkiOiJyZXN1bWUtaGlzdG9yeSIsYT1uPyJkZWxldGUtY29kZXgtaGlzdG9yeSI6ImRlbGV0ZS1oaXN0b3J5Iix1PW4/ci5zZWxlY3RlZENvZGV4SGlzdG9yeUlkczpyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkcyxvPWUuY2xhdWRlU2Vzc2lvbklkLnNsaWNlKDAsOCkscz1lLmZpcnN0VXNlck1lc3NhZ2V8fCIoXHU3QTdBXHU0RjFBXHU4QkREKSIsbD1NbyhlLnRpbWVzdGFtcCksZD1Mbyh0LGUuY2xhdWRlU2Vzc2lvbklkLCJcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQgIitzKSxmPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gZGVsZXRlLWJ0biIgZGF0YS1hY3Rpb249IicrYSsnIiBkYXRhLWNsYXVkZS1zZXNzaW9uLWlkPSInK2UuY2xhdWRlU2Vzc2lvbklkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIiB0aXRsZT0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjwvYnV0dG9uPicsYz1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIiBkYXRhLWFjdGlvbj0iJytpKyciIGRhdGEtY2xhdWRlLXNlc3Npb24taWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgZGF0YS1jd2Q9IicrcChlLmN3ZCkrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTYwNjJcdTU5MERcdTRGMUFcdThCREQiIHRpdGxlPSInKyhuPyJcdTYwNjJcdTU5MERcdTZCNjQgQ29kZXggXHU0RjFBXHU4QkREIjoiXHU2MDYyXHU1OTBEXHU2QjY0IENsYXVkZSBcdTRGMUFcdThCREQiKSsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xIDR2Nmg2Ii8+PHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMTA1LjY0LTExLjM2TDMgMTAiLz48L3N2Zz48L2J1dHRvbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0nKyhyLnNlc3Npb25zTWFuYWdlTW9kZSYmdVtlLmNsYXVkZVNlc3Npb25JZF0/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtY2xhdWRlLWhpc3RvcnktaWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgZGF0YS1wcm92aWRlcj0iJysobj8iY29kZXgiOiJjbGF1ZGUiKSsnIiBkYXRhLWN3ZD0iJytwKGUuY3dkKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tY29udGVudCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLXJvdyI+JytkKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1haW4iPjxkaXYgY2xhc3M9InNlc3Npb24tY29tbWFuZCBjbGF1ZGUtaGlzdG9yeS1wcmV2aWV3Ij4nK3AocykrJzwvZGl2PjxkaXYgY2xhc3M9InNlc3Npb24tbWV0YSI+PHNwYW4gY2xhc3M9InNlc3Npb24taWQiIHRpdGxlPSInK3AoZS5jbGF1ZGVTZXNzaW9uSWQpKyciPicrcChvKSsiPC9zcGFuPjxzcGFuPiIrcChsKSsnPC9zcGFuPjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJzZXNzaW9uLWFjdGlvbnMiPicrYytmKyI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBNbyhlKXtpZighZSlyZXR1cm4iIjt0cnl7dmFyIHQ9bmV3IERhdGUoZSksbj1uZXcgRGF0ZSxpPW4tdCxhPU1hdGguZmxvb3IoaS82ZTQpO2lmKGE8MSlyZXR1cm4iXHU1MjFBXHU1MjFBIjtpZihhPDYwKXJldHVybiBhKyIgXHU1MjA2XHU5NDlGXHU1MjREIjt2YXIgdT1NYXRoLmZsb29yKGEvNjApO2lmKHU8MjQpcmV0dXJuIHUrIiBcdTVDMEZcdTY1RjZcdTUyNEQiO3ZhciBvPU1hdGguZmxvb3IodS8yNCk7cmV0dXJuIG88MzA/bysiIFx1NTkyOVx1NTI0RCI6dC50b0xvY2FsZURhdGVTdHJpbmcoKX1jYXRjaHtyZXR1cm4iIn19ZnVuY3Rpb24gcW8oKXtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTpbXX0pLnRoZW4oZnVuY3Rpb24oZSl7ci5jbGF1ZGVIaXN0b3J5PWV8fFtdLHIuY2xhdWRlSGlzdG9yeUxvYWRlZD0hMCxmZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITAsci5jbGF1ZGVIaXN0b3J5PVtdLGZlKCl9KX12YXIgaHI9bnVsbDtmdW5jdGlvbiBzaSgpe3ZhciBlPVNjKCk7IXIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmIWhyJiYoaHI9cW8oKS50aGVuKGZ1bmN0aW9uKCl7aHI9bnVsbH0sZnVuY3Rpb24oKXtocj1udWxsfSkpO3ZhciB0PWhyfHxQcm9taXNlLnJlc29sdmUoKTtyZXR1cm4gUHJvbWlzZS5hbGwoW3QsZV0pLnRoZW4oZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBQbygpe3JldHVybiBmZXRjaCgiL2FwaS9jb2RleC1oaXN0b3J5Iix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6W119KS50aGVuKGZ1bmN0aW9uKGUpe3IuY29kZXhIaXN0b3J5PWV8fFtdLHIuY29kZXhIaXN0b3J5TG9hZGVkPSEwLGZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3IuY29kZXhIaXN0b3J5TG9hZGVkPSEwLHIuY29kZXhIaXN0b3J5PVtdLGZlKCl9KX12YXIgS249bnVsbDtmdW5jdGlvbiBTYygpe3JldHVybiByLmNvZGV4SGlzdG9yeUxvYWRlZD9Qcm9taXNlLnJlc29sdmUoKTpLbnx8KEtuPVBvKCkudGhlbihmdW5jdGlvbigpe0tuPW51bGx9LGZ1bmN0aW9uKCl7S249bnVsbH0pLEtuKX1mdW5jdGlvbiBtYSgpe3ZhciBlPW5ldyBTZXQ7cmV0dXJuIHIuc2Vzc2lvbnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNsYXVkZVNlc3Npb25JZCYmZS5hZGQodC5jbGF1ZGVTZXNzaW9uSWQpfSksci5jb2RleEhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0NvbnZlcnNhdGlvbiYmIXQubWFuYWdlZEJ5V2FuZCYmIWUuaGFzKHQuY2xhdWRlU2Vzc2lvbklkKX0pfWZ1bmN0aW9uIE9vKCl7V28oKSwhbGkoKSYmKHIucG9sbFRpbWVyPXNldEludGVydmFsKEh0LDE2MDApKX1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXNzaW9uLXRpbWUiKTtlLmxlbmd0aD4wJiZFdSgpfSwzZTQpO2Z1bmN0aW9uIGdhKCl7ci53c1JlY29ubmVjdFRpbWVyJiYoY2xlYXJUaW1lb3V0KHIud3NSZWNvbm5lY3RUaW1lciksci53c1JlY29ubmVjdFRpbWVyPW51bGwpfXZhciBJYz0xZTQsVGM9NGU0O2Z1bmN0aW9uIExjKCl7SG8oKSxyLndzSGVhcnRiZWF0Q2hlY2tUaW1lcj1zZXRJbnRlcnZhbChfbyxJYyl9ZnVuY3Rpb24gSG8oKXtyLndzSGVhcnRiZWF0Q2hlY2tUaW1lciYmKGNsZWFySW50ZXJ2YWwoci53c0hlYXJ0YmVhdENoZWNrVGltZXIpLHIud3NIZWFydGJlYXRDaGVja1RpbWVyPW51bGwpfWZ1bmN0aW9uIF9vKCl7aWYoISghci53c3x8ci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU4pJiZyLmxhc3RXc01lc3NhZ2VBdCl7dmFyIGU9RGF0ZS5ub3coKS1yLmxhc3RXc01lc3NhZ2VBdDtlPlRjJiZoYSgiaGVhcnRiZWF0LXN0YWxlLSIrTWF0aC5yb3VuZChlLzFlMykrInMiKX19ZnVuY3Rpb24gaGEoZSl7aWYoZ2EoKSxyLndzKXt2YXIgdD1yLndzO3RyeXt0Lm9uY2xvc2U9bnVsbH1jYXRjaHt9dHJ5e3Qub25lcnJvcj1udWxsfWNhdGNoe310cnl7dC5vbm1lc3NhZ2U9bnVsbH1jYXRjaHt9dHJ5e3QuY2xvc2UoKX1jYXRjaHt9ci53cz1udWxsfXIud3NDb25uZWN0ZWQ9ITEsci53c1JlY29ubmVjdEF0dGVtcHRzPTAsbGkoZSl9ZnVuY3Rpb24gTm8oKXtpZighci53c1JlY29ubmVjdFRpbWVyJiYhZG9jdW1lbnQuaGlkZGVuKXt2YXIgZT1yLndzUmVjb25uZWN0QXR0ZW1wdHN8fDAsdD1bNTAwLDFlMywyZTMsNGUzLDhlM10sbj10W2U8dC5sZW5ndGg/ZTp0Lmxlbmd0aC0xXTtyLndzUmVjb25uZWN0QXR0ZW1wdHM9ZSsxLHIud3NSZWNvbm5lY3RUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci53c1JlY29ubmVjdFRpbWVyPW51bGwsci5jb25maWcmJiFyLndzJiYhZG9jdW1lbnQuaGlkZGVuJiZsaSgiYmFja29mZiIpfSxuKX19ZnVuY3Rpb24gbGkoZSl7aWYoIXdpbmRvdy5XZWJTb2NrZXQpcmV0dXJuITE7aWYoci53cyl7dHJ5e3Iud3MuY2xvc2UoKX1jYXRjaHt9ci53cz1udWxsfXZhciB0PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiPyJ3c3M6Ijoid3M6IixuPXQrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCsiL3dzIjt0cnl7dmFyIGk9bmV3IFdlYlNvY2tldChuKTtyZXR1cm4gaS5vbm9wZW49ZnVuY3Rpb24oKXtyLndzPWksci53c0Nvbm5lY3RlZD0hMCxyLmxhc3RXc01lc3NhZ2VBdD1EYXRlLm5vdygpLHIud3NSZWNvbm5lY3RBdHRlbXB0cz0wLGdhKCksci5sYXN0U2VxQnlTZXNzaW9uPXt9LExjKCksSG4oci5zZWxlY3RlZElkKSxydigpLENyKCJ3cy1yZWNvbm5lY3QiKX0saS5vbm1lc3NhZ2U9ZnVuY3Rpb24oYSl7ci5sYXN0V3NNZXNzYWdlQXQ9RGF0ZS5ub3coKTt0cnl7dmFyIHU9SlNPTi5wYXJzZShhLmRhdGEpO2lmKHUmJnUudHlwZT09PSJwaW5nIil7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicG9uZyIsdDp1LnR9KSl9Y2F0Y2h7fXJldHVybn1pZih1JiZ1LnR5cGU9PT0icmVzeW5jX3JlcXVpcmVkIiYmdS5zZXNzaW9uSWQpe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InJlc3luYyIsc2Vzc2lvbklkOnUuc2Vzc2lvbklkfSkpfWNhdGNoe31yLmxhc3RTZXFCeVNlc3Npb258fChyLmxhc3RTZXFCeVNlc3Npb249e30pLHIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09MDtyZXR1cm59aWYodSYmKHUudHlwZT09PSJpbml0Inx8dS50eXBlPT09Im91dHB1dCIpJiZ1LnNlc3Npb25JZCYmdHlwZW9mIHUuc2VxPT0ibnVtYmVyIil7ci5sYXN0U2VxQnlTZXNzaW9ufHwoci5sYXN0U2VxQnlTZXNzaW9uPXt9KTt2YXIgbz1yLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdfHwwO2lmKHUudHlwZT09PSJpbml0IilyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxO2Vsc2UgaWYodS5zZXE9PT1vKzEpci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcTtlbHNlIGlmKHUuc2VxPm8rMSYmbz4wKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJyZXN5bmMiLHNlc3Npb25JZDp1LnNlc3Npb25JZH0pKX1jYXRjaHt9ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT0wO3JldHVybn1lbHNle2lmKHUuc2VxPG8pcmV0dXJuO3IubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXF9fU1jKHUpfWNhdGNoe319LGkub25jbG9zZT1mdW5jdGlvbigpe3Iud3M9bnVsbCxyLndzQ29ubmVjdGVkPSExLEhvKCksTm8oKX0saS5vbmVycm9yPWZ1bmN0aW9uKCl7aS5jbG9zZSgpfSwhMH1jYXRjaHtyZXR1cm4gTm8oKSwhMX19ZnVuY3Rpb24gTWMoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJvdXRwdXQiOmlmKGUuZGF0YSYmZS5zZXNzaW9uSWQmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsImlzUmVzcG9uZGluZyIpJiYoci5fbGFzdElzUmVzcG9uZGluZ3x8KHIuX2xhc3RJc1Jlc3BvbmRpbmc9e30pLHIuX2xhc3RJc1Jlc3BvbmRpbmdbZS5zZXNzaW9uSWRdPSEhZS5kYXRhLmlzUmVzcG9uZGluZyksZS5kYXRhJiZlLnNlc3Npb25JZCl7dmFyIHQ9ISFlLmRhdGEuaW5jcmVtZW50YWwsbj17aWQ6ZS5zZXNzaW9uSWR9LGk9ITE7aWYoIXQmJmUuZGF0YS5vdXRwdXQhPT12b2lkIDAmJihuLm91dHB1dD1lLmRhdGEub3V0cHV0KSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpJiYobi5wZXJtaXNzaW9uQmxvY2tlZD0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicXVldWVkTWVzc2FnZXMiKSYmKG4ucXVldWVkTWVzc2FnZXM9ZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzfHxbXSxyLnF1ZXVlRXBvY2grKyksZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmKG4uc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpLGUuZGF0YS5zZXNzaW9uS2luZCYmKG4uc2Vzc2lvbktpbmQ9ZS5kYXRhLnNlc3Npb25LaW5kKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJ0aXRsZSIpJiYobi50aXRsZT1lLmRhdGEudGl0bGUsaT0hMCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiZGVzY3JpcHRpb24iKSYmKG4uZGVzY3JpcHRpb249ZS5kYXRhLmRlc2NyaXB0aW9uLGk9ITApLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN1bW1hcnkiKSYmKG4uc3VtbWFyeT1lLmRhdGEuc3VtbWFyeSksZS5kYXRhLm1lc3NhZ2VzKW4ubWVzc2FnZXM9ZS5kYXRhLm1lc3NhZ2VzLHR5cGVvZiBlLmRhdGEubWVzc2FnZU9mZnNldD09Im51bWJlciImJihuLm1lc3NhZ2VPZmZzZXQ9ZS5kYXRhLm1lc3NhZ2VPZmZzZXQpLHR5cGVvZiBlLmRhdGEubWVzc2FnZVRvdGFsPT0ibnVtYmVyIiYmKG4ubWVzc2FnZVRvdGFsPWUuZGF0YS5tZXNzYWdlVG90YWwpO2Vsc2UgaWYodCYmZS5kYXRhLmxhc3RNZXNzYWdlKXt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oUCl7cmV0dXJuIFAuaWQ9PT1lLnNlc3Npb25JZH0pO2lmKGEpe3ZhciB1PUFycmF5LmlzQXJyYXkoYS5tZXNzYWdlcyk/YS5tZXNzYWdlcy5zbGljZSgpOltdLG89ZS5kYXRhLm1lc3NhZ2VDb3VudHx8MCxzPXR5cGVvZiBhLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP2EubWVzc2FnZU9mZnNldDowLGw9dS5sZW5ndGg+MD91W3UubGVuZ3RoLTFdOm51bGwsZD1lLmRhdGEubGFzdE1lc3NhZ2U7bCYmZC5yb2xlJiZsLnJvbGU9PT1kLnJvbGU/dVt1Lmxlbmd0aC0xXT1BcChsLGQpOnMrdS5sZW5ndGg8byYmdS5wdXNoKGQpLG4ubWVzc2FnZXM9dSxvPjAmJihuLm1lc3NhZ2VUb3RhbD1vKX19dmFyIGY9dCYmZS5kYXRhLmNodW5rJiYhZS5kYXRhLmxhc3RNZXNzYWdlJiYhbi5tZXNzYWdlcyYmbi5vdXRwdXQ9PT12b2lkIDAmJiFlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYhZS5kYXRhLnNlc3Npb25LaW5kO2lmKGYpe2lmKGUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCE9PXZvaWQgMCl7dmFyIGM9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKFApe3JldHVybiBQLmlkPT09ZS5zZXNzaW9uSWR9KTtjJiYhIWMucGVybWlzc2lvbkJsb2NrZWQhPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkJiYoWChuKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmJHQoKSl9fWVsc2UgaWYoKG4ub3V0cHV0IT09dm9pZCAwfHxuLm1lc3NhZ2VzfHx0fHxlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQhPT12b2lkIDB8fG4udGl0bGV8fG4uZGVzY3JpcHRpb24pJiYoWChuKSxpJiZFdSgpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkKSl7dmFyIHY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKFApe3JldHVybiBQLmlkPT09ZS5zZXNzaW9uSWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1OZSh2LFhlKHYsdi5vdXRwdXQsITEpKSwkdCgpLHYuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fGUuZGF0YS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIj95cigpOnlhKCl9fWUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZyLnRlcm1pbmFsJiZlLmRhdGEmJihlLmRhdGEuY2h1bmsmJkhwKGUuc2Vzc2lvbklkKT8oci5sYXN0Q2h1bmtBdD1EYXRlLm5vdygpLHIudGVybWluYWxMaXZlU3RyZWFtU2Vzc2lvbnNbZS5zZXNzaW9uSWRdPSEwLEduKHIudGVybWluYWwsZS5kYXRhLmNodW5rKSxyLnRlcm1pbmFsU2Vzc2lvbklkPWUuc2Vzc2lvbklkLGUuZGF0YS5vdXRwdXQ/KHIudGVybWluYWxPdXRwdXQ9YXMobHUoZS5kYXRhLm91dHB1dCkpLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCk6ci50ZXJtaW5hbE91dHB1dD1hcygoci50ZXJtaW5hbE91dHB1dHx8IiIpK2x1KGUuZGF0YS5jaHVuaykpLHZ0KCJvdXRwdXQiKSxhdCgpKTohZS5kYXRhLmluY3JlbWVudGFsJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJvdXRwdXQiKSYmbWkoZS5zZXNzaW9uSWQsZS5kYXRhLm91dHB1dHx8IiIse21vZGU6ImFwcGVuZCJ9KSk7YnJlYWs7Y2FzZSJzdGFydGVkIjptbigpO2JyZWFrO2Nhc2UiZW5kZWQiOnt2YXIgaD1lLmRhdGEmJmUuZGF0YS5zdGF0dXM/ZS5kYXRhLnN0YXR1czoiZXhpdGVkIixnPWUuZGF0YSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicGVybWlzc2lvbkJsb2NrZWQiKT8hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZDohMSxtPXtpZDplLnNlc3Npb25JZCxzdGF0dXM6aCxwZXJtaXNzaW9uQmxvY2tlZDpnfTtlLmRhdGEmJmUuZGF0YS5tZXNzYWdlcyYmKG0ubWVzc2FnZXM9ZS5kYXRhLm1lc3NhZ2VzLHR5cGVvZiBlLmRhdGEubWVzc2FnZU9mZnNldD09Im51bWJlciImJihtLm1lc3NhZ2VPZmZzZXQ9ZS5kYXRhLm1lc3NhZ2VPZmZzZXQpLHR5cGVvZiBlLmRhdGEubWVzc2FnZVRvdGFsPT0ibnVtYmVyIiYmKG0ubWVzc2FnZVRvdGFsPWUuZGF0YS5tZXNzYWdlVG90YWwpKSxlLmRhdGEmJmUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJihtLnN0cnVjdHVyZWRTdGF0ZT1lLmRhdGEuc3RydWN0dXJlZFN0YXRlKSxlLmRhdGEmJmUuZGF0YS5xdWV1ZWRNZXNzYWdlcyYmKG0ucXVldWVkTWVzc2FnZXM9ZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzKSxYKG0pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoUG4oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpLHlhKCEwKSk7dmFyIHk9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKFApe3JldHVybiBQLmlkPT09ZS5zZXNzaW9uSWR9KSxDPWUuZGF0YSYmZS5kYXRhLmV4aXRDb2RlLEU9QyE9bnVsbCYmQyE9PTAsQj15JiZ5LnN1bW1hcnl8fCIiLEQ9eT9jYyh5KToiIixGPUU/Ilx1NEVGQlx1NTJBMVx1NUYwMlx1NUUzOFx1N0VEM1x1Njc1RiI6Ilx1NEVGQlx1NTJBMVx1NURGMlx1NUI4Q1x1NjIxMCIsST0iIjtCPyhJPUIsRCYmIUUmJihJKz1gCmArRCkpOkk9eSYmeS5jb21tYW5kfHxlLnNlc3Npb25JZCwkbihFPyJlcnJvciI6InN1Y2Nlc3MiKSxZZihlLnNlc3Npb25JZCxGLEkpLGZzKGUuc2Vzc2lvbklkKSxNYSgpLChlLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZHx8ZG9jdW1lbnQuaGlkZGVuKSYmVGEoe3RpdGxlOkYsYm9keTpJLHR5cGU6RT8id2FybmluZyI6InN1Y2Nlc3MiLGljb246RT8iISI6Ilx1MjcxMyIsZHVyYXRpb246NmUzLGFjdGlvbkxhYmVsOiJcdTY3RTVcdTc3MEIiLGFjdGlvbjpmdW5jdGlvbigpe050KGUuc2Vzc2lvbklkKX19KSxyLm1lc3NhZ2VRdWV1ZT1bXSxyLnBlbmRpbmdNZXNzYWdlcz1bXTt2YXIgTD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oUCl7cmV0dXJuIFAuaWQ9PT1lLnNlc3Npb25JZH0pLEg9ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQ/ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKFApe3JldHVybiBQLmlkPT09ci5zZWxlY3RlZElkfSk6bnVsbCxVPSEhKEwmJkwuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fEgmJkguc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpO1UmJmUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkPyhBcygpLFZ1KGUuc2Vzc2lvbklkKSk6VXx8KHIuc3RydWN0dXJlZElucHV0UXVldWU9W10sVnUoci5zZWxlY3RlZElkKSxkbigpKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFV8fE9uKCExKSxyLmN1cnJlbnRUYXNrPW51bGwsJHQoKSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJk5yKCksbW4oKS50aGVuKGZ1bmN0aW9uKCl7RmkoKX0pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoVXx8Z24oZS5zZXNzaW9uSWQpKTticmVha31jYXNlImluaXQiOmlmKGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZlLmRhdGEpe3IuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKSxYKGUuZGF0YSk7dmFyIHg9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKFApe3JldHVybiBQLmlkPT09ZS5zZXNzaW9uSWR9KTtyLmN1cnJlbnRNZXNzYWdlcz1OZSh4fHxlLmRhdGEsWGUoeHx8ZS5kYXRhLGUuZGF0YS5vdXRwdXQsITEpKSx5cighMCksJHQoKSxqbygpO3ZhciBrPWUuZGF0YS5vdXRwdXR8fCIiLFQ9ci50ZXJtaW5hbFNlc3Npb25JZD09PWUuc2Vzc2lvbklkLE09ci50ZXJtaW5hbE91dHB1dHx8IiIsWT1UJiZNLmxlbmd0aD4wJiZrLmxlbmd0aD49TS5sZW5ndGgmJmsuc3RhcnRzV2l0aChNKTtIYyhrLGUuc2Vzc2lvbklkLFk/ImFwcGVuZCI6InJlcGxhY2UiKSxDcigiaW5pdCIpfWJyZWFrO2Nhc2UidXNhZ2UiOmJyZWFrO2Nhc2UidGFzayI6ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihyLmN1cnJlbnRUYXNrPWUuZGF0YXx8bnVsbCwkdCgpKSxLZihlLnNlc3Npb25JZCxlLmRhdGF8fG51bGwpLHFhKGUuc2Vzc2lvbklkKSxFdSgpO2JyZWFrO2Nhc2Uic3RhdHVzIjppZihlLnNlc3Npb25JZCYmZS5kYXRhKXt2YXIgej17aWQ6ZS5zZXNzaW9uSWR9O2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN0YXR1cyIpJiYoei5zdGF0dXM9ZS5kYXRhLnN0YXR1cyksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiZXhpdENvZGUiKSYmKHouZXhpdENvZGU9ZS5kYXRhLmV4aXRDb2RlKSxlLmRhdGEuc3RydWN0dXJlZFN0YXRlKXouc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGU7ZWxzZSBpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJzdGF0dXMiKSl7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGope3JldHVybiBqLmlkPT09ZS5zZXNzaW9uSWR9KTthJiZhLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiJiYoei5zdHJ1Y3R1cmVkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxhLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OmUuZGF0YS5zdGF0dXM9PT0icnVubmluZyJ9KSl9aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicXVldWVkTWVzc2FnZXMiKSYmKHoucXVldWVkTWVzc2FnZXM9ZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzfHxbXSxyLnF1ZXVlRXBvY2grKyksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicGVybWlzc2lvbkJsb2NrZWQiKSYmKHoucGVybWlzc2lvbkJsb2NrZWQ9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQpLGUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdCl7ei5wZW5kaW5nRXNjYWxhdGlvbj17c2NvcGU6ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnNjb3BlLHRhcmdldDplLmRhdGEucGVybWlzc2lvblJlcXVlc3QudGFyZ2V0LHJlYXNvbjplLmRhdGEucGVybWlzc2lvblJlcXVlc3QucHJvbXB0fTt2YXIgUT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oUCl7cmV0dXJuIFAuaWQ9PT1lLnNlc3Npb25JZH0pLGxlPVEmJihRLnN1bW1hcnl8fFEuY29tbWFuZCl8fGUuc2Vzc2lvbklkLGVlPWUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5wcm9tcHR8fCJcdTk3MDBcdTg5ODFcdTY3NDNcdTk2NTBcdTVCQTFcdTYyNzkiLFo9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnRhcmdldCxxPWxlO1o/cSs9YApgK2VlKyIgXHhCNyAiK1o6cSs9YApgK2VlLCRuKCJtZWRpdW0iKSxKZihlLnNlc3Npb25JZCxxKSxlLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZCYmVGEoe3RpdGxlOiJcdTk3MDBcdTg5ODFcdTRGNjBcdTc2ODRcdTYzODhcdTY3NDMiLGJvZHk6cSx0eXBlOiJ3YXJuaW5nIixpY29uOiIhIixkdXJhdGlvbjowLGFjdGlvbkxhYmVsOiJcdTUzQkJcdTU5MDRcdTc0MDYiLGFjdGlvbjpmdW5jdGlvbigpe050KGUuc2Vzc2lvbklkKX19KX1lLmRhdGEucGVybWlzc2lvbkJsb2NrZWQ9PT0hMSYmKHoucGVuZGluZ0VzY2FsYXRpb249bnVsbCksZS5kYXRhLmFwcHJvdmFsU3RhdHMmJih6LmFwcHJvdmFsU3RhdHM9ZS5kYXRhLmFwcHJvdmFsU3RhdHMpLFgoeikscWEoZS5zZXNzaW9uSWQpLE1hKCksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJigkdCgpLGUuZGF0YS5hcHByb3ZhbFN0YXRzJiZqbygpLHouc3RydWN0dXJlZFN0YXRlJiYoei5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHR8fChQbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIiksQXMoKSkseWEoKSkpfWJyZWFrO2Nhc2Uibm90aWZpY2F0aW9uIjplLmRhdGEmJihlLmRhdGEua2luZD09PSJ1cGRhdGUiP2RzKGUuZGF0YS5jdXJyZW50fHwiLSIsZS5kYXRhLmxhdGVzdHx8Ii0iKTplLmRhdGEua2luZD09PSJhdXRvLXVwZGF0ZS1zdGFydCI/ZXAoZS5kYXRhLmN1cnJlbnR8fCItIixlLmRhdGEubGF0ZXN0fHwiLSIpOihlLmRhdGEua2luZD09PSJhdXRvLXVwZGF0ZS1yZXN0YXJ0Inx8ZS5kYXRhLmtpbmQ9PT0icmVzdGFydCIpJiZsbigpKTticmVha319ZnVuY3Rpb24gJHQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3VycmVudC10YXNrIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVybWlzc2lvbi1hY3Rpb25zIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVybWlzc2lvbi1hY3Rpb25zLWxhYmVsIik7aWYoZSl7dmFyIGk9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiB2LmlkPT09ci5zZWxlY3RlZElkfSk7aSYmaS5wcm92aWRlcj09PSJjb2RleCImJih0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuY2xhc3NMaXN0LnJlbW92ZSgicGVybWlzc2lvbi1ibG9ja2VkIikpO3ZhciBhPWkmJmkucGVuZGluZ0VzY2FsYXRpb24/aS5wZW5kaW5nRXNjYWxhdGlvbjpudWxsLHU9aSYmaS5wcm92aWRlciE9PSJjb2RleCI/YXx8aS5wZXJtaXNzaW9uQmxvY2tlZDohMTtpZih1KXt2YXIgbz1pJiZpLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7aWYobilpZihvKW4udGV4dENvbnRlbnQ9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NEUyRC4uLiI7ZWxzZSBpZihhKXt2YXIgcz1hLnJlYXNvbnx8Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyIsbD1hLnRhcmdldD8iIFx4QjcgIithLnRhcmdldDoiIjtuLnRleHRDb250ZW50PXMrbH1lbHNlIG4udGV4dENvbnRlbnQ9Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI7aWYodCl7dC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpLGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbnktcGVybWlzc2lvbi1idG4iKTtkJiZkLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsISFvKSxmJiZmLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsISFvKX1lLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKTtyZXR1cm59ZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBjPXIuY3VycmVudFRhc2s7YyYmYy50aXRsZT8oZS50ZXh0Q29udGVudD1jLnRpdGxlLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihlLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpfX1mdW5jdGlvbiBqbygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZhbC1zdGF0cyIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5hcHByb3ZhbFN0YXRzO2lmKCFufHxuLnRvdGFsPT09MCl7ZS5jbGFzc05hbWU9ImFwcHJvdmFsLXN0YXRzIGhpZGRlbiIsZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuY2xhc3NOYW1lPSJhcHByb3ZhbC1zdGF0cyIsZS5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1kaXZpZGVyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiBpZD0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIHRpdGxlPSJcdTY3MkNcdTZCMjFcdTRGMUFcdThCRERcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTEiPjxzdmcgY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWljb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtdG90YWwiPicrbi50b3RhbCsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAiIGlkPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxlIj5cdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTE8L3NwYW4+Jysobi5jb21tYW5kPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJ0ZXJtaW5hbCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0N0RcdTRFRTRcdTYyNjdcdTg4NEM8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLmNvbW1hbmQrIjwvc3Bhbj48L3NwYW4+IjoiIikrKG4uZmlsZT4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigiZWRpdCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTY1ODdcdTRFRjZcdTUxOTlcdTUxNjU8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLmZpbGUrIjwvc3Bhbj48L3NwYW4+IjoiIikrKG4udG9vbD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigid3JlbmNoIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTE3Nlx1NEVENlx1NURFNVx1NTE3Nzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24udG9vbCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyBhcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJzaWdtYSIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0MDhcdThCQTE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLnRvdGFsKyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj4iO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmFwcHJvdmFsLXN0YXRzLWJhZGdlIik7aSYmKGkuY2xhc3NMaXN0LnJlbW92ZSgiYXBwcm92YWwtc3RhdHMtcHVsc2UiKSxpLm9mZnNldFdpZHRoLGkuY2xhc3NMaXN0LmFkZCgiYXBwcm92YWwtc3RhdHMtcHVsc2UiKSl9fWZ1bmN0aW9uIHFjKCl7aWYoJG4oImxpZ2h0IiksISFyLnNlbGVjdGVkSWQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2UmJihlLmRpc2FibGVkPSEwKSx0JiYodC5kaXNhYmxlZD0hMCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2FwcHJvdmUtcGVybWlzc2lvbiIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtBKG4uZXJyb3IsImVycm9yIik7cmV0dXJufVgobiksJHQoKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe0EobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2Mjc5XHU1MUM2XHU2Mzg4XHU2NzQzXHUzMDAyIiwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlJiYoZS5kaXNhYmxlZD0hMSksdCYmKHQuZGlzYWJsZWQ9ITEpfSl9fWZ1bmN0aW9uIFBjKCl7aWYoJG4oImxpZ2h0IiksISFyLnNlbGVjdGVkSWQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2UmJihlLmRpc2FibGVkPSEwKSx0JiYodC5kaXNhYmxlZD0hMCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2RlbnktcGVybWlzc2lvbiIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtBKG4uZXJyb3IsImVycm9yIik7cmV0dXJufVgobiksJHQoKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe0EobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MkQyXHU3RUREXHU2Mzg4XHU2NzQzXHUzMDAyIiwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlJiYoZS5kaXNhYmxlZD0hMSksdCYmKHQuZGlzYWJsZWQ9ITEpfSl9fWZ1bmN0aW9uIE9jKCl7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZlLnByb3ZpZGVyPT09ImNvZGV4Iil7QSgiQ29kZXggXHU0RjFBXHU4QkREXHU1NkZBXHU1QjlBXHU0RUU1IGZ1bGwtYWNjZXNzIFBUWSBcdTU0MkZcdTUyQThcdUZGMENcdTRFMERcdTY1MkZcdTYzMDFcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTMwMDIiLCJpbmZvIik7cmV0dXJufXZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLWFwcHJvdmUtdG9nZ2xlIik7dCYmKHQuc3R5bGUub3BhY2l0eT0iMC41IiksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL3RvZ2dsZS1hdXRvLWFwcHJvdmUiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil7QShuLmVycm9yLCJlcnJvciIpO3JldHVybn1YKG4pLFJvKCk7dmFyIGk9bi5hdXRvQXBwcm92ZVBlcm1pc3Npb25zO0EoaT8iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1RjAwXHU1NDJGIjoiXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEIiwiaW5mbyIpfSkuY2F0Y2goZnVuY3Rpb24obil7QShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3QmJih0LnN0eWxlLm9wYWNpdHk9IiIpfSl9fWZ1bmN0aW9uIFJvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tYXBwcm92ZS10b2dnbGUiKSx0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKFRsKHQpKXtlJiZlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKTtyZXR1cm59aWYoZSl7dmFyIG49ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IiLGk9dCYmdC5hdXRvQXBwcm92ZVBlcm1pc3Npb25zO2k/KGUuY2xhc3NOYW1lPW4rIiBhY3RpdmUiLGUudGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiksZS5pbm5lckhUTUw9Vigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj4nKTooZS5jbGFzc05hbWU9bixlLnRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsImZhbHNlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiKSxlLmlubmVySFRNTD1WKCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj4nKX19ZnVuY3Rpb24gSGMoZSx0LG4pe3JldHVybiByLnRlcm1pbmFsP21pKHR8fHIuc2VsZWN0ZWRJZCxlLHttb2RlOm58fCJhcHBlbmQifSk6ITF9ZnVuY3Rpb24gV28oKXtyLnBvbGxUaW1lciYmKGNsZWFySW50ZXJ2YWwoci5wb2xsVGltZXIpLHIucG9sbFRpbWVyPW51bGwpfWZ1bmN0aW9uIFlnKGUpe3IuY3VycmVudFZpZXc9ZXx8InRlcm1pbmFsIixyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIiYmKE9uKCExKSxQcygpKSxVaSgpLFZhKCk7dmFyIHQ9a3QoKTt0JiYoci5jdXJyZW50TWVzc2FnZXM9TmUodCxYZSh0LHQub3V0cHV0LCEwKSkpLGF0KCksci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCImJihQdCghMCksci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUmJnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudGVybWluYWwmJnIudGVybWluYWwucmVtZWFzdXJlKCl9KSl9ZnVuY3Rpb24geXIoZSl7ci5yZW5kZXJQZW5kaW5nJiYhZXx8KHIucmVuZGVyUGVuZGluZz0hMCxlPyhJaSghMCksci5yZW5kZXJQZW5kaW5nPSExKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtJaSghMSksci5yZW5kZXJQZW5kaW5nPSExfSkpfXIuY2hhdFJlbmRlclRpbWVyPW51bGw7ZnVuY3Rpb24geWEoZSl7aWYoIShyLmNoYXRSZW5kZXJUaW1lciYmIWUpKXtpZihyLmNoYXRSZW5kZXJUaW1lciYmY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxlKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsLHlyKCk7cmV0dXJufXZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5zdGF0dXM9PT0icnVubmluZyImJnQuc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIsaT1uP3JzOmlzO3IuY2hhdFJlbmRlclRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsO3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih1KXtyZXR1cm4gdS5pZD09PXIuc2VsZWN0ZWRJZH0pO2EmJihyLmN1cnJlbnRNZXNzYWdlcz1OZShhLFhlKGEsYS5vdXRwdXQsITApKSkseXIoKX0saSl9fXZhciBiYT0wLGRpPTAsem89MCxicj0wO2Z1bmN0aW9uIEVhKCl7cmV0dXJuIHdpbmRvdy5fX3dhbmRJb3NOYXRpdmU9PT0hMH1mdW5jdGlvbiBWbyhlKXt6bz1NYXRoLm1heCh6byxEYXRlLm5vdygpKyhlfHwxODAwKSl9ZnVuY3Rpb24gVW8oZSx0KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtjaShuKSYmbiE9PXR8fFZvKGUpfSwzMCl9ZnVuY3Rpb24gX2MoZSl7cmV0dXJuIE1hdGgubWF4KHdpbmRvdy5pbm5lckhlaWdodHx8MCxlJiZlLmhlaWdodHx8MCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fDAsZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHR8fDApfWZ1bmN0aW9uIE5jKGUpe3ZhciB0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPU1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRofHwwLGUmJmUud2lkdGh8fDAsdCYmdC5jbGllbnRXaWR0aHx8MCksaT1fYyhlKTtyZXR1cm4hYmF8fE1hdGguYWJzKG4tYmEpPjg/KGJhPW4sZGk9aSk6aT5kaSYmKGRpPWkpLE1hdGgubWF4KDEsTWF0aC5yb3VuZChkaXx8aXx8MSkpfWZ1bmN0aW9uIGpjKGUsdCxuLGkpe3JldHVybiBlfHwhRWEoKT8hMTp0PjB8fGk+bisxfWZ1bmN0aW9uIEpuKGUpe3ZhciB0PXdpbmRvdy52aXN1YWxWaWV3cG9ydDtpZih0KXt2YXIgbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYobi5jbGFzc0xpc3QudG9nZ2xlKCJpcy1rZXlib2FyZC1vcGVuIiwhIWUpLHdpbmRvdy5fX3dhbmRJbWVOYXRpdmUpe24uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LXRvcCIsIjBweCIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LWhlaWdodCIsTWF0aC5yb3VuZCh0LmhlaWdodCkrInB4Iik7cmV0dXJufXZhciBpPU5jKHQpLGE9TWF0aC5tYXgoMCxNYXRoLnJvdW5kKHQub2Zmc2V0VG9wfHwwKSksdT1NYXRoLm1heCgxLE1hdGgucm91bmQodC5oZWlnaHQpKTsoIWUmJkVhKCl8fGpjKGUsYSx1LGkpKSYmKGE9MCx1PU1hdGgubWF4KHUsaSkpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LXRvcCIsYSsicHgiKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLWFwcC12aWV3cG9ydC1oZWlnaHQiLHUrInB4IiksKGV8fCh3aW5kb3cuc2Nyb2xsWXx8MCk+MCkmJlFhKCl9fWZ1bmN0aW9uIGNpKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PWUudGFnTmFtZTtpZih0PT09IlRFWFRBUkVBInx8dD09PSJTRUxFQ1QiKXJldHVybiEwO2lmKHQ9PT0iSU5QVVQiKXt2YXIgbj0oZS5nZXRBdHRyaWJ1dGUoInR5cGUiKXx8InRleHQiKS50b0xvd2VyQ2FzZSgpO3JldHVybiEvXihidXR0b258Y2hlY2tib3h8Y29sb3J8ZmlsZXxoaWRkZW58aW1hZ2V8cmFkaW98cmFuZ2V8cmVzZXR8c3VibWl0KSQvaS50ZXN0KG4pfXJldHVybiEhZS5pc0NvbnRlbnRFZGl0YWJsZX1mdW5jdGlvbiBSYygpe2lmKCEoInZpc3VhbFZpZXdwb3J0ImluIHdpbmRvdyl8fHdpbmRvdy5fX3dhbmRWaWV3cG9ydEhhbmRsZXJzQm91bmQpcmV0dXJuO3dpbmRvdy5fX3dhbmRWaWV3cG9ydEhhbmRsZXJzQm91bmQ9ITA7dmFyIGU9d2luZG93LnZpc3VhbFZpZXdwb3J0LHQ9ZS5oZWlnaHQsbj0hMSxpPU1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRofHwwLGUud2lkdGh8fDApLGE9TWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUuaGVpZ2h0fHwwKSx1PVtdO2Z1bmN0aW9uIG8oKXtyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUuaGVpZ2h0fHwwKX1mdW5jdGlvbiBzKCl7dmFyIGc9TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZS53aWR0aHx8MCksbT1vKCk7aWYoTWF0aC5hYnMoZy1pKT44KXtpPWcsYT1tO3JldHVybn1tPmEmJihhPW0pfWZ1bmN0aW9uIGwoZyxtKXt2YXIgeT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LEM9eT09PWd8fGNpKHkpLEU9YS1lLmhlaWdodCxCPWEtKHdpbmRvdy5pbm5lckhlaWdodHx8ZS5oZWlnaHR8fDApLEQ9RGF0ZS5ub3coKTxicjtyZXR1cm4gRD8hIShDJiYoRT4xMjB8fEI+MTIwKSk6ISEobT44MHx8QyYmKEU+MTIwfHxCPjEyMCl8fG4mJihFPjgwfHxtPjMyKSl9ZnVuY3Rpb24gZCgpe3UuZm9yRWFjaChmdW5jdGlvbihnKXtjbGVhclRpbWVvdXQoZyl9KSx1PVs2MCwxODAsMzYwLDYyMCw5MDBdLm1hcChmdW5jdGlvbihnKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe0puKG4pfSxnKX0pfWZ1bmN0aW9uIGYoKXtbMCw1MCwxMjAsMjIwLDM2MCw1NjBdLmZvckVhY2goZnVuY3Rpb24oZyl7c2V0VGltZW91dChmdW5jdGlvbigpe2MoKTt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PW0mJlNpKG0pfSxnKX0pfWZ1bmN0aW9uIGMoKXtpZihlKXt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksbT13aW5kb3cuaW5uZXJIZWlnaHQtZS5oZWlnaHQtZS5vZmZzZXRUb3A7cygpO3ZhciB5PWwoZyxtKSxDPU1hdGguYWJzKGUuaGVpZ2h0LXQpPjg7aWYoSm4oeSkseSYmKCFufHxDKSYmRnYoZSxnKSYmU2koZyksIW4mJnkpe3ZhciBFPXIudGVybWluYWxBdXRvRm9sbG93fHxEYSgpO0dlKCJrZXlib2FyZC1vcGVuIix7Zm9yY2VSZXBsYXk6ITB9KSx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Sm4oITApfSwyMjApLGQoKSxFJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmdnQoImZvcmNlIil9LDIyMCl9aWYobiYmIXkpe3ZhciBCPSEhd2luZG93Ll9fd2FuZEltZU5hdGl2ZTtCfHwoVm8oMjIwMCksYnI9RGF0ZS5ub3coKSsxMjAwLEpuKCExKSxRYSgpKSxkKCksc2V0VGltZW91dChmdW5jdGlvbigpe0J8fChKbighMSksUWEoKSksR2UoImtleWJvYXJkLWNsb3NlIix7Zm9yY2VSZXBsYXk6ITB9KSx2dCgia2V5Ym9hcmQiKX0sMjAwKX1DJiZuPT09eSYmR2UoInZpZXdwb3J0Iiksbj15LHQ9ZS5oZWlnaHR9fXZhciB2PW51bGw7ZnVuY3Rpb24gaCgpe3YhPT1udWxsJiZjYW5jZWxBbmltYXRpb25GcmFtZSh2KSx2PXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3Y9bnVsbCxjKCl9KX1lLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsaCksZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09InZpc2libGUiJiYoaCgpLHNldFRpbWVvdXQoaCwyNDApLHNldFRpbWVvdXQoaCw3MjApKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oZyl7ZyYmZy5wZXJzaXN0ZWQmJihoKCksc2V0VGltZW91dChoLDI0MCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLGZ1bmN0aW9uKGcpeyFnfHwhZy50YXJnZXR8fGNpKGcudGFyZ2V0KSYmKFVvKDE2MDAsZy50YXJnZXQpLEVhKCkmJihicj1NYXRoLm1heChicixEYXRlLm5vdygpKzEyMDApKSxzZXRUaW1lb3V0KGgsODApLHNldFRpbWVvdXQoaCw0MjApKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGZ1bmN0aW9uKGcpeyFnfHwhZy50YXJnZXR8fCFjaShnLnRhcmdldCl8fGYoKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWlvcy1pbWUtc3RhdGUiLGZ1bmN0aW9uKGcpe3ZhciBtPWcmJmcuZGV0YWlsJiZnLmRldGFpbC5zdGF0ZTttPT09ImhpZGRlbiImJihicj1EYXRlLm5vdygpKzkwMCksZigpLGQoKX0pLGMoKX1mdW5jdGlvbiBXYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0idGVybWluYWwtcmVzaXplLWhhbmRsZSIsdC5pbm5lckhUTUw9IiYjODk0MjsiLGUuYXBwZW5kQ2hpbGQodCk7dmFyIG49ITEsaT0wLGE9MDt0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odSl7bj0hMCxpPXUuY2xpZW50WSxhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSJucy1yZXNpemUiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsdS5wcmV2ZW50RGVmYXVsdCgpfSksci5yZXNpemVNb3VzZU1vdmU9ZnVuY3Rpb24odSl7aWYobil7dmFyIG89dS5jbGllbnRZLWkscz1NYXRoLm1heCgyMDAsTWF0aC5taW4oYStvLHdpbmRvdy5pbm5lckhlaWdodC0yMDApKTtlLnN0eWxlLmhlaWdodD1zKyJweCIsZS5zdHlsZS5mbGV4PSJub25lIixQdCgpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyLnJlc2l6ZU1vdXNlTW92ZSksci5yZXNpemVNb3VzZVVwPWZ1bmN0aW9uKCl7biYmKG49ITEsZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSIiLFB0KCkpfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixyLnJlc2l6ZU1vdXNlVXApLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24odSl7bj0hMCxpPXUudG91Y2hlc1swXS5jbGllbnRZLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsdS5wcmV2ZW50RGVmYXVsdCgpfSx7cGFzc2l2ZTohMX0pLHIucmVzaXplVG91Y2hNb3ZlPWZ1bmN0aW9uKHUpe2lmKG4pe3ZhciBvPXUudG91Y2hlc1swXS5jbGllbnRZLWkscz1NYXRoLm1heCgyMDAsTWF0aC5taW4oYStvLHdpbmRvdy5pbm5lckhlaWdodC0yMDApKTtlLnN0eWxlLmhlaWdodD1zKyJweCIsZS5zdHlsZS5mbGV4PSJub25lIixQdCgpLHUucHJldmVudERlZmF1bHQoKX19LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5yZXNpemVUb3VjaE1vdmUse3Bhc3NpdmU6ITF9KSxyLnJlc2l6ZVRvdWNoRW5kPWZ1bmN0aW9uKCl7biYmKG49ITEsUHQoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixyLnJlc2l6ZVRvdWNoRW5kKX19ZnVuY3Rpb24gS28oKXtyZXR1cm4hIWt0KCl9ZnVuY3Rpb24gRmEoZSl7dmFyIHQ9TWF0aC5tYXgoY24sd2luZG93LmlubmVyV2lkdGgtQ2ktY24pLG49TWF0aC5tYXgoY24sd2luZG93LmlubmVySGVpZ2h0LUNpLWNuKTtyZXR1cm57cmlnaHQ6TWF0aC5taW4oTWF0aC5tYXgoY24sZS5yaWdodCksdCksYm90dG9tOk1hdGgubWluKE1hdGgubWF4KGNuLGUuYm90dG9tKSxuKX19ZnVuY3Rpb24gSm8oKXtpZihyLmpveXN0aWNrQmFsbEVsKXt2YXIgZT1GYShyLmpveXN0aWNrUG9zfHx7cmlnaHQ6MTgsYm90dG9tOjk2fSk7ci5qb3lzdGlja0JhbGxFbC5zdHlsZS5yaWdodD1lLnJpZ2h0KyJweCIsci5qb3lzdGlja0JhbGxFbC5zdHlsZS5ib3R0b209ZS5ib3R0b20rInB4In19ZnVuY3Rpb24gemMoZSx0KXt2YXIgbj1GYSh7cmlnaHQ6ZSxib3R0b206dH0pO3Iuam95c3RpY2tQb3M9bjt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtYmFsbC1wb3MiLEpTT04uc3RyaW5naWZ5KG4pKX1jYXRjaHt9fWZ1bmN0aW9uIFZjKCl7ZnVuY3Rpb24gZSh1LG8scyl7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0id2pwLWtleScrKHM/IiAiK3M6IiIpKyciIGRhdGEta2V5PSInK3UrJyI+JytvKyI8L2J1dHRvbj4ifXZhciB0PSc8ZGl2IGNsYXNzPSJ3anAtZHBhZCI+PGRpdiBjbGFzcz0id2pwLWRwYWQtcm93Ij4nK2UoInVwIiwiXHUyMTkxIiwid2pwLWRpciIpKyc8L2Rpdj48ZGl2IGNsYXNzPSJ3anAtZHBhZC1yb3ciPicrZSgibGVmdCIsIlx1MjE5MCIsIndqcC1kaXIiKStlKCJkb3duIiwiXHUyMTkzIiwid2pwLWRpciIpK2UoInJpZ2h0IiwiXHUyMTkyIiwid2pwLWRpciIpKyI8L2Rpdj48L2Rpdj4iLG49IiIsaTtmb3IoaT0wO2k8V2EubGVuZ3RoO2krKyluKz1lKFdhW2ldLmtleSxXYVtpXS5sYWJlbCwiIik7dmFyIGE9JzxkaXYgY2xhc3M9IndqcC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJ3anAtdGl0bGUiPicrVigicGF3Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjYsY2xzOiJ3anAtdGl0bGUtaWNvbiJ9KSsnPHNwYW4+XHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGPC9zcGFuPjwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9IndqcC1jbG9zZSIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEXHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGIj4nK1YoIngiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjJ9KSsiPC9idXR0b24+PC9kaXY+Iit0Kyc8ZGl2IGNsYXNzPSJ3anAtZ3JpZCB3anAtZm5rZXlzIj4nK24rIjwvZGl2PiI7cmV0dXJuIGF9ZnVuY3Rpb24gVWMoKXtpZighci5qb3lzdGlja1Jvb3RFbCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9IndhbmQtam95c3RpY2stcm9vdCIsWyJwb2ludGVyZG93biIsInBvaW50ZXJ1cCIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsImNsaWNrIl0uZm9yRWFjaChmdW5jdGlvbihhKXtlLmFkZEV2ZW50TGlzdGVuZXIoYSxZbywhMCl9KTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1iYWNrZHJvcCIsZS5hcHBlbmRDaGlsZCh0KTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1wYW5lbCIsbi5pbm5lckhUTUw9VmMoKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixaYyksZS5hcHBlbmRDaGlsZChuKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1iYWxsIixpLnNldEF0dHJpYnV0ZSgicm9sZSIsImJ1dHRvbiIpLGkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiV2FuZCBcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0YiKSxpLnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTcwQjlcdTUxRkJcdTYyNTNcdTVGMDBcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0ZcdUZGMENcdTYyRDZcdTUyQThcdTUzRUZcdTc5RkJcdTUyQThcdTRGNERcdTdGNkUiKSxpLmlubmVySFRNTD1WKCJwYXciLHtzaXplOjI1LHN0cm9rZVdpZHRoOjEuNixjbHM6IndhbmQtam95c3RpY2stbG9nbyJ9KSxlLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksci5qb3lzdGlja1Jvb3RFbD1lLHIuam95c3RpY2tCYWNrZHJvcEVsPXQsci5qb3lzdGlja1BhbmVsRWw9bixyLmpveXN0aWNrQmFsbEVsPWksSm8oKSxpLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixLYyksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixmdW5jdGlvbihhKXtyLmpveXN0aWNrUGlubmVkT3BlbiYmci5qb3lzdGlja0dlc3R1cmU9PW51bGwmJihhLnByZXZlbnREZWZhdWx0KCksRXIoKSl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX0pLHIuam95c3RpY2tSZXNpemVIYW5kbGVyPWZ1bmN0aW9uKCl7Sm8oKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLFhvKCl9fWZ1bmN0aW9uIFlvKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1uYXRpdmUtaW5wdXQiKSl7dmFyIGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihlJiZ0eXBlb2YgZS5ibHVyPT0iZnVuY3Rpb24iKXRyeXtlLmJsdXIoKX1jYXRjaHt9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYodCYmdHlwZW9mIHQuYmx1cj09ImZ1bmN0aW9uIil0cnl7dC5ibHVyKCl9Y2F0Y2h7fX0sMCl9fWZ1bmN0aW9uIEtjKGUpe2lmKEtvKCkmJiEoKGUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiIpJiZlLmJ1dHRvbiE9PTApJiZyLmpveXN0aWNrUG9pbnRlcklkPT09bnVsbCl7WW8oKSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgdD1lLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iO3Iuam95c3RpY2tQb2ludGVySWQ9ZS5wb2ludGVySWQsci5qb3lzdGlja1ByZXNzU3RhcnQ9e3g6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLHQ6RGF0ZS5ub3coKX0sci5qb3lzdGlja0dlc3R1cmU9InBlbmRpbmciO3RyeXtyLmpveXN0aWNrQmFsbEVsLnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKX1jYXRjaHt9dHx8KHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5qb3lzdGlja0dlc3R1cmU9PT0icGVuZGluZyImJkdvKCl9LGpwKSksci5qb3lzdGlja01vdmVIYW5kbGVyPUpjLHIuam95c3RpY2tVcEhhbmRsZXI9WWMsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHIuam95c3RpY2tNb3ZlSGFuZGxlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKX19ZnVuY3Rpb24gR28oKXtyLmpveXN0aWNrR2VzdHVyZT0ibW92ZSIsci5qb3lzdGlja1Bpbm5lZE9wZW4mJkVyKCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKX1mdW5jdGlvbiBRbyhlLHQpe2lmKHIuam95c3RpY2tCYWxsRWwpe3ZhciBuPUZhKHtyaWdodDp3aW5kb3cuaW5uZXJXaWR0aC1lLUNpLzIsYm90dG9tOndpbmRvdy5pbm5lckhlaWdodC10LUNpLzJ9KTtyLmpveXN0aWNrQmFsbEVsLnN0eWxlLnJpZ2h0PW4ucmlnaHQrInB4IixyLmpveXN0aWNrQmFsbEVsLnN0eWxlLmJvdHRvbT1uLmJvdHRvbSsicHgifX1mdW5jdGlvbiBKYyhlKXtpZighKGUucG9pbnRlcklkIT09ci5qb3lzdGlja1BvaW50ZXJJZHx8IXIuam95c3RpY2tCYWxsRWwpKXtpZihlLnByZXZlbnREZWZhdWx0KCksci5qb3lzdGlja0dlc3R1cmU9PT0ibW92ZSIpe1FvKGUuY2xpZW50WCxlLmNsaWVudFkpO3JldHVybn1pZihyLmpveXN0aWNrR2VzdHVyZT09PSJwZW5kaW5nIil7dmFyIHQ9ZS5jbGllbnRYLXIuam95c3RpY2tQcmVzc1N0YXJ0Lngsbj1lLmNsaWVudFktci5qb3lzdGlja1ByZXNzU3RhcnQueTtNYXRoLnNxcnQodCp0K24qbik8PVJwfHwoZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIj8oR28oKSxRbyhlLmNsaWVudFgsZS5jbGllbnRZKSk6KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKSxyLmpveXN0aWNrR2VzdHVyZT0iY2FuY2VsbGVkIikpfX19ZnVuY3Rpb24gWWMoZSl7aWYoZS5wb2ludGVySWQ9PT1yLmpveXN0aWNrUG9pbnRlcklkKXtyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCk7dmFyIHQ9ci5qb3lzdGlja0dlc3R1cmU7aWYodD09PSJwZW5kaW5nIil7dmFyIG49ZS5jbGllbnRYLXIuam95c3RpY2tQcmVzc1N0YXJ0LngsaT1lLmNsaWVudFktci5qb3lzdGlja1ByZXNzU3RhcnQueTtNYXRoLnNxcnQobipuK2kqaSk8PVdwJiYkYygpfWVsc2UgaWYodD09PSJtb3ZlIil7dmFyIGE9ci5qb3lzdGlja0JhbGxFbD9yLmpveXN0aWNrQmFsbEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOm51bGw7YSYmemMod2luZG93LmlubmVyV2lkdGgtYS5yaWdodCx3aW5kb3cuaW5uZXJIZWlnaHQtYS5ib3R0b20pfSRvKCl9fWZ1bmN0aW9uICRvKCl7aWYoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tCYWxsRWwmJnIuam95c3RpY2tQb2ludGVySWQhPT1udWxsKXRyeXtyLmpveXN0aWNrQmFsbEVsLnJlbGVhc2VQb2ludGVyQ2FwdHVyZShyLmpveXN0aWNrUG9pbnRlcklkKX1jYXRjaHt9ci5qb3lzdGlja01vdmVIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHIuam95c3RpY2tNb3ZlSGFuZGxlciksci5qb3lzdGlja01vdmVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tVcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpLHIuam95c3RpY2tVcEhhbmRsZXI9bnVsbCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiYhci5qb3lzdGlja1Bpbm5lZE9wZW4mJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHIuam95c3RpY2tQb2ludGVySWQ9bnVsbCxyLmpveXN0aWNrR2VzdHVyZT1udWxsLHIuam95c3RpY2tQcmVzc1N0YXJ0PW51bGx9ZnVuY3Rpb24gR2MoZSl7aWYoZT09PSJjdHJsInx8ZT09PSJhbHQifHxlPT09InNoaWZ0Iil7ci5tb2RpZmllcnNbZV09IXIubW9kaWZpZXJzW2VdLEZyKCk7cmV0dXJufXZhciB0PWt0KCk7aWYodCYmdWUodCkpeyhlPT09ImN0cmxfYyJ8fGU9PT0iZXNjYXBlIikmJlFjKHQsZSksRGkoKSxGcigpO3JldHVybn12YXIgbj1PcyhlLHtjdHJsOnIubW9kaWZpZXJzLmN0cmwsYWx0OnIubW9kaWZpZXJzLmFsdCxzaGlmdDpyLm1vZGlmaWVycy5zaGlmdH0pO24mJnFzKG4sZSksRGkoKSxGcigpLFhwKCl9ZnVuY3Rpb24gUWMoZSx0KXshZXx8IWUuaWR8fGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDoiIixpbnRlcnJ1cHQ6ITAscHJlc2VydmVRdWV1ZTohMH0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihpKXt0aHJvdyBuZXcgRXJyb3IoaSYmaS5lcnJvcnx8Ilx1NEUyRFx1NjVBRFx1NTkzMVx1OEQyNSAoa2V5PSIrdCsiKSIpfSl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uaWQmJihYKG4pLG4uaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgaT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1uLmlkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9TmUoaSxYZShpLG4ub3V0cHV0LCExKSkseXIoITApLHR5cGVvZiBudD09ImZ1bmN0aW9uIiYmbnQoKX19KS5jYXRjaChmdW5jdGlvbihuKXtuJiZuLm1lc3NhZ2UmJmNvbnNvbGUuZGVidWcoIlt3YW5kXSBqb3lzdGljayBpbnRlcnJ1cHQgbm8tb3A6IixuLm1lc3NhZ2UpfSl9ZnVuY3Rpb24gJGMoKXtyLmpveXN0aWNrUGlubmVkT3Blbj9FcigpOlhjKCl9ZnVuY3Rpb24gWGMoKXtpZighKCFyLmpveXN0aWNrUGFuZWxFbHx8IXIuam95c3RpY2tCYWxsRWwpKXtyLmpveXN0aWNrUGlubmVkT3Blbj0hMDt2YXIgZT1yLmpveXN0aWNrQmFsbEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Iuam95c3RpY2tQYW5lbEVsLnN0eWxlLnJpZ2h0PU1hdGgubWF4KGNuLHdpbmRvdy5pbm5lcldpZHRoLWUucmlnaHQpKyJweCIsci5qb3lzdGlja1BhbmVsRWwuc3R5bGUuYm90dG9tPU1hdGgubWF4KGNuLHdpbmRvdy5pbm5lckhlaWdodC1lLnRvcCsxMCkrInB4IixyLmpveXN0aWNrUGFuZWxFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5hZGQoInBhbmVsLW9wZW4iKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksRnIoKX19ZnVuY3Rpb24gRXIoKXtyLmpveXN0aWNrUGlubmVkT3Blbj0hMSxyLmpveXN0aWNrUGFuZWxFbCYmci5qb3lzdGlja1BhbmVsRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QucmVtb3ZlKCJwYW5lbC1vcGVuIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tHZXN0dXJlPT1udWxsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1mdW5jdGlvbiBGcigpe3Iuam95c3RpY2tQYW5lbEVsJiZbImN0cmwiLCJhbHQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXIuam95c3RpY2tQYW5lbEVsLnF1ZXJ5U2VsZWN0b3IoJy53anAtbW9kW2RhdGEta2V5PSInK2UrJyJdJyk7dCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhci5tb2RpZmllcnNbZV0pfSl9ZnVuY3Rpb24gWmMoZSl7dmFyIHQ9ZS50YXJnZXQmJmUudGFyZ2V0LmNsb3Nlc3Q/ZS50YXJnZXQuY2xvc2VzdCgiLndqcC1jbG9zZSIpOm51bGw7aWYodCl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksRXIoKTtyZXR1cm59dmFyIG49ZS50YXJnZXQmJmUudGFyZ2V0LmNsb3Nlc3Q/ZS50YXJnZXQuY2xvc2VzdCgiLndqcC1rZXkiKTpudWxsO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLWtleSIpO2kmJkdjKGkpfX1mdW5jdGlvbiBYbygpe3ZhciBlPXIuam95c3RpY2tSb290RWw7aWYoZSl7dmFyIHQ9S28oKTtlLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHQpLHR8fCgoci5qb3lzdGlja1BvaW50ZXJJZCE9PW51bGx8fHIuam95c3RpY2tHZXN0dXJlKSYmJG8oKSxyLmpveXN0aWNrUGlubmVkT3BlbiYmRXIoKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIikpfX1mdW5jdGlvbiBlZigpe3Iuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKSxyLmpveXN0aWNrTW92ZUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1VwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlciksci5qb3lzdGlja1VwSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrUmVzaXplSGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSxyLmpveXN0aWNrUmVzaXplSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrUm9vdEVsJiZyLmpveXN0aWNrUm9vdEVsLnBhcmVudE5vZGUmJnIuam95c3RpY2tSb290RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyLmpveXN0aWNrUm9vdEVsKSxyLmpveXN0aWNrUm9vdEVsPW51bGwsci5qb3lzdGlja1BhbmVsRWw9bnVsbCxyLmpveXN0aWNrQmFja2Ryb3BFbD1udWxsLHIuam95c3RpY2tCYWxsRWw9bnVsbCxyLmpveXN0aWNrUG9pbnRlcklkPW51bGwsci5qb3lzdGlja0dlc3R1cmU9bnVsbCxyLmpveXN0aWNrUHJlc3NTdGFydD1udWxsLHIuam95c3RpY2tQaW5uZWRPcGVuPSExfWZ1bmN0aW9uIHRmKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKGUpe3ZhciB0PSFIZSgpO3IucmVzaXplSGFuZGxlcj1mdW5jdGlvbigpe1B0KCEwKTt2YXIgbj0hSGUoKTt0IT09biYmKHQ9biwhbiYmci5zaWRlYmFyUGlubmVkJiZyLnNlc3Npb25zRHJhd2VyT3Blbj8oci5zZXNzaW9uc0RyYXdlck9wZW49ITEsQWUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksanIoKSk6biYmci5zaWRlYmFyUGlubmVkJiYhci5zZXNzaW9uc0RyYXdlck9wZW4mJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSxqcigpKSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHIucmVzaXplSGFuZGxlciksd2luZG93LnZpc3VhbFZpZXdwb3J0JiYoci52aXN1YWxWaWV3cG9ydEhhbmRsZXI9ZnVuY3Rpb24oKXtQdCghMCl9LHdpbmRvdy52aXN1YWxWaWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyKSksci52aXNpYmlsaXR5SGFuZGxlcj1mdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbnx8R2UoInZpc2liaWxpdHkiLHtmb3JjZVJlcGxheTohMH0pfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixyLnZpc2liaWxpdHlIYW5kbGVyKSxyLm9yaWVudGF0aW9uSGFuZGxlcj1mdW5jdGlvbigpe0dlKCJvcmllbnRhdGlvbiIse2ZvcmNlUmVwbGF5OiEwfSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5vcmllbnRhdGlvbkhhbmRsZXIpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe1B0KCEwKX0pfX1mdW5jdGlvbiBuZigpe3IudGVybWluYWxIZWFsdGhUaW1lcnx8KHIudGVybWluYWxIZWFsdGhUaW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKCEoIXIudGVybWluYWx8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHxkb2N1bWVudC5oaWRkZW4pKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZighKCFlfHxlLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiKSl7R2UoImhlYWx0aCIpO3ZhciB0PURhdGUubm93KCksbj1yLmxhc3RDaHVua0F0PjAmJnQtci5sYXN0Q2h1bmtBdD4zMDAsaT10LXIubGFzdFRlcm1pbmFsUmVzeW5jQXQ+M2U0LGE9ci5sYXN0Q2h1bmtBdD5yLmxhc3RUZXJtaW5hbFJlc3luY0F0O2kmJmEmJihufHxlLnN0YXR1cyE9PSJydW5uaW5nIikmJnIudGVybWluYWxPdXRwdXQmJlRuKCl9fX0sNWUzKSl9ZnVuY3Rpb24gcmYoKXtyLnRlcm1pbmFsSGVhbHRoVGltZXImJihjbGVhckludGVydmFsKHIudGVybWluYWxIZWFsdGhUaW1lciksci50ZXJtaW5hbEhlYWx0aFRpbWVyPW51bGwpfWZ1bmN0aW9uIHdyKCl7cmYoKSxyLnJlc2l6ZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIucmVzaXplVGltZXIpLHIucmVzaXplVGltZXI9bnVsbCksci5yZXNpemVPYnNlcnZlciYmKHIucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHIucmVzaXplT2JzZXJ2ZXI9bnVsbCksci5yZXNpemVIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5yZXNpemVIYW5kbGVyKSxyLnJlc2l6ZUhhbmRsZXI9bnVsbCksci52aXN1YWxWaWV3cG9ydEhhbmRsZXImJndpbmRvdy52aXN1YWxWaWV3cG9ydCYmKHdpbmRvdy52aXN1YWxWaWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyKSxyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcj1udWxsKSxyLnZpc2liaWxpdHlIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsci52aXNpYmlsaXR5SGFuZGxlciksci52aXNpYmlsaXR5SGFuZGxlcj1udWxsKSxyLm9yaWVudGF0aW9uSGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5vcmllbnRhdGlvbkhhbmRsZXIpLHIub3JpZW50YXRpb25IYW5kbGVyPW51bGwpLFtbIm1vdXNlbW92ZSIsInJlc2l6ZU1vdXNlTW92ZSJdLFsibW91c2V1cCIsInJlc2l6ZU1vdXNlVXAiXSxbInRvdWNobW92ZSIsInJlc2l6ZVRvdWNoTW92ZSJdLFsidG91Y2hlbmQiLCJyZXNpemVUb3VjaEVuZCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JbYVsxXV0mJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGFbMF0sclthWzFdXSksclthWzFdXT1udWxsKX0pLFluKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKHIudGVybWluYWxWaWV3cG9ydEVsJiYoci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyKSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXImJnIudGVybWluYWxWaWV3cG9ydEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyKSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXIpKSxlJiYoci50ZXJtaW5hbFdoZWVsSGFuZGxlciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsci50ZXJtaW5hbFdoZWVsSGFuZGxlciksci50ZXJtaW5hbENsaWNrSGFuZGxlciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsci50ZXJtaW5hbENsaWNrSGFuZGxlcikpLHIudGVybWluYWxWaWV3cG9ydEVsPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcj1udWxsLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlcj1udWxsLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyPW51bGwsci50ZXJtaW5hbFdoZWVsSGFuZGxlcj1udWxsLHIudGVybWluYWxDbGlja0hhbmRsZXI9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXIpLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCksci50ZXJtaW5hbFNjcm9sbGJhckVsJiZyLnRlcm1pbmFsU2Nyb2xsYmFyRWwucGFyZW50Tm9kZSYmci50ZXJtaW5hbFNjcm9sbGJhckVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoci50ZXJtaW5hbFNjcm9sbGJhckVsKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWw9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyVGh1bWJFbD1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMSxyLnRlcm1pbmFsJiYoci50ZXJtaW5hbC5kZXN0cm95KCksci50ZXJtaW5hbD1udWxsKSxlKWZvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXJtaW5hbC1zY3JvbGwtd3JhcCIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLnBhcmVudE5vZGU9PT1lJiZlLnJlbW92ZUNoaWxkKGkpfXhhKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MCxyLnN5bmNGcmFtaW5nUmVzaWR1ZT0hMSxyLnRlcm1pbmFsU2Vzc2lvbklkPW51bGwsci50ZXJtaW5hbE91dHB1dD0iIixyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAsci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b209ITEsYXQoKSxyLnNvZnRSZXN5bmNUaW1lciYmKGNsZWFyVGltZW91dChyLnNvZnRSZXN5bmNUaW1lciksci5zb2Z0UmVzeW5jVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXImJihjbGVhclRpbWVvdXQoci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rTGFzdEF0PTAsci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD0wLHIuX3Jlc3luY1N0YXRzQ291bnQ9MCxyLl9yZXN5bmNMYXN0V2FybkF0PTAsci5fcmVzeW5jSW5Qcm9ncmVzcz0hMSxyLmxhc3RSZXNpemU9e2NvbHM6MCxyb3dzOjB9LGVmKCl9ZnVuY3Rpb24gZmkoZSx0KXtpZihyLnNlbGVjdGVkSWQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCEoIW58fG4uc3RhdHVzIT09InJ1bm5pbmciKSYmIXVlKG4pKXtlPjI1NiYmKGU9MjU2KSx0PjE2MCYmKHQ9MTYwKTt2YXIgaT17Y29sczplLHJvd3M6dH07KHIubGFzdFJlc2l6ZS5jb2xzIT09aS5jb2xzfHxyLmxhc3RSZXNpemUucm93cyE9PWkucm93cykmJihyLmxhc3RSZXNpemU9aSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3Iuc2VsZWN0ZWRJZCsiL3Jlc2l6ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaSl9KS5jYXRjaChmdW5jdGlvbigpe30pKX19fWZ1bmN0aW9uIEdlKGUsdCl7aWYoIXIudGVybWluYWwpcmV0dXJuITE7dmFyIG49dHx8e30saT1uLmZvcmNlUmVwbGF5PT09ITAsYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoIWF8fGEub2Zmc2V0V2lkdGg9PT0wfHxhLm9mZnNldEhlaWdodD09PTApcmV0dXJuIENyKGV8fCJmaXQtcmV0cnkiLHtmb3JjZVJlcGxheTppfSksITE7dmFyIHU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fERhKCksbz1yLnRlcm1pbmFsLmNvbHMscz1yLnRlcm1pbmFsLnJvd3M7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2lmKHIudGVybWluYWwpe3R5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKSxmaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKTt2YXIgbD1yLnRlcm1pbmFsLmNvbHMhPT1vfHxyLnRlcm1pbmFsLnJvd3MhPT1zOyFsJiZpJiZyLnRlcm1pbmFsT3V0cHV0JiZUbih7c2tpcEZpdDohMH0pLHUmJnZ0KCJmb3JjZSIpfX0pfSksITB9ZnVuY3Rpb24gQ3IoZSx0KXtpZighci50ZXJtaW5hbClyZXR1cm47dmFyIG49dHx8e30saT1uLmZvcmNlUmVwbGF5IT09ITEsYT0wLHU9ODtmdW5jdGlvbiBvKCl7aWYoci50ZXJtaW5hbCl7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKHMmJnMub2Zmc2V0SGVpZ2h0LHMmJnMub2Zmc2V0V2lkdGg+MCYmcy5vZmZzZXRIZWlnaHQ+MCl7R2UoZSx7Zm9yY2VSZXBsYXk6aX0pO3JldHVybn0rK2E+PXV8fChhPD00P3JlcXVlc3RBbmltYXRpb25GcmFtZShvKTpzZXRUaW1lb3V0KG8sMzIpKX19bygpfWZ1bmN0aW9uIFB0KGUpe3IucmVzaXplVGltZXImJihjbGVhclRpbWVvdXQoci5yZXNpemVUaW1lciksci5yZXNpemVUaW1lcj1udWxsKTt2YXIgdD1lPzA6MTAwO3IucmVzaXplVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IucmVzaXplVGltZXI9bnVsbCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYWYpfSx0KX1mdW5jdGlvbiBhZigpe2lmKHIudGVybWluYWwpe3ZhciBlPXIudGVybWluYWxBdXRvRm9sbG93fHxEYSgpO2UmJnZ0KCJmb3JjZSIpLGZpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpfX1mdW5jdGlvbiBYdChlKXtyLndvcmtpbmdEaXI9ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiLGUpfWNhdGNoe311ZihlKX1mdW5jdGlvbiB3YShlKXtmZXRjaCgiL2FwaS9yZWNlbnQtcGF0aHMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2UodHx8W10pfSkuY2F0Y2goZnVuY3Rpb24oKXtlKFtdKX0pfWZ1bmN0aW9uIHVmKGUpe3JldHVybiBmZXRjaCgiL2FwaS9yZWNlbnQtcGF0aHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtwYXRoOmV9KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gQ2EoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ZX0pO3QmJnQuc3RhdHVzIT09InJ1bm5pbmciJiYhdWUodCk/UnMoZSk6TnQoZSksanQoKX1mdW5jdGlvbiBvZihlKXt2YXIgdD1lLnRhcmdldDtpZighKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkpe3ZhciBuPXQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKTtpZihuJiZuIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2lmKG4uZGF0YXNldC5jb2xsYXBzZWROZXdTZXNzaW9uKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx3dSgpO3JldHVybn1pZihuLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxDYShuLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKTtyZXR1cm59aWYobi5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZCl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGk9bi5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZCxhPW4uZGF0YXNldC5jd2R8fCIiLHU9bi5kYXRhc2V0LnByb3ZpZGVyPT09ImNvZGV4Ij9raTpBaTt1KGksYSkudGhlbihmdW5jdGlvbihnKXtnJiZnLmlkJiYoci5zZWxlY3RlZElkPWcuaWQsaGUoKSxyLmRyYWZ0c1tnLmlkXT0iIixtbigpLnRoZW4oZnVuY3Rpb24oKXtOdChnLmlkKX0pKX0pO3JldHVybn19dmFyIG89dC5jbG9zZXN0KCIjY2xhdWRlLWhpc3RvcnktdG9nZ2xlIik7aWYobyl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9IXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkJiYhci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiZzaSgpLGZlKCk7cmV0dXJufXZhciBzPXQuY2xvc2VzdCgiW2RhdGEtYWN0aW9uXSIpO2lmKHMmJnMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkscy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtbWFuYWdlLW1vZGUiKUNjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InNlbGVjdC1hbGwtdmlzaWJsZSIpVG8oKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iY2xlYXItc2VsZWN0aW9uIilEYygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtc2VsZWN0ZWQiKWtjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1zZWxlY3Rpb24iKWdyKHMuZGF0YXNldC5raW5kLHMuZGF0YXNldC5pZCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InN3aXBlLWRlbGV0ZS1zZXNzaW9uIiYmcy5kYXRhc2V0LnNlc3Npb25JZClKYShzLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLXNlc3Npb24iJiZzLmRhdGFzZXQuc2Vzc2lvbklkKShmdW5jdGlvbihnKXtJbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU4RkQ5XHU0RTJBXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKG0pe20mJkphKGcpfSl9KShzLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKShmdW5jdGlvbihnLG0pe0luKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdThGRDlcdTY3NjEgQ2xhdWRlIFx1NEYxQVx1OEJERFx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQifSkudGhlbihmdW5jdGlvbih5KXt5JiZIcyhnLG0pfSl9KShzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLHMuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIGw9cy5kYXRhc2V0LmN3ZDtyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnNbbF09IXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tsXSxmZSgpfWVsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKShmdW5jdGlvbihnLG0pe3ZhciB5PXV2KGcpLEM9bXIoKS5maWx0ZXIoZnVuY3Rpb24oRSl7cmV0dXJuIEUuY3dkPT09Z30pLmxlbmd0aDtJbigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU2QjY0XHU3NkVFXHU1RjU1XHU0RTBCXHU3Njg0ICIrQysiIFx1Njc2MSBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NkUwNVx1N0E3QVx1NzZFRVx1NUY1NVx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24oRSl7RSYmKF9zKHksITApLGF2KGcsbSx5KSl9KX0pKHMuZGF0YXNldC5jd2Qscyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImNsZWFyLWFsbC1oaXN0b3J5IilBYygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtYXJjaGl2ZWQtZ3JvdXAiKXIuYXJjaGl2ZWRFeHBhbmRlZD0hci5hcmNoaXZlZEV4cGFuZGVkLGZlKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZSImJnMuZGF0YXNldC5zZXNzaW9uSWQpbHYocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZS1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZClmdihzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWNvZGV4LWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKWR2KHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpY3Yocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1jb2RleC1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2Qpe3ZhciBkPXMuZGF0YXNldC5jd2Q7ci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbZF09IXIuY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzW2RdLGZlKCl9ZWxzZSBzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLW1lcmdlIiYmcy5kYXRhc2V0LnNlc3Npb25JZD9XbChzLmRhdGFzZXQuc2Vzc2lvbklkKTpzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLWNsZWFudXAiJiZzLmRhdGFzZXQuc2Vzc2lvbklkJiZ6bChzLmRhdGFzZXQuc2Vzc2lvbklkKTtyZXR1cm59dmFyIGY9dC5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIik7aWYoZil7aWYoci5zZXNzaW9uc01hbmFnZU1vZGUpe2YuZGF0YXNldC5zZXNzaW9uSWQ/Z3IoInNlc3Npb25zIixmLmRhdGFzZXQuc2Vzc2lvbklkKTpmLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZncihmLmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiPyJjb2RleCI6Imhpc3RvcnkiLGYuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpO3JldHVybn1pZihmLmNsYXNzTGlzdC5jb250YWlucygic3dpcGVkIikpe01yKCk7cmV0dXJufWlmKE5zKXJldHVybjtpZihmLmRhdGFzZXQuc2Vzc2lvbklkKUNhKGYuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYoZi5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCl7dmFyIGM9Zi5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCx2PWYuZGF0YXNldC5jd2QsaD1mLmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiP2tpOkFpO2goYyx2KS50aGVuKGZ1bmN0aW9uKGcpe2cmJmcuaWQmJihyLnNlbGVjdGVkSWQ9Zy5pZCxoZSgpLHIuZHJhZnRzW2cuaWRdPSIiLG1uKCkudGhlbihmdW5jdGlvbigpe050KGcuaWQpLGp0KCl9KSl9KX19fX1mdW5jdGlvbiBzZihlKXtpZighKGUua2V5IT09IkVudGVyIiYmZS5rZXkhPT0iICIpKXt2YXIgdD1lLnRhcmdldC5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIik7aWYodCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHIuc2Vzc2lvbnNNYW5hZ2VNb2RlKXt0LmRhdGFzZXQuc2Vzc2lvbklkP2dyKCJzZXNzaW9ucyIsdC5kYXRhc2V0LnNlc3Npb25JZCk6dC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCYmZ3IodC5kYXRhc2V0LnByb3ZpZGVyPT09ImNvZGV4Ij8iY29kZXgiOiJoaXN0b3J5Iix0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKTtyZXR1cm59aWYodC5kYXRhc2V0LnNlc3Npb25JZClDYSh0LmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpe3ZhciBuPXQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQsaT10LmRhdGFzZXQuY3dkLGE9dC5kYXRhc2V0LnByb3ZpZGVyPT09ImNvZGV4Ij9raTpBaTthKG4saSkudGhlbihmdW5jdGlvbih1KXt1JiZ1LmlkJiYoci5zZWxlY3RlZElkPXUuaWQsaGUoKSxyLmRyYWZ0c1t1LmlkXT0iIixtbigpLnRoZW4oZnVuY3Rpb24oKXtOdCh1LmlkKSxqdCgpfSkpfSl9fX19ZnVuY3Rpb24gQmEoZSx0KXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihuKXt2YXIgaT1uW2VdO2lmKCFpKXtBKCJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTZDQTFcdTY3MDlcdTUzRUZcdTU5MERcdTUyMzZcdTc2ODRcdTUxODVcdTVCQjlcdTMwMDIiLCJlcnJvciIpO3JldHVybn1WcihTdHJpbmcoaSksbnVsbCxmdW5jdGlvbigpe0EodHx8Ilx1NURGMlx1NTkwRFx1NTIzNiIsImluZm8iKX0pfX1mdW5jdGlvbiB3dCgpe3JldHVybiFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbC5lbGVtZW50P251bGw6KHIudGVybWluYWxWaWV3cG9ydEVsPXIudGVybWluYWwuZWxlbWVudCxyLnRlcm1pbmFsVmlld3BvcnRFbCl9ZnVuY3Rpb24gWW4oKXtyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxJZGxlVGltZXIpLHIudGVybWluYWxTY3JvbGxJZGxlVGltZXI9bnVsbCl9ZnVuY3Rpb24gYXQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtanVtcC1ib3R0b20iKSx0PSEhci5zZWxlY3RlZElkJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmIXIudGVybWluYWxBdXRvRm9sbG93JiYhWm8oKTtyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT10LGUmJmUuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLWp1bXAtYnRuIix0KX1mdW5jdGlvbiBEYSgpe3ZhciBlPXd0KCk7aWYoIWUpcmV0dXJuITA7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtZS5zY3JvbGxUb3A7cmV0dXJuIHQ8PXIudGVybWluYWxTY3JvbGxUaHJlc2hvbGR9ZnVuY3Rpb24gWm8oKXt2YXIgZT13dCgpO2lmKCFlKXJldHVybiEwO3ZhciB0PWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LWUuc2Nyb2xsVG9wO3JldHVybiB0PD0yfWZ1bmN0aW9uIGVzKGUpe2lmKHIudGVybWluYWwpe3ZhciB0PXd0KCk7aWYodCl7dmFyIG49ZT81MDA6MTIwO3IudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKStuKSxlP3Quc2Nyb2xsVG8oe3RvcDp0LnNjcm9sbEhlaWdodCxiZWhhdmlvcjoic21vb3RoIn0pOnQuc2Nyb2xsVG9wPXQuc2Nyb2xsSGVpZ2h0fX19ZnVuY3Rpb24ga2EoKXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMSxZbigpLHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD0wLHIudGVybWluYWwmJiJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gci50ZXJtaW5hbCYmKHIudGVybWluYWwuX3Nob3VsZFNjcm9sbFRvQm90dG9tPSExKSxhdCgpfWZ1bmN0aW9uIHZ0KGUpe2lmKHIudGVybWluYWwpe3ZhciB0PWU9PT0iZm9yY2UiO2lmKHQpe3IudGVybWluYWxBdXRvRm9sbG93PSEwLFluKCksZXMoITEpLGF0KCk7cmV0dXJufWlmKCFyLnRlcm1pbmFsQXV0b0ZvbGxvdyl7YXQoKTtyZXR1cm59ZXMoITEpLGF0KCl9fWZ1bmN0aW9uIGxmKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXIiO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdHJhY2siO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIiLG4uYXBwZW5kQ2hpbGQoaSksdC5hcHBlbmRDaGlsZChuKSxlLmFwcGVuZENoaWxkKHQpLHIudGVybWluYWxTY3JvbGxiYXJFbD10LHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPWksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMTtmdW5jdGlvbiBhKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciYmKGNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwpLHQuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfWZ1bmN0aW9uIHUoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiZjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9LDE1MDApKX1mdW5jdGlvbiBvKCl7ci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITE7dmFyIG09d3QoKTtpZihtKXt2YXIgeT1tLnNjcm9sbEhlaWdodCxDPW0uY2xpZW50SGVpZ2h0O2lmKHk8PUMpe3QuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpO3JldHVybn12YXIgRT1uLmNsaWVudEhlaWdodCxCPU1hdGgubWF4KDI4LEMveSpFKSxEPXktQyxGPW0uc2Nyb2xsVG9wL0QsST1GKihFLUIpO2kuc3R5bGUuaGVpZ2h0PUIrInB4IixpLnN0eWxlLnRvcD1JKyJweCJ9fWZ1bmN0aW9uIHMoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZ3x8KHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShvKSl9dmFyIGw9d3QoKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZnVuY3Rpb24oKXthKCkscygpLHUoKX0se3Bhc3NpdmU6ITB9KSxuLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24obSl7aWYobS50YXJnZXQhPT1pKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9d3QoKTtpZih5KXt2YXIgQz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEU9KG0uY2xpZW50WS1DLnRvcCkvQy5oZWlnaHQsQj15LnNjcm9sbEhlaWdodC15LmNsaWVudEhlaWdodDt5LnNjcm9sbFRvcD1FKkJ9fX0pO3ZhciBkPTAsZj0wO2kuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbihtKXttLnByZXZlbnREZWZhdWx0KCksbS5zdG9wUHJvcGFnYXRpb24oKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITAsaS5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLGQ9bS5jbGllbnRZO3ZhciB5PXd0KCk7Zj15P3kuc2Nyb2xsVG9wOjAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixjKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix2KX0pO2Z1bmN0aW9uIGMobSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PXd0KCk7aWYoeSl7dmFyIEM9bi5jbGllbnRIZWlnaHQsRT15LnNjcm9sbEhlaWdodCxCPXkuY2xpZW50SGVpZ2h0LEQ9RS1CO2lmKCEoRDw9MCkpe3ZhciBGPU1hdGgubWF4KDI4LEIvRSpDKSxJPUMtRjtpZighKEk8PTApKXt2YXIgTD1tLmNsaWVudFktZCxIPUwvSSpEO3kuc2Nyb2xsVG9wPWYrSH19fX1mdW5jdGlvbiB2KCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGMpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHYpLHUoKX1pLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKG0pe2lmKG0udG91Y2hlcy5sZW5ndGg9PT0xKXttLnN0b3BQcm9wYWdhdGlvbigpLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMCxpLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksZD1tLnRvdWNoZXNbMF0uY2xpZW50WTt2YXIgeT13dCgpO2Y9eT95LnNjcm9sbFRvcDowLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsaCx7cGFzc2l2ZTohMX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsZyl9fSx7cGFzc2l2ZTohMX0pO2Z1bmN0aW9uIGgobSl7aWYobS50b3VjaGVzLmxlbmd0aD09PTEpe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT13dCgpO2lmKHkpe3ZhciBDPW4uY2xpZW50SGVpZ2h0LEU9eS5zY3JvbGxIZWlnaHQsQj15LmNsaWVudEhlaWdodCxEPUUtQjtpZighKEQ8PTApKXt2YXIgRj1NYXRoLm1heCgyOCxCL0UqQyksST1DLUY7aWYoIShJPD0wKSl7dmFyIEw9bS50b3VjaGVzWzBdLmNsaWVudFktZCxIPUwvSSpEO3kuc2Nyb2xsVG9wPWYrSH19fX19ZnVuY3Rpb24gZygpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcpLHUoKX10LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7YSgpfSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dSgpfSkscygpfWZ1bmN0aW9uIGRmKGUpe3JldHVybiBlPDQzNTI/ITE6ZT49NDM1MiYmZTw9NDQ0N3x8ZT49OTAwMSYmZTw9OTAwMnx8ZT49MTE5MDQmJmU8PTEyMzUwfHxlPj0xMjM1MyYmZTw9MTMzMTF8fGU+PTEzMzEyJiZlPD0xOTkwM3x8ZT49MTk5NjgmJmU8PTQwOTU5fHxlPj00MDk2MCYmZTw9NDIxOTF8fGU+PTQ0MDMyJiZlPD01NTIwM3x8ZT49NjM3NDQmJmU8PTY0MjU1fHxlPj02NTA3MiYmZTw9NjUxMDN8fGU+PTY1MjgwJiZlPD02NTM3Nnx8ZT49NjU1MDQmJmU8PTY1NTEwfHxlPj0xMjY5NzYmJmU8PTEyOTUzNXx8ZT49MTMxMDcyJiZlPD0xOTY2MDV8fGU+PTE5NjYwOCYmZTw9MjYyMTQxfXZhciB0cz0iXHUyMDYwIjtmdW5jdGlvbiBucygpe3JldHVybnttb2RlOiJub3JtYWwifX1mdW5jdGlvbiBjZihlKXtyZXR1cm4hL1teXHgwMC1ceDdmXS8udGVzdChlKSYmZS5pbmRleE9mKCJceDFCIik9PT0tMX1mdW5jdGlvbiBmZihlLHQpe2lmKCFlKXJldHVybiIiO3ZhciBuPVN0cmluZyhlKTtpZih0Lm1vZGU9PT0ibm9ybWFsIiYmY2YobikpcmV0dXJuIG47Zm9yKHZhciBpPSIiLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIHU9bi5jaGFyQ29kZUF0KGEpLG89dSxzPTE7aWYodT49NTUyOTYmJnU8PTU2MzE5JiZhKzE8bi5sZW5ndGgpe3ZhciBsPW4uY2hhckNvZGVBdChhKzEpO2w+PTU2MzIwJiZsPD01NzM0MyYmKG89KHUtNTUyOTYpKjEwMjQrKGwtNTYzMjApKzY1NTM2LHM9Mil9dmFyIGQ9cz09PTI/bi5zdWJzdHIoYSwyKTpuLmNoYXJBdChhKTtzd2l0Y2godC5tb2RlKXtjYXNlIm5vcm1hbCI6bz09PTI3Pyh0Lm1vZGU9ImVzYyIsaSs9ZCk6bz09PTE1NT8odC5tb2RlPSJjc2kiLGkrPWQpOm89PT0xNTd8fG89PT0xNDR8fG89PT0xNTh8fG89PT0xNTk/KHQubW9kZT0ic3RyaW5nIixpKz1kKTooaSs9ZCxkZihvKSYmKGkrPXRzKSk7YnJlYWs7Y2FzZSJlc2MiOmkrPWQsbz09PTkxP3QubW9kZT0iY3NpIjpvPT09OTN8fG89PT04MHx8bz09PTg4fHxvPT09OTR8fG89PT05NT90Lm1vZGU9InN0cmluZyI6dC5tb2RlPSJub3JtYWwiO2JyZWFrO2Nhc2UiY3NpIjppKz1kLG8+PTY0JiZvPD0xMjYmJih0Lm1vZGU9Im5vcm1hbCIpO2JyZWFrO2Nhc2Uic3RyaW5nIjppKz1kLG89PT03fHxvPT09MTU2P3QubW9kZT0ibm9ybWFsIjpvPT09MjcmJih0Lm1vZGU9InN0cmluZy1lc2MiKTticmVhaztjYXNlInN0cmluZy1lc2MiOmkrPWQsbz09PTkyP3QubW9kZT0ibm9ybWFsIjp0Lm1vZGU9InN0cmluZyI7YnJlYWt9YSs9cy0xfXJldHVybiBpfXZhciBwaT0iXHgxQls/MjAyNmgiLEFhPSJceDFCWz8yMDI2bCIscGY9MjAwLHZmPTI1NioxMDI0O2Z1bmN0aW9uIG1mKGUpe2lmKCFlfHxyLnN5bmNPdXRwdXRCdWZmZXI9PT1udWxsJiZlLmluZGV4T2YocGkpPT09LTEpcmV0dXJuIGU7Zm9yKHZhciB0PSIiLG49MDtuPGUubGVuZ3RoOylpZihyLnN5bmNPdXRwdXRCdWZmZXIhPT1udWxsKXt2YXIgaT1lLmluZGV4T2YoQWEsbik7aWYoaT09PS0xKXJldHVybiByLnN5bmNPdXRwdXRCdWZmZXIrPWUuc2xpY2UobiksKHIuc3luY091dHB1dEJ1ZmZlci5sZW5ndGg+dmZ8fERhdGUubm93KCk+ci5zeW5jT3V0cHV0RGVhZGxpbmUpJiYodCs9ci5zeW5jT3V0cHV0QnVmZmVyLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSEwKSx0O3Iuc3luY091dHB1dEJ1ZmZlcis9ZS5zbGljZShuLGkrQWEubGVuZ3RoKSx0Kz1yLnN5bmNPdXRwdXRCdWZmZXIsci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsbj1pK0FhLmxlbmd0aH1lbHNle3ZhciBhPWUuaW5kZXhPZihwaSxuKTtpZihhPT09LTEpcmV0dXJuIHQrPWUuc2xpY2UobiksdDt0Kz1lLnNsaWNlKG4sYSksci5zeW5jT3V0cHV0QnVmZmVyPXBpLHIuc3luY091dHB1dERlYWRsaW5lPURhdGUubm93KCkrcGYsbj1hK3BpLmxlbmd0aH1yZXR1cm4gdH1mdW5jdGlvbiBHZygpe2lmKHIuc3luY091dHB1dEJ1ZmZlciE9PW51bGwpe3ZhciBlPXIuc3luY091dHB1dEJ1ZmZlcjtyZXR1cm4gci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsZX1yZXR1cm4iIn1mdW5jdGlvbiBHbihlLHQpe2lmKCEoIWV8fHQ9PW51bGwpKXtyLndpZGVQYXJzZXJTdGF0ZXx8KHIud2lkZVBhcnNlclN0YXRlPW5zKCkpO3ZhciBuPWZmKHQsci53aWRlUGFyc2VyU3RhdGUpLGk9bWYobiksYT1yLnRlcm1pbmFsQXV0b0ZvbGxvdyE9PSExOyJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gZSYmKGUuX3Nob3VsZFNjcm9sbFRvQm90dG9tPWEpLGkmJmUud3JpdGUoaSksIl9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiBlJiYoZS5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209YSksYSYmKHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKSsxMjApKSxEZih0KX19ZnVuY3Rpb24geGEoKXtyLndpZGVQYXJzZXJTdGF0ZT1ucygpfWZ1bmN0aW9uIGdmKCl7dHlwZW9mIGRvY3VtZW50PiJ1Inx8ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsZnVuY3Rpb24oZSl7dmFyIHQ9d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpO2lmKCEoIXR8fHQuaXNDb2xsYXBzZWQpKXt2YXIgbj10LmFuY2hvck5vZGUsaT1uJiZuLm5vZGVUeXBlPT09Mz9uLnBhcmVudE5vZGU6bixhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighKCFhfHwhaXx8IWEuY29udGFpbnMoaSkpKXt2YXIgdT10LnRvU3RyaW5nKCksbz11LnNwbGl0KGAKYCkubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLnNwbGl0KHRzKS5qb2luKCIiKS5yZXBsYWNlKC9bIFx0XSskLywiIil9KS5qb2luKGAKYCk7byE9PXUmJmUuY2xpcGJvYXJkRGF0YSYmKGUuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixvKSxlLnByZXZlbnREZWZhdWx0KCkpfX19KX1nZigpO3ZhciBycz0xNTAsaXM9MzAsaGY9MTYwKjEwMjQseWY9MTkyKjEwMjQ7ZnVuY3Rpb24gYXMoZSl7aWYoIWV8fGUubGVuZ3RoPD15ZilyZXR1cm4gZTt2YXIgdD1lLmxlbmd0aCxuPWZ1bmN0aW9uKEYpe2lmKCEodHlwZW9mIHI+InUifHwhcikpe3ZhciBJPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtpZighKEk8PTApKXt2YXIgTD10LUY7ci50ZXJtaW5hbE91dHB1dE1hcmtlcj1JPkw/SS1MOjB9fX0saT1lLmxlbmd0aC1oZjtpZihpPjAmJmk8ZS5sZW5ndGgpe3ZhciBhPWUuY2hhckNvZGVBdChpKTthPj01NjMyMCYmYTw9NTczNDMmJmkrK31mb3IodmFyIHU9NDA5NixvPU1hdGgubWluKGkrdSxlLmxlbmd0aCkscz1pO3M8bztzKyspaWYoZS5jaGFyQ29kZUF0KHMpPT09MTApe3ZhciBsPWUuc2xpY2UocysxKTtyZXR1cm4gbihsLmxlbmd0aCksbH1mb3IodmFyIGQ9TWF0aC5tYXgoMCxpLTI1NiksZj0tMSxjPWktMTtjPj1kO2MtLSl7dmFyIHY9ZS5jaGFyQ29kZUF0KGMpO2lmKHY9PT0yNyl7Zj1jO2JyZWFrfWlmKHY9PT03fHx2Pj02NCYmdjw9MTI2KWJyZWFrfWlmKGYhPT0tMSl7Zm9yKHZhciBoPSExLGc9ZisxO2c8aTtnKyspe3ZhciBtPWUuY2hhckNvZGVBdChnKTtpZihtPT09Nyl7aD0hMDticmVha31pZihtPj02NCYmbTw9MTI2KXtoPSEwO2JyZWFrfX1pZighaClmb3IodmFyIHk9TWF0aC5taW4oaSsyNTYsZS5sZW5ndGgpLEM9aTtDPHk7QysrKXt2YXIgRT1lLmNoYXJDb2RlQXQoQyk7aWYoRT09PTd8fEU+PTY0JiZFPD0xMjYpe3ZhciBCPWUuc2xpY2UoQysxKTtyZXR1cm4gbihCLmxlbmd0aCksQn19fXZhciBEPWUuc2xpY2UoaSk7cmV0dXJuIG4oRC5sZW5ndGgpLER9ZnVuY3Rpb24gdmkoKXtpZihyLnRlcm1pbmFsKXtpZih0eXBlb2Ygci50ZXJtaW5hbC5yZXNldD09ImZ1bmN0aW9uIil7ci50ZXJtaW5hbC5yZXNldCgpLHhhKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MDtyZXR1cm59dHlwZW9mIHIudGVybWluYWwud3JpdGU9PSJmdW5jdGlvbiImJnIudGVybWluYWwud3JpdGUoIlx4MUJjIikseGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wfX1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MDt2YXIgYmY9NWUzLEVmPTEyLEZmPTNlNDtyLl9yZXN5bmNJblByb2dyZXNzPSExO2Z1bmN0aW9uIFRuKGUpe2lmKCFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbE91dHB1dClyZXR1cm4hMTt2YXIgdD1lfHx7fSxuPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtuPDAmJihuPTApLG4+ci50ZXJtaW5hbE91dHB1dC5sZW5ndGgmJihuPXIudGVybWluYWxPdXRwdXQubGVuZ3RoKTt2YXIgaT1uPjA/ci50ZXJtaW5hbE91dHB1dC5zbGljZShuKTpyLnRlcm1pbmFsT3V0cHV0LGE9aS5sZW5ndGgsdT10eXBlb2YgcGVyZm9ybWFuY2U8InUiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2Uubm93KCk6RGF0ZS5ub3coKTtyLl9yZXN5bmNJblByb2dyZXNzPSEwO3RyeXt2aSgpLEduKHIudGVybWluYWwsaSl9ZmluYWxseXtyLl9yZXN5bmNJblByb2dyZXNzPSExfXIubGFzdFRlcm1pbmFsUmVzeW5jQXQ9RGF0ZS5ub3coKSx2dCgib3V0cHV0IiksdC5za2lwRml0fHxHZSgicmVmcmVzaCIpO3ZhciBvPURhdGUubm93KCk7aWYoby1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PmJmKXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ9byxyLl9yZXN5bmNTdGF0c0NvdW50PTE7ZWxzZSBpZihyLl9yZXN5bmNTdGF0c0NvdW50Kyssci5fcmVzeW5jU3RhdHNDb3VudD5FZiYmby1yLl9yZXN5bmNMYXN0V2FybkF0PkZmKXtyLl9yZXN5bmNMYXN0V2FybkF0PW87dmFyIHM9dHlwZW9mIHBlcmZvcm1hbmNlPCJ1IiYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCk7Y29uc29sZS53YXJuKCJbd2FuZF0gc29mdFJlc3luY1Rlcm1pbmFsIGhpZ2ggZnJlcXVlbmN5IiwiY291bnQ9IityLl9yZXN5bmNTdGF0c0NvdW50KyIvIitNYXRoLnJvdW5kKChvLXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQpLzEwMCkvMTArInMiLCJidWZMZW49IithLCJsYXN0UmVwbGF5TXM9IitNYXRoLnJvdW5kKHMtdSkpfXJldHVybiEwfWZ1bmN0aW9uIHdmKGUpe3Iuc29mdFJlc3luY1RpbWVyJiZjbGVhclRpbWVvdXQoci5zb2Z0UmVzeW5jVGltZXIpLHIuc29mdFJlc3luY1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnNvZnRSZXN5bmNUaW1lcj1udWxsLFRuKCl9LHR5cGVvZiBlPT0ibnVtYmVyIj9lOjE1MCl9dmFyIENmPS9ceDFiXFtcZCooPzo7XGQqKT9bQUJDRGZISktdLyx1cz0xNTAwLEJmPTgwMDtyLl9yZXN5bmNDaHVua0xhc3RBdD0wLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGw7ZnVuY3Rpb24gRGYoZSl7aWYoIXIuX3Jlc3luY0luUHJvZ3Jlc3MmJnIuc3luY0ZyYW1pbmdSZXNpZHVlJiYoci5zeW5jRnJhbWluZ1Jlc2lkdWU9ITEsISghZXx8dHlwZW9mIGUhPSJzdHJpbmciKSYmZS5pbmRleE9mKCJceDFCWyIpIT09LTEmJkNmLnRlc3QoZSkpKXt2YXIgdD1EYXRlLm5vdygpLG49dC1yLl9yZXN5bmNDaHVua0xhc3RBdDtpZihuPj11cyl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXImJihjbGVhclRpbWVvdXQoci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rTGFzdEF0PXQsVG4oKTtyZXR1cm59aWYoIXIuX3Jlc3luY0NodW5rVGFpbFRpbWVyKXt2YXIgaT1NYXRoLm1heChCZix1cy1uKTtyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCxyLl9yZXN5bmNDaHVua0xhc3RBdD1EYXRlLm5vdygpLFRuKCl9LGkpfX19ZnVuY3Rpb24gbWkoZSx0LG4pe2lmKCFyLnRlcm1pbmFsKXJldHVybiExO3ZhciBpPWx1KHR8fCIiKSxhPWV8fG51bGwsdT1ufHx7fSxvPXUubW9kZXx8ImFwcGVuZCIscz11LnNjcm9sbCE9PSExLGw9ci50ZXJtaW5hbFNlc3Npb25JZCE9PWEsZD1yLnRlcm1pbmFsT3V0cHV0fHwiIixmPSEhKGEmJnIudGVybWluYWxMaXZlU3RyZWFtU2Vzc2lvbnNbYV0pLGM9ITE7aWYoaT09PWQmJiFsKXJldHVybiBzJiZ2dCgib3V0cHV0IiksYXQoKSwhMTtpZihsJiYodmkoKSxkPSIiLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wLHIudGVybWluYWxBdXRvRm9sbG93PSEwLFluKCksYXQoKSksbz09PSJyZXBsYWNlIilpIT09ZCYmKHZpKCksaSYmR24oci50ZXJtaW5hbCxpKSxjPSEwKTtlbHNle2lmKGkubGVuZ3RoPGQubGVuZ3RoJiYhbClyZXR1cm4hMTtpZihmJiYhbCYmbyE9PSJyZXBsYWNlIiYmZCYmIWkuc3RhcnRzV2l0aChkKSlyZXR1cm4hMTtpZihpLnN0YXJ0c1dpdGgoZCkpe3ZhciB2PWkuc2xpY2UoZC5sZW5ndGgpO3YmJihHbihyLnRlcm1pbmFsLHYpLGM9ITApfWVsc2V7aWYoZCYmZC5zdGFydHNXaXRoKGkpKXJldHVybiExO3ZpKCksaSYmR24oci50ZXJtaW5hbCxpKSxjPSEwfX1yZXR1cm4gci50ZXJtaW5hbFNlc3Npb25JZD1hLHIudGVybWluYWxPdXRwdXQ9aSxyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAscyYmKGN8fGx8fG89PT0icmVwbGFjZSIpP3Z0KGx8fG89PT0icmVwbGFjZSI/ImZvcmNlIjoib3V0cHV0Iik6YXQoKSxsJiZmaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKSxjfHxsfWZ1bmN0aW9uIFFuKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCEoIWV8fHIudGVybWluYWx8fHIudGVybWluYWxJbml0aWFsaXppbmcpKXtpZih0eXBlb2YgV1Rlcm1MaWI+InUifHwhV1Rlcm1MaWIuV1Rlcm0pe3IudGVybWluYWxJbml0UmV0cmllc3x8KHIudGVybWluYWxJbml0UmV0cmllcz0wKSxyLnRlcm1pbmFsSW5pdFJldHJpZXM8MTAmJihyLnRlcm1pbmFsSW5pdFJldHJpZXMrKyxzZXRUaW1lb3V0KFFuLDIwMCkpO3JldHVybn1yLnRlcm1pbmFsSW5pdFJldHJpZXM9MCxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSEwLHIuc2VsZWN0ZWRJZCYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSk7Zm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbC13cmFwIixlLmFwcGVuZENoaWxkKGEpO3ZhciB1PW5ldyBXVGVybUxpYi5XVGVybShhLHtjb2xzOjEyMCxyb3dzOjM2LGF1dG9SZXNpemU6ITAsY3Vyc29yQmxpbms6ITEsb25EYXRhOmZ1bmN0aW9uKCl7fSxvblJlc2l6ZTpmdW5jdGlvbihzLGwpe2ZpKHMsbCksci50ZXJtaW5hbCYmci50ZXJtaW5hbE91dHB1dCYmVG4oe3NraXBGaXQ6ITB9KX19KSxvPWRvY3VtZW50LmZvbnRzJiZ0eXBlb2YgZG9jdW1lbnQuZm9udHMucmVhZHk9PSJvYmplY3QiP1Byb21pc2UucmFjZShbZG9jdW1lbnQuZm9udHMucmVhZHksbmV3IFByb21pc2UoZnVuY3Rpb24ocyl7c2V0VGltZW91dChzLDgwMCl9KV0pOlByb21pc2UucmVzb2x2ZSgpO28udGhlbihmdW5jdGlvbigpe3JldHVybiB1LmluaXQoKX0pLnRoZW4oZnVuY3Rpb24oKXtpZihyLnRlcm1pbmFsPXUsci50ZXJtaW5hbEluaXRpYWxpemluZz0hMSxadSgpLGEuaXNDb25uZWN0ZWQmJihhLm9mZnNldEhlaWdodCx0eXBlb2YgdS5yZW1lYXN1cmU9PSJmdW5jdGlvbiIpKXRyeXt1LnJlbWVhc3VyZSgpfWNhdGNoe31yLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxZbigpO3ZhciBzPXd0KCk7aWYocyYmKHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihEYXRlLm5vdygpPHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7YXQoKTtyZXR1cm59aWYoWm8oKSl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsWW4oKSxhdCgpO3JldHVybn1rYSgpfSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcj1mdW5jdGlvbihkKXtkLnRvdWNoZXMmJmQudG91Y2hlcy5sZW5ndGg9PT0xJiYoci50ZXJtaW5hbFRvdWNoU3RhcnRZPWQudG91Y2hlc1swXS5jbGllbnRZKX0sci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPWZ1bmN0aW9uKGQpeyFkLnRvdWNoZXN8fGQudG91Y2hlcy5sZW5ndGghPT0xfHx0eXBlb2Ygci50ZXJtaW5hbFRvdWNoU3RhcnRZPT0ibnVtYmVyIiYmZC50b3VjaGVzWzBdLmNsaWVudFktci50ZXJtaW5hbFRvdWNoU3RhcnRZPjQmJmthKCl9LHMuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSkscy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcix7cGFzc2l2ZTohMH0pLHMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIse3Bhc3NpdmU6ITB9KSksci50ZXJtaW5hbFdoZWVsSGFuZGxlcj1mdW5jdGlvbihkKXtkLmRlbHRhWTwwJiZrYSgpLGQuc3RvcFByb3BhZ2F0aW9uKCl9LGUuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIudGVybWluYWxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxsZihlKSxyLnNlbGVjdGVkSWQpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO2wmJm1pKGwuaWQsbC5vdXRwdXR8fCIiLHttb2RlOiJhcHBlbmQiLHNjcm9sbDohMX0pfWVsc2UgR24odSxgXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyXHIKYCk7ci50ZXJtaW5hbENsaWNrSGFuZGxlcj1mdW5jdGlvbihkKXtCaSgpfHxPdChkKX0sZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsci50ZXJtaW5hbENsaWNrSGFuZGxlciksYXQoKSxXYygpLFVjKCksdGYoKSxuZigpLEdlKCJtb3VudCIse2ZvcmNlUmVwbGF5OiEwfSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpJiZbMTIwLDM1MCw3MDBdLmZvckVhY2goZnVuY3Rpb24oZCl7c2V0VGltZW91dChmdW5jdGlvbigpe3IudGVybWluYWwmJkdlKCJlbWJlZC1zZXR0bGUiKX0sZCl9KX0pLmNhdGNoKGZ1bmN0aW9uKHMpe3IudGVybWluYWxJbml0aWFsaXppbmc9ITEsY29uc29sZS5lcnJvcigiW3dhbmRdIHd0ZXJtIGluaXQgZmFpbGVkOiIscyl9KX19ZnVuY3Rpb24ga2YoZSx0KXtpZighKCFyLnNlbGVjdGVkSWR8fCFlKSl7dmFyIG49ci5zZWxlY3RlZElkKyI6IitlO2lmKHIudG9vbENvbnRlbnRDYWNoZVtuXSl7dChudWxsLHIudG9vbENvbnRlbnRDYWNoZVtuXSk7cmV0dXJufWZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi90b29sLWNvbnRlbnQvIitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aS5lcnJvcj90KGkuZXJyb3IsbnVsbCk6KHIudG9vbENvbnRlbnRDYWNoZVtuXT1pLHQobnVsbCxpKSl9KS5jYXRjaChmdW5jdGlvbigpe3QoIlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSIsbnVsbCl9KX19ZnVuY3Rpb24gTG4oZSl7cmV0dXJuISEoci5jb25maWcmJnIuY29uZmlnLmNhcmREZWZhdWx0cyYmci5jb25maWcuY2FyZERlZmF1bHRzW2VdKX1mdW5jdGlvbiBTYShlLHQsbixpKXtpZighKCFlfHxlLmRhdGFzZXQudHJ1bmNhdGVkIT09InRydWUifHxlLmRhdGFzZXQubG9hZGVkPT09InRydWUiKSl7dmFyIGE9ZS5kYXRhc2V0LnRvb2xVc2VJZDthJiYodCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+JyksZS5kYXRhc2V0LmxvYWRlZD0ibG9hZGluZyIsa2YoYSxmdW5jdGlvbih1LG8pe2lmKHUpe3QmJih0LmlubmVySFRNTD1pfHwnPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj4nKSxlLmRhdGFzZXQubG9hZGVkPSIiO3JldHVybn1lLmRhdGFzZXQudHJ1bmNhdGVkPSJmYWxzZSIsZS5kYXRhc2V0LmxvYWRlZD0idHJ1ZSI7dmFyIHM9dHlwZW9mIG8uY29udGVudD09InN0cmluZyI/by5jb250ZW50OkpTT04uc3RyaW5naWZ5KG8uY29udGVudCk7bihzLG8pfSkpfX13aW5kb3cuX190Y1RvZ2dsZT1mdW5jdGlvbihlLHQpe3ZhciBuPXQuY2xvc2VzdCgiLnRvb2wtdXNlLWNhcmQiKXx8dC5jbG9zZXN0KCIuaW5saW5lLWRpZmYiKTtpZihuKXt2YXIgaT1uLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7bi5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiKTt2YXIgYT1pO3Quc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixhPyJ0cnVlIjoiZmFsc2UiKTt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50b29sLXVzZS1ib2R5LCAuZGlmZi1ib2R5Iik7dSYmdS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIixhPyJmYWxzZSI6InRydWUiKTt2YXIgbz1uLmRhdGFzZXQuZXhwYW5kS2luZHx8InRvb2wtY2FyZCI7aWYoUm4obixvKSxpKXt2YXIgcz1uLnF1ZXJ5U2VsZWN0b3IoIi50b29sLXVzZS1yZXN1bHQiKTtTYShuLHMsZnVuY3Rpb24obCl7cyYmKHMuaW5uZXJIVE1MPSc8cHJlIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtY29udGVudCI+JytwKGwpKyI8L3ByZT4iKX0sYDxkaXYgY2xhc3M9InRvb2wtY29udGVudC1lcnJvciIgb25jbGljaz0iX190Y1RvZ2dsZShudWxsLCB0aGlzLmNsb3Nlc3QoJy50b29sLXVzZS1jYXJkLC5pbmxpbmUtZGlmZicpLnF1ZXJ5U2VsZWN0b3IoJy50b29sLXVzZS1oZWFkZXIsLmRpZmYtaGVhZGVyJykpIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj5gKX19ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKX0sd2luZG93Ll9fdGhpbmtpbmdUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO2lmKHQpe2UuY2xhc3NMaXN0LnJlbW92ZSgiY29sbGFwc2VkIiksZS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3IikudGV4dENvbnRlbnQ9ZS5kYXRhc2V0LnRoaW5raW5nfHwiIjt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1NjUzNlx1OEQ3NyIpfWVsc2V7ZS5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmRlZCIpLGUuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik7dmFyIGk9KGUuZGF0YXNldC50aGlua2luZ3x8IiIpLnNsaWNlKDAsNTcpKygoZS5kYXRhc2V0LnRoaW5raW5nfHwiIikubGVuZ3RoPjYwPyJcdTIwMjYiOiIiKTtlLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpLnRleHRDb250ZW50PWk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLWFjdGlvbiIpO24mJihuLnRleHRDb250ZW50PSJcdTVDNTVcdTVGMDAiKX1SbihlLCJ0aGlua2luZyIpfSx3aW5kb3cuX19zdWJhZ2VudFJlcGx5VG9nZ2xlPWZ1bmN0aW9uKGUsdCl7ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTt2YXIgbj10JiZ0LmNsb3Nlc3Q/dC5jbG9zZXN0KCIuc3ViYWdlbnQtcmVwbHkiKTpudWxsO2lmKG4pe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIik9PT0idHJ1ZSI7R3Uobiwic3ViYWdlbnQtcmVwbHkiLCFpKSxSbihuLCJzdWJhZ2VudC1yZXBseSIpfX0sd2luZG93Ll9fc3ViYWdlbnRQYW5lbFRvZ2dsZT1mdW5jdGlvbihlLHQpe2UmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7dmFyIG49dCYmdC5jbG9zZXN0P3QuY2xvc2VzdCgiLnN1YmFnZW50LXBhbmVsIik6bnVsbDtuJiZuLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsInRydWUiKX07ZnVuY3Rpb24gQWYoZSl7aWYoZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCcuc3ViYWdlbnQtcGFuZWxbZGF0YS1mb2xsb3ctdGFpbD0idHJ1ZSJdJyksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1wYW5lbC1ib2R5Iik7aSYmKGkuc2Nyb2xsVG9wPWkuc2Nyb2xsSGVpZ2h0KX19d2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3PWZ1bmN0aW9uKGUpe2UmJnJpKGUpfSx3aW5kb3cuX19pbmxpbmVUb29sVG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtZXhwYW5kZWQiKTtuJiYobi5zdHlsZS5kaXNwbGF5PXQ/ImJsb2NrIjoibm9uZSIpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmlubGluZS10b29sLXN0YXR1cyIpO2kmJihlLmRhdGFzZXQuc3RhdHVzPT09ImVycm9yIj9pLnRleHRDb250ZW50PSJcdTI3MTciOmUuZGF0YXNldC5zdGF0dXM9PT0iZG9uZSImJihpLnRleHRDb250ZW50PSJcdTI3MTMiKSksdCYmU2EoZSxuLGZ1bmN0aW9uKGEpe2UuZGF0YXNldC5yZXN1bHQ9YSxuJiYobi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytwbChhLCIiKSsiPC9kaXY+Iil9KSxSbihlLCJpbmxpbmUtdG9vbCIpfSx3aW5kb3cuX190ZXJtaW5hbEV4cGFuZD1mdW5jdGlvbihlKXt2YXIgdD1lLmNsb3Nlc3QoIi5pbmxpbmUtdGVybWluYWwiKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLWJvZHkiKTtpZihuKXt2YXIgaT1uLnN0eWxlLmRpc3BsYXk9PT0ibm9uZSI7bi5zdHlsZS5kaXNwbGF5PWk/ImJsb2NrIjoibm9uZSIsdC5kYXRhc2V0LmV4cGFuZGVkPWk/InRydWUiOiJmYWxzZSIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGk/InRydWUiOiJmYWxzZSIpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsaT8iZmFsc2UiOiJ0cnVlIik7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2lmKGEmJihhLnRleHRDb250ZW50PWk/Ilx1MjVCQyI6Ilx1MjVCNiIpLFJuKHQsInRlcm1pbmFsIiksaSl7dmFyIHU9bi5xdWVyeVNlbGVjdG9yKCIudGVybS1vdXRwdXQiKTtTYSh0LHUsZnVuY3Rpb24obyl7aWYodSl7Zm9yKHZhciBzPW8uc3BsaXQoYApgKSxsPSIiLGQ9MDtkPHMubGVuZ3RoO2QrKykhc1tkXSYmZD09PXMubGVuZ3RoLTF8fChsKz0nPGRpdiBjbGFzcz0idGVybS1saW5lIj4nK3Aoc1tkXSkrIjwvZGl2PiIpO3UuaW5uZXJIVE1MPWx9fSl9fX19O2Z1bmN0aW9uIFFnKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmciKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmctdGV4dCIpO2lmKG4pe3ZhciBpPWUuc3BsaXQoYApgKSxhPWkuc2xpY2UoLTMpO24udGV4dENvbnRlbnQ9YS5qb2luKGAKYCksbi5zY3JvbGxUb3A9bi5zY3JvbGxIZWlnaHR9fX13aW5kb3cuX19hc2tTZWxlY3Q9ZnVuY3Rpb24oZSx0LG4saSl7dmFyIGE9ci5hc2tVc2VyU2VsZWN0aW9uc1tlXTtpZihhfHwoYT17c3VibWl0dGVkOiExfSxyLmFza1VzZXJTZWxlY3Rpb25zW2VdPWEpLCFhLnN1Ym1pdHRlZCl7dmFyIHU9YVt0XXx8W107aWYoaSl7dmFyIG89dS5pbmRleE9mKG4pO289PT0tMT91LnB1c2gobik6dS5zcGxpY2UobywxKX1lbHNlIHU9dVswXT09PW4/W106W25dO2FbdF09dSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9fSx3aW5kb3cuX19hc2tSZW5kZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZih0KXt2YXIgbj1yLmFza1VzZXJTZWxlY3Rpb25zW2VdfHx7fTt0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1vcHRpb24iKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBzPXBhcnNlSW50KG8uZGF0YXNldC5xdWVzdGlvbkluZGV4LDEwKSxsPXBhcnNlSW50KG8uZGF0YXNldC5vcHRpb25JbmRleCwxMCksZD0obltzXXx8W10pLmluZGV4T2YobCkhPT0tMTtvLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIixkKX0pO3ZhciBpPXQucXVlcnlTZWxlY3RvcigiLmFzay11c2VyLXN1Ym1pdCIpO2lmKGkpe3ZhciBhPXQucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksdT0hMDthLmZvckVhY2goZnVuY3Rpb24obyxzKXsoIW5bc118fG5bc10ubGVuZ3RoPT09MCkmJih1PSExKX0pLGkuZGlzYWJsZWQ9IXV8fCEhbi5zdWJtaXR0ZWQsbi5zdWJtaXR0ZWQmJihpLnRleHRDb250ZW50PSJcdTVERjJcdTYzRDBcdTRFQTQuLi4iLGkuY2xhc3NMaXN0LmFkZCgiYXNrLXVzZXItc3VibWl0dGVkIikpfX19LHdpbmRvdy5fX2Fza1N1Ym1pdD1mdW5jdGlvbihlKXt2YXIgdD1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKCEoIXR8fHQuc3VibWl0dGVkfHwhci5zZWxlY3RlZElkKSl7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZihuKXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1xdWVzdGlvbi1ncm91cCIpLGE9W10sdT0hMDtpZihpLmZvckVhY2goZnVuY3Rpb24ocyxsKXt2YXIgZD10W2xdfHxbXTtpZihkLmxlbmd0aD09PTApe3U9ITE7cmV0dXJufXZhciBmPVtdO2QuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgdj1zLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW9wdGlvbi1pbmRleD0iJytjKyciXScpO3YmJmYucHVzaCh2LmRhdGFzZXQub3B0aW9uTGFiZWwpfSksYS5wdXNoKGYuam9pbigiLCAiKSl9KSwhIXUpe3Quc3VibWl0dGVkPSEwLHdpbmRvdy5fX2Fza1JlbmRlcihlKTt2YXIgbz1hLmpvaW4oYApgKTtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3Iuc2VsZWN0ZWRJZCsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6bytgCmAsdmlldzpyLmN1cnJlbnRWaWV3fSl9KS5jYXRjaChmdW5jdGlvbihzKXtjb25zb2xlLmVycm9yKCJbd2FuZF0gRXJyb3Igc2VuZGluZyBhbnN3ZXI6IixzKSx0LnN1Ym1pdHRlZD0hMSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9KX19fX07ZnVuY3Rpb24geGYoKXtpZighci5fX2dsb2JhbExpc3RlbmVyc0JvdW5kKXtyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9KTt2YXIgZT1mdW5jdGlvbigpe3IudG9wYmFyTW9yZU9wZW49ITE7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1idXR0b24iKTt0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJihuLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZihyLnRvcGJhck1vcmVPcGVuKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpLGk9biYmbi5wYXJlbnRFbGVtZW50O2kmJiFpLmNvbnRhaW5zKHQudGFyZ2V0KSYmZSgpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJnIudG9wYmFyTW9yZU9wZW4mJmUoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZihyLnBsdXNQb3BvdmVyT3Blbil7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF0dGFjaC1idG4iKTtuJiZuLmNvbnRhaW5zKHQudGFyZ2V0KXx8aSYmaS5jb250YWlucyh0LnRhcmdldCl8fEtpKCl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci5wbHVzUG9wb3Zlck9wZW4mJktpKCl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8dHlwZW9mIG4uY2xvc2VzdCE9ImZ1bmN0aW9uIikpe3ZhciBpPW4uY2xvc2VzdCgiI2F1dG8tYXBwcm92ZS10b2dnbGUiKTtpJiYodC5wcmV2ZW50RGVmYXVsdCgpLE9jKCkpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZighdC50YXJnZXQuY2xvc2VzdCgiLmZvbGRlci1waWNrZXItY29udGFpbmVyIikpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2lmKCEoIW58fG4ubm9kZVR5cGUhPT0xKSYmISh0eXBlb2Ygbi5tYXRjaGVzIT0iZnVuY3Rpb24ifHwhbi5tYXRjaGVzKCJbZGF0YS1tb2RlLWNvbnRyb2xdIikpKXt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlLWNvbnRyb2wiKSxhPW4udmFsdWU7aT09PSJtb2RlIj9UbShhKTppPT09Im1vZGVsIj9JbShhKTppPT09InRoaW5raW5nIiYma20oYSksbi5jbG9zZXN0JiZuLmNsb3Nlc3QoIiNjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSYmS2koKX19KX19ZnVuY3Rpb24gU2YoKXt4ZigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKTtpZihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixkdSk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWZvcm0iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGR1KCl9KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tc3dpdGNoLXNlcnZlci1idXR0b24iKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixnbCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLXBhc3N3b3JkLWJ1dHRvbiIpO2EmJmkmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9aS50eXBlPT09InRleHQiO2kudHlwZT1iPyJwYXNzd29yZCI6InRleHQiLGEudGV4dENvbnRlbnQ9Yj8iXHU2NjNFXHU3OTNBIjoiXHU5NjkwXHU4NUNGIixhLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsYj8iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIjoiXHU5NjkwXHU4NUNGXHU1QkM2XHU3ODAxIiksYS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsYj8iZmFsc2UiOiJ0cnVlIiksaS5mb2N1cygpfSksaSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiZkdSgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtpLmRhdGFzZXQuZXJyb3I9ImZhbHNlIixpLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwiZmFsc2UiKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZXJyb3IiKTtiJiZoaShiKX0pLGkuZm9jdXMoKSk7cmV0dXJufXZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7dSYmKHUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiYhYi5zaGlmdEtleSYmKGIucHJldmVudERlZmF1bHQoKSxGcygpKX0pLHUuZm9jdXMoKSk7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtc2VuZC1idG4iKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0ZzKCl9KTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLWNsYXVkZSIpO3MmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7JGwoKX0pO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtY29kZXgiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2Vzc2lvblRvb2w9ImNvZGV4IixyLnByZWZlcnJlZENvbW1hbmQ9ImNvZGV4IixyLm1vZGVWYWx1ZT0iZnVsbC1hY2Nlc3MiLCRsKCl9KTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLXN0cnVjdHVyZWQiKTtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2psKCkudGhlbihmdW5jdGlvbigpe090KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKGIpe0EoYiYmYi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfSksaGcoKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpO2YmJihmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvZiksZi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzZiksZi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHptKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixWbSksb3YoZikpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRuLCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0bik7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb3ZpZGVyLWNhcmRzIik7YyYmYy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQuY2xvc2VzdCgiLnByb3ZpZGVyLWNhcmQiKTtpZighKCFTfHxTLmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSkpe3ZhciBXPVMuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7VyYmKHIuc2Vzc2lvblRvb2w9VyxyLnByZWZlcnJlZENvbW1hbmQ9VyxfcigpKX19KTt2YXIgdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWNhcmRzIik7diYmdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQuY2xvc2VzdCgiLnNlc3Npb24ta2luZC1jYXJkIik7aWYoISghU3x8Uy5jbGFzc0xpc3QuY29udGFpbnMoImRpc2FibGVkIikpKXt2YXIgVz1TLmdldEF0dHJpYnV0ZSgiZGF0YS1zZXNzaW9uLWtpbmQiKTtXJiYoci5zZXNzaW9uQ3JlYXRlS2luZD1XLF9yKCkpfX0pO3ZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWNhcmRzIik7aCYmaC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQuY2xvc2VzdCgiLm1vZGUtY2FyZCIpO2lmKFMpe3ZhciBXPVMuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKTtXJiYoci5tb2RlVmFsdWU9VyxfcigpKX19KTt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiKTtnJiZnLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLnNlc3Npb25DcmVhdGVXb3JrdHJlZT1nLmNoZWNrZWR9KTt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7bSYmKG0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsWmwpLG0uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLFpsKSxtLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7c2V0VGltZW91dChhciwxMjApfSkpO3ZhciB5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIik7eSYmeS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSG0pO3ZhciBDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKTtDJiZDLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixScik7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLWRyYXdlci1idXR0b24iKTtFJiZFLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixScik7dmFyIEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItY29sbGFwc2UtYnRuIik7QiYmQi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsVW0pO3ZhciBEPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTtEJiZELmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixLbSk7dmFyIEY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItbW9yZS1idG4iKSxJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTtGJiZJJiZGLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBTPSFJLmNsYXNzTGlzdC5jb250YWlucygib3BlbiIpO0kuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsUyksUyYmWW0oSSl9KTt2YXIgTD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1ob21lLWJ0biIpO0wmJkwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkPW51bGwsaGUoKSxDdCgpLGp0KCksWnQoKX0pO3ZhciBIPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXJlZnJlc2gtYnRuIik7SCYmSC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KTt2YXIgVT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nb3V0LWJ1dHRvbiIpO1UmJlUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGhsKTt2YXIgeD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3dpdGNoLXNlcnZlci1idXR0b24iKTt4JiZ4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixnbCk7dmFyIGs9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIpO2smJmsuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHltKTt2YXIgVD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYnV0dG9uIik7VCYmVC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsJG0pO3ZhciBNPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1zZXR0aW5ncy1idXR0b24iKTtNJiZNLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixycik7dmFyIFk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1vZGFsIik7WSYmWS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0ic2V0dGluZ3MtbW9kYWwiJiZycigpfSk7dmFyIHo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtcGFzc3dvcmQtYnV0dG9uIik7eiYmei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWG0pO2Zvcih2YXIgUT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbGU9MDtsZTxRLmxlbmd0aDtsZSsrKVFbbGVdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLmN1cnJlbnRUYXJnZXR8fHRoaXMsVz1TJiZTLmdldEF0dHJpYnV0ZT9TLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTpudWxsO1cmJkJ1KFcpfSk7dmFyIGVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWNvbmZpZy1idXR0b24iKTtlZSYmZWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGlnKSxTbSgpO3ZhciBaPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbC1yZWZyZXNoIik7WiYmWi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTWwpO3ZhciBxPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsLXJlZnJlc2giKTtxJiZxLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixNbCk7dmFyIFA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jb21taXQtY2xpIik7UCYmUC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7emkoITApfSk7dmFyIGo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy12aWV3LWVudi1idG4iKTtqJiZqLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix4bSk7dmFyIEc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtZGlzcGxheS1idXR0b24iKTtHJiZHLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhZyk7dmFyIEo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcC1pY29uLXBpY2tlciIpO2lmKEopZm9yKHZhciB0ZT1KLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iKSxkZT0wO2RlPHRlLmxlbmd0aDtkZSsrKXRlW2RlXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIik7aWYoISghYnx8dHlwZW9mIFdhbmROYXRpdmU+InUifHx0eXBlb2YgV2FuZE5hdGl2ZS5zZXRBcHBJY29uIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS5zZXRBcHBJY29uKGIpLEpsKGIpO3ZhciBTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtaWNvbi1tZXNzYWdlIik7UyYmKFMudGV4dENvbnRlbnQ9Ilx1NTZGRVx1NjgwN1x1NURGMlx1NTIwN1x1NjM2Mlx1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0OCIsUy5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLFMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksc2V0VGltZW91dChmdW5jdGlvbigpe1MuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9LDNlMykpfWNhdGNoe319KTt2YXIgbmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwbG9hZC1jZXJ0LWJ1dHRvbiIpO25lJiZuZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdWcpO2Zvcih2YXIgcmU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtcGlja2VyLWlucHV0IiksTWU9MDtNZTxyZS5sZW5ndGg7TWUrKykoZnVuY3Rpb24oYil7Yi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIFM9Yi5jbG9zZXN0KCIuZmlsZS1waWNrZXIiKTtpZihTKXt2YXIgVz1TLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXBpY2tlci1uYW1lIik7VyYmKGIuZmlsZXMmJmIuZmlsZXNbMF0/KFcudGV4dENvbnRlbnQ9Yi5maWxlc1swXS5uYW1lLFMuY2xhc3NMaXN0LmFkZCgiZmlsZS1waWNrZXItaGFzLWZpbGUiKSk6KFcudGV4dENvbnRlbnQ9Vy5nZXRBdHRyaWJ1dGUoImRhdGEtZGVmYXVsdCIpfHwiXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2IixTLmNsYXNzTGlzdC5yZW1vdmUoImZpbGUtcGlja2VyLWhhcy1maWxlIikpKX19KX0pKHJlW01lXSk7dmFyIHllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGVjay11cGRhdGUtYnV0dG9uIik7eWUmJnllLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixLbCk7dmFyIHBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIik7cGUmJnBlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvZyk7dmFyIFI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIik7UiYmUi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsc2cpO3ZhciBodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIpO2h0JiZodC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7RHUoIndlYiIsaHQuY2hlY2tlZCl9KTt2YXIgT2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWFway10b2dnbGUiKTtPZSYmT2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe0R1KCJhcGsiLE9lLmNoZWNrZWQpfSk7dmFyICQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTskJiYkLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtEdSgiZG1nIiwkLmNoZWNrZWQpfSk7dmFyIGJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7YmUmJmJlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtjZyhiZS5jaGVja2VkPyJiZXRhIjoic3RhYmxlIil9KTt2YXIgU2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIpO1NlJiZTZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LWNvZGUiKTtiJiZWcihiLnRleHRDb250ZW50LFNlKX0pO3ZhciBFZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIik7RWUmJihFZS5jaGVja2VkPXIubm90aWZTb3VuZCxFZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5ub3RpZlNvdW5kPUVlLmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIixTdHJpbmcoci5ub3RpZlNvdW5kKSl9Y2F0Y2h7fXIubm90aWZTb3VuZCYmRWkoKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7YiYmKGIuc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKX0pKTt2YXIgb2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUiKSx2ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKSxzdD1mdW5jdGlvbihiKXtpZihiKXt2YXIgUz1OdW1iZXIoYi5taW58fDApLFc9TnVtYmVyKGIubWF4fHwxMDApLEZlPU51bWJlcihiLnZhbHVlfHwwKSxidD1XPlM/TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsKEZlLVMpLyhXLVMpKjEwMCkpOjA7Yi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1yYW5nZS1maWxsIixidCsiJSIpfX07aWYob2Upe29lLnZhbHVlPVN0cmluZyhyLm5vdGlmVm9sdW1lKSx2ZSYmKHZlLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKSxzdChvZSk7dmFyIGx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZi12b2x1bWUtZmllbGQiKTtsdCYmKGx0LnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIik7dmFyIHl0PW51bGw7b2UuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5ub3RpZlZvbHVtZT1wYXJzZUludChvZS52YWx1ZSwxMCksdmUmJih2ZS50ZXh0Q29udGVudD1yLm5vdGlmVm9sdW1lKyIlIiksc3Qob2UpO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhyLm5vdGlmVm9sdW1lKSl9Y2F0Y2h7fWlmKF9lJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uVm9sdW1lKHIubm90aWZWb2x1bWUpfWNhdGNoe319KSxvZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7RWkoKX0pfXZhciBJZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO0llJiYoSWUuY2hlY2tlZD1yLm5vdGlmQnViYmxlLEllLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLm5vdGlmQnViYmxlPUllLmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLWJ1YmJsZSIsU3RyaW5nKHIubm90aWZCdWJibGUpKX1jYXRjaHt9fSkpO3ZhciB6dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIik7enQmJnp0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKF9lKXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbigpe2JuKCksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe319ZWxzZSB0eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbigpe2JuKCl9KX0pO3ZhciBKZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIpO0plJiZKZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZmcpO3ZhciBSZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtYnRuIik7UmUmJlJlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixHbCk7dmFyIHFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTtpZihxZSYmcWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHBnKSxibigpLF9lJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRBdmFpbGFibGVTb3VuZHM9PSJmdW5jdGlvbiIpe3ZhciBpZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlY3Rpb24iKSxjZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpLHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1wcmV2aWV3Iik7aWYoaWUmJmNlKXtpZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt0cnl7dmFyIHJ0PUpTT04ucGFyc2UoV2FuZE5hdGl2ZS5nZXRBdmFpbGFibGVTb3VuZHMoKSksVnQ9V2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Tb3VuZCgpO2NlLmlubmVySFRNTD0iIjtmb3IodmFyIGl0PTA7aXQ8cnQubGVuZ3RoO2l0Kyspe3ZhciB4dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTt4dC52YWx1ZT1ydFtpdF0uaWQseHQudGV4dENvbnRlbnQ9cnRbaXRdLm5hbWUscnRbaXRdLmlkPT09VnQmJih4dC5zZWxlY3RlZD0hMCksY2UuYXBwZW5kQ2hpbGQoeHQpfWNlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt0cnl7V2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Tb3VuZChjZS52YWx1ZSl9Y2F0Y2h7fX0pLHcmJncuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUucHJldmlld1NvdW5kKGNlLnZhbHVlKX1jYXRjaHt9fSl9Y2F0Y2h7fX19aWYoX2UmJnR5cGVvZiBXYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZD09ImZ1bmN0aW9uIil7dmFyIFN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtaGFwdGljLXNlY3Rpb24iKSxkdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7aWYoU3QmJmR0KXtTdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt0cnl7ZHQuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpfWNhdGNoe31kdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuc2V0SGFwdGljRW5hYmxlZChkdC5jaGVja2VkKX1jYXRjaHt9ZHQuY2hlY2tlZCYmJG4oIm1lZGl1bSIpfSl9fXZhciBVdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO1V0JiZVdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsd3UpO3ZhciBUZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhd2VyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO1RlJiZUZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsd3UpO3ZhciBXZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtbW9kYWwtYnV0dG9uIik7V2UmJldlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixobik7dmFyIHplPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS13b3JrdHJlZS1tZXJnZS1idXR0b24iKTt6ZSYmemUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG5yKTt2YXIgSXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNhbmNlbC1idXR0b24iKTtJdCYmSXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG5yKTt2YXIgS3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIik7S3QmJkt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixRbSk7dmFyIEp0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydW4tYnV0dG9uIik7SnQmJkp0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix2Zyk7dmFyIEVuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIik7RW4mJkVuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxYyk7dmFyIGN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7Y3QmJmN0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixQYyk7dmFyIEZuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kLWlucHV0LWJ1dHRvbiIpO0ZuJiZGbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtqdCgpLGZwKCl9KTt2YXIgVmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7VmUmJlZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixLYSk7dmFyIFVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7VWUmJlVlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJzZXNzaW9uLW1vZGFsIiYmaG4oKSxiLnRhcmdldC5pZD09PSJ3b3JrdHJlZS1tZXJnZS1tb2RhbCImJm5yKCl9KTt2YXIgQmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO0JlJiYoVnMoQmUpLEJlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHdnKSxCZS5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsSWcpLEJlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IudGVybWluYWxDb21wb3Npbmd8fGVkKEJlKXx8KEV2KEJlKSxaZShCZS52YWx1ZSwhMCksWWkoQmUpKX0pLEJlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbEludGVyYWN0aXZlJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMCl9KSxCZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsQ29tcG9zaW5nJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJmVkKEJlKSl9KSxCZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtqdCgpLHB2KHt0YXJnZXQ6QmV9KX0pLEJlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHZ2KSk7dmFyIGZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2gtYnRuIikscHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtdXBsb2FkLWlucHV0Iiksd249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLENuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbHVzLWF0dGFjaC1pdGVtIik7ZnQmJnduJiZmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxObSgpfSksQ24mJnB0JiZDbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtLaSgpLHB0LmNsaWNrKCl9KSxwdCYmcHQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBiPXB0LmZpbGVzO2lmKGIpZm9yKHZhciBTPTA7UzxiLmxlbmd0aDtTKyspa3UoYltTXSk7cHQudmFsdWU9IiJ9KTt2YXIgc2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLWJ0biIpO3NlJiZzZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtIYSgpfSk7dmFyIGV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1jYW5jZWwtYnRuIik7ZXQmJmV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0hhKCExKX0pO3ZhciBDZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO0NlJiYoQ2UuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLHJwKSxDZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsaXApLENlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZ3MpLENlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLGdzKSk7dmFyIHR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQtb3B0aW1pemUtYnRuIik7dHQmJnR0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0xnKCl9KTt2YXIgXz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtfJiYoXy5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksXy5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLF8uYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSxfLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksXy5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSxfLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO3ZhciBTPWIuZGF0YVRyYW5zZmVyJiZiLmRhdGFUcmFuc2Zlci5maWxlcztpZihTKWZvcih2YXIgVz0wO1c8Uy5sZW5ndGg7VysrKWt1KFNbV10pfSkpO3ZhciBPPVsidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCJdO08uZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgUz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKTtTJiZTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwkcCl9KTt2YXIgSz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1wYW5lbC10b2dnbGUtYnRuIik7SyYmSy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGkpO3ZhciBhZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1zaWRlLXBhbmVsLWNsb3NlIik7YWUmJmFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwkdSk7dmFyIG1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7bWUmJm1lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwkdSk7dmFyIERlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZmlsZS1idXR0b24iKTtEZSYmRGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRpKTt2YXIgX249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1jd2QiKTtfbiYmKF9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVBhbmVsT3Blbnx8dGkoKX0pLF9uLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpeyhiLmtleT09PSJFbnRlciJ8fGIua2V5PT09IiAiKSYmKGIucHJldmVudERlZmF1bHQoKSxyLmZpbGVQYW5lbE9wZW58fHRpKCkpfSkpO3ZhciBZdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtYnV0dG9uIiksb3I9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKTtZdCYmb3ImJihZdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxyLnRvcGJhck1vcmVPcGVuPSFyLnRvcGJhck1vcmVPcGVuLG9yLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXIudG9wYmFyTW9yZU9wZW4pLFl0LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci50b3BiYXJNb3JlT3BlbiksWXQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixyLnRvcGJhck1vcmVPcGVuPyJ0cnVlIjoiZmFsc2UiKX0pLG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLnRhcmdldCYmYi50YXJnZXQuY2xvc2VzdD9iLnRhcmdldC5jbG9zZXN0KCIudG9wYmFyLW1vcmUtaXRlbSIpOm51bGw7aWYoUyl7dmFyIFc9Uy5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7c3dpdGNoKHIudG9wYmFyTW9yZU9wZW49ITEsb3IuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksWXQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksWXQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSxXKXtjYXNlImNvcHktY2xhdWRlLXNlc3Npb24taWQiOkJhKCJjbGF1ZGVTZXNzaW9uSWQiLGt0KCkmJmt0KCkucHJvdmlkZXI9PT0iY29kZXgiPyJDb2RleCB0aHJlYWQgSUQgXHU1REYyXHU1OTBEXHU1MjM2IjoiQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlImNvcHktY3dkIjpCYSgiY3dkIiwiXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJjb3B5LXNlc3Npb24taWQiOkJhKCJpZCIsIlx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlIndvcmt0cmVlLW1lcmdlIjpyLnNlbGVjdGVkSWQmJldsKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJ3b3JrdHJlZS1jbGVhbnVwIjpyLnNlbGVjdGVkSWQmJnpsKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJkZWxldGUtc2Vzc2lvbiI6ci5zZWxlY3RlZElkJiYoZnVuY3Rpb24oRmUpe0luKCJcdTc4NkVcdTVCOUFcdTg5ODFcdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIn0pLnRoZW4oZnVuY3Rpb24oYnQpe2J0JiZKYShGZSl9KX0pKHIuc2VsZWN0ZWRJZCk7YnJlYWt9fX0pKTt2YXIgTm49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLWRvd24tdG9wIiksam49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLXVwLXRvcCIpO05uJiZObi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtYdSgtLjI1KX0pLGpuJiZqbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtYdSguMjUpfSk7dmFyIFFpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYWdlLXJlZnJlc2gtYnRuIik7UWkmJlFpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtpZihiJiZiLnNoaWZ0S2V5KXtsb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59VG4oKSxDdCh7cHJlc2VydmVTdGlja1N0YXRlOiEwfSksJGEoITApfSk7dmFyIEpyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIpO0pyJiZKci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2dCgiZm9yY2UiKX0pO3ZhciAkaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC11bnJlYWQtYnViYmxlIik7JGkmJiRpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe051KCEwKX0pO3ZhciB0ZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1yZWZyZXNoIik7dGQmJnRkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe010KCl9KTt2YXIgbmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItdXAiKTtuZCYmbmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLF9kKTt2YXIgS2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItY3dkIik7aWYoS2UmJktlLnRhZ05hbWU9PT0iSU5QVVQiKXt2YXIgc3I9S2UudmFsdWUscmQ9ZnVuY3Rpb24oYil7dmFyIFM9KGJ8fCIiKS50cmltKCk7cmV0dXJuIFM/KFM9Uy5yZXBsYWNlKC9cL3syLH0vZywiLyIpLFMubGVuZ3RoPjEmJihTPVMucmVwbGFjZSgvXC8rJC8sIiIpKSxTKToiIn07S2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7c3I9S2UudmFsdWUsc2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtLZS5zZWxlY3QoKX1jYXRjaHt9fSwwKX0pLEtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2lmKGIua2V5PT09IkVudGVyIil7Yi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBTPXJkKEtlLnZhbHVlKTtpZighUylyZXR1cm47c3I9UyxLZS52YWx1ZT1TLE10KHtjd2Q6U30pLEtlLmJsdXIoKX1lbHNlIGIua2V5PT09IkVzY2FwZSImJihiLnByZXZlbnREZWZhdWx0KCksS2UudmFsdWU9c3IsS2UuYmx1cigpKX0pLEtlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7dmFyIGI9cmQoS2UudmFsdWUpO2lmKCFiKXtLZS52YWx1ZT1zcjtyZXR1cm59aWYoYj09PXNyKXtLZS52YWx1ZT1iO3JldHVybn1zcj1iLEtlLnZhbHVlPWIsTXQoe2N3ZDpifSl9KX12YXIgWGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWlucHV0IiksWXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWNsZWFyIik7WGkmJlhpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbihiKXtyLmZpbGVTZWFyY2hRdWVyeT1iLnRhcmdldC52YWx1ZS50cmltKCksWXImJllyLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHIuZmlsZVNlYXJjaFF1ZXJ5Lmxlbmd0aD4wKSxubygpfSksWXImJllyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVNlYXJjaFF1ZXJ5PSIiLFhpJiYoWGkudmFsdWU9IiIpLFlyLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0pO3ZhciBnZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpLGtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIikscXU9bnVsbCxHdD0tMSxCbj1bXTtmdW5jdGlvbiBpZChiKXtnZSYmZ2UuY2xhc3NMaXN0LmFkZCgiaW52YWxpZCIpO3ZhciBTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iKTtTJiYoUy50ZXh0Q29udGVudD1iLFMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpKX1mdW5jdGlvbiBhZCgpe2dlJiZnZS5jbGFzc0xpc3QucmVtb3ZlKCJpbnZhbGlkIik7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIpO2ImJihiLnRleHRDb250ZW50PSIiLGIuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKX1mdW5jdGlvbiBIZyhiKXtpZighYi5sZW5ndGgpcmV0dXJuIiI7dmFyIFM9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtc2VjdGlvbiI+PGRpdiBjbGFzcz0iZm9sZGVyLXJlY2VudC10aXRsZSI+XHU2NzAwXHU4RkQxXHU0RjdGXHU3NTI4PC9kaXY+JztyZXR1cm4gYi5mb3JFYWNoKGZ1bmN0aW9uKFcpe3ZhciBGZT1XLnBhdGh8fFc7Uys9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtaXRlbSIgZGF0YS1wYXRoPSInK3AoRmUpKyciPicrZ3QoRmUsImZvbGRlci1yZWNlbnQtaXRlbS1wYXRoIikrIjwvZGl2PiJ9KSxTKz0iPC9kaXY+IixTfWZ1bmN0aW9uIF9nKCl7a2UmJndhKGZ1bmN0aW9uKGIpe3ZhciBTPUhnKGIpO1M/KGtlLmlubmVySFRNTD1TLGtlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFd0KGtlKSxrZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXJlY2VudC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihXKXtXLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBGZT10aGlzLmRhdGFzZXQucGF0aDtnZSYmKGdlLnZhbHVlPUZlLFh0KEZlKSxubihGZSkpfSl9KSk6R3IoKX0pfXZhciB1ZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya2luZy1kaXItaW5kaWNhdG9yIik7dWQmJnVkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2VsZWN0ZWRJZD1udWxsLGhlKCksci5kcmFmdHM9e30sWnQoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKTtiJiZiLmZvY3VzKCl9LDUwKX0pO3ZhciBQdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKSxrZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpO1B1JiZrZSYmUHUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7a2UuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiksUHUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIpfSk7dmFyIFppPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mb2xkZXItcGlja2VyLWNvbXBhY3QiKTtpZihaaSYmKFppLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksWmkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksWmkuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTt2YXIgUz1iLmRhdGFUcmFuc2ZlciYmYi5kYXRhVHJhbnNmZXIuaXRlbXM7aWYoUylmb3IodmFyIFc9MDtXPFMubGVuZ3RoO1crKyl7dmFyIEZlPVNbV107aWYoRmUua2luZD09PSJmaWxlIiYmRmUud2Via2l0R2V0QXNFbnRyeSl7dmFyIGJ0PUZlLndlYmtpdEdldEFzRW50cnkoKTtpZihidCYmYnQuaXNEaXJlY3RvcnkmJmdlKXt2YXIgVHQ9YnQuZnVsbFBhdGg7Z2UudmFsdWU9VHQsWHQoVHQpLG5uKFR0KTticmVha319fX0pKSxrZSYma2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0LmNsb3Nlc3QoIi5mb2xkZXItcGlja2VyLXF1aWNrLWJ0biIpO2lmKFMmJmdlKXt2YXIgVz1TLmRhdGFzZXQucGF0aDtnZS52YWx1ZT1XLFh0KFcpLG5uKFcpLGtlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBGZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKTtGZSYmRmUuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfX0pLGdlKXt2YXIgTmc9UWUoKTtubihOZyksZ2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy52YWx1ZS50cmltKCk7Yj9ubihiKTpfZygpfSksZ2UuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0LnZhbHVlLnRyaW0oKTtHdD0tMSxxdSYmY2xlYXJUaW1lb3V0KHF1KSxxdT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Uz9ubihTKTpHcigpfSwxNTApfSksZ2UuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7aWYoYi5rZXk9PT0iRXNjYXBlIilHcigpLHRoaXMuYmx1cigpO2Vsc2UgaWYoYi5rZXk9PT0iQXJyb3dEb3duIiliLnByZXZlbnREZWZhdWx0KCksQm4ubGVuZ3RoPjAmJihHdD1NYXRoLm1pbihHdCsxLEJuLmxlbmd0aC0xKSxvZCgpKTtlbHNlIGlmKGIua2V5PT09IkFycm93VXAiKWIucHJldmVudERlZmF1bHQoKSxHdD4wJiYoR3QtLSxvZCgpKTtlbHNlIGlmKGIua2V5PT09IkVudGVyIiYmR3Q+PTApe2IucHJldmVudERlZmF1bHQoKTt2YXIgUz1CbltHdF07aWYoUyl7dmFyIFc9Uy5kYXRhc2V0LnBhdGg7aWYoVz09PSIuLiIpe3ZhciBGZT1nZS52YWx1ZS50cmltKCksYnQ9RmUuc3Vic3RyaW5nKDAsRmUubGFzdEluZGV4T2YoIi8iKSk7YnQmJihnZS52YWx1ZT1idHx8Ii8iLFh0KGdlLnZhbHVlKSxubihidHx8Ii8iKSl9ZWxzZSBnZS52YWx1ZT1XLFh0KFcpLEdyKCl9fX0pfWZ1bmN0aW9uIG9kKCl7Qm4uZm9yRWFjaChmdW5jdGlvbihiLFMpe2IuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixTPT09R3QpfSl9ZnVuY3Rpb24gd2goYil7fWZ1bmN0aW9uIG5uKGIpe2tlJiYoa2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvZGl2Picsa2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksR3Q9LTEsQm49W10sZmV0Y2goIi9hcGkvZm9sZGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihTKXtyZXR1cm4gUy5qc29uKCkudGhlbihmdW5jdGlvbihXKXtyZXR1cm57b2s6Uy5vayxzdGF0dXM6Uy5zdGF0dXMsZGF0YTpXfX0pfSkudGhlbihmdW5jdGlvbihTKXt2YXIgVz1TLmRhdGE7aWYoIVMub2t8fFcuZXJyb3Ipe2lkKFcuZXJyb3J8fCJcdThERUZcdTVGODRcdTY1RTBcdTY1NDgiKSxrZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItZXJyb3IiPicrcChXLmVycm9yfHwiXHU4REVGXHU1Rjg0XHU2NUUwXHU2NTQ4IikrIjwvZGl2PiI7cmV0dXJufWFkKCksVy5jdXJyZW50UGF0aDt2YXIgRmU9Vy5pdGVtc3x8W10sYnQ9Vy5jdXJyZW50UGF0aHx8YjtpZihGZS5sZW5ndGg9PT0wKXtrZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItbG9hZGluZyI+XHU3QTdBXHU3NkVFXHU1RjU1PC9kaXY+JztyZXR1cm59a2UuaW5uZXJIVE1MPUZlLm1hcChmdW5jdGlvbihUdCl7dmFyIGVhPVR0LnR5cGU9PT0icGFyZW50Ij8iXHUyMUE5XHVGRTBGIjoiXHV7MUY0QzF9IixPdT1UdC50eXBlPT09InBhcmVudCI/Ii4uIChcdThGRDRcdTU2REVcdTRFMEFcdTdFQTcpIjpUdC5uYW1lO3JldHVybic8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0iIGRhdGEtcGF0aD0iJytwKFR0LnBhdGgpKyciIGRhdGEtdHlwZT0iJytUdC50eXBlKyciPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0taWNvbiI+JytlYSsiPC9zcGFuPjxzcGFuPiIrcChPdSkrIjwvc3Bhbj48L2Rpdj4ifSkuam9pbigiIiksQm49QXJyYXkuZnJvbShrZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXBpY2tlci1pdGVtIikpLEJuLmZvckVhY2goZnVuY3Rpb24oVHQpe1R0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBlYT10aGlzLmRhdGFzZXQucGF0aCxPdT10aGlzLmRhdGFzZXQudHlwZTtpZihnZSlpZihPdT09PSJwYXJlbnQiKXt2YXIgY2Q9Z2UudmFsdWUudHJpbSgpLGZkPWNkLnN1YnN0cmluZygwLGNkLmxhc3RJbmRleE9mKCIvIikpO2dlLnZhbHVlPWZkfHwiLyIsWHQoZ2UudmFsdWUpLG5uKGZkfHwiLyIpfWVsc2UgZ2UudmFsdWU9ZWEsWHQoZWEpLGFkKCksR3IoKX0pfSl9KS5jYXRjaChmdW5jdGlvbihTKXtpZCgiXHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1Iiksa2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjU8L2Rpdj4nfSkpfWZ1bmN0aW9uIEdyKCl7a2UmJmtlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLEd0PS0xLEJuPVtdfXZhciBEbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1tb2RhbCIpLHNkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1mb2xkZXItcGlja2VyIik7ZnVuY3Rpb24gQ2goKXtpZihEbil7RG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZ2UmJihnZS52YWx1ZT1RZSgpKTt2YXIgYj1RZSgpO25uKGIpfX1zZCYmRG4mJnNkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0RuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSksRG4mJkRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldD09PURuJiZEbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pO3ZhciBsZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1iYWRnZSIpO2xkJiZsZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGdvKCl9KTt2YXIgZGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2RkJiZkZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0icXVpY2stY29tbWl0LW1vZGFsIiYmIXIucXVpY2tDb21taXRTdWJtaXR0aW5nJiZWbigpfSksaG8oKSxRbigpLHd2KCksUmMoKSxrcCgpLG50KCl9ZnVuY3Rpb24gQ3QoZSl7dmFyIHQ9ZXx8e307ci5sYXN0UmVuZGVyZWRIYXNoPTAsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wLHIubGFzdFJlbmRlcmVkRW1wdHk9bnVsbCxyLnJlbmRlclBlbmRpbmc9ITEsci5jaGF0UmVuZGVyZWRDb3VudD1yLmNoYXRQYWdlU2l6ZSxyLmFza1VzZXJTZWxlY3Rpb25zPXt9LHIuY2hhdFNjcm9sbEVsZW1lbnQmJihyLmNoYXRTY3JvbGxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci5jaGF0U2Nyb2xsSGFuZGxlciksci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcikpLHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxyLmNoYXRTY3JvbGxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyPW51bGwsci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITEsdC5wcmVzZXJ2ZVN0aWNrU3RhdGV8fChyLmNoYXRTdGlja1RvQm90dG9tPSEwLHIuY2hhdFVucmVhZENvdW50PTAsci5jaGF0VW5yZWFkU3RhcnRJbmRleD0tMSxyLmNoYXRJbml0aWFsUmVuZGVyRG9uZT0hMSl9ZnVuY3Rpb24gUWUoKXtyZXR1cm4gci53b3JraW5nRGlyfHxhbigpfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMCxnaSgpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMSxnaSgpfSk7ZnVuY3Rpb24gZ2koKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2ZmbGluZS1iYW5uZXIiKTtpZighci5pc09ubGluZSYmIWUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaWQ9Im9mZmxpbmUtYmFubmVyIix0LmNsYXNzTmFtZT0ib2ZmbGluZS1iYW5uZXIiLHQudGV4dENvbnRlbnQ9IllvdSBhcmUgb2ZmbGluZSAtIHNvbWUgZmVhdHVyZXMgbWF5IGJlIGxpbWl0ZWQiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCl9ZWxzZSByLmlzT25saW5lJiZlJiZlLnJlbW92ZSgpfWZ1bmN0aW9uIElmKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpO2UmJihlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctY2FyZCI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0Ij5cdTZCNjNcdTU3MjhcdThGREVcdTYzQTUgV2FuZFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PicpfWZ1bmN0aW9uIEJyKGUsdCl7aWYoci5jb25maWcmJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBuPXQmJnQuaW1tZWRpYXRlPT09ITAsaT1EYXRlLm5vdygpOyFuJiZpLXIubGFzdEZvcmVncm91bmRTeW5jQXQ8MTUwMHx8KHIubGFzdEZvcmVncm91bmRTeW5jQXQ9aSxyLmZvcmVncm91bmRTeW5jVGltZXImJihjbGVhclRpbWVvdXQoci5mb3JlZ3JvdW5kU3luY1RpbWVyKSxyLmZvcmVncm91bmRTeW5jVGltZXI9bnVsbCksVGYoZSxuKSl9fWZ1bmN0aW9uIFRmKGUsdCl7cmV0dXJuIXIuY29uZmlnfHxkb2N1bWVudC5oaWRkZW4/UHJvbWlzZS5yZXNvbHZlKCk6KF9vKCksdD9oYSgicmVzdW1lLWZvcmNlIik6KCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTiYmci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0LkNPTk5FQ1RJTkcpJiZsaSgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmcW8oKSxyLmNvZGV4SGlzdG9yeUxvYWRlZCYmUG8oKSxtbih7c2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkOiEwfSkuY2F0Y2goZnVuY3Rpb24obil7Y29uc29sZS5lcnJvcigiW3dhbmRdIGZvcmVncm91bmQgc3luYyBmYWlsZWQ6IixlLG4pfSkpfWZ1bmN0aW9uIExmKCl7d2luZG93Ll9fd2FuZEZvcmVncm91bmRTeW5jQm91bmR8fCh3aW5kb3cuX193YW5kRm9yZWdyb3VuZFN5bmNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbj9nYSgpOihCcigidmlzaWJpbGl0eSIpLENyKCJ2aXNpYmlsaXR5IikpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe0JyKCJmb2N1cyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbigpe0JyKCJwYWdlc2hvdyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc3VtZSIsZnVuY3Rpb24oKXtCcigicmVzdW1lIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLXJlc3VtZSIsZnVuY3Rpb24oKXtCcigiYW5kcm9pZC1yZXN1bWUiLHtpbW1lZGlhdGU6ITB9KSxDcigiYW5kcm9pZC1yZXN1bWUiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWltZS1zdGF0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5kZXRhaWwmJmUuZGV0YWlsLnN0YXRlO2lmKHQ9PT0ic2hvd24ifHx0PT09ImhpZGRlbiIpdHJ5e0dlKCJuYXRpdmUtaW1lLSIrdCx7Zm9yY2VSZXBsYXk6ITB9KSx2dCgibmF0aXZlLWltZSIpfWNhdGNoe319KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLW5ldHdvcmsiLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuZGV0YWlsJiZlLmRldGFpbC5zdGF0ZTtpZih0PT09Imxvc3QiKXtyLmlzT25saW5lPSExO3RyeXtnaSgpfWNhdGNoe31yZXR1cm59aWYodD09PSJhdmFpbGFibGUifHx0PT09ImNoYW5nZWQifHx0PT09InZhbGlkYXRlZCIpe3IuaXNPbmxpbmU9ITA7dHJ5e2dpKCl9Y2F0Y2h7fWhhKCJhbmRyb2lkLW5ldHdvcmstIit0KX19KSl9ZnVuY3Rpb24gTWYoKXtmZXRjaCgiL2FwaS9zZXNzaW9uLWNoZWNrIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6e2F1dGhlZDohMX19KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiFlfHwhZS5hdXRoZWQ/KHIubG9naW5DaGVja2VkPSEwLFp0KCksbnVsbCk6ZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQub2s/dC5qc29uKCk6KHIubG9naW5DaGVja2VkPSEwLFp0KCksbnVsbCl9KX0pLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKHIuY29uZmlnPWUsci5sb2dpbkNoZWNrZWQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dHJ5e1p0KHtza2lwU2hlbGxDaHJvbWU6ITB9KX1jYXRjaHt9TGYoKSxPbygpLEh0KCksTGwoKSx6ZigpLGUudXBkYXRlQXZhaWxhYmxlJiZlLmxhdGVzdFZlcnNpb24mJmRzKGUuY3VycmVudFZlcnNpb258fCItIixlLmxhdGVzdFZlcnNpb24pLE1uJiZsZygpLHNuJiZkZygpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZHx8c2koKX0sNjAwKX0pKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aWYoci5sb2dpbkNoZWNrZWQ9ITAsIW5hdmlnYXRvci5vbkxpbmUpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtlJiYoZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZyI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLWNhcmQiPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEuM2VtO21hcmdpbi1ib3R0b206MTJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweCI+JytWKCJzaWduYWwiLHtzaXplOjIwLHN0cm9rZVdpZHRoOjEuOH0pKyc8c3Bhbj5cdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzBcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXRleHQiIHN0eWxlPSJvcGFjaXR5OjAuNztmb250LXNpemU6MC45NWVtIj5cdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTYyMTZcdTc4NkVcdThCQTQgV2FuZCBcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTMwMDI8L2Rpdj48YnV0dG9uIG9uY2xpY2s9ImxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6OHB4IDI0cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1MCwxMTgsODUsMC4zKTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MC45NWVtIj5cdTkxQ0RcdThCRDU8L2J1dHRvbj48L2Rpdj48L2Rpdj4nKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixmdW5jdGlvbigpe2xvY2F0aW9uLnJlbG9hZCgpfSx7b25jZTohMH0pO3JldHVybn1adCgpfSl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe2lmKCFIZSgpJiYhci5zaWRlYmFyUGlubmVkJiYhci5zaWRlYmFyQ29sbGFwc2VkJiZyLnNlc3Npb25zRHJhd2VyT3Blbil7dmFyIHQ9ZS50YXJnZXQ7IXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpfHx0LmNsb3Nlc3QoIiNzZXNzaW9ucy1kcmF3ZXIiKXx8dC5jbG9zZXN0KCIjc2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpfHx0LmNsb3Nlc3QoIi5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSIpfHx0LmNsb3Nlc3QoIi5zaWRlYmFyLXRpbGUtYnViYmxlIil8fHQuY2xvc2VzdCgiLm1vZGFsLWJhY2tkcm9wLCAubW9kYWwtb3ZlcmxheSwgLm1vZGFsLWNvbnRhaW5lciwgW3JvbGU9J2RpYWxvZyddLCBbcm9sZT0nbWVudSddLCAudG9wYmFyLW1vcmUtbWVudSwgLnNpZGViYXItaGVhZGVyLW92ZXJmbG93LCAuZm9sZGVyLXBpY2tlci1kcm9wZG93biwgLnBhdGgtc3VnZ2VzdGlvbnMsIC5wZXJtaXNzaW9uLXByb21wdC1vdmVybGF5LCAucmVzdGFydC1vdmVybGF5Iil8fF9tKCl9fSwhMCksSWYoKSxNZigpO2Z1bmN0aW9uIFp0KGUpe3ZhciB0PWUmJmUuc2tpcFNoZWxsQ2hyb21lLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpLGk9ci5jb25maWchPT1udWxsLGE9ci5tb2RhbE9wZW4sdT0haXx8ISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYodSYmd3IoKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHIuc2lkZWJhclBpbm5lZCYmIXIuc2lkZWJhckNvbGxhcHNlZCYmIUhlKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSksbi5pbm5lckhUTUw9aT9PZigpOlBmKCksQ3QoKSxTZigpLGpyKCksT2koKSx0cihrdCgpKSxVaSgpLHR8fE5yKCksaSYmci5maWxlUGFuZWxPcGVuJiZNdCgpLGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9KSxhJiZyLm1vZGFsT3Blbil7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZihvKXtvLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTtzJiYocy52YWx1ZT1yLmN3ZFZhbHVlKSxfcigpfX1pZihpJiZyLnNlbGVjdGVkSWQmJnIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZBbihyLnNlbGVjdGVkSWQpLGkpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO0l1KGwpfXVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIikpLHVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIikpLHVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCIpKSxXdCgpfWZ1bmN0aW9uIHFmKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSksdD1lJiZlLmFwcHJvdmFsU3RhdHM7cmV0dXJuIXR8fHQudG90YWw9PT0wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMgaGlkZGVuIiBpZD0iYXBwcm92YWwtc3RhdHMiPjwvc3Bhbj4nOic8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMiIGlkPSJhcHByb3ZhbC1zdGF0cyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWRpdmlkZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIGlkPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgdGl0bGU9Ilx1NjcyQ1x1NkIyMVx1NEYxQVx1OEJERFx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMSI+PHN2ZyBjbGFzcz0iYXBwcm92YWwtc3RhdHMtaWNvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy10b3RhbCI+Jyt0LnRvdGFsKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCIgaWQ9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMTwvc3Bhbj4nKyh0LmNvbW1hbmQ+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoInRlcm1pbmFsIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQ3RFx1NEVFNFx1NjI2N1x1ODg0Qzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QuY29tbWFuZCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsodC5maWxlPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJlZGl0Iix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QuZmlsZSsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsodC50b29sPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJ3cmVuY2giLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1MTc2XHU0RUQ2XHU1REU1XHU1MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrdC50b29sKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93IGFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoInNpZ21hIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQwOFx1OEJBMTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QudG90YWwrIjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj4ifWZ1bmN0aW9uIFBmKCl7cmV0dXJuIHIubG9naW5DaGVja2VkPyc8ZGl2IGNsYXNzPSJsb2dpbi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWNhcmQiPjxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+PGRpdiBjbGFzcz0ibG9naW4tbG9nbyI+PGRpdiBjbGFzcz0ibG9naW4tbG9nby1pY29uIj5XPC9kaXY+PHNwYW4gY2xhc3M9ImxvZ2luLWxvZ28tdGV4dCI+V2FuZDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1zdWJ0aXRsZSI+XHU1NzI4XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTJEXHU4RkQwXHU4ODRDXHU2NzJDXHU2NzNBXHU3RUM4XHU3QUVGPC9kaXY+PC9kaXY+PGZvcm0gaWQ9ImxvZ2luLWZvcm0iIGNsYXNzPSJsb2dpbi1ib2R5IiBhdXRvY29tcGxldGU9Im9uIj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiIHZhbHVlPSJ3YW5kIiB0YWJpbmRleD0iLTEiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lIiByZWFkb25seSAvPjxwIGNsYXNzPSJsb2dpbi1oaW50Ij5cdThGOTNcdTUxNjUgV2FuZCBcdThCQkZcdTk1RUVcdTVCQzZcdTc4MDFcdTRFRTVcdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjBcdTMwMDI8L3A+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0icGFzc3dvcmQiPlx1NUJDNlx1NzgwMTwvbGFiZWw+PGRpdiBjbGFzcz0icGFzc3dvcmQtZmllbGQiPjxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQgcGFzc3dvcmQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdThCQkZcdTk1RUVcdTVCQzZcdTc4MDEiIGF1dG9jb21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIgZGF0YS1lcnJvcj0iZmFsc2UiIGFyaWEtZGVzY3JpYmVkYnk9InBhc3N3b3JkLWhpbnQgbG9naW4tZXJyb3IiIGFyaWEtaW52YWxpZD0iZmFsc2UiIC8+PGJ1dHRvbiBpZD0idG9nZ2xlLXBhc3N3b3JkLWJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBjbGFzcz0icGFzc3dvcmQtdG9nZ2xlIiBhcmlhLWxhYmVsPSJcdTY2M0VcdTc5M0FcdTVCQzZcdTc4MDEiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPlx1NjYzRVx1NzkzQTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJwYXNzd29yZC1oaW50IiBjbGFzcz0iaGludCI+XHU0RjdGXHU3NTI4XHU0RjYwXHU1NzI4IFdhbmQgXHU0RTJEXHU4QkJFXHU3RjZFXHU3Njg0XHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxXHUzMDAyPC9wPjxwIGlkPSJsb2dpbi1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIiByb2xlPSJhbGVydCI+PC9wPjwvZGl2PjxkaXYgaWQ9ImxvZ2luLWNlcnQtaGludCIgY2xhc3M9ImxvZ2luLWNlcnQtaGludCBoaWRkZW4iIHJvbGU9ImFsZXJ0Ij48ZGl2IGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQtdGl0bGUiPlx1OEJDMVx1NEU2Nlx1NEUwRFx1NTNEN1x1NEZFMVx1NEVGQlx1RkYwQ1x1NzY3Qlx1NUY1NVx1NjAwMVx1NjVFMFx1NkNENVx1NEZERFx1NUI1ODwvZGl2PjxwIGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQtYm9keSI+XHU1QkM2XHU3ODAxXHU2NjJGXHU1QkY5XHU3Njg0XHVGRjBDXHU0RjQ2XHU1RjUzXHU1MjREIEhUVFBTIFx1OEJDMVx1NEU2Nlx1NEUwRFx1NTNEN1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NEZFMVx1NEVGQlx1RkYwQ1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NTZFMFx1NkI2NFx1NjJEMlx1N0VERFx1NEZERFx1NUI1OFx1NzY3Qlx1NUY1NSBDb29raWVcdUZGMENcdTYyNDBcdTRFRTVcdThGREJcdTRFMERcdTRFODZcdTYzQTdcdTUyMzZcdTUzRjBcdTMwMDI8YnIvPlx1ODlFM1x1NTFCM1x1NTI5RVx1NkNENVx1RkYwOFx1NEVGQlx1OTAwOVx1NTE3Nlx1NEUwMFx1RkYwOVx1RkYxQVx1NjUzOVx1NzUyOCBIVFRQIFx1OEJCRlx1OTVFRVx1NjcyQ1x1NjcwRFx1NTJBMVx1RkYxQlx1NjIxNlx1NjI4QVx1NjcyQ1x1NjcwRFx1NTJBMVx1OEJDMVx1NEU2Nlx1OEJCRVx1NEUzQVx1MzAwQ1x1NTNEN1x1NEZFMVx1NEVGQlx1MzAwRFx1RkYwOFx1NjNBOFx1ODM1MCBta2NlcnRcdUZGMDlcdUZGMUJcdTYyMTZcdTU3MjhcdTY3MkNcdTY3M0FcdTVDMDZcdThCRTVcdTgxRUFcdTdCN0VcdThCQzFcdTRFNjZcdThCQkVcdTRFM0FcdTVCOENcdTUxNjhcdTRGRTFcdTRFRkJcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDI8L3A+PGEgaWQ9ImxvZ2luLWNlcnQtaHR0cC1saW5rIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tYmxvY2siIGhyZWY9IiMiIHJlbD0ibm9vcGVuZXIiPlx1NjUzOVx1NzUyOCBIVFRQIFx1OEJCRlx1OTVFRTwvYT48L2Rpdj48YnV0dG9uIGlkPSJsb2dpbi1idXR0b24iIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1OEZEQlx1NTE2NVx1NjNBN1x1NTIzNlx1NTNGMDwvYnV0dG9uPicrKGN1KCk/JzxidXR0b24gaWQ9ImxvZ2luLXN3aXRjaC1zZXJ2ZXItYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tYmxvY2sgbG9naW4tc3dpdGNoLXNlcnZlciIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxyZWN0IHg9IjIiIHk9IjEzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48bGluZSB4MT0iNiIgeTE9IjciIHgyPSI2LjAxIiB5Mj0iNyIvPjxsaW5lIHgxPSI2IiB5MT0iMTciIHgyPSI2LjAxIiB5Mj0iMTciLz48L3N2Zz48c3Bhbj5cdTUyMDdcdTYzNjJcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9idXR0b24+JzoiIikrIjwvZm9ybT48L2Rpdj48L2Rpdj4iOic8ZGl2IGNsYXNzPSJsb2dpbi1jb250YWluZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWNhcmQgbG9naW4tY2FyZC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28iPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJsb2dpbi1sb2dvLXRleHQiPldhbmQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tc3VidGl0bGUiPlx1NkI2M1x1NTcyOFx1NjA2Mlx1NTkwRFx1NzY3Qlx1NUY1NVx1NzJCNlx1NjAwMTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLWJvZHkiPjxkaXYgY2xhc3M9ImxvZ2luLXN0YXR1cyI+PHNwYW4gY2xhc3M9ImxvZ2luLXNwaW5uZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PGRpdj48cCBjbGFzcz0ibG9naW4taGludCI+XHU2QjYzXHU1NzI4XHU2OEMwXHU2N0U1XHU2NzJDXHU1NzMwXHU3NjdCXHU1RjU1XHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3QTBEXHU1MDE5XHUzMDAyPC9wPjxwIGNsYXNzPSJsb2dpbi1tdXRlZCI+XHU1OTgyXHU2NzlDXHU0RjYwXHU1MjFBXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHVGRjBDXHU4RkQ5XHU2NjJGXHU2QjYzXHU1RTM4XHU3M0IwXHU4QzYxXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gT2YoKXt2YXIgZT0iPFwvc2NyaXB0PiIsdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuIGcuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQ/Wm4odC5jb21tYW5kKToiXHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREIixpPXQ/dC5tb2RlKyIgfCAiK3Quc3RhdHVzOiJcdTcwQjlcdTUxRkJcdTRFMEFcdTY1QjlcdTMwMENcdTY1QjBcdTVCRjlcdThCRERcdTMwMERcdTVGMDBcdTU5Q0IiLGE9ci5zZWxlY3RlZElkJiZyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdfHwiIix1PXIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgb3BlbiI6IiIsbz1RdSgpPyIgb3BlbiI6IiIscz1ibSgpLGw9QXQocyxyLmNoYXRNb2RlKSxkPUhlKCksZj0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQsYz1mfHwhZCYmKCEhci5zaWRlYmFyUGlubmVkfHwhIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSx2PWY/IiBzaWRlYmFyLWNvbGxhcHNlZCI6IiIsaD1mPyIgY29sbGFwc2VkIjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iYXBwLWNvbnRhaW5lciI+PGRpdiBpZD0ic2Vzc2lvbnMtZHJhd2VyLWJhY2tkcm9wIiBjbGFzcz0iZHJhd2VyLWJhY2tkcm9wJytvKyciPjwvZGl2PjxkaXYgY2xhc3M9Im1haW4tbGF5b3V0Jysoci5zZXNzaW9uc0RyYXdlck9wZW4/IiBzaWRlYmFyLW9wZW4iOiIiKSsoYz8iIHNpZGViYXItcGlubmVkIjoiIikrdisnIj48YXNpZGUgaWQ9InNlc3Npb25zLWRyYXdlciIgY2xhc3M9InNpZGViYXInK3UrKGM/IiBwaW5uZWQiOiIiKStoKyciPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1tYWluIj48ZGl2IGNsYXNzPSJ0b3BiYXItbG9nby1pY29uIj5XPC9kaXY+PHNwYW4gY2xhc3M9InNpZGViYXItdGl0bGUiPlx1NEYxQVx1OEJERDwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1jb3VudCIgaWQ9InNlc3Npb24tY291bnQiPicrU3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLWFjdGlvbnMiPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW1vcmUiPjxidXR0b24gaWQ9InNpZGViYXItbW9yZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2NkY0XHU1OTFBXHU2NENEXHU0RjVDIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMS41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMS41Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMS41Ii8+PC9zdmc+PC9idXR0b24+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItb3ZlcmZsb3ciIGlkPSJzaWRlYmFyLW92ZXJmbG93LW1lbnUiPjxidXR0b24gY2xhc3M9Im92ZXJmbG93LWl0ZW0iIGlkPSJzaWRlYmFyLWhvbWUtYnRuIiB0eXBlPSJidXR0b24iPjxzdmcgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgOWw5LTcgOSA3djExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPjxwb2x5bGluZSBwb2ludHM9IjkgMjIgOSAxMiAxNSAxMiAxNSAyMiIvPjwvc3ZnPjxzcGFuPlx1NTZERVx1NTIzMFx1OTk5Nlx1OTg3NTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJvdmVyZmxvdy1pdGVtIiBpZD0ic2lkZWJhci1yZWZyZXNoLWJ0biIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjIzIDQgMjMgMTAgMTcgMTAiLz48cGF0aCBkPSJNMjAuNDkgMTVhOSA5IDAgMSAxLTIuMTItOS4zNkwyMyAxMCIvPjwvc3ZnPjxzcGFuPlx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mjwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48YnV0dG9uIGlkPSJzaWRlYmFyLXBpbi1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLXBpbi10b2dnbGUnKyhyLnNpZGViYXJQaW5uZWQ/IiBwaW5uZWQiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSInKyhyLnNpZGViYXJQaW5uZWQ/Ilx1NURGMlx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3Qlx1RkYwOFx1NzBCOVx1NTFGQlx1ODlFM1x1OTY2NFx1OTUwMVx1NUI5QVx1RkYwOSI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpKyciIGFyaWEtbGFiZWw9IicrKHIuc2lkZWJhclBpbm5lZD8iXHU4OUUzXHU5NjY0XHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCIjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIikrJyIgYXJpYS1wcmVzc2VkPSInKyhyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMTIiIHkyPSIyMiIvPjxwYXRoIGQ9Ik01IDE3aDE0di0xLjc2YTIgMiAwIDAgMC0xLjExLTEuNzlsLTEuNzgtLjlBMiAyIDAgMCAxIDE1IDEwLjc2VjZoMWEyIDIgMCAwIDAgMC00SDhhMiAyIDAgMCAwIDAgNGgxdjQuNzZhMiAyIDAgMCAxLTEuMTEgMS43OWwtMS43OC45QTIgMiAwIDAgMCA1IDE1LjI0eiIvPjwvc3ZnPjwvYnV0dG9uPjxidXR0b24gaWQ9InNpZGViYXItY29sbGFwc2UtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1jb2xsYXBzZS10b2dnbGUnKyhmPyIgY29sbGFwc2VkIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJysoZj8iXHU1QzU1XHU1RjAwXHU0RTNBXHU1MTY4XHU1QzNBXHU1QkY4IjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIikrJyIgYXJpYS1sYWJlbD0iJysoZj8iXHU1QzU1XHU1RjAwXHU0RTNBXHU1MTY4XHU1QzNBXHU1QkY4IjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIikrJyI+JysoZj8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPicpKyc8L2J1dHRvbj48YnV0dG9uIGlkPSJjbG9zZS1kcmF3ZXItYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBzaWRlYmFyLWNsb3NlIGRyYXdlci1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEXHU4M0RDXHU1MzU1Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhci1ib2R5Ij48ZGl2IGlkPSJzZXNzaW9ucy1wYW5lbCI+PGRpdiBjbGFzcz0ic2Vzc2lvbnMtbGlzdCIgaWQ9InNlc3Npb25zLWxpc3QiPicrdmEoKSsnPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhci1mb290ZXIiPjxidXR0b24gaWQ9ImRyYXdlci1uZXctc2Vzc2lvbi1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj48c3Bhbj4rPC9zcGFuPiBcdTY1QjBcdTRGMUFcdThCREQ8L2J1dHRvbj48ZGl2IGNsYXNzPSJzaWRlYmFyLWZvb3Rlci1hY3Rpb25zIj48YnV0dG9uIGlkPSJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbScrKHIuZmlsZVBhbmVsT3Blbj8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjdFNVx1NzcwQlx1NjU4N1x1NEVGNiI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz48L3N2Zz48c3Bhbj5cdTY1ODdcdTRFRjY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2V0dGluZ3MtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEJCRVx1N0Y2RSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIi8+PHBhdGggZD0iTTE5LjQgMTVhMS42NSAxLjY1IDAgMCAwIC4zMyAxLjgybC4wNi4wNmEyIDIgMCAwIDEtMi44MyAyLjgzbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDAgMS00IDB2LS4wOUExLjY1IDEuNjUgMCAwIDAgOSAxOS40YTEuNjUgMS42NSAwIDAgMC0xLjgyLjMzbC0uMDYuMDZhMiAyIDAgMCAxLTIuODMtMi44M2wuMDYtLjA2QTEuNjUgMS42NSAwIDAgMCA0LjY4IDE1YTEuNjUgMS42NSAwIDAgMC0xLjUxLTFIM2EyIDIgMCAwIDEgMC00aC4wOUExLjY1IDEuNjUgMCAwIDAgNC42IDlhMS42NSAxLjY1IDAgMCAwLS4zMy0xLjgybC0uMDYtLjA2YTIgMiAwIDAgMSAyLjgzLTIuODNsLjA2LjA2QTEuNjUgMS42NSAwIDAgMCA5IDQuNjhhMS42NSAxLjY1IDAgMCAwIDEtMS41MVYzYTIgMiAwIDAgMSA0IDB2LjA5YTEuNjUgMS42NSAwIDAgMCAxIDEuNTEgMS42NSAxLjY1IDAgMCAwIDEuODItLjMzbC4wNi0uMDZhMiAyIDAgMCAxIDIuODMgMi44M2wtLjA2LjA2QTEuNjUgMS42NSAwIDAgMCAxOS40IDlhMS42NSAxLjY1IDAgMCAwIDEuNTEgMUgyMWEyIDIgMCAwIDEgMCA0aC0uMDlhMS42NSAxLjY1IDAgMCAwLTEuNTEgMXoiLz48L3N2Zz48c3Bhbj5cdThCQkVcdTdGNkU8L3NwYW4+PC9idXR0b24+JysoaG0oKT8nPGJ1dHRvbiBpZD0iYmFjay10by1uYXRpdmUtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1iYWNrLXRvLW5hdGl2ZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU4RkQ0XHU1NkRFIEFwcCBcdTUzOUZcdTc1MUZcdTc1NENcdTk3NjIiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMTAiIHk9IjMiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxOCIgcng9IjIiLz48bGluZSB4MT0iMTQiIHkxPSIxNyIgeDI9IjE3IiB5Mj0iMTciLz48cG9seWxpbmUgcG9pbnRzPSI3IDggMyAxMiA3IDE2Ii8+PC9zdmc+PHNwYW4+XHU4RkQ0XHU1NkRFQXBwPC9zcGFuPjwvYnV0dG9uPic6IiIpKyhjdSgpPyc8YnV0dG9uIGlkPSJzd2l0Y2gtc2VydmVyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItc3dpdGNoLXNlcnZlciIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjA3XHU2MzYyXHU2NzBEXHU1MkExXHU1NjY4Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxyZWN0IHg9IjIiIHk9IjEzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48bGluZSB4MT0iNiIgeTE9IjciIHgyPSI2LjAxIiB5Mj0iNyIvPjxsaW5lIHgxPSI2IiB5MT0iMTciIHgyPSI2LjAxIiB5Mj0iMTciLz48L3N2Zz48c3Bhbj5cdTUyMDdcdTYzNjI8L3NwYW4+PC9idXR0b24+JzoiIikrJzxidXR0b24gaWQ9ImxvZ291dC1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLWxvZ291dCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU3NjdCXHU1RjU1Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDIxSDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNCIvPjxwb2x5bGluZSBwb2ludHM9IjE2IDE3IDIxIDEyIDE2IDciLz48bGluZSB4MT0iMjEiIHkxPSIxMiIgeDI9IjkiIHkyPSIxMiIvPjwvc3ZnPjxzcGFuPlx1OTAwMFx1NTFGQTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2FzaWRlPjxtYWluIGNsYXNzPSJtYWluLWNvbnRlbnQiPjxkaXYgY2xhc3M9Im1haW4taGVhZGVyLXJvdyI+PGRpdiBjbGFzcz0idG9wYmFyLWxlZnQiPjxidXR0b24gaWQ9InNlc3Npb25zLXRvZ2dsZS1idXR0b24iIGNsYXNzPSJmbG9hdGluZy1zaWRlYmFyLXRvZ2dsZScrKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgYWN0aXZlIjoiIikrJyIgYXJpYS1sYWJlbD0iXHU1MjA3XHU2MzYyXHU0RjFBXHU4QkREXHU0RkE3XHU2ODBGIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJoYW1idXJnZXItaWNvbiI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPjwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0b3BiYXItYnJhbmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj5XPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvcGJhci1jZW50ZXIiPicrKHQ/JzxzcGFuIGNsYXNzPSJ0b3BiYXItc2Vzc2lvbi10aXRsZSIgdGl0bGU9IicrcCh0LmRlc2NyaXB0aW9ufHx0LmNvbW1hbmR8fCIiKSsnIj4nK3AodC50aXRsZXx8Wm4odC5jb21tYW5kKSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtcGlsbCAnK3dvKHQpKyciIHRpdGxlPSInK3AodnIodCkpKyciPjxzcGFuIGNsYXNzPSJzZXNzaW9uLXN0YXR1cy1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtdGV4dCI+JytwKHZyKHQpKSsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY3VycmVudC10YXNrIGhpZGRlbiIgaWQ9ImN1cnJlbnQtdGFzayI+PC9zcGFuPicrKHQuY3dkP2d0KHQuY3dkLCJ0b3BiYXItY3dkIiwnIGlkPSJ0b3BiYXItY3dkIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIicpOiIiKTonPHNwYW4gY2xhc3M9InRvcGJhci10YWdsaW5lIj5XYW5kIFx1NjNBN1x1NTIzNlx1NTNGMDwvc3Bhbj48c3BhbiBjbGFzcz0iY3VycmVudC10YXNrIGhpZGRlbiIgaWQ9ImN1cnJlbnQtdGFzayI+PC9zcGFuPicpKyc8L2Rpdj48ZGl2IGNsYXNzPSJ0b3BiYXItcmlnaHQiPjxidXR0b24gaWQ9InRvcGJhci1maWxlLWJ1dHRvbiIgY2xhc3M9InRvcGJhci1idG4gc3F1YXJlJysoci5maWxlUGFuZWxPcGVuPyIgYWN0aXZlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTY1ODdcdTRFRjYiIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTY1ODdcdTRFRjZcdUZGMDhcdTUzRUZcdTRGRUVcdTY1MzlcdThERUZcdTVGODRcdUZGMDkiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+PC9idXR0b24+PHNwYW4gaWQ9InRvcGJhci1naXQtc2xvdCIgY2xhc3M9InRvcGJhci1naXQtc2xvdCI+JyttbygpKyI8L3NwYW4+IisodD9HZCh0KToiIikrJzwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZpbGUtcGFuZWwtYmFja2Ryb3AiIGNsYXNzPSJmaWxlLXBhbmVsLWJhY2tkcm9wJysoci5maWxlUGFuZWxPcGVuPyIgb3BlbiI6IiIpKyciPjwvZGl2PjxkaXYgaWQ9ImZpbGUtc2lkZS1wYW5lbCIgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbCcrKHIuZmlsZVBhbmVsT3Blbj8iIG9wZW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtdGl0bGUtZ3JvdXAiPjxzcGFuIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbiI+JytMZSgiZm9sZGVyLW9wZW4iLHtzaXplOjE2fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLXRpdGxlIj5cdTY1ODdcdTRFRjY8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWhlYWRlci1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbmJ0biIgaWQ9ImZpbGUtZXhwbG9yZXItcmVmcmVzaCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjM3XHU2NUIwIiBhcmlhLWxhYmVsPSJcdTUyMzdcdTY1QjBcdTY1ODdcdTRFRjZcdTUyMTdcdTg4NjgiPicrTGUoInJlZnJlc2giLHtzaXplOjE1fSkrJzwvYnV0dG9uPjxidXR0b24gaWQ9ImZpbGUtc2lkZS1wYW5lbC1jbG9zZSIgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1pY29uYnRuIGNsb3NlIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1NjU4N1x1NEVGNlx1OTc2Mlx1Njc3RiIgdGl0bGU9Ilx1NTE3M1x1OTVFRCI+JytMZSgieCIse3NpemU6MTZ9KSsnPC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWJvZHkiPjxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXItaGVhZGVyIj48YnV0dG9uIGNsYXNzPSJmaWxlLWV4cGxvcmVyLXVwIiBpZD0iZmlsZS1leHBsb3Jlci11cCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3XHU3NkVFXHU1RjU1IiBhcmlhLWxhYmVsPSJcdThGRDRcdTU2REVcdTRFMEFcdTdFQTdcdTc2RUVcdTVGNTUiPicrTGUoImFycm93LXVwIix7c2l6ZToxNX0pKyc8L2J1dHRvbj48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZpbGUtZXhwbG9yZXItcGF0aCIgaWQ9ImZpbGUtZXhwbG9yZXItY3dkIiB2YWx1ZT0iJytwKHQmJnQuY3dkP3QuY3dkOmFuKCkpKyciIHRpdGxlPSInK3AodCYmdC5jd2Q/dC5jd2Q6YW4oKSkrJyIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1OERFRlx1NUY4NFx1NUU3Nlx1NTZERVx1OEY2Ni4uLiIgc3BlbGxjaGVjaz0iZmFsc2UiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdThERUZcdTVGODRcdUZGMENcdTUzRUZcdTc2RjRcdTYzQTVcdTRGRUVcdTY1MzlcdTU0MEVcdTU2REVcdThGNjYiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1zZWFyY2gtYm94Ij48c3BhbiBjbGFzcz0iZmlsZS1zZWFyY2gtaWNvbiI+JytMZSgic2VhcmNoIix7c2l6ZToxNH0pKyc8L3NwYW4+PGlucHV0IHR5cGU9InRleHQiIGlkPSJmaWxlLXNlYXJjaC1pbnB1dCIgY2xhc3M9ImZpbGUtc2VhcmNoLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU2NDFDXHU3RDIyXHU1RjUzXHU1MjREXHU3NkVFXHU1RjU1XHUyMDI2IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+PGJ1dHRvbiBjbGFzcz0iZmlsZS1zZWFyY2gtY2xlYXIiIGlkPSJmaWxlLXNlYXJjaC1jbGVhciIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTk2NjRcdTY0MUNcdTdEMjIiIHRpdGxlPSJcdTZFMDVcdTk2NjQiPicrTGUoIngiLHtzaXplOjEzfSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiIGlkPSJmaWxlLWV4cGxvcmVyIj4nK01kKHQmJnQuY3dkP3QuY3dkOmFuKCkpKyc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJvdXRwdXQiIGNsYXNzPSJ0ZXJtaW5hbC1jb250YWluZXInKyhyLnNlbGVjdGVkSWQ/IiI6IiBoaWRkZW4iKSsnIGFjdGl2ZSI+PGRpdiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheSIgYXJpYS1sYWJlbD0iXHU3RUM4XHU3QUVGXHU3RjI5XHU2NTNFXHU2M0E3XHU0RUY2Ij48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1zY2FsZS1kb3duLXRvcCIgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRuIHRlcm1pbmFsLXNjYWxlLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU3RjI5XHU1QzBGIj5cdTIyMTI8L2J1dHRvbj48c3BhbiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1sYWJlbCB0ZXJtaW5hbC1zY2FsZS1sYWJlbCIgaWQ9InRlcm1pbmFsLXNjYWxlLWxhYmVsLXRvcCI+JytNYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyclPC9zcGFuPjxidXR0b24gaWQ9InRlcm1pbmFsLXNjYWxlLXVwLXRvcCIgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRuIHRlcm1pbmFsLXNjYWxlLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2NTNFXHU1OTI3Ij4rPC9idXR0b24+PHNwYW4gY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktZGl2aWRlciI+PC9zcGFuPjxidXR0b24gaWQ9InBhZ2UtcmVmcmVzaC1idG4iIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyIj5cdTIxQkI8L2J1dHRvbj48L2Rpdj48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIgY2xhc3M9InRlcm1pbmFsLWp1bXAtYm90dG9tJysoci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b20/IiB2aXNpYmxlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1NkRFXHU1MjMwXHU1RTk1XHU5MEU4IiBhcmlhLWxhYmVsPSJcdTU2REVcdTUyMzBcdTVFOTVcdTkwRTgiPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDMuNXY5TTMuNSA4bDQuNSA0LjVMMTIuNSA4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2hhdC1vdXRwdXQiIGNsYXNzPSJjaGF0LWNvbnRhaW5lciBoaWRkZW4iPjxkaXYgaWQ9ImNoYXQtZm9sZC1iYXIiIGNsYXNzPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIgYXJpYS1saXZlPSJwb2xpdGUiPjwvZGl2PjxidXR0b24gaWQ9ImNoYXQtdW5yZWFkLWJ1YmJsZSIgY2xhc3M9ImNoYXQtdW5yZWFkLWJ1YmJsZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIiBhcmlhLWxhYmVsPSJcdTU2REVcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTggMy41djlNMy41IDhsNC41IDQuNUwxMi41IDgiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJibGFuay1jaGF0IiBjbGFzcz0iYmxhbmstY2hhdCcrKHIuc2VsZWN0ZWRJZD8iIGhpZGRlbiI6IiIpKyciPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtaW5uZXIiPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtbG9nbyI+VzwvZGl2PjxoMiBjbGFzcz0iYmxhbmstY2hhdC10aXRsZSI+V2FuZDwvaDI+PHAgY2xhc3M9ImJsYW5rLWNoYXQtc3VidGl0bGUiPlx1NjUyRlx1NjMwMVx1N0VDOFx1N0FFRiBQVFkgXHU0RjFBXHU4QkREXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2IGNoYXQgXHU0RjFBXHU4QkREXHVGRjBDXHU0RTI0XHU3OUNEXHU2QTIxXHU1RjBGXHU1M0VGXHU1RTc2XHU1QjU4XHUzMDAyPC9wPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtdG9vbHMiPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtY2xhdWRlIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ0b29sLWljb24iPicrVigidGVybWluYWwiLHtzaXplOjE2LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+XHU2NUIwXHU1RUZBXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYmxhbmstY2hhdC10b29sLWJ0biIgaWQ9IndlbGNvbWUtdG9vbC1jb2RleCIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIHRvb2wtaWNvbi10ZXh0Ij5cdTIzMTg8L3NwYW4+XHU2NUIwXHU1RUZBIENvZGV4IFx1NEYxQVx1OEJERDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtc3RydWN0dXJlZCIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIj4nK1YoImNoYXQiLHtzaXplOjE2LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+XHU2NUIwXHU1RUZBXHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2Qtd3JhcCI+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QiIGlkPSJibGFuay1jaGF0LWN3ZCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgdGl0bGU9Ilx1NzBCOVx1NTFGQlx1NTIwN1x1NjM2Mlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NSI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjh9KSsiPC9zcGFuPiIrZ3QoUWUoKSwiYmxhbmstY2hhdC1jd2QtcGF0aCIsJyBpZD0iYmxhbmstY2hhdC1jd2QtcGF0aCInKSsnPHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWFycm93IiBpZD0iYmxhbmstY2hhdC1jd2QtYXJyb3ciPicrVigiY2hldnJvbkRvd24iLHtzaXplOjExLHN0cm9rZVdpZHRoOjJ9KSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIGhpZGRlbiIgaWQ9ImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJpbnB1dC1wYW5lbCcrKHIuc2VsZWN0ZWRJZD8iIjoiIGhpZGRlbiIpKyciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLXRvcC1yb3ciPjxkaXYgaWQ9InRvZG8tcHJvZ3Jlc3MiIGNsYXNzPSJ0b2RvLXByb2dyZXNzIGhpZGRlbiI+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1oZWFkZXIiIGlkPSJ0b2RvLXByb2dyZXNzLXRvZ2dsZSI+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1maWxsIiBpZD0idG9kby1wcm9ncmVzcy1maWxsIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9Ii0tcHJvZ3Jlc3M6MCI+PC9kaXY+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1sZWZ0Ij48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy1yaW5nIiBpZD0idG9kby1wcm9ncmVzcy1yaW5nIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9Ii0tcHJvZ3Jlc3M6MCI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAzNiAzNiI+PGNpcmNsZSBjbGFzcz0idG9kby1yaW5nLXRyYWNrIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTUuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI0Ii8+PGNpcmNsZSBjbGFzcz0idG9kby1yaW5nLWZpbGwiIGN4PSIxOCIgY3k9IjE4IiByPSIxNS41IiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy1jb3VudGVyIiBpZD0idG9kby1wcm9ncmVzcy1jb3VudGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy10YXNrLXdyYXAiPjxzcGFuIGNsYXNzPSJ0b2RvLXByb2dyZXNzLXRhc2siIGlkPSJ0b2RvLXByb2dyZXNzLXRhc2siPjwvc3Bhbj48L2Rpdj48c3ZnIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjYgMTUgMTIgOSAxOCAxNSIvPjwvc3ZnPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtYm9keSBoaWRkZW4iIGlkPSJ0b2RvLXByb2dyZXNzLWJvZHkiPjx1bCBjbGFzcz0idG9kby1wcm9ncmVzcy1saXN0IiBpZD0idG9kby1wcm9ncmVzcy1saXN0Ij48L3VsPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InF1ZXVlLWJhci1ob3N0IiBjbGFzcz0icXVldWUtYmFyLWhvc3QiIGhpZGRlbj48L2Rpdj48ZGl2IGNsYXNzPSJpbnB1dC1jb21wb3NlcicrKGE/IiBoYXMtdGV4dCI6IiIpKyciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLXN0YXR1cy1yb3ciIGlkPSJjb21wb3Nlci1zdGF0dXMtcm93Ij4nK0FtKHQpKyc8c3BhbiBjbGFzcz0icGVybWlzc2lvbi1hY3Rpb25zIGhpZGRlbiIgaWQ9InBlcm1pc3Npb24tYWN0aW9ucyI+PHNwYW4gY2xhc3M9InBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbCIgaWQ9InBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbCI+XHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzPC9zcGFuPjxidXR0b24gaWQ9ImFwcHJvdmUtcGVybWlzc2lvbi1idG4iIGNsYXNzPSJidG4gYnRuLXBlcm1pc3Npb24gYnRuLXBlcm1pc3Npb24tYXBwcm92ZSIgdHlwZT0iYnV0dG9uIj5cdTYyNzlcdTUxQzY8L2J1dHRvbj48YnV0dG9uIGlkPSJkZW55LXBlcm1pc3Npb24tYnRuIiBjbGFzcz0iYnRuIGJ0bi1wZXJtaXNzaW9uIGJ0bi1wZXJtaXNzaW9uLWRlbnkiIHR5cGU9ImJ1dHRvbiI+XHU2MkQyXHU3RUREPC9idXR0b24+PC9zcGFuPicrcWYoKSsnPC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItbWFpbi1yb3ciPjxkaXYgY2xhc3M9ImNvbXBvc2VyLWFjdGlvbnMtbGVmdCI+PGJ1dHRvbiBpZD0iYXR0YWNoLWJ0biIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1hY3Rpb24iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjZGNFx1NTkxQSIgYXJpYS1sYWJlbD0iXHU2NkY0XHU1OTFBIiBhcmlhLWhhc3BvcHVwPSJtZW51IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+JytWKCJwbHVzIix7c2l6ZToxOCxzdHJva2VXaWR0aDoyLjJ9KSsnPC9idXR0b24+PGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlLXVwbG9hZC1pbnB1dCIgbXVsdGlwbGUgdGFiaW5kZXg9Ii0xIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7cG9pbnRlci1ldmVudHM6bm9uZSI+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItaW5saW5lLWNvbmZpZyI+JytrbCh0KSsnPC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItaW5wdXQtd3JhcCI+PHRleHRhcmVhIGlkPSJpbnB1dC1ib3giIGNsYXNzPSJpbnB1dC10ZXh0YXJlYSIgcGxhY2Vob2xkZXI9IicreWwodCxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpKyciIHJvd3M9IjEiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgZW50ZXJrZXloaW50PSJzZW5kIj4nK3AoYSkrJzwvdGV4dGFyZWE+PGJ1dHRvbiBpZD0icHJvbXB0LW9wdGltaXplLWJ0biIgY2xhc3M9InByb21wdC1vcHRpbWl6ZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1RkYwOEFJXHVGRjA5IiBhcmlhLWxhYmVsPSJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTYiPjxzdmcgY2xhc3M9InByb21wdC1vcHRpbWl6ZS1pY29uIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTEyIDNsMS42IDQuNEwxOCA5bC00LjQgMS42TDEyIDE1bC0xLjYtNC40TDYgOWw0LjQtMS42eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjI1Ii8+PHBhdGggZD0iTTEyIDNsMS42IDQuNEwxOCA5bC00LjQgMS42TDEyIDE1bC0xLjYtNC40TDYgOWw0LjQtMS42eiIvPjxwYXRoIGQ9Ik0xOSAxNGwuNyAxLjlMMjEuNiAxN2wtMS45LjdMMTkgMTkuNmwtLjctMS45TDE2LjQgMTdsMS45LS43eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjM1Ii8+PHBhdGggZD0iTTUgNGwuNSAxLjRMNyA2bC0xLjUuNkw1IDhsLS41LTEuNEwzIDZsMS41LS42eiIgZmlsbD0iY3VycmVudENvbG9yIiBvcGFjaXR5PSIwLjM1Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InByb21wdC1vcHRpbWl6ZS1zcGlubmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InZvaWNlLWlucHV0LW1vZGUgaGlkZGVuIiBpZD0idm9pY2UtaW5wdXQtbW9kZSI+PGJ1dHRvbiBpZD0idm9pY2UtcmVjb3JkLWJ0biIgY2xhc3M9InZvaWNlLXJlY29yZC1idG4iIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InZvaWNlLXJlY29yZC1wdWxzZSIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48c3BhbiBjbGFzcz0idm9pY2UtcmVjb3JkLWxhYmVsIj5cdTYzMDlcdTRGNEYgXHU4QkY0XHU4QkREPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9InZvaWNlLWNhbmNlbC1idG4iIGNsYXNzPSJ2b2ljZS1jYW5jZWwtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTkwMDBcdTUxRkFcdThCRURcdTk3RjNcdTZBMjFcdTVGMEYiIGFyaWEtbGFiZWw9Ilx1OTAwMFx1NTFGQVx1OEJFRFx1OTdGM1x1NkEyMVx1NUYwRiI+JytWKCJ4Iix7c2l6ZToxNCxzdHJva2VXaWR0aDoyfSkrJzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWFjdGlvbnMtcmlnaHQiPjxidXR0b24gaWQ9InN0b3AtYnV0dG9uIiBjbGFzcz0iYnRuLWNpcmNsZSBidG4tY2lyY2xlLXN0b3AgaGlkZGVuIiB0aXRsZT0iXHU1MDVDXHU2QjYyIj48c3ZnIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIGlkPSJzZW5kLWlucHV0LWJ1dHRvbiIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1zZW5kIiB0aXRsZT0iXHU1M0QxXHU5MDAxIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGxpbmUgeDE9IjIyIiB5MT0iMiIgeDI9IjExIiB5Mj0iMTMiLz48cG9seWdvbiBwb2ludHM9IjIyIDIgMTUgMjIgMTEgMTMgMiA5IDIyIDIiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhdHRhY2htZW50LXByZXZpZXciIGNsYXNzPSJhdHRhY2htZW50LXByZXZpZXcgaGlkZGVuIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1wbHVzLXBvcG92ZXIgaGlkZGVuIiBpZD0iY29tcG9zZXItcGx1cy1wb3BvdmVyIiByb2xlPSJtZW51IiBhcmlhLWxhYmVsPSJcdTY2RjRcdTU5MUFcdTY0Q0RcdTRGNUMiPjxidXR0b24gY2xhc3M9InBsdXMtcG9wb3Zlci1pdGVtIiBpZD0icGx1cy1hdHRhY2gtaXRlbSIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytWKCJwYXBlcmNsaXAiLHtzaXplOjE0LHN0cm9rZVdpZHRoOjEuOCxjbHM6InBsdXMtcG9wb3Zlci1pY29uIn0pKyc8c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLWxhYmVsIj5cdTRFMEFcdTRGMjBcdTk2NDRcdTRFRjY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0icGx1cy1wb3BvdmVyLWl0ZW0nKyhyLnRlcm1pbmFsSW50ZXJhY3RpdmU/IiBpcy1vbiI6IiIpKyciIGlkPSJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtY2hlY2tib3giIGFyaWEtY2hlY2tlZD0iJysoci50ZXJtaW5hbEludGVyYWN0aXZlPyJ0cnVlIjoiZmFsc2UiKSsnIj4nK1YoImtleWJvYXJkIix7c2l6ZToxNCxzdHJva2VXaWR0aDoxLjgsY2xzOiJwbHVzLXBvcG92ZXItaWNvbiJ9KSsnPHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci1sYWJlbCI+XHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyPC9zcGFuPjxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRlIj4nKyhyLnRlcm1pbmFsSW50ZXJhY3RpdmU/Ilx1NUYwMCI6Ilx1NTE3MyIpKyc8L3NwYW4+PC9idXR0b24+PGRpdiBjbGFzcz0icGx1cy1wb3BvdmVyLXNlcCIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PjxkaXYgY2xhc3M9InBsdXMtcG9wb3Zlci10cmlvLXdyYXAiPicra2wodCkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIGhpZGRlbiIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIiBhcmlhLWxpdmU9InBvbGl0ZSI+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC10ZXh0IiBpZD0idm9pY2UtdHJhbnNjcmlwdC10ZXh0Ij48L2Rpdj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LWhpbnQiIGlkPSJ2b2ljZS10cmFuc2NyaXB0LWhpbnQiPjxzcGFuIGNsYXNzPSJ2b2ljZS13YXZlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjwvc3Bhbj48c3BhbiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiIGlkPSJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyI+XHU2QjYzXHU1NzI4XHU4MDQ2XHU1NDJDXHUyMDI2XHU0RTBBXHU2RUQxXHU1M0Q2XHU2RDg4PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJ2b2ljZS1idWJibGUtYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9kaXY+PHAgaWQ9ImFjdGlvbi1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9kaXY+PHNlY3Rpb24gaWQ9ImZvbGRlci1waWNrZXItbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIGZvbGRlci1waWNrZXItbW9kYWwiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU5MDA5XHU2MkU5XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9oMj48YnV0dG9uIGlkPSJjbG9zZS1mb2xkZXItcGlja2VyIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1yb3ciPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIGJ0bi13aXRoLWljb24iIGRhdGEtcGF0aD0iL3RtcCI+JytWKCJ0cmFzaCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzxzcGFuPlx1NEUzNFx1NjVGNlx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biBidG4td2l0aC1pY29uIiBkYXRhLXBhdGg9Ii8iPicrVigiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPHNwYW4+XHU2ODM5XHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1icmVhZGNydW1iIiBjbGFzcz0iZm9sZGVyLWJyZWFkY3J1bWIiPjwvZGl2PjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXIiPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxNSxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZm9sZGVyLXBpY2tlci1pbnB1dCIgY2xhc3M9ImZvbGRlci1waWNrZXItaW5wdXQiIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTYyMTZcdTkwMDlcdTYyRTlcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUuLi4iIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgLz48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiBjbGFzcz0iZm9sZGVyLXBpY2tlci1kcm9wZG93biBoaWRkZW4iPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIgY2xhc3M9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiI+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjwvbWFpbj48L2Rpdj48L2Rpdj4nK3ljKCkrb2MoKStzYygpK2JvKCl9ZnVuY3Rpb24gUGUoZSx0KXtpZihlKXtlLnRleHRDb250ZW50PXQsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtmb3IodmFyIG49ZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO247KXtpZihuLnRhZ05hbWU9PT0iSU5QVVQiKXtuLnNldEF0dHJpYnV0ZSgiZGF0YS1lcnJvciIsInRydWUiKTticmVha31uPW4ucHJldmlvdXNFbGVtZW50U2libGluZ319fWZ1bmN0aW9uIGhpKGUpe2lmKGUpe2UudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtmb3IodmFyIHQ9ZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO3Q7KXtpZih0LnRhZ05hbWU9PT0iSU5QVVQiKXt0LnNldEF0dHJpYnV0ZSgiZGF0YS1lcnJvciIsImZhbHNlIik7YnJlYWt9dD10LnByZXZpb3VzRWxlbWVudFNpYmxpbmd9fX1mdW5jdGlvbiBBKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9InRvYXN0LW1lc3NhZ2UiKyh0PT09ImVycm9yIj8iIHRvYXN0LWVycm9yIjoiIiksdCE9PSJlcnJvciImJihuLnN0eWxlLmJhY2tncm91bmQ9InZhcigtLWFjY2VudCkiLG4uc3R5bGUuY29sb3I9IndoaXRlIiksbi50ZXh0Q29udGVudD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksc2V0VGltZW91dChmdW5jdGlvbigpe24ucmVtb3ZlKCl9LHQ9PT0iZXJyb3IiPzRlMzoyMjAwKX12YXIgRHI9W10sSGY9MDtmdW5jdGlvbiBfZihlKXtzd2l0Y2goZSl7Y2FzZSJ3YXJuaW5nIjpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTAuMyAyLjkgMS44IDE3YTIgMiAwIDAgMCAxLjcgM2gxN2EyIDIgMCAwIDAgMS43LTNMMTMuNyAyLjlhMiAyIDAgMCAwLTMuNCAwWiIvPjxwYXRoIGQ9Ik0xMiA5djQiLz48cGF0aCBkPSJNMTIgMTdoLjAxIi8+PC9zdmc+JztjYXNlImRhbmdlciI6cmV0dXJuJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGg4djIiLz48cGF0aCBkPSJtMTkgNi0xIDE0SDZMNSA2Ii8+PHBhdGggZD0iTTEwIDExdjUiLz48cGF0aCBkPSJNMTQgMTF2NSIvPjwvc3ZnPic7Y2FzZSJzdWNjZXNzIjpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMCA2IDkgMTdsLTUtNSIvPjwvc3ZnPic7Y2FzZSJxdWVzdGlvbiI6cmV0dXJuJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOSIvPjxwYXRoIGQ9Ik05LjcgOWEyLjUgMi41IDAgMSAxIDQuNSAxLjVjLS45LjgtMi4yIDEuMi0yLjIgMi41Ii8+PHBhdGggZD0iTTEyIDE3aC4wMSIvPjwvc3ZnPic7ZGVmYXVsdDpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PHBhdGggZD0iTTEyIDExdjUiLz48cGF0aCBkPSJNMTIgOGguMDEiLz48L3N2Zz4nfX1mdW5jdGlvbiBvbihlKXtlPWV8fHt9O3ZhciB0PWUuZGlzbWlzc2FibGUhPT0hMSxuPWUudHlwZXx8ImluZm8iLGk9X2YobiksYT0hIWUuaW5wdXQ7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHUpe3ZhciBvPSJ3YW5kLWRpYWxvZy0iKyArK0hmLHM9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1iYWNrZHJvcCIsbC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJwcmVzZW50YXRpb24iKTt2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtkLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ciLGQuc2V0QXR0cmlidXRlKCJyb2xlIixhPyJkaWFsb2ciOiJhbGVydGRpYWxvZyIpLGQuc2V0QXR0cmlidXRlKCJhcmlhLW1vZGFsIiwidHJ1ZSIpO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1oZWFkZXIiO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1pY29uICIrbixjLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksZS5pY29uP2MudGV4dENvbnRlbnQ9U3RyaW5nKGUuaWNvbik6Yy5pbm5lckhUTUw9aSxmLmFwcGVuZENoaWxkKGMpO3ZhciB2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKHYuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy10ZXh0d3JhcCIsZS50aXRsZSl7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLXRpdGxlIixoLmlkPW8rIi10aXRsZSIsaC50ZXh0Q29udGVudD1lLnRpdGxlLHYuYXBwZW5kQ2hpbGQoaCksZC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsaC5pZCl9aWYoZS5tZXNzYWdlKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctbWVzc2FnZSIsZy5pZD1vKyItbWVzc2FnZSIsZy50ZXh0Q29udGVudD1lLm1lc3NhZ2Usdi5hcHBlbmRDaGlsZChnKSxkLnNldEF0dHJpYnV0ZSgiYXJpYS1kZXNjcmliZWRieSIsZy5pZCl9ZS50aXRsZXx8ZC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG49PT0iZGFuZ2VyIj8iXHU3ODZFXHU4QkE0XHU2NENEXHU0RjVDIjoiXHU2M0QwXHU3OTNBIiksZi5hcHBlbmRDaGlsZCh2KSxkLmFwcGVuZENoaWxkKGYpO3ZhciBtPW51bGw7aWYoYSl7dmFyIHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7eS5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWJvZHkiLG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxtLnR5cGU9InRleHQiLG0uY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1pbnB1dCIsbS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUuaW5wdXRMYWJlbHx8ZS50aXRsZXx8Ilx1OEY5M1x1NTE2NVx1NTE4NVx1NUJCOSIpLG0uYXV0b2NvbXBsZXRlPSJvZmYiLG0uc3BlbGxjaGVjaz0hMSxlLmlucHV0UGxhY2Vob2xkZXImJihtLnBsYWNlaG9sZGVyPWUuaW5wdXRQbGFjZWhvbGRlciksZS5pbnB1dFZhbHVlIT1udWxsJiYobS52YWx1ZT1TdHJpbmcoZS5pbnB1dFZhbHVlKSkseS5hcHBlbmRDaGlsZChtKSxkLmFwcGVuZENoaWxkKHkpfXZhciBDPWUuYnV0dG9ucyYmZS5idXR0b25zLmxlbmd0aD9lLmJ1dHRvbnM6W3tsYWJlbDoiXHU1OTdEIix2YWx1ZTohMCxraW5kOiJwcmltYXJ5IixhdXRvZm9jdXM6ITB9XSxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0UuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1mb290ZXIiO3ZhciBCPW51bGwsRD1udWxsO2Z1bmN0aW9uIEYoTCl7aWYoIWwuY2xhc3NMaXN0LmNvbnRhaW5zKCJjbG9zaW5nIikpe2wuY2xhc3NMaXN0LmFkZCgiY2xvc2luZyIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLEksITApO3ZhciBIPURyLmluZGV4T2YoRik7SD49MCYmRHIuc3BsaWNlKEgsMSk7dmFyIFU9ITE7dHJ5e1U9ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXMpfWNhdGNoe31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYobC5wYXJlbnROb2RlJiZsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobCkscyYmZG9jdW1lbnQuY29udGFpbnMocykmJnR5cGVvZiBzLmZvY3VzPT0iZnVuY3Rpb24iKXRyeXtzLmZvY3VzKCl9Y2F0Y2h7fXUoTCl9LFV8fGRvY3VtZW50LmhpZGRlbj8wOjE0MCl9fUMuZm9yRWFjaChmdW5jdGlvbihMKXt2YXIgSD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKSxVPUwua2luZHx8InNlY29uZGFyeSI7SC5jbGFzc05hbWU9ImJ0biBidG4tIitVLEgudHlwZT0iYnV0dG9uIixILnRleHRDb250ZW50PUwubGFiZWwsSC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthJiZMLmtpbmQ9PT0icHJpbWFyeSI/RihtP20udmFsdWU6IiIpOkYoTC52YWx1ZSl9KSxCfHwoQj1IKSxMLmF1dG9mb2N1cyYmKEQ9SCksRS5hcHBlbmRDaGlsZChIKX0pLGQuYXBwZW5kQ2hpbGQoRSksbC5hcHBlbmRDaGlsZChkKSxsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihMKXtMLnRhcmdldD09PWwmJnQmJkYoZS5jYW5jZWxWYWx1ZSE9PXZvaWQgMD9lLmNhbmNlbFZhbHVlOmE/bnVsbDohMSl9KTtmdW5jdGlvbiBJKEwpe2lmKERyW0RyLmxlbmd0aC0xXT09PUYpe2lmKEwua2V5PT09IkVzY2FwZSImJnQpe0wucHJldmVudERlZmF1bHQoKSxMLnN0b3BQcm9wYWdhdGlvbigpLEYoZS5jYW5jZWxWYWx1ZSE9PXZvaWQgMD9lLmNhbmNlbFZhbHVlOmE/bnVsbDohMSk7cmV0dXJufWlmKEwua2V5PT09IkVudGVyIil7Zm9yKHZhciBIPW51bGwsVT0wO1U8Qy5sZW5ndGg7VSsrKWlmKENbVV0ua2luZD09PSJwcmltYXJ5Iil7SD1DW1VdO2JyZWFrfUh8fChIPUNbQy5sZW5ndGgtMV0pLEgmJihMLnByZXZlbnREZWZhdWx0KCksTC5zdG9wUHJvcGFnYXRpb24oKSxhJiZILmtpbmQ9PT0icHJpbWFyeSI/RihtP20udmFsdWU6IiIpOkYoSC52YWx1ZSkpO3JldHVybn1pZihMLmtleT09PSJUYWIiKXt2YXIgeD1kLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpO2lmKCF4Lmxlbmd0aClyZXR1cm47dmFyIGs9eFswXSxUPXhbeC5sZW5ndGgtMV07TC5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWs/KEwucHJldmVudERlZmF1bHQoKSxULmZvY3VzKCkpOiFMLnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09VCYmKEwucHJldmVudERlZmF1bHQoKSxrLmZvY3VzKCkpfX19ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsSSwhMCksRHIucHVzaChGKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGwpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2lmKGEmJm0pe20uZm9jdXMoKTt0cnl7bS5zZWxlY3QoKX1jYXRjaHt9fWVsc2UgRD9ELmZvY3VzKCk6QiYmQi5mb2N1cygpfSl9KX1mdW5jdGlvbiBvcyhlLHQpe3JldHVybiB0PXR8fHt9LG9uKHt0aXRsZTp0LnRpdGxlfHwiXHU2M0QwXHU3OTNBIixtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTp0LnR5cGV8fCJpbmZvIixidXR0b25zOlt7bGFiZWw6dC5va0xhYmVsfHwiXHU1OTdEIix2YWx1ZTp2b2lkIDAsa2luZDoicHJpbWFyeSIsYXV0b2ZvY3VzOiEwfV19KX1mdW5jdGlvbiBJYShlLHQpe3Q9dHx8e307dmFyIG49ISF0LmRhbmdlcnx8dC50eXBlPT09ImRhbmdlciI7cmV0dXJuIG9uKHt0aXRsZTp0LnRpdGxlfHwobj8iXHU3ODZFXHU4QkE0XHU2NENEXHU0RjVDIjoiXHU4QkY3XHU3ODZFXHU4QkE0IiksbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6dC50eXBlfHwobj8iZGFuZ2VyIjoicXVlc3Rpb24iKSxjYW5jZWxWYWx1ZTohMSxidXR0b25zOlt7bGFiZWw6dC5jYW5jZWxMYWJlbHx8Ilx1NTNENlx1NkQ4OCIsdmFsdWU6ITEsa2luZDoic2Vjb25kYXJ5In0se2xhYmVsOnQub2tMYWJlbHx8KG4/Ilx1NTIyMFx1OTY2NCI6Ilx1Nzg2RVx1NUI5QSIpLHZhbHVlOiEwLGtpbmQ6bj8iZGFuZ2VyIjoicHJpbWFyeSIsYXV0b2ZvY3VzOiFufV19KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpPT09ITB9KX1mdW5jdGlvbiBOZihlLHQsbil7cmV0dXJuIG49bnx8e30sb24oe3RpdGxlOm4udGl0bGV8fCJcdThCRjdcdThGOTNcdTUxNjUiLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOm4udHlwZXx8InF1ZXN0aW9uIixpbnB1dDohMCxpbnB1dFZhbHVlOnQ9PW51bGw/IiI6U3RyaW5nKHQpLGlucHV0UGxhY2Vob2xkZXI6bi5wbGFjZWhvbGRlcnx8IiIsY2FuY2VsVmFsdWU6bnVsbCxidXR0b25zOlt7bGFiZWw6bi5jYW5jZWxMYWJlbHx8Ilx1NTNENlx1NkQ4OCIsdmFsdWU6bnVsbCxraW5kOiJzZWNvbmRhcnkifSx7bGFiZWw6bi5va0xhYmVsfHwiXHU3ODZFXHU1QjlBIix2YWx1ZTp2b2lkIDAsa2luZDoicHJpbWFyeSJ9XX0pfXdpbmRvdy53YW5kQWxlcnQ9b3Msd2luZG93LndhbmRDb25maXJtPUlhLHdpbmRvdy53YW5kUHJvbXB0PU5mLHdpbmRvdy5vcGVuV2FuZERpYWxvZz1vbjt2YXIgZW49W10sc3M9MCxqZj02LFJmPTE2O2Z1bmN0aW9uIFRhKGUpe2lmKChlLmFjdGlvbkxhYmVsfHxlLnBsYXlTb3VuZCkmJnBzKCksIXIubm90aWZCdWJibGUpcmV0dXJue2Rpc21pc3M6ZnVuY3Rpb24oKXt9fTt2YXIgdD0rK3NzLG49ZS50eXBlfHwiaW5mbyIsaT1lLmljb258fChuPT09Indhcm5pbmciPyIhIjpuPT09InN1Y2Nlc3MiPyJcdTI3MTMiOiJpIiksYT1lLmR1cmF0aW9uIT09dm9pZCAwP2UuZHVyYXRpb246OGUzLHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dS5jbGFzc05hbWU9Im5vdGlmaWNhdGlvbi1idWJibGUiLHUuc2V0QXR0cmlidXRlKCJkYXRhLW5pZCIsU3RyaW5nKHQpKTt2YXIgbz0nPGRpdiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1oZWFkZXIiPjxzcGFuIGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWljb24gJytuKyciPicraSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLXRpdGxlIj4nK3AoZS50aXRsZSkrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWNsb3NlIiB0aXRsZT0iXHU1MTczXHU5NUVEIj5ceEQ3PC9idXR0b24+PC9kaXY+JyxzPWUuYm9keT8nPGRpdiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1ib2R5Ij4nK3AoZS5ib2R5KS5yZXBsYWNlKC9cbi9nLCI8YnI+IikrIjwvZGl2PiI6IiIsbD1lLmFjdGlvbkxhYmVsPyc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9InByaW1hcnkiPicrcChlLmFjdGlvbkxhYmVsKSsiPC9idXR0b24+PC9kaXY+IjoiIjt1LmlubmVySFRNTD1vK3MrbCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHUpO3ZhciBkPXtpZDp0LGVsOnV9O2VuLnB1c2goZCksTGEoKTt2YXIgZj11LnF1ZXJ5U2VsZWN0b3IoIi5ub3RpZmljYXRpb24tYnViYmxlLWNsb3NlIik7aWYoZiYmKGYub25jbGljaz1mdW5jdGlvbigpe2tyKHQpfSksZS5hY3Rpb25MYWJlbCYmZS5hY3Rpb24pe3ZhciBjPXUucXVlcnlTZWxlY3RvcigiLm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24iKTtjJiYoYy5vbmNsaWNrPWZ1bmN0aW9uKCl7ZS5hY3Rpb24oKSxrcih0KX0pfXZhciB2PW51bGw7cmV0dXJuIGE+MCYmKHY9c2V0VGltZW91dChmdW5jdGlvbigpe2tyKHQpfSxhKSkse2Rpc21pc3M6ZnVuY3Rpb24oKXtrcih0KX19fWZ1bmN0aW9uIGtyKGUpe2Zvcih2YXIgdD0tMSxuPTA7bjxlbi5sZW5ndGg7bisrKWlmKGVuW25dLmlkPT09ZSl7dD1uO2JyZWFrfWlmKHQhPT0tMSl7dmFyIGk9ZW5bdF07aS5lbC5jbGFzc0xpc3QuYWRkKCJzbGlkZS1vdXQiKSxlbi5zcGxpY2UodCwxKSxMYSgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmVsLnBhcmVudE5vZGUmJmkuZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpLmVsKX0sMzAwKX19ZnVuY3Rpb24gTGEoKXtmb3IodmFyIGU9UmYsdD0wO3Q8ZW4ubGVuZ3RoO3QrKyllblt0XS5lbC5zdHlsZS50b3A9ZSsicHgiLGUrPWVuW3RdLmVsLm9mZnNldEhlaWdodCtqZn10cnl7bXM9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2FuZFBsYXRmb3JtXC9tYWNPUy8pLFBhPXdpbmRvdy53ZWJraXQmJndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzJiZ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy53YW5kTmF0aXZlfHxudWxsLG1zJiZQYSYmdHlwZW9mIHdpbmRvdy5XYW5kTmF0aXZlPiJ1IiYmKHdpbmRvdy5XYW5kTmF0aXZlPXtkb3dubG9hZFVwZGF0ZTpmdW5jdGlvbihlLHQsbil7dHJ5e1BhLnBvc3RNZXNzYWdlKHt0eXBlOiJkb3dubG9hZFVwZGF0ZSIsdXJsOlN0cmluZyhlfHwiIiksZmlsZU5hbWU6U3RyaW5nKHR8fCJ3YW5kLXVwZGF0ZS5kbWciKSxzb3VyY2U6U3RyaW5nKG58fCJsb2NhbCIpfSl9Y2F0Y2h7fX19KX1jYXRjaHt9dmFyIF9lPXR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbj09ImZ1bmN0aW9uIixBcj1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XYW5kQXBwXC8oW15cc10rKS8pLGxzPS9XYW5kUGxhdGZvcm1cL21hY09TLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLFdmPSEhQXImJiFscyxNbj1BciYmV2Y/QXJbMV06bnVsbCxzbj1BciYmbHM/QXJbMV06bnVsbDtmdW5jdGlvbiAkbihlKXtpZighKCFfZXx8dHlwZW9mIFdhbmROYXRpdmUudmlicmF0ZSE9ImZ1bmN0aW9uIikpdHJ5e1dhbmROYXRpdmUudmlicmF0ZShlfHwibGlnaHQiKX1jYXRjaHt9fWZ1bmN0aW9uIE1hKCl7aWYoX2Upe3ZhciBlPXIuc2Vzc2lvbnMuc29tZShmdW5jdGlvbih0KXtyZXR1cm4hdC5hcmNoaXZlZCYmKHQuc3RhdHVzPT09InJ1bm5pbmcifHx0LnN0YXR1cz09PSJ0aGlua2luZyJ8fHQuc3RhdHVzPT09ImluaXRpYWxpemluZyIpfSk7aWYodHlwZW9mIFdhbmROYXRpdmUuc2V0S2VlcFNjcmVlbk9uPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnNldEtlZXBTY3JlZW5PbihlKX1jYXRjaHt9aWYoZSl7aWYodHlwZW9mIFdhbmROYXRpdmUuc3RhcnRLZWVwQWxpdmU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc3RhcnRLZWVwQWxpdmUoKX1jYXRjaHt9fWVsc2UgaWYodHlwZW9mIFdhbmROYXRpdmUuc3RvcEtlZXBBbGl2ZT09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zdG9wS2VlcEFsaXZlKCl9Y2F0Y2h7fX19ZnVuY3Rpb24geWkoKXtpZihfZSYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0UGVybWlzc2lvbj09ImZ1bmN0aW9uIil0cnl7cmV0dXJuIFdhbmROYXRpdmUuZ2V0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm4gbnVsbH1mdW5jdGlvbiB6Zigpe2lmKF9lKXt2YXIgZT15aSgpO2lmKGU9PT0iZGVmYXVsdCJ8fGU9PT0iZGVuaWVkIil0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm59dHlwZW9mIE5vdGlmaWNhdGlvbjwidSImJk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uPT09ImRlZmF1bHQiJiZOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKX1mdW5jdGlvbiBWZihlKXt2YXIgdD1lfHx7fTtyZXR1cm4hKHQub25seVdoZW5IaWRkZW4mJiFkb2N1bWVudC5oaWRkZW58fHQuc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZCYmdC5za2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYhZG9jdW1lbnQuaGlkZGVuKX1mdW5jdGlvbiBVZihlLHQpe2lmKCFlfHwhdHx8dDw9MClyZXR1cm4hMTt2YXIgbj1yLm5vdGlmaWNhdGlvbkhpc3RvcnlbZV18fDAsaT1EYXRlLm5vdygpO3JldHVybiBpLW48dD8hMDooci5ub3RpZmljYXRpb25IaXN0b3J5W2VdPWksITEpfWZ1bmN0aW9uIGJpKGUsdCxuKXt2YXIgaT1ufHx7fSxhPWkudGFnfHwiIjtpZihWZihpKSYmIVVmKGEsaS5taW5JbnRlcnZhbE1zfHwwKSl7aWYoX2Upe3ZhciB1PXlpKCk7aWYodSE9PSJncmFudGVkIilyZXR1cm47dHJ5e3ZhciBvPWE7aS5raW5kJiYobz1pLmtpbmQrKGE/IjoiK2E6IiIpKSxXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb24oZXx8IldhbmQiLHR8fCIiLG98fCIiKX1jYXRjaHt9cmV0dXJufWlmKCEodHlwZW9mIE5vdGlmaWNhdGlvbj4idSJ8fE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIT09ImdyYW50ZWQiKSYmZG9jdW1lbnQuaGlkZGVuKXRyeXt2YXIgcz1uZXcgTm90aWZpY2F0aW9uKGUse2JvZHk6dHx8IiIsaWNvbjppLmljb258fCIvZmF2aWNvbi5pY28iLHRhZzphfHx2b2lkIDB9KTtzLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cuZm9jdXMoKSxzLmNsb3NlKCksaS5vbkNsaWNrJiZpLm9uQ2xpY2soKX0sc2V0VGltZW91dChmdW5jdGlvbigpe3MuY2xvc2UoKX0sMWU0KX1jYXRjaHt9fX1mdW5jdGlvbiBLZihlLHQpe2lmKCEoIXR8fCF0LnRpdGxlKSl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ZX0pO2lmKG4pe3ZhciBpPW4uc3VtbWFyeXx8bi5jb21tYW5kfHxlO2JpKCJcdTRFRkJcdTUyQTFcdThGREJcdTg4NENcdTRFMkQiLGkrYApgK3QudGl0bGUse2tpbmQ6InRhc2siLHRhZzoid2FuZC10YXNrLSIrZSsiLSIrdC50aXRsZSxtaW5JbnRlcnZhbE1zOjllNCxvbmx5V2hlbkhpZGRlbjohMCxza2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkOmUsb25DbGljazpmdW5jdGlvbigpe2UhPT1yLnNlbGVjdGVkSWQmJk50KGUpfX0pfX19ZnVuY3Rpb24gZHMoZSx0KXtYZihlfHwiLSIsdHx8Ii0iKSxiaSgiV2FuZCBcdTUzRDFcdTczQjBcdTY1QjBcdTcyNDhcdTY3MkMiLCJcdTVGNTNcdTUyNEQgIisoZXx8Ii0iKSsiIFx1MjE5MiBcdTY3MDBcdTY1QjAgIisodHx8Ii0iKSx7a2luZDoidXBkYXRlIix0YWc6IndhbmQtdXBkYXRlIixtaW5JbnRlcnZhbE1zOjNlNX0pfWZ1bmN0aW9uIEpmKGUsdCl7YmkoIlx1OTcwMFx1ODk4MVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyIsdCx7a2luZDoicGVybWlzc2lvbiIsdGFnOiJ3YW5kLXBlcm0tIitlLG1pbkludGVydmFsTXM6NmU0LG9ubHlXaGVuSGlkZGVuOiEwLHNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ6ZSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmTnQoZSl9fSl9ZnVuY3Rpb24gWWYoZSx0LG4pe2JpKHQsbix7a2luZDoidGFzay1lbmRlZCIsdGFnOiJ3YW5kLWVuZGVkLSIrZSxtaW5JbnRlcnZhbE1zOjFlNCxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmTnQoZSl9fSl9dmFyIHFuPXt9LEdmPTMwO2Z1bmN0aW9uIGNzKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVN0cmluZyhlKS5yZXBsYWNlKC9eIytccysvZ20sIiIpLnJlcGxhY2UoL1wqXCovZywiIikucmVwbGFjZSgvYC9nLCIiKS50cmltKCksbj10LnNwbGl0KGAKYClbMF0udHJpbSgpO3JldHVybiBuLmxlbmd0aD4xMDAmJihuPW4uc2xpY2UoMCwxMDApKyJcdTIwMjYiKSxufWZ1bmN0aW9uIHFhKGUpeyFfZXx8dHlwZW9mIFdhbmROYXRpdmUudXBkYXRlU2Vzc2lvblByb2dyZXNzIT0iZnVuY3Rpb24ifHxlJiYocW5bZV0mJmNsZWFyVGltZW91dChxbltlXSkscW5bZV09c2V0VGltZW91dChmdW5jdGlvbigpe2RlbGV0ZSBxbltlXSxRZihlKX0sR2YpKX1mdW5jdGlvbiBRZihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oRil7cmV0dXJuIEYuaWQ9PT1lfSk7aWYodCl7dmFyIG49dC5zdW1tYXJ5fHx0LmNvbW1hbmR8fGUsaT10LnN0YXR1c3x8InJ1bm5pbmciO2lmKGk9PT0iaWRsZSJ8fGk9PT0iYXJjaGl2ZWQifHxpPT09ImV4aXRlZCIpe2ZzKGUpO3JldHVybn1mb3IodmFyIGE9bnVsbCx1PSIiLG89IiIscz1bXSxsPXQubWVzc2FnZXN8fFtdLGQ9bC5sZW5ndGgtMTtkPj0wO2QtLSl7dmFyIGY9bFtkXTtpZighKCFmLmNvbnRlbnR8fCFBcnJheS5pc0FycmF5KGYuY29udGVudCkpKXtpZighbyYmZi5yb2xlPT09ImFzc2lzdGFudCIpZm9yKHZhciBjPWYuY29udGVudC5sZW5ndGgtMTtjPj0wO2MtLSl7dmFyIHY9Zi5jb250ZW50W2NdO2lmKHYmJnYudHlwZT09PSJ0ZXh0IiYmdi50ZXh0JiZ2LnRleHQudHJpbSgpKXtvPWNzKHYudGV4dCk7YnJlYWt9fWlmKGYucm9sZT09PSJ1c2VyIil7dmFyIGg9Zi5jb250ZW50LnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYmJkYuX19xdWV1ZWR9KTtpZighaClmb3IodmFyIGc9MDtnPGYuY29udGVudC5sZW5ndGg7ZysrKXt2YXIgbT1mLmNvbnRlbnRbZ107aWYobSYmbS50eXBlPT09InRleHQiJiZtLnRleHQmJm0udGV4dC50cmltKCkpe3ZhciB5PWNzKG0udGV4dCk7dXx8KHU9eSkscy5sZW5ndGg8NCYmcy5wdXNoKHkpO2JyZWFrfX19aWYoIWEpZm9yKHZhciBDPWYuY29udGVudC5sZW5ndGgtMTtDPj0wO0MtLSl7dmFyIEU9Zi5jb250ZW50W0NdO2lmKEUmJkUudHlwZT09PSJ0b29sX3VzZSImJkUubmFtZT09PSJUb2RvV3JpdGUiJiZFLmlucHV0JiZFLmlucHV0LnRvZG9zKXthPUUuaW5wdXQudG9kb3M7YnJlYWt9fWlmKGEmJnMubGVuZ3RoPj00JiZvKWJyZWFrfX1zLnJldmVyc2UoKTt2YXIgQj0iIjtlPT09ci5zZWxlY3RlZElkJiZyLmN1cnJlbnRUYXNrJiZyLmN1cnJlbnRUYXNrLnRpdGxlJiYoQj1yLmN1cnJlbnRUYXNrLnRpdGxlKTt2YXIgRD17c2Vzc2lvbkxhYmVsOm4sc3RhdHVzOmksY3VycmVudFRhc2s6QixsYXRlc3RVc2VyVGV4dDp1LGxhdGVzdEFzc2lzdGFudFRleHQ6byx0b2RvczphfHxbXSxyZWNlbnRVc2VyVGV4dHM6c307dHJ5e1dhbmROYXRpdmUudXBkYXRlU2Vzc2lvblByb2dyZXNzKGUsSlNPTi5zdHJpbmdpZnkoRCkpfWNhdGNoe319fWZ1bmN0aW9uIGZzKGUpe2lmKCEoIV9lfHx0eXBlb2YgV2FuZE5hdGl2ZS5jbGVhclNlc3Npb25Qcm9ncmVzcyE9ImZ1bmN0aW9uIikpe3FuW2VdJiYoY2xlYXJUaW1lb3V0KHFuW2VdKSxkZWxldGUgcW5bZV0pO3RyeXtXYW5kTmF0aXZlLmNsZWFyU2Vzc2lvblByb2dyZXNzKGUpfWNhdGNoe319fXdpbmRvdy5oYW5kbGVOYXRpdmVCYWNrPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1vZGFsIik7aWYoZSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4gcnIoKSwhMDt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2lmKHQmJiF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpcmV0dXJuIGhuKCksITA7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7cmV0dXJuIG4mJiFuLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIik/KG5yKCksITApOnIuZmlsZVBhbmVsT3BlbiYmSGUoKT8oZGEoITEpLCEwKTpyLnNlc3Npb25zRHJhd2VyT3BlbiYmSGUoKT8oUnIoKSwhMCk6SGUoKSYmci5zZWxlY3RlZElkPyhyLnNlbGVjdGVkSWQ9bnVsbCxoZSgpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLEFlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLFp0KCksITApOiExfTtmdW5jdGlvbiBwcygpe3Iubm90aWZTb3VuZCYmRWkoKX1mdW5jdGlvbiAkZigpe3JldHVybiBFaSgpfWZ1bmN0aW9uIEVpKCl7dHJ5e2xldCBhPWZ1bmN0aW9uKHUsbyxzKXt2YXIgbD1uLmNyZWF0ZU9zY2lsbGF0b3IoKSxkPW4uY3JlYXRlR2FpbigpO2wudHlwZT0ic2luZSIsbC5mcmVxdWVuY3kudmFsdWU9dSxkLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCxuLmN1cnJlbnRUaW1lK28pLGQuZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSguNSppLG4uY3VycmVudFRpbWUrbysuMDQpLGQuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKC4wMDEsbi5jdXJyZW50VGltZStvK3MpLGwuY29ubmVjdChkKSxkLmNvbm5lY3Qobi5kZXN0aW5hdGlvbiksbC5zdGFydChuLmN1cnJlbnRUaW1lK28pLGwuc3RvcChuLmN1cnJlbnRUaW1lK28rcyl9O3ZhciBlPWEsdD13aW5kb3cuQXVkaW9Db250ZXh0fHx3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0O2lmKCF0KXJldHVybiExO3ZhciBuPW5ldyB0O24uc3RhdGU9PT0ic3VzcGVuZGVkIiYmbi5yZXN1bWUoKTt2YXIgaT0oci5ub3RpZlZvbHVtZXx8MCkvMTAwO3JldHVybiBhKDUyMywwLC4yNSksYSg2NTksLjEyLC4zKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5jbG9zZSgpfSw2MDApLCEwfWNhdGNoe3JldHVybiExfX1mdW5jdGlvbiBYZihlLHQpe2lmKHIuX3VwZGF0ZUJ1YmJsZVNob3duKXJldHVybjtyLl91cGRhdGVCdWJibGVTaG93bj0hMCxwcygpO3ZhciBuPSsrc3MsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0ibm90aWZpY2F0aW9uLWJ1YmJsZSB1cGRhdGUtY2FyZCIsaS5zZXRBdHRyaWJ1dGUoImRhdGEtbmlkIixTdHJpbmcobikpLGkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zaGluZSIgYXJpYS1oaWRkZW49InRydWUiPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWhlYWRlciI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz48L3N2Zz48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1oZWFkaW5nIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC10aXRsZSI+XHU1M0QxXHU3M0IwXHU2NUIwXHU3MjQ4XHU2NzJDPC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc3VidGl0bGUiIGlkPSJ1cGRhdGUtY2FyZC1zdWJ0aXRsZSI+XHU3MEI5XHU1MUZCXHU0RTBCXHU2NUI5XHU2MzA5XHU5NEFFXHU0RTAwXHU5NTJFXHU2NkY0XHU2NUIwPC9kaXY+PC9kaXY+PGJ1dHRvbiBjbGFzcz0idXBkYXRlLWNhcmQtY2xvc2UiIHRpdGxlPSJcdTdBMERcdTU0MEVcdTYzRDBcdTkxOTIiIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xOCA2TDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbiI+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24tY2hpcCB1cGRhdGUtY2FyZC12ZXJzaW9uLWN1cnJlbnQiPnYnK3AoU3RyaW5nKGUpLnJlcGxhY2UoL152LywiIikpKyc8L3NwYW4+PHN2ZyBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1hcnJvdyIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTUgMTJoMTQiLz48cGF0aCBkPSJNMTMgNWw3IDctNyA3Ii8+PC9zdmc+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24tY2hpcCB1cGRhdGUtY2FyZC12ZXJzaW9uLWxhdGVzdCI+dicrcChTdHJpbmcodCkucmVwbGFjZSgvXnYvLCIiKSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcyIgaWQ9InVwZGF0ZS1jYXJkLXByb2dyZXNzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MtdHJhY2siPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzLWZpbGwiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXN0YXR1cyBoaWRkZW4iIGlkPSJ1cGRhdGUtY2FyZC1zdGF0dXMiPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbiB1cGRhdGUtY2FyZC1hY3Rpb24tcHJpbWFyeSIgaWQ9InVwZGF0ZS1idWJibGUtYWN0aW9uIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ1cGRhdGUtY2FyZC1hY3Rpb24tbGFiZWwiPlx1N0FDQlx1NTM3M1x1NjZGNFx1NjVCMDwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSk7dmFyIGE9e2lkOm4sZWw6aX07ZW4ucHVzaChhKSxMYSgpO3ZhciB1PWkucXVlcnlTZWxlY3RvcigiLnVwZGF0ZS1jYXJkLWNsb3NlIik7dSYmKHUub25jbGljaz1mdW5jdGlvbigpe2tyKG4pLHIuX3VwZGF0ZUJ1YmJsZVNob3duPSExfSk7dmFyIG89aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWJ1YmJsZS1hY3Rpb24iKSxzPWkucXVlcnlTZWxlY3RvcigiLnVwZGF0ZS1jYXJkLWFjdGlvbi1sYWJlbCIpLGw9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtc3VidGl0bGUiKSxkPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1jYXJkLXN0YXR1cyIpLGY9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtcHJvZ3Jlc3MiKTtmdW5jdGlvbiBjKGcsbSl7aWYoZCl7aWYoZC50ZXh0Q29udGVudD1nfHwiIixkLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIsImVycm9yIiwic3VjY2VzcyIpLCFnKXtkLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3JldHVybn1tJiZkLmNsYXNzTGlzdC5hZGQobSl9fWZ1bmN0aW9uIHYoZyl7bCYmKGwudGV4dENvbnRlbnQ9Z3x8IiIpfWZ1bmN0aW9uIGgoZyl7ZiYmZi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhZyl9byYmKG8ub25jbGljaz1mdW5jdGlvbigpe28uZGlzYWJsZWQ9ITAsaS5jbGFzc0xpc3QuYWRkKCJpcy1idXN5IikscyYmKHMudGV4dENvbnRlbnQ9Ilx1NjZGNFx1NjVCMFx1NEUyRFx1MjAyNiIpLHYoIlx1NkI2M1x1NTcyOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NUI4OVx1ODhDNVx1NjVCMFx1NzI0OFx1NjcyQ1x1MjAyNiIpLGgoITApLGMoIiIpLGZldGNoKCIvYXBpL3VwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihnKXtyZXR1cm4gZy5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGcpe2lmKGcuZXJyb3Ipe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLHYoIlx1NjZGNFx1NjVCMFx1NjcyQVx1NUI4Q1x1NjIxMCIpLGMoZy5lcnJvciwiZXJyb3IiKSxvLmRpc2FibGVkPSExLHMmJihzLnRleHRDb250ZW50PSJcdTkxQ0RcdThCRDUiKTtyZXR1cm59aWYoaS5jbGFzc0xpc3QuYWRkKCJpcy1zdWNjZXNzIiksdigoZy5tZXNzYWdlfHwiXHU2NkY0XHU2NUIwXHU1QjhDXHU2MjEwIikrIlx1RkYwQ1x1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MjAyNiIpLGMoIiIpLHMmJihzLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiKSxnLmRldGFjaGVkVXBkYXRlKXtsbigpO3JldHVybn1pZihnLnJlc3RhcnRSZXF1aXJlZD09PSExKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSxvLmRpc2FibGVkPSExLHMmJihzLnRleHRDb250ZW50PSJcdTVERjJcdTVCOENcdTYyMTAiKTtyZXR1cm59WmYobyxzLGwsZCxmKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5IiksdigiXHU2NkY0XHU2NUIwXHU2NzJBXHU1QjhDXHU2MjEwIiksYygiXHU4QkY3XHU2OEMwXHU2N0U1XHU3RjUxXHU3RURDXHU4RkRFXHU2M0E1XHU1NDBFXHU5MUNEXHU4QkQ1IiwiZXJyb3IiKSxvLmRpc2FibGVkPSExLHMmJihzLnRleHRDb250ZW50PSJcdTkxQ0RcdThCRDUiKX0pfSl9ZnVuY3Rpb24gWmYoZSx0LG4saSxhKXtmZXRjaCgiL2FwaS9yZXN0YXJ0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oKXtsbigpfSkuY2F0Y2goZnVuY3Rpb24oKXtsbigpfSl9ZnVuY3Rpb24gdnMoZSx0KXtlJiYoZS5kaXNhYmxlZD0hMCxlLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiKSx0JiYodC50ZXh0Q29udGVudD0iXHU2NzBEXHU1MkExXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHUyMDI2Iix0LnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiKSxmZXRjaCgiL2FwaS9yZXN0YXJ0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oKXtsbigpfSkuY2F0Y2goZnVuY3Rpb24oKXtsbigpfSl9ZnVuY3Rpb24gbG4oKXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3RhcnQtb3ZlcmxheSIpKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmlkPSJyZXN0YXJ0LW92ZXJsYXkiLGUuY2xhc3NOYW1lPSJyZXN0YXJ0LW92ZXJsYXkiLGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJyZXN0YXJ0LW92ZXJsYXktY29udGVudCI+PGRpdiBjbGFzcz0icmVzdGFydC1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXRpdGxlIj5cdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkY8L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXN1YnRpdGxlIj5cdTdBMERcdTU0MEVcdTVDMDZcdTgxRUFcdTUyQThcdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjJcdTIwMjY8L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7dmFyIHQ9MCxuPTE4MCxpPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYodCsrLGZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHUpe3Uub2smJihjbGVhckludGVydmFsKGkpLGxvY2F0aW9uLnJlbG9hZCgpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSksdD49bil7Y2xlYXJJbnRlcnZhbChpKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5yZXN0YXJ0LXN1YnRpdGxlIik7YSYmKGEuaW5uZXJIVE1MPSdcdTkxQ0RcdTU0MkZcdThEODVcdTY1RjZcdUZGMENcdThCRjcgPGEgaHJlZj0iamF2YXNjcmlwdDpsb2NhdGlvbi5yZWxvYWQoKSIgc3R5bGU9ImNvbG9yOnZhcigtLWFjY2VudCk7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSI+XHU2MjRCXHU1MkE4XHU1MjM3XHU2NUIwPC9hPiBcdTk4NzVcdTk3NjJcdTMwMDInKX19LDJlMyl9fWZ1bmN0aW9uIGVwKGUsdCl7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN0YXJ0LW92ZXJsYXkiKSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5pZD0icmVzdGFydC1vdmVybGF5IixuLmNsYXNzTmFtZT0icmVzdGFydC1vdmVybGF5IixuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0icmVzdGFydC1vdmVybGF5LWNvbnRlbnQiPjxkaXYgY2xhc3M9InJlc3RhcnQtc3Bpbm5lciI+PC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwXHU0RTJEPC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC1zdWJ0aXRsZSI+JytwKGUpKyIgXHUyMTkyICIrcCh0KSsiPGJyPlx1NkI2M1x1NTcyOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NUI4OVx1ODhDNVx1NjVCMFx1NzI0OFx1NjcyQ1x1RkYwQ1x1N0EwRFx1NTQwRVx1NUMwNlx1ODFFQVx1NTJBOFx1OTFDRFx1NTQyRlx1MjAyNjwvZGl2PjwvZGl2PiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKX19dmFyIG1zLFBhLHhlPXtyZWNvcmRpbmc6ITEsY2FuY2VsaW5nOiExLHRyYW5zY3JpcHQ6IiIsc3RhcnRZOjB9LHRwPTYwO2Z1bmN0aW9uIG5wKGUpe3hlLnRyYW5zY3JpcHQ9ZXx8IiI7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtdGV4dCIpO3QmJih0LnRleHRDb250ZW50PXhlLnRyYW5zY3JpcHQpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXRleHQiLCEheGUudHJhbnNjcmlwdCl9ZnVuY3Rpb24gcnAoZSl7aWYoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHhlLnN0YXJ0WT10eXBlb2YgZS5jbGllbnRZPT0ibnVtYmVyIj9lLmNsaWVudFk6MDt0cnl7ZS5wb2ludGVySWQhPT12b2lkIDAmJmUudGFyZ2V0JiZlLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZSYmZS50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe319eGUucmVjb3JkaW5nPSEwLHhlLmNhbmNlbGluZz0hMSx4ZS50cmFuc2NyaXB0PSIiO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7aWYodCl7dC5jbGFzc0xpc3QuYWRkKCJpcy1yZWNvcmRpbmciKTt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTtuJiYobi50ZXh0Q29udGVudD0iXHU2NzdFXHU1RjAwIFx1NTNEMVx1OTAwMSIpfXZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO2kmJmkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiwiaXMtY2FuY2VsaW5nIiwiaGFzLXRleHQiKSxucCgiIik7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIik7YSYmKGEudGV4dENvbnRlbnQ9Ilx1N0Y1MVx1OTg3NVx1N0FFRlx1NjY4Mlx1NEUwRFx1NjUyRlx1NjMwMVx1OEJFRFx1OTdGM1x1OEY5M1x1NTE2NVx1RkYwQ1x1OEJGN1x1NEY3Rlx1NzUyOCBBcHAiKX1mdW5jdGlvbiBpcChlKXtpZighKCF4ZS5yZWNvcmRpbmd8fCFlKSl7dmFyIHQ9eGUuc3RhcnRZLSh0eXBlb2YgZS5jbGllbnRZPT0ibnVtYmVyIj9lLmNsaWVudFk6eGUuc3RhcnRZKSxuPXQ+dHA7aWYobiE9PXhlLmNhbmNlbGluZyl7eGUuY2FuY2VsaW5nPW47dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7aSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1jYW5jZWxpbmciLG4pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIiksdT1hJiZhLnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTt1JiYodS50ZXh0Q29udGVudD1uPyJcdTY3N0VcdTVGMDAgXHU1M0Q2XHU2RDg4IjoiXHU2NzdFXHU1RjAwIFx1NTNEMVx1OTAwMSIpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyIpO28mJihvLnRleHRDb250ZW50PW4/Ilx1Njc3RVx1NUYwMFx1NjI0Qlx1NjMwNyBcdTUzRDZcdTZEODgiOiJcdTZCNjNcdTU3MjhcdTgwNDZcdTU0MkNcdTIwMjZcdTRFMEFcdTZFRDFcdTUzRDZcdTZEODgiKX19fWZ1bmN0aW9uIGdzKGUpe2lmKHhlLnJlY29yZGluZyl7ZSYmZS5wcmV2ZW50RGVmYXVsdCgpLHhlLnJlY29yZGluZz0hMTt2YXIgdD0heGUuY2FuY2VsaW5nJiYhIXhlLnRyYW5zY3JpcHQudHJpbSgpLG49eGUudHJhbnNjcmlwdDtPYSgpLHQmJihhcChuKSxIYSghMSkpfX1mdW5jdGlvbiBPYSgpe3hlLmNhbmNlbGluZz0hMTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO2lmKGUpe2UuY2xhc3NMaXN0LnJlbW92ZSgiaXMtcmVjb3JkaW5nIik7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIudm9pY2UtcmVjb3JkLWxhYmVsIik7dCYmKHQudGV4dENvbnRlbnQ9Ilx1NjMwOVx1NEY0RiBcdThCRjRcdThCREQiKX12YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIGFwKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZihuKXt2YXIgaT1uLnZhbHVlfHwiIixhPWk/aS5yZXBsYWNlKC9ccyskLywiIikrIiAiK3Q6dDtuLnZhbHVlPWEsWmUoYSwhMCksQnQobik7dHJ5e24uc2V0U2VsZWN0aW9uUmFuZ2UoYS5sZW5ndGgsYS5sZW5ndGgpfWNhdGNoe319fX1mdW5jdGlvbiBIYShlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZih0KXt2YXIgbj10eXBlb2YgZT09ImJvb2xlYW4iP2U6IXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2b2ljZS1tb2RlIik7aWYodC5jbGFzc0xpc3QudG9nZ2xlKCJ2b2ljZS1tb2RlIixuKSwhbil7eGUucmVjb3JkaW5nPSExLE9hKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKGkmJiFyLnRlcm1pbmFsSW50ZXJhY3RpdmUpdHJ5e2kuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX1jYXRjaHt9fX19ZnVuY3Rpb24gQnQoZSl7aWYoZSl7dmFyIHQ9MzYsbj0xMjAsaT1xcigpO2lmKCFlLnZhbHVlfHxlLnZhbHVlLnRyaW0oKT09PSIiKXtlLnN0eWxlLmhlaWdodD10KyJweCIsZS5zdHlsZS5taW5IZWlnaHQ9dCsicHgiLGUuc3R5bGUub3ZlcmZsb3dZPWk/ImF1dG8iOiJoaWRkZW4iLGUuc2Nyb2xsVG9wPTAsWWkoZSk7cmV0dXJufXZhciBhPWUuc3R5bGUub3ZlcmZsb3dZO2Uuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iLGUuc3R5bGUuaGVpZ2h0PXQrInB4Ijt2YXIgdT1lLnNjcm9sbEhlaWdodCxvPU1hdGgubWF4KHQsTWF0aC5taW4odSxuKSkscz11Pm47ZS5zdHlsZS5oZWlnaHQ9bysicHgiLGUuc3R5bGUubWluSGVpZ2h0PXQrInB4IixlLnN0eWxlLm92ZXJmbG93WT1zfHxpPyJhdXRvIjoiaGlkZGVuIixzP1NpKGUpOmUuc2Nyb2xsVG9wPTAsWWkoZSl9fWZ1bmN0aW9uIHVwKCl7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4hMTt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gdWUoZSk/ISEoZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTohIWUmJmUuc3RhdHVzPT09InJ1bm5pbmcifXZhciB4cj0hMTtmdW5jdGlvbiBocyhlKXtyZXR1cm4hZXx8ZS5hcmNoaXZlZD8hMTp1ZShlKT8hIShlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOmUuc3RhdHVzPT09InJ1bm5pbmcifWZ1bmN0aW9uIF9hKCl7cmV0dXJuIHIuc2Vzc2lvbnMuc29tZShocyl9ZnVuY3Rpb24gb3AoKXt2YXIgZT1yLnNlc3Npb25zLmZpbHRlcihocyk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodClyZXR1cm4gdH1yZXR1cm4gZS5zb3J0KGZ1bmN0aW9uKG4saSl7cmV0dXJuKERhdGUucGFyc2UoaS5zdGFydGVkQXQpfHwwKS0oRGF0ZS5wYXJzZShuLnN0YXJ0ZWRBdCl8fDApfSksZVswXX1mdW5jdGlvbiB5cyhlKXtpZighZSlyZXR1cm4iIjtmb3IodmFyIHQ9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzOltdLG49dC5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9dHlwZW9mIHRbbl09PSJzdHJpbmciP3Rbbl0udHJpbSgpOiIiO2lmKGkpcmV0dXJuIGl9Zm9yKHZhciBhPUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyk/ZS5tZXNzYWdlczpbXSx1PWEubGVuZ3RoLTE7dT49MDt1LS0pe3ZhciBvPWFbdV07aWYoISghb3x8by5yb2xlIT09InVzZXIifHwhQXJyYXkuaXNBcnJheShvLmNvbnRlbnQpKSl7dmFyIHM9by5jb250ZW50LmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZiYmZi50eXBlPT09InRleHQiJiZ0eXBlb2YgZi50ZXh0PT0ic3RyaW5nIn0pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi50ZXh0fSk7aWYocy5sZW5ndGgpcmV0dXJuIHMuam9pbihgCmApLnRyaW0oKTtmb3IodmFyIGw9MDtsPG8uY29udGVudC5sZW5ndGg7bCsrKXt2YXIgZD1vLmNvbnRlbnRbbF07aWYoZCYmZC50eXBlPT09InRvb2xfcmVzdWx0IiYmdHlwZW9mIGQuY29udGVudD09InN0cmluZyIpcmV0dXJuIGQuY29udGVudC50cmltKCl9cmV0dXJuIiJ9fXJldHVybiIifWZ1bmN0aW9uIHNwKGUsdCl7dmFyIG49dHlwZW9mIHQ9PSJzdHJpbmciP3QudHJpbSgpOiIiO2lmKG4mJnlzKGUpPT09bilyZXR1cm4gQSgiXHU0RTBFXHU0RTBBXHU0RTAwXHU2NzYxXHU2RDg4XHU2MDZGXHU3NkY4XHU1NDBDXHVGRjBDXHU1REYyXHU1RkZEXHU3NTY1XHVGRjBDXHU0RTBEXHU0RjFBXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHUzMDAyIiwid2FybmluZyIpLFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKSxhPUFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcyk/ZS5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdLHU9YS5zbGljZSgpO3UucHVzaCh0KSxYKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOnV9KSxlLmlkPT09ci5zZWxlY3RlZElkJiZudCgpO3ZhciBvPWUudGl0bGV8fFpuKGUuY29tbWFuZCl8fCJcdTVGNTNcdTUyNERcdTRGMUFcdThCREQiO3JldHVybiBBKCJcdTVERjJcdTUyQTBcdTUxNjVcdTMwMEMiK28rIlx1MzAwRFx1NzY4NFx1NjM5Mlx1OTYxRlx1RkYwQ1x1NTZERVx1NTkwRFx1N0VEM1x1Njc1Rlx1NTQwRVx1ODFFQVx1NTJBOFx1NTNEMVx1OTAwMVx1RkYwOFx1NTQyQlx1NEUwQVx1NEUwQlx1NjU4N1x1RkYwOVx1MzAwMiIsImluZm8iKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrZS5pZCsiL21lc3NhZ2VzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6dCxpZGVtcG90ZW5jeUtleTppfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLm9rP3MuanNvbigpOnMuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24obCl7dGhyb3cgbmV3IEVycm9yKGwmJmwuZXJyb3J8fCJcdTY1RTBcdTZDRDVcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTMwMDIiKX0pfSkudGhlbihmdW5jdGlvbihzKXtzJiZzLmlkJiYoWChzKSxzLmlkPT09ci5zZWxlY3RlZElkJiZudCgpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe1goe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6YX0pLGUuaWQ9PT1yLnNlbGVjdGVkSWQmJm50KCksQShzJiZzLm1lc3NhZ2V8fCJcdTYzOTJcdTk2MUZcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiLCJlcnJvciIpfSl9ZnVuY3Rpb24gYnMoZSl7dmFyIHQ9b3AoKTtpZih0JiZ1ZSh0KSl7c3AodCxlKTtyZXR1cm59aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+PTEwKXtBKCJcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTVERjJcdTZFRTFcdUZGMDhcdTY3MDBcdTU5MUEgMTAgXHU2NzYxXHVGRjA5XHVGRjBDXHU4QkY3XHU3QjQ5XHU1Rjg1XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU1QjhDXHU2MjEwXHUzMDAyIiwid2FybmluZyIpO3JldHVybn12YXIgbj0iY3NxLSIrRGF0ZS5ub3coKSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiw4KTtyLmNyb3NzU2Vzc2lvblF1ZXVlLnB1c2goe2lkOm4sdGV4dDplLGN3ZDpRZSgpLG1vZGU6ci5jaGF0TW9kZXx8Im1hbmFnZWQiLHRvb2w6JGUoKSxxdWV1ZWRBdDpEYXRlLm5vdygpfSksUXQoKSxEdCgpLEEoIlx1NURGMlx1NjM5Mlx1OTYxRlx1RkYwQ1x1NUMwNlx1NTcyOFx1N0E3QVx1OTVGMlx1NTQwRVx1ODFFQVx1NTJBOFx1NUYwMFx1NTlDQlx1NjVCMFx1NEYxQVx1OEJERFx1MzAwMiIsImluZm8iKX1mdW5jdGlvbiBscChlKXt4cnx8KHhyPSEwLGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvdCh7Y29tbWFuZDplLnRvb2wsY3dkOmUuY3dkLG1vZGU6ZS5tb2RlLGluaXRpYWxJbnB1dDplLnRleHR9KSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHhyPSExLHQuZXJyb3I/KEEodC5lcnJvciwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnVuc2hpZnQoZSksUXQoKSxEdCgpLG51bGwpOmZuKHQpfSkuY2F0Y2goZnVuY3Rpb24odCl7eHI9ITEsQSh0JiZ0Lm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTYzOTJcdTk2MUZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUudW5zaGlmdChlKSxRdCgpLER0KCl9KSl9ZnVuY3Rpb24gZHAoZSl7dmFyIHQ9ci5jcm9zc1Nlc3Npb25RdWV1ZS5maW5kSW5kZXgoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lfSk7aWYoISh0PDApKXt2YXIgbj1yLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDEpWzBdO1F0KCksRHQoKSxmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkob3Qoe2NvbW1hbmQ6bi50b29sLGN3ZDpuLmN3ZCxtb2RlOm4ubW9kZSxpbml0aWFsSW5wdXQ6bi50ZXh0fSkpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmVycm9yPyhBKGkuZXJyb3IsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwwLG4pLFF0KCksRHQoKSxudWxsKTpmbihpKX0pLmNhdGNoKGZ1bmN0aW9uKGkpe0EoaSYmaS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU2MzkyXHU5NjFGXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDAsbiksUXQoKSxEdCgpfSl9fWZ1bmN0aW9uIGNwKGUpe3ZhciB0PXIuY3Jvc3NTZXNzaW9uUXVldWUuZmluZEluZGV4KGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ZX0pO3Q8MHx8KHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMSksUXQoKSxEdCgpLHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCYmQSgiXHU2MzkyXHU5NjFGXHU1REYyXHU2RTA1XHU3QTdBXHUzMDAyIiwiaW5mbyIpKX1mdW5jdGlvbiBGaSgpe2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoIT09MCYmIV9hKCkmJiF4cil7dmFyIGU9ci5jcm9zc1Nlc3Npb25RdWV1ZS5zaGlmdCgpO0R0KCksbHAoZSl9fWZ1bmN0aW9uIEVzKGUpe3ZhciB0PU1hdGguZmxvb3IoKERhdGUubm93KCktZSkvMWUzKTtpZih0PDYwKXJldHVybiB0KyJzIjt2YXIgbj1NYXRoLmZsb29yKHQvNjApO3JldHVybiBuPDYwP24rIm0iOk1hdGguZmxvb3Iobi82MCkrImgifWZ1bmN0aW9uIER0KCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpO2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCl7ZSYmZS5yZW1vdmUoKSxRdCgpO3JldHVybn12YXIgdT10JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpLG89dT90OmEscz11P258fGk6bnVsbDtpZihvKXtlJiZlLnBhcmVudE5vZGUhPT1vJiYoZS5yZW1vdmUoKSxlPW51bGwpLGU/dSYmcyYmZS5uZXh0U2libGluZyE9PXMmJm8uaW5zZXJ0QmVmb3JlKGUscyk6KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jbGFzc05hbWU9ImNyb3NzLXNlc3Npb24tcXVldWUiLHM/by5pbnNlcnRCZWZvcmUoZSxzKTpvLmFwcGVuZENoaWxkKGUpKTt2YXIgbD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aCxkPXIuY3Jvc3NTZXNzaW9uUXVldWUubWFwKGZ1bmN0aW9uKGMsdil7dmFyIGg9Yy50ZXh0Lmxlbmd0aD42MD9jLnRleHQuc2xpY2UoMCw2MCkrIlx1MjAyNiI6Yy50ZXh0LGc9RXMoYy5xdWV1ZWRBdCk7cmV0dXJuJzxkaXYgY2xhc3M9InF1ZXVlLWl0ZW0iIGRhdGEtcXVldWUtaWQ9IicrcChjLmlkKSsnIj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS10ZXh0IiB0aXRsZT0iJytwKGMudGV4dCkrJyI+JytwKGgpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWl0ZW0tYWdlIj4nK2crJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1pdGVtLXNlbmQtbm93IiBkYXRhLXF1ZXVlLWlkPSInK3AoYy5pZCkrJyIgdGl0bGU9Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMSIgdHlwZT0iYnV0dG9uIj5cdTUzRDFcdTkwMDE8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1pdGVtLWNhbmNlbCIgZGF0YS1xdWV1ZS1pZD0iJytwKGMuaWQpKyciIHRpdGxlPSJcdTUzRDZcdTZEODgiIHR5cGU9ImJ1dHRvbiI+XHhENzwvYnV0dG9uPjwvZGl2Pid9KS5qb2luKCIiKSxmPWw+MT8nPGRpdiBjbGFzcz0icXVldWUtaGVhZGVyIj48c3BhbiBjbGFzcz0icXVldWUtaGVhZGVyLWxhYmVsIj5cdTYzOTJcdTk2MUYgJytsKycgXHU2NzYxPC9zcGFuPjxidXR0b24gY2xhc3M9InF1ZXVlLWhlYWRlci1jbGVhciIgaWQ9InF1ZXVlLWNsZWFyLWFsbCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2RTA1XHU3QTdBXHU2MzkyXHU5NjFGIj5cdTZFMDVcdTdBN0E8L2J1dHRvbj48L2Rpdj4nOiIiO2UuaW5uZXJIVE1MPWYrZH19c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucXVldWUtaXRlbS1hZ2UiKTtyLmNyb3NzU2Vzc2lvblF1ZXVlLmZvckVhY2goZnVuY3Rpb24odCxuKXtlW25dJiYoZVtuXS50ZXh0Q29udGVudD1Fcyh0LnF1ZXVlZEF0KSl9KSxGaSgpfX0sNWUzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYodC5jbG9zZXN0KCIjcXVldWUtY2xlYXItYWxsIikpe2UucHJldmVudERlZmF1bHQoKSxyLmNyb3NzU2Vzc2lvblF1ZXVlPVtdLFF0KCksRHQoKSxBKCJcdTYzOTJcdTk2MUZcdTVERjJcdTZFMDVcdTdBN0FcdTMwMDIiLCJpbmZvIik7cmV0dXJufXZhciBuPXQuY2xvc2VzdCgiLnF1ZXVlLWl0ZW0tc2VuZC1ub3ciKTtpZihuKXtlLnByZXZlbnREZWZhdWx0KCksZHAobi5kYXRhc2V0LnF1ZXVlSWQpO3JldHVybn12YXIgaT10LmNsb3Nlc3QoIi5xdWV1ZS1pdGVtLWNhbmNlbCIpO2lmKGkpe2UucHJldmVudERlZmF1bHQoKSxjcChpLmRhdGFzZXQucXVldWVJZCk7cmV0dXJufX0pO2Z1bmN0aW9uIEZzKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKSx0PWU/ZS52YWx1ZS50cmltKCk6IiI7aWYodCl7aWYoX2EoKSl7ZS52YWx1ZT0iIixicyh0KTtyZXR1cm59dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUudmFsdWU9IiIsZS5wbGFjZWhvbGRlcj0iXHU2QjYzXHU1NzI4XHU1NDJGXHU1MkE4XHUyMDI2IixlLmRpc2FibGVkPSEwO3ZhciBpPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixhPVFlKCksdT0kZSgpO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvdCh7Y29tbWFuZDp1LHByb3ZpZGVyOnUsY3dkOmEsbW9kZTppLGluaXRpYWxJbnB1dDp0fSkpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG8uZXJyb3Ipe0Eoby5lcnJvciwiZXJyb3IiKSxlLnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLGUuZGlzYWJsZWQ9ITE7cmV0dXJufXIuc2VsZWN0ZWRJZD1vLmlkLGhlKCksci5kcmFmdHNbby5pZF09IiIsQ3QoKSxYKG8pLGZlKCksU3Ioby5pZCksSG4oby5pZCksZ24oby5pZCkudGhlbihmdW5jdGlvbigpe2UucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMSxPdCghMCl9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe0EobyYmby5tZXNzYWdlfHwodT09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1MzAwMiIpLCJlcnJvciIpLGUucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMX0pfX1mdW5jdGlvbiBmcChlKXtlPWV8fHt9O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksaT10JiZ0LnZhbHVlLnRyaW0oKT90LnZhbHVlLnRyaW0oKTpuP24udmFsdWUudHJpbSgpOiIiO2lmKHIuc2VsZWN0ZWRJZCl7aSYmd3MoZSk7cmV0dXJufWlmKGkmJl9hKCkpe24mJihuLnZhbHVlPSIiKSx0JiYodC52YWx1ZT0iIiksWWkobiksYnMoaSk7cmV0dXJufXZhciBhPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIix1PVFlKCksbz0kZSgpO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvdCh7Y29tbWFuZDpvLHByb3ZpZGVyOm8sY3dkOnUsbW9kZTphLGluaXRpYWxJbnB1dDppfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3I/KEEocy5lcnJvciwiZXJyb3IiKSxudWxsKTooci5zZWxlY3RlZElkPXMuaWQsaGUoKSxyLmRyYWZ0c1tzLmlkXT0iIixDdCgpLG4mJihuLnZhbHVlPSIiKSx0JiYodC52YWx1ZT0iIiksWChzKSxmZSgpLFNyKHMuaWQpLEhuKHMuaWQpLGduKHMuaWQpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe0EocyYmcy5tZXNzYWdlfHwobz09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1MzAwMiIpLCJlcnJvciIpfSl9ZnVuY3Rpb24gU3IoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiB2LmlkPT09ZX0pLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtdGl0bGUiKSxzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1pbmZvIiksbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdW1tYXJ5LXZhbHVlIiksZD11ZSh0KTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixkKSxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGQ/ci5jdXJyZW50Vmlldz0iY2hhdCI6ci5jdXJyZW50Vmlldz0idGVybWluYWwiO3ZhciBmPXQ/Wm4odC5jb21tYW5kKToiV2FuZCIsYz10P3ZyKHQpOiJcdTVGMDBcdTU5Q0JcdTVCRjlcdThCREQiO28mJihvLnRleHRDb250ZW50PWYpLHMmJihzLnRleHRDb250ZW50PWMpLGwmJihsLnRleHRDb250ZW50PWYpLGR8fHIudGVybWluYWx8fFFuKCksVWkoKSxPdCghMCksZHx8R2UoInZpZXctc3dpdGNoIix7Zm9yY2VSZXBsYXk6ITB9KX1mdW5jdGlvbiB3cyhlKXtlPWV8fHt9O3ZhciB0PSEhZS5pbnRlcnJ1cHQsbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIik7aWYoci50ZXJtaW5hbEludGVyYWN0aXZlJiYhbilyZXR1cm4gQSgiXHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyXHU2QTIxXHU1RjBGXHU1RjAwXHU1NDJGXHU2NUY2XHVGRjBDXHU4QkY3XHU3NkY0XHU2M0E1XHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU4RjkzXHU1MTY1XHUzMDAyIiwiaW5mbyIpLFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxhPWk/aS52YWx1ZToiIix1PWt0KCksbz1yLnBlbmRpbmdBdHRhY2htZW50cy5sZW5ndGg+MDtpZihhfHxvKXt2YXIgcz1vJiZyLnNlbGVjdGVkSWQ/eGcoci5zZWxlY3RlZElkKS5jYXRjaChmdW5jdGlvbihsKXtBKCJcdTk2NDRcdTRFRjZcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjU6ICIrKGwmJmwubWVzc2FnZXx8bCksImVycm9yIik7dmFyIGQ9bCBpbnN0YW5jZW9mIEVycm9yP2w6bmV3IEVycm9yKFN0cmluZyhsKSk7dGhyb3cgZC5fX3dhbmRUb2FzdGVkPSEwLGR9KTpQcm9taXNlLnJlc29sdmUoW10pO3JldHVybiBzLnRoZW4oZnVuY3Rpb24obCl7dmFyIGQ9U2cobCksZj1kKyhhfHwobC5sZW5ndGg/Ilx1OEJGN1x1NjdFNVx1NzcwQlx1OTY0NFx1NEVGNlx1MzAwMiI6IiIpKTtsLmxlbmd0aCYmQWcoKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO2lmKGMmJmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdWUodSkpcmV0dXJuIHBwKGYsaSx1LHtpbnRlcnJ1cHQ6dH0pO3ZhciB2PUlwKHUsZiksaD0hci53c0Nvbm5lY3RlZDtyZXR1cm4gaD8ocXAodiksaSYmKGkudmFsdWU9IiIsQnQoaSkpLFplKCIiKSxQcm9taXNlLnJlc29sdmUoKSk6U3AodSkudGhlbihmdW5jdGlvbihnKXtpZighZylyZXR1cm4gbnVsbDt2YXIgbT1yLmN1cnJlbnRWaWV3O2lmKGcmJmcucHJvdmlkZXI9PT0iY29kZXgiJiZyLnNlbGVjdGVkSWQhPT1nLmlkKXRocm93IG5ldyBFcnJvcigiQ29kZXggc2Vzc2lvbiBjaGFuZ2VkIGJlZm9yZSBpbnB1dCBzZW5kLiIpO3JldHVybiBqdSgpLFRwKHYsImVudGVyX3RleHQiLDMwLG0pLnRoZW4oZnVuY3Rpb24oKXtpJiZpLnZhbHVlPT09YSYmKGkudmFsdWU9IiIsQnQoaSkpLFplKCIiKX0pfSkuY2F0Y2goZnVuY3Rpb24oZyl7dGhyb3cgQSh4cyhnKSwiZXJyb3IiKSxnJiYoZy5fX3dhbmRUb2FzdGVkPSEwKSxnfSl9KS5jYXRjaChmdW5jdGlvbihsKXt0aHJvdyBsJiZsLl9fd2FuZFRvYXN0ZWR8fEEoeHMobCksImVycm9yIiksbH0pfXJldHVybiBQcm9taXNlLnJlc29sdmUoKX12YXIgQ3M9e30sQnM9MzUwO2Z1bmN0aW9uIHBwKGUsdCxuLGkpe2k9aXx8e307dmFyIGE9ISFpLmludGVycnVwdDtpZighci5zZWxlY3RlZElkfHwhZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7aWYoIW4pcmV0dXJuIEEoIlx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHU9ISEobi5zdHJ1Y3R1cmVkU3RhdGUmJm4uc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZuLnN0YXR1cz09PSJydW5uaW5nIik7aWYodSYmIWEmJnlzKG4pPT09ZS50cmltKCkpcmV0dXJuIHQmJih0LnZhbHVlPSIiLEJ0KHQpKSxaZSgiIiksQSgiXHU0RTBFXHU0RTBBXHU0RTAwXHU2NzYxXHU2RDg4XHU2MDZGXHU3NkY4XHU1NDBDXHVGRjBDXHU1REYyXHU1RkZEXHU3NTY1XHVGRjBDXHU0RTBEXHU0RjFBXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHUzMDAyIiwid2FybmluZyIpLFBuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgbz1EYXRlLm5vdygpLHM9Q3Nbbi5pZF18fDA7aWYoby1zPEJzKXJldHVybiBjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RTdHJ1Y3R1cmVkSW5wdXQ6IGR1cGxpY2F0ZSBzdWJtaXQgKHdpdGhpbiAiK0JzKyJtcykgaWdub3JlZCBmb3Igc2Vzc2lvbiIsbi5pZCksUHJvbWlzZS5yZXNvbHZlKCk7Q3Nbbi5pZF09bzt2YXIgbD11JiZhLGQ9dSYmIWEsZj1jcihBcnJheS5pc0FycmF5KG4ubWVzc2FnZXMpP24ubWVzc2FnZXMuc2xpY2UoKTpbXSksYztpZihkKXt2YXIgdj1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTt2LnB1c2goZSksYz17aWQ6bi5pZCxxdWV1ZWRNZXNzYWdlczp2fSxYKGMpO3ZhciBoPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihFKXtyZXR1cm4gRS5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1OZShoLFhlKGgsaC5vdXRwdXQsITEpKSxQbigiXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHUyMDI2IiksamUoITApLGRuKCksQSh2Lmxlbmd0aD4xPyJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdUZGMDhcdTUxNzEgIit2Lmxlbmd0aCsiIFx1Njc2MVx1N0I0OVx1NUY4NVx1RkYwOSI6Ilx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1RkYwQ1x1N0I0OVx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1NUI4Q1x1NjIxMFx1NEYxQVx1ODFFQVx1NTJBOFx1NTNEMVx1OTAwMVx1MzAwMiIsImluZm8iKX1lbHNle3ZhciBnPXtyb2xlOiJ1c2VyIixjb250ZW50Olt7dHlwZToidGV4dCIsdGV4dDplfV19O2YucHVzaChnKTt2YXIgbT1PYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITB9KTtYKHtpZDpuLmlkLHN0YXR1czoicnVubmluZyIsbWVzc2FnZXM6ZixzdHJ1Y3R1cmVkU3RhdGU6bX0pLHIuY3VycmVudE1lc3NhZ2VzPU5lKE9iamVjdC5hc3NpZ24oe30sbix7c3RhdHVzOiJydW5uaW5nIixtZXNzYWdlczpmLHN0cnVjdHVyZWRTdGF0ZTptfSksZiksUG4obD8iXHU1REYyXHU0RTJEXHU2NUFEXHVGRjBDXHU2QjYzXHU1NzI4XHU1OTA0XHU3NDA2XHU2NUIwXHU2RDg4XHU2MDZGXHUyMDI2IjoiXHU2MDFEXHU4MDAzXHU0RTJEXHUyMDI2IiksanUoKSxqZSghMCksbCYmQSgiXHU1REYyXHU0RTJEXHU2NUFEXHU0RTBBXHU0RTAwXHU2NzYxXHU1NkRFXHU1OTBEXHVGRjBDXHU2QjYzXHU1NzI4XHU1OTA0XHU3NDA2XHU2NUIwXHU2RDg4XHU2MDZGXHUyMDI2IiwiaW5mbyIpfXQmJih0LnZhbHVlPSIiLEJ0KHQpKSxaZSgiIik7dmFyIHk9ci5xdWV1ZUVwb2NoLEM9dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApO3JldHVybiBmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrbi5pZCsiL21lc3NhZ2VzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSxpbnRlcnJ1cHQ6bHx8dm9pZCAwLGlkZW1wb3RlbmN5S2V5OkN9KX0pLnRoZW4oZnVuY3Rpb24oRSl7cmV0dXJuIEUub2s/RS5qc29uKCk6RS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihCKXt2YXIgRD1uZXcgRXJyb3IoQiYmQi5lcnJvcnx8Ilx1NjVFMFx1NkNENVx1NTNEMVx1OTAwMVx1N0VEM1x1Njc4NFx1NTMxNlx1NkQ4OFx1NjA2Rlx1MzAwMiIpO3Rocm93IEQuZXJyb3JDb2RlPUImJkIuZXJyb3JDb2RlLEQuaHR0cFN0YXR1cz1FLnN0YXR1cyxEfSl9KS50aGVuKGZ1bmN0aW9uKEUpe2lmKEUmJkUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKEUuZXJyb3IpO2lmKEUmJkUuaWQmJihyLnF1ZXVlRXBvY2g+eSYmRS5xdWV1ZWRNZXNzYWdlcyYmZGVsZXRlIEUucXVldWVkTWVzc2FnZXMsWChFKSxFLmlkPT09ci5zZWxlY3RlZElkKSl7dmFyIEI9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEQpe3JldHVybiBELmlkPT09RS5pZH0pfHxFO3IuY3VycmVudE1lc3NhZ2VzPU5lKEIsWGUoQixFLm91dHB1dCwhMSkpLGplKCEwKSxkbigpfX0pLmNhdGNoKGZ1bmN0aW9uKEUpe2lmKEUmJkUuZXJyb3JDb2RlPT09ImR1cGxpY2F0ZV9pZGVtcG90ZW5jeV9rZXkiKXtBKEUubWVzc2FnZXx8Ilx1NjhDMFx1NkQ0Qlx1NTIzMFx1OTFDRFx1NTkwRFx1NTNEMVx1OTAwMVx1RkYwQ1x1NURGMlx1NjJFNlx1NjIyQVx1MzAwMiIsIndhcm5pbmciKSxQbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIik7cmV0dXJufWlmKGQpe3ZhciBCPUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKFgoe2lkOm4uaWQscXVldWVkTWVzc2FnZXM6Qn0pLG4uaWQ9PT1yLnNlbGVjdGVkSWQpe3ZhciBEPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihIKXtyZXR1cm4gSC5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1OZShELFhlKEQsRC5vdXRwdXQsITEpKSxqZSghMCksZG4oKX19ZWxzZXt2YXIgRj1mLnNsaWNlKDAsLTEpO1goe2lkOm4uaWQsc3RhdHVzOm4uc3RhdHVzLG1lc3NhZ2VzOkYsc3RydWN0dXJlZFN0YXRlOk9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMX0pfSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudE1lc3NhZ2VzPU5lKE9iamVjdC5hc3NpZ24oe30sbix7bWVzc2FnZXM6RixzdHJ1Y3R1cmVkU3RhdGU6T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiExfSl9KSxGKSxqZSghMCkpfXZhciBJPUUmJkUubWVzc2FnZXx8IiIsTD1JPT09IkZhaWxlZCB0byBmZXRjaCJ8fEk9PT0iTmV0d29ya0Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byBmZXRjaCByZXNvdXJjZS4ifHxJPT09IkxvYWQgZmFpbGVkInx8L2Fib3J0ZWR8YWJvcnRlcnJvcnxuZXR3b3JrZXJyb3J8ZmFpbGVkIHRvIGZldGNoL2kudGVzdChJKTtMfHxBKEUmJkUubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTNEMVx1OTAwMVx1N0VEM1x1Njc4NFx1NTMxNlx1NkQ4OFx1NjA2Rlx1MzAwMiIsImVycm9yIiksUG4oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpfSl9ZnVuY3Rpb24gUG4oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWhpbnQiKTt0JiYodC50ZXh0Q29udGVudD1lKX1mdW5jdGlvbiBkbigpe250KCl9dmFyIHZwPTEwLERzPTI2O2Z1bmN0aW9uIG1wKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIilyZXR1cm4iIjt2YXIgdD1lLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO3JldHVybiB0Lmxlbmd0aDw9RHM/dDp0LnNsaWNlKDAsRHMpKyJcdTIwMjYifWZ1bmN0aW9uIGdwKCl7cmV0dXJuISFyLnF1ZXVlQmFyRXhwYW5kZWR9ZnVuY3Rpb24gaHAoZSl7aWYoISFyLnF1ZXVlQmFyRXhwYW5kZWQhPSEhZSl7ci5xdWV1ZUJhckV4cGFuZGVkPSEhZTt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucXVldWUtYmFyIik7dCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFlKX19ZnVuY3Rpb24geXAoZSx0LG4pe3ZhciBpPWUubGVuZ3RoLGE9InF1ZXVlLWJhciI7biYmKGErPSIgcXVldWUtYmFyLWNhcGFjaXR5IiksdCYmKGErPSIgcXVldWUtYmFyLWluZmxpZ2h0Iik7Zm9yKHZhciB1PXQ/Ilx1NEUyRFx1NjVBRFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1RkYwQ1x1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MSI6Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MSIsbz0iIixzPTA7czxpO3MrKyl7dmFyIGw9ZVtzXT09bnVsbD8iIjpTdHJpbmcoZVtzXSksZD1tcChsKSxmPWwrIlx1RkYwOFx1NjMwOVx1NEY0Rlx1NTNFRlx1NjJENlx1NTJBOFx1OEMwM1x1NUU4Rlx1RkYwOSI7bys9JzxsaSBjbGFzcz0icXVldWUtYmFyLWl0ZW0iIGRhdGEtaW5kZXg9IicrcysnIiBkYXRhLWFjdGlvbj0iZHJhZyIgdGl0bGU9IicrcChmKSsnIj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWl0ZW0taW5kZXgiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nKyhzKzEpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1pdGVtLXRleHQiPicrcChkKSsnPC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tcHJvbW90ZSIgZGF0YS1hY3Rpb249InByb21vdGUtaXRlbSIgdGl0bGU9IicrcCh1KSsnIiBhcmlhLWxhYmVsPSJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTdCMkMgJysocysxKSsnIFx1Njc2MSI+PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTEzIDIgTDQgMTQgTDExIDE0IEwxMCAyMiBMMjAgOSBMMTMgOSBaIi8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1kZWxldGUiIGRhdGEtYWN0aW9uPSJkZWxldGUiIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1N0IyQyAnKyhzKzEpKycgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGIiB0aXRsZT0iXHU1MjIwXHU5NjY0Ij48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iMTgiIHkyPSI2Ii8+PC9zdmc+PC9idXR0b24+PC9saT4nfXZhciBjPSIiO3JldHVybiBpPj0yJiYoYz0nPGRpdiBjbGFzcz0icXVldWUtYmFyLWhlYWQiPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaGVhZC1jb3VudCI+JytpKycgXHU2NzYxXHU2MzkyXHU5NjFGPC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWNsZWFyLWFsbCIgZGF0YS1hY3Rpb249ImNsZWFyLWFsbCIgdGl0bGU9Ilx1NkUwNVx1N0E3QVx1NTE2OFx1OTBFOFx1NjM5Mlx1OTYxRiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4ICcraSsnIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2RiI+XHU2RTA1XHU3QTdBPC9idXR0b24+PC9kaXY+JyksJzxkaXYgY2xhc3M9IicrYSsnIiBkYXRhLXF1ZXVlLWJhcj0iMSIgdGl0bGU9Ilx1NjM5Mlx1OTYxRiAnK2krJyBcdTY3NjFcdUZGMDhcdTYzMDlcdTRGNEZcdTZDMTRcdTZDRTFcdTUzRUZcdThDMDNcdTVFOEZcdUZGMDkiPicrYysnPG9sIGNsYXNzPSJxdWV1ZS1iYXItbGlzdCIgZGF0YS1xdWV1ZS1saXN0PSIxIj4nK28rIjwvb2w+PC9kaXY+In1mdW5jdGlvbiBudCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWV1ZS1iYXItaG9zdCIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIixpPW4/b2EodCk6W107aWYoaT1BcnJheS5pc0FycmF5KGkpP2k6W10sIW58fGkubGVuZ3RoPT09MCl7ZS5oaWRkZW49ITAsZS5pbm5lckhUTUw9IiIsci5xdWV1ZUJhckV4cGFuZGVkPSExO3JldHVybn1pZighci5xdWV1ZUJhckRyYWcpe2UuaGlkZGVuPSExO3ZhciBhPSEhKHQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmdC5zdGF0dXM9PT0icnVubmluZyIpLHU9aS5sZW5ndGg+PXZwO2UuaW5uZXJIVE1MPXlwKGksYSx1KX19fWZ1bmN0aW9uIHdpKGUsdCl7WCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczp0fSk7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZS5pZH0pfHxlO3IuY3VycmVudE1lc3NhZ2VzPU5lKG4sWGUobixuLm91dHB1dCwhMSkpLGplKCEwKSxudCgpfWZ1bmN0aW9uIGJwKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodC5xdWV1ZWRNZXNzYWdlcyk/dC5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoZTwwfHxlPj1uLmxlbmd0aCkpe3ZhciBpPW4uc2xpY2UoKSxhPW4uc2xpY2UoMCxlKS5jb25jYXQobi5zbGljZShlKzEpKTtYKHtpZDp0LmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KTt2YXIgdT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT10LmlkfSl8fHQ7ci5jdXJyZW50TWVzc2FnZXM9TmUodSxYZSh1LHUub3V0cHV0LCExKSksamUoITApLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK3QuaWQrIi9xdWV1ZWQvIitlLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obyl7aWYoIW8ub2spcmV0dXJuIG8uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKHMpe3Rocm93IG5ldyBFcnJvcihzJiZzLmVycm9yfHwiXHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1Iil9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe3dpKHQsaSksQShvJiZvLm1lc3NhZ2V8fCJcdTUyMjBcdTk2NjRcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX1mdW5jdGlvbiBFcCgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcyk/ZS5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKHQubGVuZ3RoIT09MCl7ci5xdWV1ZUJhckV4cGFuZGVkPSExLFgoe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6W119KTt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lLmlkfSl8fGU7ci5jdXJyZW50TWVzc2FnZXM9TmUobixYZShuLG4ub3V0cHV0LCExKSksamUoITApLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9xdWV1ZWQiLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoIWkub2spcmV0dXJuIGkuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcihhJiZhLmVycm9yfHwiXHU2RTA1XHU3QTdBXHU1OTMxXHU4RDI1Iil9KTtBKCJcdTVERjJcdTZFMDVcdTdBN0EgIit0Lmxlbmd0aCsiIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1MzAwMiIsImluZm8iKX0pLmNhdGNoKGZ1bmN0aW9uKGkpe3dpKGUsdCksQShpJiZpLm1lc3NhZ2V8fCJcdTZFMDVcdTdBN0FcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX1mdW5jdGlvbiBGcChlKXtpZighci5xdWV1ZUJhclByb21vdGluZyl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodCl7dmFyIG49QXJyYXkuaXNBcnJheSh0LnF1ZXVlZE1lc3NhZ2VzKT90LnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShlPDB8fGU+PW4ubGVuZ3RoKSl7dmFyIGk9bltlXSxhPW4uc2xpY2UoMCxlKS5jb25jYXQobi5zbGljZShlKzEpKSx1PW4uc2xpY2UoKSxvPSEhKHQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmdC5zdGF0dXM9PT0icnVubmluZyIpO3IucXVldWVCYXJQcm9tb3Rpbmc9ITAsYS5sZW5ndGg9PT0wJiYoci5xdWV1ZUJhckV4cGFuZGVkPSExKSxYKHtpZDp0LmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KTt2YXIgcz10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCk7QShvPyJcdTVERjJcdThCRjdcdTZDNDJcdTRFMkRcdTY1QURcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdUZGMENcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjFcdTMwMDIiOiJcdTVERjJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjFcdTZEODhcdTYwNkZcdTMwMDIiLCJpbmZvIiksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK3QuaWQrIi9xdWV1ZWQvIitlKyIvcHJvbW90ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2V4cGVjdGVkVGV4dDppLGlkZW1wb3RlbmN5S2V5OnN9KX0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwub2s/bC5qc29uKCk6bC5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oZCl7dGhyb3cgbmV3IEVycm9yKGQmJmQuZXJyb3J8fCJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjUiKX0pfSkudGhlbihmdW5jdGlvbihsKXtpZihsJiZsLmlkJiYoWChsKSxsLmlkPT09ci5zZWxlY3RlZElkKSl7dmFyIGQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGYpe3JldHVybiBmLmlkPT09bC5pZH0pfHxsO3IuY3VycmVudE1lc3NhZ2VzPU5lKGQsWGUoZCxsLm91dHB1dCwhMSkpLGplKCEwKSxudCgpfXIucXVldWVCYXJQcm9tb3Rpbmc9ITF9KS5jYXRjaChmdW5jdGlvbihsKXtyLnF1ZXVlQmFyUHJvbW90aW5nPSExLHdpKHQsdSksQShsJiZsLm1lc3NhZ2V8fCJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX19ZnVuY3Rpb24gd3AoZSx0KXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihuKXt2YXIgaT1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGkubGVuZ3RoPD0xKSYmdCl7dmFyIGE9dC5wYXJlbnRFbGVtZW50O2lmKGEpe3ZhciB1PU51bWJlcih0LmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSxvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEuY2hpbGRyZW4pLHM9by5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9KSxsPTM7cy5sZW5ndGg+PTImJihsPU1hdGgubWF4KDAsc1sxXS50b3Atc1swXS50b3Atc1swXS5oZWlnaHQpKSxlLnByZXZlbnREZWZhdWx0KCk7dHJ5e3Quc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe31pZihuYXZpZ2F0b3ImJm5hdmlnYXRvci52aWJyYXRlKXRyeXtuYXZpZ2F0b3IudmlicmF0ZSg4KX1jYXRjaHt9ci5xdWV1ZUJhckRyYWc9e3BvaW50ZXJJZDplLnBvaW50ZXJJZCxoYW5kbGVFbDp0LGl0ZW1FbDp0LGxpc3RFbDphLHNpYmxpbmdzOm8scmVjdHM6cyxvcmlnSW5kZXg6dSx0YXJnZXRJbmRleDp1LHN0YXJ0WTplLmNsaWVudFksZ2FwOmwscXVldWVTbmFwc2hvdDppfSx0LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksby5mb3JFYWNoKGZ1bmN0aW9uKGMpe2MhPT10JiZjLmNsYXNzTGlzdC5hZGQoInF1ZXVlLWJhci1pdGVtLXNsaWRpbmciKX0pO3ZhciBkPWZ1bmN0aW9uKGMpe0JwKGMpfSxmPWZ1bmN0aW9uKGMpe0RwKGMpfTtyLnF1ZXVlQmFyRHJhZy5tb3ZlSGFuZGxlcj1kLHIucXVldWVCYXJEcmFnLnVwSGFuZGxlcj1mLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGQpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixmKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLGYpfX19fWZ1bmN0aW9uIENwKGUsdCxuLGkpe2Zvcih2YXIgYT1uLmxlbmd0aCx1PVtdLG89MDtvPGE7bysrKXUucHVzaChvKTt1LnNwbGljZShlLDEpLHUuc3BsaWNlKHQsMCxlKTtmb3IodmFyIHM9blswXS50b3AsbD1uWzBdLnRvcCxkPTE7ZDxhO2QrKyluW2RdLnRvcDxsJiYobD1uW2RdLnRvcCk7Zm9yKHZhciBmPXt9LGM9bCx2PTA7djxhO3YrKyl7dmFyIGg9dVt2XTtmW2hdPWMsYys9bltoXS5oZWlnaHQraX1yZXR1cm4gZn1mdW5jdGlvbiBCcChlKXt2YXIgdD1yLnF1ZXVlQmFyRHJhZztpZighKCF0fHxlLnBvaW50ZXJJZCE9PXQucG9pbnRlcklkKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPWUuY2xpZW50WS10LnN0YXJ0WTt0Lml0ZW1FbC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoIituKyJweCkiO2Zvcih2YXIgaT10LnJlY3RzW3Qub3JpZ0luZGV4XS50b3ArdC5yZWN0c1t0Lm9yaWdJbmRleF0uaGVpZ2h0LzIrbixhPXQub3JpZ0luZGV4LHU9MDt1PHQucmVjdHMubGVuZ3RoO3UrKylpZih1IT09dC5vcmlnSW5kZXgpe3ZhciBvPXQucmVjdHNbdV0udG9wK3QucmVjdHNbdV0uaGVpZ2h0LzI7dTx0Lm9yaWdJbmRleCYmaTxvP2E9TWF0aC5taW4oYSx1KTp1PnQub3JpZ0luZGV4JiZpPm8mJihhPU1hdGgubWF4KGEsdSkpfWlmKGEhPT10LnRhcmdldEluZGV4KXt0LnRhcmdldEluZGV4PWE7dmFyIHM9Q3AodC5vcmlnSW5kZXgsYSx0LnJlY3RzLHQuZ2FwKTt0LnNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24obCxkKXtpZihkIT09dC5vcmlnSW5kZXgpe3ZhciBmPXNbZF0tdC5yZWN0c1tkXS50b3A7bC5zdHlsZS50cmFuc2Zvcm09Zj8idHJhbnNsYXRlWSgiK2YrInB4KSI6IiJ9fSl9fX1mdW5jdGlvbiBEcChlKXt2YXIgdD1yLnF1ZXVlQmFyRHJhZztpZighKCF0fHxlJiZlLnBvaW50ZXJJZCE9PXQucG9pbnRlcklkKSl7dHJ5e3QuaGFuZGxlRWwucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHQucG9pbnRlcklkKX1jYXRjaHt9dC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdC5tb3ZlSGFuZGxlciksdC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHQudXBIYW5kbGVyKSx0LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHQudXBIYW5kbGVyKTt2YXIgbj10Lm9yaWdJbmRleCxpPXQudGFyZ2V0SW5kZXgsYT10LnF1ZXVlU25hcHNob3Q7aWYodC5zaWJsaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGQpe2Quc3R5bGUudHJhbnNmb3JtPSIiLGQuY2xhc3NMaXN0LnJlbW92ZSgicXVldWUtYmFyLWl0ZW0tc2xpZGluZyIpfSksdC5pdGVtRWwuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxyLnF1ZXVlQmFyRHJhZz1udWxsLG49PT1pKXtudCgpO3JldHVybn1mb3IodmFyIHU9W10sbz0wO288YS5sZW5ndGg7bysrKXUucHVzaChvKTt1LnNwbGljZShuLDEpLHUuc3BsaWNlKGksMCxuKTt2YXIgcz11Lm1hcChmdW5jdGlvbihkKXtyZXR1cm4gYVtkXX0pLGw9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoIWwpe250KCk7cmV0dXJufVgoe2lkOmwuaWQscXVldWVkTWVzc2FnZXM6c30pLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2wuaWQrIi9xdWV1ZWQiLHttZXRob2Q6IlBBVENIIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7b3JkZXI6dX0pfSkudGhlbihmdW5jdGlvbihkKXtpZighZC5vaylyZXR1cm4gZC5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oZil7dGhyb3cgbmV3IEVycm9yKGYmJmYuZXJyb3J8fCJcdTYzOTJcdTVFOEZcdTU5MzFcdThEMjUiKX0pfSkuY2F0Y2goZnVuY3Rpb24oZCl7d2kobCxhKSxBKGQmJmQubWVzc2FnZXx8Ilx1OEMwM1x1NjU3NFx1NjM5Mlx1OTYxRlx1OTg3QVx1NUU4Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19ZnVuY3Rpb24ga3AoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVldWUtYmFyLWhvc3QiKTshZXx8ZS5fX3F1ZXVlRGVsZWdhdGVkfHwoZS5fX3F1ZXVlRGVsZWdhdGVkPSEwLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0LGk9biYmbi5jbG9zZXN0P24uY2xvc2VzdCgiW2RhdGEtYWN0aW9uXSIpOm51bGw7aWYoaSYmZS5jb250YWlucyhpKSl7dmFyIGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7aWYoYT09PSJkcmFnIilyZXR1cm47aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksYT09PSJwcm9tb3RlLWl0ZW0iKXt2YXIgdT1pLmNsb3Nlc3QoIi5xdWV1ZS1iYXItaXRlbSIpO3UmJkZwKE51bWJlcih1LmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSl9ZWxzZSBpZihhPT09ImRlbGV0ZSIpe3ZhciBvPWkuY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik7byYmYnAoTnVtYmVyKG8uZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpKX1lbHNlIGE9PT0iY2xlYXItYWxsIiYmRXAoKTtyZXR1cm59fSksZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsZnVuY3Rpb24odCl7aWYoISh0LmJ1dHRvbiE9PXZvaWQgMCYmdC5idXR0b24hPT0wKSl7dmFyIG49dC50YXJnZXQ7aWYoIShuJiZuLmNsb3Nlc3QmJm4uY2xvc2VzdCgnW2RhdGEtYWN0aW9uPSJkZWxldGUiXSwgW2RhdGEtYWN0aW9uPSJwcm9tb3RlLWl0ZW0iXSwgW2RhdGEtYWN0aW9uPSJjbGVhci1hbGwiXSwgW2RhdGEtYWN0aW9uPSJleHBhbmQiXScpKSl7dmFyIGk9biYmbi5jbG9zZXN0P24uY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik6bnVsbDtpJiZ3cCh0LGkpfX19KSxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJmdwKCkmJih0LnN0b3BQcm9wYWdhdGlvbigpLGhwKCExKSl9KSl9ZnVuY3Rpb24ga3MoZSl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUuY29udGVudCkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsbj0wO248ZS5jb250ZW50Lmxlbmd0aDtuKyspe3ZhciBpPWUuY29udGVudFtuXTtpZihpKXtpZih0eXBlb2YgaS50ZXh0PT0ic3RyaW5nIiYmKHQrPWkudGV4dC5sZW5ndGgpLHR5cGVvZiBpLnRoaW5raW5nPT0ic3RyaW5nIiYmKHQrPWkudGhpbmtpbmcubGVuZ3RoKSx0eXBlb2YgaS5jb250ZW50PT0ic3RyaW5nIil0Kz1pLmNvbnRlbnQubGVuZ3RoO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpKWZvcih2YXIgYT0wO2E8aS5jb250ZW50Lmxlbmd0aDthKyspe3ZhciB1PWkuY29udGVudFthXTt1JiZ0eXBlb2YgdS50ZXh0PT0ic3RyaW5nIiYmKHQrPXUudGV4dC5sZW5ndGgpfWlmKGkuaW5wdXQpdHJ5e3QrPUpTT04uc3RyaW5naWZ5KGkuaW5wdXQpLmxlbmd0aH1jYXRjaHt9fX1yZXR1cm4gdH1mdW5jdGlvbiBBcChlLHQpe2lmKCFlKXJldHVybiB0O2lmKCF0KXJldHVybiBlO3ZhciBuPWtzKGUpLGk9a3ModCk7cmV0dXJuIGk+PW4/dDpPYmplY3QuYXNzaWduKHt9LGUse3VzYWdlOnQudXNhZ2V8fGUudXNhZ2V9KX1mdW5jdGlvbiBOZShlLHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodCk/Y3IodCk6W10saT1BcnJheS5pc0FycmF5KG4pP24uc2xpY2UoKTpbXTtpZighZXx8ZS5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gaTtpZihlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpe3ZhciBhPWlbaS5sZW5ndGgtMV07KCFhfHxhLnJvbGUhPT0iYXNzaXN0YW50IikmJmkucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50Olt7dHlwZToidGV4dCIsdGV4dDoiIixfX3Byb2Nlc3Npbmc6ITB9XX0pfXJldHVybiBpfWZ1bmN0aW9uIEFzKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7ZWkoZSksZG4oKX1mdW5jdGlvbiB4cyhlKXt2YXIgdD1rdCgpLG49dCYmdC5wcm92aWRlcj09PSJjb2RleCI7cmV0dXJuIGUmJihlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9SVU5OSU5HInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT19QVFkiKT9uPyJDb2RleCBcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU1NzI4XHU0RjYwXHU0RTBCXHU2QjIxXHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHU2NUY2XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHUzMDAyIjoiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENsYXVkZSBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTU3MjhcdTRGNjBcdTRFMEJcdTZCMjFcdTUzRDFcdTkwMDFcdTZEODhcdTYwNkZcdTY1RjZcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTMwMDIiOmUmJmUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX0ZPVU5EIj8iXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIjplJiZlLm1lc3NhZ2V8fChuPyJDb2RleCBcdTRGMUFcdThCRERcdTY2ODJcdTRFMERcdTUzRUZcdTc1MjhcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU4MUVBXHU1MkE4XHU1QzFEXHU4QkQ1XHU2MDYyXHU1OTBEXHUzMDAyIjoiXHU0RjFBXHU4QkREXHU2NjgyXHU0RTBEXHU1M0VGXHU3NTI4XHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENsYXVkZSBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTgxRUFcdTUyQThcdTVDMURcdThCRDVcdTYwNjJcdTU5MERcdTMwMDIiKX1mdW5jdGlvbiBTcyhlKXt2YXIgdD1uZXcgRXJyb3IoZSYmZS5lcnJvcnx8Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1MzAwMiIpO3JldHVybiBlJiZ0eXBlb2YgZT09Im9iamVjdCImJih0LmVycm9yQ29kZT1lLmVycm9yQ29kZXx8bnVsbCx0LnNlc3Npb25JZD1lLnNlc3Npb25JZHx8ci5zZWxlY3RlZElkfHxudWxsLHQuc2Vzc2lvblN0YXR1cz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwic2Vzc2lvblN0YXR1cyIpP2Uuc2Vzc2lvblN0YXR1czpudWxsKSx0fWZ1bmN0aW9uIElzKGUpe3JldHVybiBlJiYoZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfUlVOTklORyJ8fGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9fUFRZInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfRk9VTkQiKX1mdW5jdGlvbiB4cChlLHQpe2UmJlgoe2lkOmUsc3RhdHVzOnR8fCJleGl0ZWQifSl9ZnVuY3Rpb24gJGcoZSl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpfHxlLm1lc3NhZ2VzLmxlbmd0aDwyKXJldHVybiExO3ZhciB0PWUubWVzc2FnZXMuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5yb2xlPT09InVzZXIiJiZBcnJheS5pc0FycmF5KGkuY29udGVudCkmJmkuY29udGVudC5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnR5cGU9PT0idGV4dCImJnR5cGVvZiBhLnRleHQ9PSJzdHJpbmciJiZhLnRleHQudHJpbSgpLmxlbmd0aD4wfSl9KSxuPWUubWVzc2FnZXMuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkoaS5jb250ZW50KSYmaS5jb250ZW50LnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIGEudGV4dD09InN0cmluZyImJmEudGV4dC50cmltKCkubGVuZ3RoPjB9KX0pO3JldHVybiB0JiZufWZ1bmN0aW9uIE5hKGUpe3JldHVybiEhKGUmJiF1ZShlKSYmKGUucHJvdmlkZXI9PT0iY2xhdWRlInx8ZS5wcm92aWRlcj09PSJjb2RleCIpJiZlLnN0YXR1cyE9PSJydW5uaW5nIiYmZS5jbGF1ZGVTZXNzaW9uSWQpfWZ1bmN0aW9uIFNwKGUsdCl7aWYoIWUpcmV0dXJuIEEoIlx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKG51bGwpO2lmKGUuc3RhdHVzPT09InJ1bm5pbmciKXJldHVybiBQcm9taXNlLnJlc29sdmUoZSk7aWYoIU5hKGUpKXt2YXIgbj1lJiZlLnByb3ZpZGVyPT09ImNvZGV4Ij8iQ29kZXgiOiJDbGF1ZGUiO3JldHVybiBBKCJcdThCRTVcdTRGMUFcdThCRERcdTZDQTFcdTY3MDlcdTUzRUZcdTYwNjJcdTU5MERcdTc2ODQgIituKyIgXHU1Mzg2XHU1M0YyXHU0RTBBXHU0RTBCXHU2NTg3XHVGRjBDXHU4QkY3XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUobnVsbCl9cmV0dXJuIGpzKGUuaWQsdCkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT8oWChpKSxmZSgpLEhuKGkuaWQpLGduKGkuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gT3QoITApLGl9KSk6bnVsbH0pfWZ1bmN0aW9uIElwKGUsdCl7cmV0dXJuW3QsIlxyIl19ZnVuY3Rpb24gVHAoZSx0LG4saSl7dmFyIGE9QXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4hIW99KTpbXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB1PXR5cGVvZiBuPT0ibnVtYmVyIj9uOjA7cmV0dXJuIGEucmVkdWNlKGZ1bmN0aW9uKG8scyxsKXtyZXR1cm4gby50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGw+MCYmdT4wP25ldyBQcm9taXNlKGZ1bmN0aW9uKGQpe3NldFRpbWVvdXQoZCx1KX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbXQocyxsPT09YS5sZW5ndGgtMT90OnZvaWQgMCxpKX0pOm10KHMsbD09PWEubGVuZ3RoLTE/dDp2b2lkIDAsaSl9KX0sUHJvbWlzZS5yZXNvbHZlKCkpfXZhciBMcD01ZTMsTXA9MTAwO2Z1bmN0aW9uIGphKGUpe2UmJihyLnBlbmRpbmdNZXNzYWdlcy5sZW5ndGg+PU1wJiZyLnBlbmRpbmdNZXNzYWdlcy5zaGlmdCgpLHIucGVuZGluZ01lc3NhZ2VzLnB1c2goe2lucHV0OmUsYXQ6RGF0ZS5ub3coKX0pKX1mdW5jdGlvbiBxcChlKXt2YXIgdD1BcnJheS5pc0FycmF5KGUpP2UuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiEhbn0pOltdO3QuZm9yRWFjaChmdW5jdGlvbihuKXtqYShuKX0pfWZ1bmN0aW9uIFBwKGUpe2lmKCEodHlwZW9mIGUhPSJzdHJpbmcifHwhZSkpe3ZhciB0PWUucmVwbGFjZSgvXHgxYlxbMjAwfi9nLCIiKS5yZXBsYWNlKC9ceDFiXFsyMDF+L2csIiIpOy8oPzpefFxuKVxzKlwvY2xlYXJccyooPzpccnxcbnwkKS8udGVzdCh0KSYmdHlwZW9mIHI8InUiJiZyJiYoci50ZXJtaW5hbE91dHB1dE1hcmtlcj0oci50ZXJtaW5hbE91dHB1dCYmci50ZXJtaW5hbE91dHB1dC5sZW5ndGgpfDApfX1mdW5jdGlvbiBtdChlLHQsbil7cmV0dXJuIWV8fCFyLnNlbGVjdGVkSWQ/UHJvbWlzZS5yZXNvbHZlKCk6KFBwKGUpLHIubWVzc2FnZVF1ZXVlLnB1c2goZSksci5pbnB1dFF1ZXVlPXIuaW5wdXRRdWV1ZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIE9wKGUsdCxuKS5maW5hbGx5KGZ1bmN0aW9uKCl7dmFyIGk9ci5tZXNzYWdlUXVldWUuaW5kZXhPZihlKTtpPi0xJiZyLm1lc3NhZ2VRdWV1ZS5zcGxpY2UoaSwxKX0pfSksci5pbnB1dFF1ZXVlKX1mdW5jdGlvbiBPcChlLHQsbil7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9ci5zZWxlY3RlZElkLGE9bnx8ci5jdXJyZW50VmlldztyZXR1cm4gdXAoKT9yLndzQ29ubmVjdGVkP2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIraSsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSx2aWV3OmEsc2hvcnRjdXRLZXk6dHx8dm9pZCAwfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lm9rP3UuanNvbigpOnUuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24obyl7dmFyIHM9U3Mobyk7dGhyb3cgcy5odHRwU3RhdHVzPXUuc3RhdHVzLGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBwb3N0SW5wdXQ6IHJlcXVlc3QgZmFpbGVkIix7c3RhdHVzOnUuc3RhdHVzLGVycm9yQ29kZTpzLmVycm9yQ29kZSxtZXNzYWdlOnMubWVzc2FnZSxzZXNzaW9uSWQ6aX0pLElzKHMpJiZ4cChpLHMuc2Vzc2lvblN0YXR1c3x8ImV4aXRlZCIpLHN9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUmJnUuaWQmJihYKHUpLHUuaWQ9PT1yLnNlbGVjdGVkSWQmJih1Lm1lc3NhZ2VzJiZ1Lm1lc3NhZ2VzLmxlbmd0aD4wJiYoci5jdXJyZW50TWVzc2FnZXM9dS5tZXNzYWdlcyksamUoITApKSksdX0pOihqYShlKSxjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RJbnB1dDogV2ViU29ja2V0IGRpc2Nvbm5lY3RlZCwgcXVldWVkIG1lc3NhZ2UiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkLGlucHV0TGVuZ3RoOmUubGVuZ3RofSksUHJvbWlzZS5yZXNvbHZlKCkpOnIud3NDb25uZWN0ZWQ/KGNvbnNvbGUud2FybigiW3dhbmRdIHBvc3RJbnB1dDogc2Vzc2lvbiBub3QgcnVubmluZywgc2tpcHBpbmcgc2VuZCIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWR9KSxBKCJcdTRGMUFcdThCRERcdTY3MkFcdThGRDBcdTg4NENcdUZGMENcdTZCNjNcdTU3MjhcdTdCNDlcdTVGODVcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDIiLCJpbmZvIiksUHJvbWlzZS5yZXNvbHZlKCkpOihqYShlKSxjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RJbnB1dDogc2Vzc2lvbiBub3QgcnVubmluZywgcXVldWVkIGZvciByZWNvbm5lY3QiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkLGlucHV0TGVuZ3RoOmUubGVuZ3RofSksUHJvbWlzZS5yZXNvbHZlKCkpfWZ1bmN0aW9uIFhnKGUpe3JldHVybiBtdChlKX1mdW5jdGlvbiBrdCgpe3JldHVybiByLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT1yLnNlbGVjdGVkSWR9KXx8bnVsbH1mdW5jdGlvbiBaZyhlKXtyZXR1cm4gZSYmZS5wcm92aWRlcj09PSJjb2RleCI/YApgOiJcciJ9ZnVuY3Rpb24gUmEoKXtyZXR1cm4hIXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCJ9ZnVuY3Rpb24gSHAoZSl7cmV0dXJuISghci50ZXJtaW5hbHx8IWV8fGUhPT1yLnNlbGVjdGVkSWR8fHIudGVybWluYWxTZXNzaW9uSWQmJnIudGVybWluYWxTZXNzaW9uSWQhPT1lKX1mdW5jdGlvbiBUcyhlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlfHwhUmEoKXx8ZS5kZWZhdWx0UHJldmVudGVkfHxlLmlzQ29tcG9zaW5nKXJldHVybiExO3ZhciB0PWUudGFyZ2V0O3JldHVybiB0PyEoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpJiZ0LmNsb3Nlc3QmJnQuY2xvc2VzdCgiI2lucHV0LWJveCIpfHx0LmNsb3Nlc3QmJnQuY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQiKXx8VnAodCkpOiEwfXZhciBfcD17RXNjOiJlc2NhcGUiLEFycm93VXA6InVwIixBcnJvd0Rvd246ImRvd24iLEFycm93TGVmdDoibGVmdCIsQXJyb3dSaWdodDoicmlnaHQiLEVudGVyOiJlbnRlciIsVGFiOiJ0YWIiLEJhY2tzcGFjZToiYmFja3NwYWNlIixIb21lOiJob21lIixFbmQ6ImVuZCIsUGFnZVVwOiJwYWdldXAiLFBhZ2VEb3duOiJwYWdlZG93biIsRGVsZXRlOiJkZWxldGUiLEluc2VydDoiaW5zZXJ0IiwiICI6InNwYWNlIn0sTnA9e3NwYWNlOiIgIix0YWI6IgkiLHNoaWZ0X3RhYjoiXHgxQltaIixiYWNrc3BhY2U6Ilx4N0YiLGhvbWU6Ilx4MUJbSCIsZW5kOiJceDFCW0YiLHBhZ2V1cDoiXHgxQls1fiIscGFnZWRvd246Ilx4MUJbNn4iLGRlbGV0ZToiXHgxQlszfiIsaW5zZXJ0OiJceDFCWzJ+In0sTHM9eyIgIjowLCJbIjoyNywiXFwiOjI4LCJdIjoyOSwiXiI6MzAsXzozMX0sanA9NDAwLFJwPTEwLFdwPTgsQ2k9NTQsY249OCxXYT1be2tleToiZW50ZXIiLGxhYmVsOiJFbnRlciJ9LHtrZXk6ImN0cmxfYyIsbGFiZWw6IkN0cmwrQyJ9LHtrZXk6ImVzY2FwZSIsbGFiZWw6IkVzYyJ9LHtrZXk6InNoaWZ0X3RhYiIsbGFiZWw6IlNoaWZ0K1RhYiJ9XSx6cD1uZXcgU2V0KFsibWluaS1rZXlib2FyZC1mYWIiLCJtaW5pLWtleWJvYXJkLXRvZ2dsZSIsInRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZSJdKTtmdW5jdGlvbiBWcChlKXtyZXR1cm4hIShlJiZ6cC5oYXMoZS5pZCkpfXZhciBVcD1uZXcgU2V0KFsiY3RybCIsImFsdCIsInNoaWZ0Il0pO2Z1bmN0aW9uIE1zKGUpe3JldHVybiBVcC5oYXMoZSl9ZnVuY3Rpb24gS3AoZSl7cmV0dXJuIE5wW2VdfHwiIn1mdW5jdGlvbiBKcChlKXt2YXIgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ+PSJhIiYmdDw9InoiP1N0cmluZy5mcm9tQ2hhckNvZGUodC5jaGFyQ29kZUF0KDApLTk2KTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTHMsdCk/U3RyaW5nLmZyb21DaGFyQ29kZShMc1t0XSk6IiJ9ZnVuY3Rpb24gWXAoZSl7cmV0dXJuIF9wW2Uua2V5XXx8ZS5rZXl9ZnVuY3Rpb24gR3AoZSx0KXtyZXR1cm57Y3RybDplLmN0cmxLZXksYWx0OmUuYWx0S2V5LHNoaWZ0OmUuc2hpZnRLZXkmJih0Lmxlbmd0aD09PTF8fHQ9PT0idGFiIiksbWV0YTplLm1ldGFLZXl9fWZ1bmN0aW9uIHFzKGUsdCl7ZSYmbXQoZSx0KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIFFwKCl7SnMoKX1mdW5jdGlvbiB6YShlKXtyLmtleWJvYXJkUG9wdXBPcGVuPSExLGUhPT0hMSYmRGkoKSxacCgpfWZ1bmN0aW9uICRwKCl7UmEoKSYmT24oIXIudGVybWluYWxJbnRlcmFjdGl2ZSl9ZnVuY3Rpb24gT24oZSl7dmFyIHQ9ISFlJiZSYSgpO3IudGVybWluYWxJbnRlcmFjdGl2ZSE9PXQmJihyLnRlcm1pbmFsSW50ZXJhY3RpdmU9dCx0PyhldigpLHphKCExKSxRcCgpLEEoIlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mlx1NkEyMVx1NUYwRlx1NURGMlx1NUYwMFx1NTQyRiIsImluZm8iKSk6KHR2KCksRGkoKSksSXIoKSl9ZnVuY3Rpb24gVmEoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KSx0PSFlfHxlLnN0YXR1cyE9PSJydW5uaW5nInx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCI7aWYodCYmci50ZXJtaW5hbEludGVyYWN0aXZlKXtPbighMSk7cmV0dXJufSghZXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpJiZyLmtleWJvYXJkUG9wdXBPcGVuJiYoci5rZXlib2FyZFBvcHVwT3Blbj0hMSksSXIoKX1mdW5jdGlvbiBJcigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih5KXtyZXR1cm4geS5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9dWUoZSksbj1lJiZlLnByb3ZpZGVyPT09ImNvZGV4IixpPXQ/ISEoZSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTohIWUmJmUuc3RhdHVzPT09InJ1bm5pbmciLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLHU9WyJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIl07dS5mb3JFYWNoKGZ1bmN0aW9uKHkpe3ZhciBDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkpO2lmKEMpe0MuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLEMuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtb24iLHIudGVybWluYWxJbnRlcmFjdGl2ZSksQy5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLHR8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHwhZSksQy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsci50ZXJtaW5hbEludGVyYWN0aXZlPyJ0cnVlIjoiZmFsc2UiKTt2YXIgRT1DLnF1ZXJ5U2VsZWN0b3IoIi5wbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRlIik7RSYmKEUudGV4dENvbnRlbnQ9ci50ZXJtaW5hbEludGVyYWN0aXZlPyJcdTVGMDAiOiJcdTUxNzMiKX19KTt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtaGludCIpO28mJihvLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsdD8hMDpyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiksIXQmJmUmJihvLnRleHRDb250ZW50PW4/IkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjBDdGVybWluYWwgXHU0RTNBXHU1MzlGXHU1OUNCXHU4RjkzXHU1MUZBIjoiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIikpO3ZhciBzPSF0JiYhaSYmTmEoZSk7YSYmKGEucGxhY2Vob2xkZXI9eWwoZSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLGEuZGlzYWJsZWQ9IXQmJiEhZSYmIWkmJiFzLGEuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIixhLmRpc2FibGVkPyJ0cnVlIjoiZmFsc2UiKSxhLnJlYWRPbmx5PSExLGEuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtdGVybWluYWwtcGFzc3Rocm91Z2giLCEhci50ZXJtaW5hbEludGVyYWN0aXZlJiYhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpKSk7dmFyIGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7bCYmci50ZXJtaW5hbEludGVyYWN0aXZlJiZsLmNsYXNzTGlzdC5jb250YWlucygidm9pY2UtbW9kZSIpJiYobC5jbGFzc0xpc3QucmVtb3ZlKCJ2b2ljZS1tb2RlIikseGUucmVjb3JkaW5nPSExLE9hKCkpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kLWlucHV0LWJ1dHRvbiIpLGY9dCYmaTtkJiYoZC5kaXNhYmxlZD0hdCYmISFlJiYhaSYmIXMsZC5zZXRBdHRyaWJ1dGUoInRpdGxlIix0P2Y/Ilx1NjM5Mlx1OTYxRlx1NTNEMVx1OTAwMVx1RkYwOFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1N0VEM1x1Njc1Rlx1NTQwRVx1NTkwNFx1NzQwNlx1RkYwOSI6Ilx1NTNEMVx1OTAwMSI6bj9pPyJcdTUzRDFcdTkwMDFcdTdFRDkgQ29kZXgiOiJDb2RleCBcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOiFlfHxpfHxzPyJcdTUzRDFcdTkwMDEiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiKSxkLmNsYXNzTGlzdC50b2dnbGUoInF1ZXVlLW1vZGUiLGYpKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtpZihjKXt2YXIgdj1TdShlKTtjLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXYuYWN0aXZlKX12YXIgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtpZihoKXt2YXIgZz1TdShlKTtoLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWcuYWN0aXZlKX12YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7bSYmbS5jbGFzc0xpc3QudG9nZ2xlKCJpbnRlcmFjdGl2ZSIsIXQmJnIudGVybWluYWxJbnRlcmFjdGl2ZSksWG8oKX1mdW5jdGlvbiBCaSgpe3ZhciBlPXdpbmRvdy5nZXRTZWxlY3Rpb24mJndpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighZXx8ZS5pc0NvbGxhcHNlZClyZXR1cm4hMTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoIXQpcmV0dXJuITE7dmFyIG49ZS5hbmNob3JOb2RlO3JldHVybiBuJiZuLm5vZGVUeXBlPT09MyYmKG49bi5wYXJlbnROb2RlKSwhIShuJiZ0LmNvbnRhaW5zKG4pKX1mdW5jdGlvbiBVYShlKXtpZihUcyhlKSYmIWUubWV0YUtleSl7dmFyIHQ9WXAoZSk7aWYodCl7dmFyIG49R3AoZSx0KTtpZighTXModCkmJiEobi5jdHJsJiZ0Lmxlbmd0aD09PTEmJnQudG9Mb3dlckNhc2UoKT09PSJjIiYmQmkoKSkpe3ZhciBpPU9zKHQsbik7aSYmKGUucHJldmVudERlZmF1bHQoKSxxcyhpLHQpKX19fX1mdW5jdGlvbiBYcCgpe3IudGVybWluYWwmJndmKDUwMCl9ZnVuY3Rpb24gWnAoKXtGcigpfWZ1bmN0aW9uIGVoKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLCEoci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fCFyLnNlbGVjdGVkSWQpJiYoci5rZXlib2FyZFBvcHVwT3Blbj0hci5rZXlib2FyZFBvcHVwT3BlbixJcigpKX1mdW5jdGlvbiBQcygpe3Iua2V5Ym9hcmRQb3B1cE9wZW49ITEsSXIoKX1mdW5jdGlvbiBldigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLFVhLCEwKX1mdW5jdGlvbiB0digpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLFVhLCEwKX1mdW5jdGlvbiBPcyhlLHQpe3ZhciBuPXR8fHtjdHJsOiExLGFsdDohMSxzaGlmdDohMX07aWYoTXMoZSkpcmV0dXJuIiI7aWYoZT09PSJ0YWIiJiZuLnNoaWZ0KXJldHVybiJceDFCW1oiO3ZhciBpPUtwKGUpO2lmKGkpcmV0dXJuIGk7aWYoZS5pbmRleE9mKCJjdHJsXyIpPT09MClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSktOTYpO3ZhciBhPVRyKGUpO2lmKGEpcmV0dXJuIGE7aWYoIWUpcmV0dXJuIiI7dmFyIHU9ZS5sZW5ndGg9PT0xP2U6IiI7cmV0dXJuIHU/KG4uc2hpZnQmJih1PXUudG9VcHBlckNhc2UoKSksbi5jdHJsP0pwKHUpOm4uYWx0PyJceDFCIit1OnUpOiIifWZ1bmN0aW9uIERpKCl7ci5tb2RpZmllcnMuY3RybD0hMSxyLm1vZGlmaWVycy5hbHQ9ITEsci5tb2RpZmllcnMuc2hpZnQ9ITEsbnYoKX1mdW5jdGlvbiBudigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtaW5pLWtleWJvYXJkIik7ZSYmWyJjdHJsIiwiYWx0Iiwic2hpZnQiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcignW2RhdGEta2V5PSInK3QrJyJdJyk7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhci5tb2RpZmllcnNbdF0pfSl9ZnVuY3Rpb24gVHIoZSl7c3dpdGNoKGUpe2Nhc2UieWVzIjpyZXR1cm4ieVxyIjtjYXNlIm5vIjpyZXR1cm4iblxyIjtjYXNlInVwIjpyZXR1cm4iXHgxQltBIjtjYXNlImRvd24iOnJldHVybiJceDFCW0IiO2Nhc2UibGVmdCI6cmV0dXJuIlx4MUJbRCI7Y2FzZSJyaWdodCI6cmV0dXJuIlx4MUJbQyI7Y2FzZSJlbnRlciI6cmV0dXJuIlxyIjtjYXNlImN0cmxfYyI6cmV0dXJuIgMiO2Nhc2UiY3RybF9kIjpyZXR1cm4iBCI7Y2FzZSJjdHJsX2wiOnJldHVybiJcZiI7Y2FzZSJjdHJsX3UiOnJldHVybiIVIjtjYXNlImN0cmxfayI6cmV0dXJuIlx2IjtjYXNlImN0cmxfdyI6cmV0dXJuIhciO2Nhc2UiY3RybF96IjpyZXR1cm4iGiI7Y2FzZSJlc2NhcGUiOnJldHVybiJceDFCIjtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBydigpe2lmKHIucGVuZGluZ01lc3NhZ2VzLmxlbmd0aCE9PTApe3ZhciBlPWt0KCk7aWYodWUoZSkpe3IucGVuZGluZ01lc3NhZ2VzPVtdO3JldHVybn12YXIgdD1EYXRlLm5vdygpLG49W10saT0wO3IucGVuZGluZ01lc3NhZ2VzLmZvckVhY2goZnVuY3Rpb24odSl7aWYodHlwZW9mIHU9PSJzdHJpbmciKXtuLnB1c2godSk7cmV0dXJufWlmKCEoIXV8fHR5cGVvZiB1LmlucHV0IT0ic3RyaW5nIikpe2lmKHQtKHUuYXR8fDApPkxwKXtpKys7cmV0dXJufW4ucHVzaCh1LmlucHV0KX19KSxyLnBlbmRpbmdNZXNzYWdlcz1bXSxpPjAmJmNvbnNvbGUubG9nKCJbd2FuZF0gZmx1c2hQZW5kaW5nTWVzc2FnZXM6IGRyb3BwZWQgIitpKyIgc3RhbGUgaW5wdXQocykiKTt2YXIgYT1Qcm9taXNlLnJlc29sdmUoKTtuLmZvckVhY2goZnVuY3Rpb24odSl7YT1hLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaXYodSkuY2F0Y2goZnVuY3Rpb24oKXt9KX0pfSl9fWZ1bmN0aW9uIGl2KGUpe2lmKCFlfHwhci5zZWxlY3RlZElkKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgdD1yLnNlbGVjdGVkSWQ7cmV0dXJuIGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrdCsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSx2aWV3OnIuY3VycmVudFZpZXd9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4ub2s/bi5qc29uKCk6bi5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihpKXt2YXIgYT1TcyhpKTtpZihhLmh0dHBTdGF0dXM9bi5zdGF0dXMsSXMoYSkpcmV0dXJuIGNvbnNvbGUubG9nKCJbd2FuZF0gc2VuZElucHV0RGlyZWN0OiBzZXNzaW9uIHVuYXZhaWxhYmxlLCBkcm9wcGluZyIse3Nlc3Npb25JZDp0LGVycm9yQ29kZTphLmVycm9yQ29kZX0pLG51bGw7dGhyb3cgYX0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbiYmbi5pZCYmKFgobiksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKG4ubWVzc2FnZXMmJm4ubWVzc2FnZXMubGVuZ3RoPjAmJihyLmN1cnJlbnRNZXNzYWdlcz1uLm1lc3NhZ2VzKSxqZSghMCkpKSxufSl9ZnVuY3Rpb24gS2EoKXtpZihyLnNlbGVjdGVkSWQpe3ZhciBlPXIuc2VsZWN0ZWRJZDtJYSh3ZSgic3RvcC5jb25maXJtLm1lc3NhZ2UiKSx7dGl0bGU6d2UoInN0b3AuY29uZmlybS50aXRsZSIpLGRhbmdlcjohMCxva0xhYmVsOndlKCJzdG9wLmNvbmZpcm0ub2siKSxjYW5jZWxMYWJlbDp3ZSgic3RvcC5jb25maXJtLmNhbmNlbCIpfSkudGhlbihmdW5jdGlvbih0KXt0JiZyLnNlbGVjdGVkSWQ9PT1lJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2UrIi9zdG9wIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihIdCl9KX19ZnVuY3Rpb24gSmEoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNlc3Npb24taXRlbVtkYXRhLXNlc3Npb24taWQ9IicrZSsnIl0nKTt0JiZ0LmNsYXNzTGlzdC5hZGQoImRlbGV0aW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcik7cmV0dXJuIHIuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCxoZSgpKSxIdCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImRlbGV0aW5nIik7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO1BlKG4sIlx1NjVFMFx1NkNENVx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERFx1MzAwMiIpfSl9LDI1MCl9ZnVuY3Rpb24gSHMoZSx0KXt0JiZ0LmNsYXNzTGlzdC5hZGQoImRlbGV0aW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2ZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5LyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5jbGF1ZGVTZXNzaW9uSWQhPT1lfSksZGVsZXRlIHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzW2VdLGZlKCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiZGVsZXRpbmciKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7UGUobiwiXHU2NUUwXHU2Q0Q1XHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREXHUzMDAyIil9KX0sMjUwKX1mdW5jdGlvbiB0aChlLHQpe0hzKGUsdCl9ZnVuY3Rpb24gYXYoZSx0LG4pe2UmJmZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5P2N3ZD0iK2VuY29kZVVSSUNvbXBvbmVudChlKSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoaS5lcnJvcik7ci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY3dkIT09ZX0pLGZlKCl9KS5jYXRjaChmdW5jdGlvbigpe19zKG4sITEpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtQZShpLCJcdTY1RTBcdTZDRDVcdTZFMDVcdTc0MDZcdThCRTVcdTc2RUVcdTVGNTVcdTc2ODRcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfWZ1bmN0aW9uIF9zKGUsdCl7ZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uY2xhc3NMaXN0LnRvZ2dsZSgiZGVsZXRpbmciLHQpfSl9ZnVuY3Rpb24gdXYoZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbGF1ZGUtaGlzdG9yeS1pdGVtW2RhdGEtY3dkPSInK3dpbmRvdy5DU1MuZXNjYXBlKFN0cmluZyhlKSkrJyJdJykpfXZhciBOcz1udWxsLExyPW51bGw7ZnVuY3Rpb24gTXIoKXtpZihMcil7THIuY2xhc3NMaXN0LnJlbW92ZSgic3dpcGVkIik7dmFyIGU9THIucXVlcnlTZWxlY3RvcigiLnNlc3Npb24taXRlbS1jb250ZW50Iik7ZSYmKGUuc3R5bGUudHJhbnNmb3JtPSIiKSxMcj1udWxsfX1mdW5jdGlvbiBvdihlKXtOcz1udWxsLExyPW51bGx9ZnVuY3Rpb24gc3YoZSx0LG4pe2U9PT0iY2xhdWRlIiYmKHIucHJlZmVycmVkQ29tbWFuZD1lLHIuY2hhdE1vZGU9QXQoZSxyLmNoYXRNb2RlKSk7dmFyIGk9ZT09PSJjbGF1ZGUifHxlPT09ImNvZGV4Ij9PcihlKToiIjtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG90KHtjb21tYW5kOmUsY3dkOnR8fCIiLG1vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixtb2RlbDppfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5lcnJvcj8obiYmUGUobixhLmVycm9yKSxudWxsKTooci5zZWxlY3RlZElkPWEuaWQsaGUoKSxyLmRyYWZ0c1thLmlkXT0iIixhKX0pfXZhciBZYT0hMTtmdW5jdGlvbiBqcyhlLHQpe3JldHVybiFlfHxZYT9Qcm9taXNlLnJlc29sdmUobnVsbCk6KFlhPSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P1BlKHQsbi5lcnJvcik6QShuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLnNlbGVjdGVkSWQ9bi5pZCxoZSgpLHIuZHJhZnRzW24uaWRdPSIiLG4pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREXHUzMDAyIjtyZXR1cm4gdD9QZSh0LGkpOkEoaSwiZXJyb3IiKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpe1lhPSExfSkpfWZ1bmN0aW9uIG5oKGUsdCl7cmV0dXJuIGU/ZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P1BlKHQsbi5lcnJvcik6QShuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5jbGF1ZGVTZXNzaW9uSWQhPT1lfSksci5zZWxlY3RlZElkPW4uaWQsaGUoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjMwOSBDbGF1ZGUgXHU0RjFBXHU4QkREIElEIFx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/UGUodCxpKTpBKGksImVycm9yIiksbnVsbH0pOlByb21pc2UucmVzb2x2ZShudWxsKX1mdW5jdGlvbiBmbihlKXtyZXR1cm4hZXx8IWUuaWQ/UHJvbWlzZS5yZXNvbHZlKCk6KHIuc2VsZWN0ZWRJZD1lLmlkLGhlKCksci5jdXJyZW50TWVzc2FnZXM9W10sd3IoKSxDdCgpLFNyKGUuaWQpLFgoZSksZmUoKSxIbihlLmlkKSxnbihlLmlkKS50aGVuKGZ1bmN0aW9uKCl7T3QoITApfSkpfWZ1bmN0aW9uIFJzKGUpe3JldHVybiBqcyhlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LmNsYXVkZVNlc3Npb25JZCYmKHQucHJvdmlkZXI9PT0iY29kZXgiP3IuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pOnIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLmNsYXVkZVNlc3Npb25JZCE9PXQuY2xhdWRlU2Vzc2lvbklkfSkpLGZuKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKTpudWxsfSl9ZnVuY3Rpb24gcmgoZSx0LG4pe3JldHVybiBzdihlLHQsbikudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT9mbihpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KTpudWxsfSl9ZnVuY3Rpb24gaWgoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKTtpZih0KXt0LnBsYWNlaG9sZGVyPSJcdTZCNjNcdTU3MjhcdTYwMURcdTgwMDNcdTIwMjYiLHQuZGlzYWJsZWQ9ITA7dmFyIG49ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGk9UWUoKSxhPSRlKCksdT1PcihhKTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkob3Qoe2NvbW1hbmQ6YSxjd2Q6aSxtb2RlOm4saW5pdGlhbElucHV0OmUsbW9kZWw6dXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uZXJyb3I/KEEoby5lcnJvciwiZXJyb3IiKSx0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITEsbnVsbCk6Zm4obyl9KS5jYXRjaChmdW5jdGlvbihvKXtBKG8mJm8ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksdC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExfSkuZmluYWxseShmdW5jdGlvbigpe3QucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMX0pfX1mdW5jdGlvbiBhaChlLHQsbil7dmFyIGk9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGE9UWUoKSx1PSRlKCksbz1Pcih1KTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkob3Qoe2NvbW1hbmQ6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OmV8fHZvaWQgMCxtb2RlbDpvfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5lcnJvcj8oQShzLmVycm9yLCJlcnJvciIpLG51bGwpOih0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLGZuKHMpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe0EocyYmcy5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIGx2KGUpe2UuZGlzYWJsZWQ9ITAsUnMoZS5kYXRhc2V0LnNlc3Npb25JZCkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KX1mdW5jdGlvbiBkdihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxraSh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsaGUoKSxyLmRyYWZ0c1tpLmlkXT0iIixmbihpKS50aGVuKGZ1bmN0aW9uKCl7anQoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIGtpKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oQShuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gQShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBjdihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkO3QmJkluKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdThGRDlcdTY3NjEgQ29kZXggXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPWUuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpO2kmJihpLnN0eWxlLm9wYWNpdHk9IjAuNSIpLGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkvIitlbmNvZGVVUklDb21wb25lbnQodCkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2EmJmEub2s/KHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksZmUoKSk6aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSkuY2F0Y2goZnVuY3Rpb24oKXtpJiYoaS5zdHlsZS5vcGFjaXR5PSIxIil9KX19KX1mdW5jdGlvbiBmdihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxBaSh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZCE9PXR9KSxyLnNlbGVjdGVkSWQ9aS5pZCxoZSgpLHIuZHJhZnRzW2kuaWRdPSIiLGZuKGkpLnRoZW4oZnVuY3Rpb24oKXtqdCgpfSkpfSkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KSl9ZnVuY3Rpb24gQWkoZSx0KXtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oQShuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gQShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBxcigpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHxuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MH1mdW5jdGlvbiBPdChlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IXR8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10JiYoZSYmcXIoKXx8R2EodCkpfX1mdW5jdGlvbiB1aCgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7ZSYmKGUuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIFdzKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIik7ZSYmZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1rZXlib2FyZC1vZmZzZXQiKX1mdW5jdGlvbiB6cygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24geGkoZSl7aWYoZSl7dmFyIHQ9ZS5zZWxlY3Rpb25TdGFydCxuPWUuc2VsZWN0aW9uRW5kO1NpKGUpLHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIG49PSJudW1iZXIiJiZlLnNldFNlbGVjdGlvblJhbmdlKHQsbil9fWZ1bmN0aW9uIFZzKGUpeyFlfHxlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD09PSJ0cnVlInx8KGUuZGF0YXNldC50b3VjaFNjcm9sbEJvdW5kPSJ0cnVlIixlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7ZS5zY3JvbGxIZWlnaHQ8PWUuY2xpZW50SGVpZ2h0KzF8fChlLnNjcm9sbFRvcDw9MD9lLnNjcm9sbFRvcD0xOmUuc2Nyb2xsVG9wK2UuY2xpZW50SGVpZ2h0Pj1lLnNjcm9sbEhlaWdodCYmKGUuc2Nyb2xsVG9wPU1hdGgubWF4KDEsZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtMSkpKX0se3Bhc3NpdmU6ITB9KSl9ZnVuY3Rpb24gVXMoZSl7ZSYmKEJ0KGUpLHhpKGUpKX1mdW5jdGlvbiBwdihlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7dCYmKFdzKCksVXModCkpfWZ1bmN0aW9uIHZ2KGUpe3ZhciB0PWUmJmUudGFyZ2V0P2UudGFyZ2V0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTt6cygpLFVvKDIyMDAsdCk7dmFyIG49WzgwLDIwMCwzODAsNjIwLDkwMF07bi5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7c2V0VGltZW91dChmdW5jdGlvbigpe0puKCExKSxhPT09MSYmcXIoKSYmKEdlKCJrZXlib2FyZC1ibHVyIix7Zm9yY2VSZXBsYXk6ITB9KSx2dCgia2V5Ym9hcmQiKSl9LGkpfSl9ZnVuY3Rpb24gbXYoZSl7ZSYmKGUuc2V0U2VsZWN0aW9uUmFuZ2UoZS52YWx1ZS5sZW5ndGgsZS52YWx1ZS5sZW5ndGgpLHhpKGUpKX1mdW5jdGlvbiBHYShlKXtlJiYoZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLG12KGUpKX1mdW5jdGlvbiBndihlKXtWcyhlKSxVcyhlKX1mdW5jdGlvbiBodihlKXtHYShlKX1mdW5jdGlvbiBvaChlKXtXcygpLHhpKGUpfWZ1bmN0aW9uIHl2KCl7enMoKX1mdW5jdGlvbiBidihlKXt4aShlKX1mdW5jdGlvbiBzaChlKXtodihlKX1mdW5jdGlvbiBFdihlKXtndihlKX1mdW5jdGlvbiBsaCgpe3l2KCl9ZnVuY3Rpb24gZGgoZSl7YnYoZSl9ZnVuY3Rpb24gRnYoZSx0KXtpZighZXx8IXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10KXJldHVybiExO3ZhciBuPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtpZihuPD01MClyZXR1cm4hMTt2YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBpLmJvdHRvbT5lLmhlaWdodC0xMn1mdW5jdGlvbiBTaShlKXtpZihlKXt2YXIgdD1lLnNjcm9sbEhlaWdodD5lLmNsaWVudEhlaWdodCsxO2lmKCF0KXtlLnNjcm9sbFRvcD0wO3JldHVybn1lLnNjcm9sbFRvcD1lLnNjcm9sbEhlaWdodH19ZnVuY3Rpb24gS3MoKXtpZihyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe0pzKCk7cmV0dXJufWlmKCFxcigpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IWV8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lfHxHYShlKX19ZnVuY3Rpb24gSnMoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7ZSYmKGUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxlLmZvY3VzKCksci50ZXJtaW5hbCYmci50ZXJtaW5hbC5mb2N1cyYmci50ZXJtaW5hbC5mb2N1cygpKX1mdW5jdGlvbiB3digpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtpZigidmlydHVhbEtleWJvYXJkImluIG5hdmlnYXRvcil7dmFyIG49bmF2aWdhdG9yLnZpcnR1YWxLZXlib2FyZDtuLmFkZEV2ZW50TGlzdGVuZXIoImdlb21ldHJ5Y2hhbmdlIixmdW5jdGlvbigpe2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInBhZGRpbmctYm90dG9tIil9KX12YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtLcygpfSksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7dmFyIHU9YS50YXJnZXQ7dS50YWdOYW1lIT09IkEiJiZ1LnRhZ05hbWUhPT0iQlVUVE9OIiYmIXUuY2xvc2VzdCgiYnV0dG9uIikmJiF1LmNsb3Nlc3QoIltkYXRhLXRvb2wtdG9nZ2xlXSIpJiZLcygpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2lmKHFyKCkpe3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighKCF1fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dSkpe3ZhciBvPWEudGFyZ2V0OyFvfHx0eXBlb2Ygby5jbG9zZXN0IT0iZnVuY3Rpb24ifHxvLmNsb3Nlc3QoIi5pbnB1dC1wYW5lbCIpfHxvLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkIil8fG8uY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtZmFiIil8fG8uY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtdG9nZ2xlIil8fG8uY2xvc2VzdCgiI3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZSIpfHxvLmNsb3Nlc3QoIi53YW5kLWpveXN0aWNrLXJvb3QiKXx8dS5ibHVyKCl9fX0sITApfWZ1bmN0aW9uIFFhKCl7dHJ5e3dpbmRvdy5zY3JvbGxUbygwLDApfWNhdGNoe31kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50JiYoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD0wKSxkb2N1bWVudC5ib2R5JiYoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9MCl9ZnVuY3Rpb24gamUoZSl7ci5yZW5kZXJQZW5kaW5nJiYhZXx8KHIucmVuZGVyUGVuZGluZz0hMCxlPyhJaSghMCksci5yZW5kZXJQZW5kaW5nPSExKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtJaSghMSksci5yZW5kZXJQZW5kaW5nPSExfSkpfXIuY2hhdFJlbmRlclRpbWVyPW51bGw7ZnVuY3Rpb24gJGEoZSl7aWYoIShyLmNoYXRSZW5kZXJUaW1lciYmIWUpKXtpZihyLmNoYXRSZW5kZXJUaW1lciYmY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxlKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsLGplKCk7cmV0dXJufXRyeXt3aW5kb3cuX19zY2hlZHVsZUNoYXRSZW5kZXI9ZnVuY3Rpb24oKXskYSghMCl9fWNhdGNoe312YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuc3RhdHVzPT09InJ1bm5pbmciJiZ0LnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiLGk9bj9yczppcztyLmNoYXRSZW5kZXJUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbDt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTthJiYoci5jdXJyZW50TWVzc2FnZXM9TmUoYSxYZShhLGEub3V0cHV0LCEwKSkpLGplKCl9LGkpfX1mdW5jdGlvbiBDdihlLHQpe2lmKCFlfHwhdHx8dC5sZW5ndGg9PT0wKXJldHVybltdO2Z1bmN0aW9uIG4oQyl7cmV0dXJuIEMucmVwbGFjZSgvXHgxQig/OltALVpcXC1fXXxcW1swLT9dKlsgLS9dKltALX5dKS9nLCIiKX1mb3IodmFyIGk9bihlKSxhPVtdLHU9W10sbz0wO288dC5sZW5ndGg7bysrKWlmKHRbb10ucm9sZT09PSJ1c2VyIil7dmFyIHM9IiIsbD10W29dLmNvbnRlbnQ7aWYodHlwZW9mIGw9PSJzdHJpbmciKXM9bDtlbHNlIGlmKEFycmF5LmlzQXJyYXkobCkpe2Zvcih2YXIgZD0wO2Q8bC5sZW5ndGg7ZCsrKWlmKGxbZF0udHlwZT09PSJ0ZXh0Iil7cz1sW2RdLnRleHQ7YnJlYWt9fXMmJnUucHVzaCh7dGV4dDpzLGluZGV4Om99KX1mb3IodmFyIGY9MCxvPTA7bzx1Lmxlbmd0aDtvKyspe3ZhciBjPXVbb10sdj1pLmluZGV4T2YoIlx1Mjc2RiAiK2MudGV4dCxmKTtpZih2PT09LTEmJih2PWkuaW5kZXhPZihgClx1Mjc2RiBgK2MudGV4dCxmKSx2IT09LTEmJih2Kz0xKSksdj5mKXtmb3IodmFyIGg9aS5zdWJzdHJpbmcoZix2KSxnPWguc3BsaXQoYApgKSxtPVtdLGQ9MDtkPGcubGVuZ3RoO2QrKyl7dmFyIHk9Z1tkXS50cmltKCk7IXl8fHkuc3RhcnRzV2l0aCgiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIil8fHk9PT0iXHUyNzZGInx8eT09PSI/Inx8eT09PSIifHx5LmluY2x1ZGVzKCJDbGF1ZGUgQ29kZSB2Iil8fHkuaW5jbHVkZXMoIk9wdXMiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJTb25uZXQiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJBUEkgVXNhZ2UiKXx8eS5pbmNsdWRlcygiQmlsbGluZyIpfHx5LmluY2x1ZGVzKCJmb3Igc2hvcnRjdXRzIil8fHkuaW5jbHVkZXMoIi9lZmZvcnQiKXx8eS5tYXRjaCgvXlvilrjilpDilp3ilpjilpfilpbilojilozilo3ilo7ilo/ilpTiloHiloLiloPiloTiloXilobilofilojilohdLyl8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXXszLH0vKXx8eS5sZW5ndGg+MyYmbS5wdXNoKHkpfW0ubGVuZ3RoPjAmJmEucHVzaCh7YmVmb3JlTWVzc2FnZTpjLmluZGV4LGNvbnRlbnQ6bS5qb2luKGAKYCl9KX1mPXYrYy50ZXh0Lmxlbmd0aCsyfXJldHVybiBhfWZ1bmN0aW9uIFhhKGUpe2lmKCFlKXJldHVybiBudWxsO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtyZXR1cm4gdHx8KHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImNoYXQtbWVzc2FnZXMiLGUuYXBwZW5kQ2hpbGQodCksdCl9ZnVuY3Rpb24gWXMoZSx0KXt2YXIgbj1YYShlKTtyZXR1cm4gbj8obi5pbm5lckhUTUw9dCxXdChuKSxscigpLFllKCksbik6bnVsbH1mdW5jdGlvbiBJaShlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighdClyZXR1cm47dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKCQpe3JldHVybiAkLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoIW4pe3IubGFzdFJlbmRlcmVkRW1wdHkhPT0ibm9uZSImJihZcyh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQ8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+Jyksci5sYXN0UmVuZGVyZWRFbXB0eT0ibm9uZSIsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wKTtyZXR1cm59dmFyIGk9ci5jdXJyZW50TWVzc2FnZXMsYT1YdihpKTtpZih0dT1adihpKSxpLmxlbmd0aD09PTApe2lmKHIubGFzdFJlbmRlcmVkRW1wdHkhPT0iZW1wdHkiKXt2YXIgdT0iIjt1ZShuKSYmKHU9JzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8td3JhcCI+PGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtdHJpby1oaW50Ij5cdTlFRDhcdThCQTRcdTRGMUFcdTYzMDlcdTRFRTVcdTRFMEJcdThCQkVcdTdGNkVcdTUzRDFcdTkwMDFcdUZGMENcdTUzRUZcdTcwQjlcdTUxRkJcdThDMDNcdTY1NzRcdUZGMUE8L2Rpdj4nK0NsKG4se2tpbmQ6ImRyb3Bkb3duIn0pKyI8L2Rpdj4iKSxZcyh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTVCRjlcdThCRERcdTVERjJcdTVGMDBcdTU5Q0I8L3N0cm9uZz48YnI+XHU1NzI4XHU0RTBCXHU2NUI5XHU4RjkzXHU1MTY1XHU2ODQ2XHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHVGRjBDQ2xhdWRlIFx1NEYxQVx1ODFFQVx1NTJBOFx1NTZERVx1NTkwRFx1MzAwMjwvZGl2PicrdSksci5sYXN0UmVuZGVyZWRFbXB0eT0iZW1wdHkiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MH1UdShudWxsLG4pLGV1KFtdKTtyZXR1cm59dmFyIG89aS5sZW5ndGg7bz5yLmNoYXRSZW5kZXJlZENvdW50JiYoci5jaGF0UmVuZGVyZWRDb3VudD1vKTt2YXIgcz1NYXRoLm1heCgwLG8tci5jaGF0UmVuZGVyZWRDb3VudCksbD1zPjA/aS5zbGljZShzKTppLGQ9dHlwZW9mIG4ubWVzc2FnZU9mZnNldD09Im51bWJlciImJm4ubWVzc2FnZU9mZnNldD4wLGY9cz4wfHxkLGM9bC5sZW5ndGgsdj1uLm91dHB1dD9uLm91dHB1dC5sZW5ndGg6MDtpZihuLm1lc3NhZ2VzJiZuLm1lc3NhZ2VzLmxlbmd0aD4wKXtmb3IodmFyIGg9MCxnPTAsbT0wO208bi5tZXNzYWdlcy5sZW5ndGg7bSsrKXt2YXIgeT1uLm1lc3NhZ2VzW21dLmNvbnRlbnQ7aWYoeSlpZihBcnJheS5pc0FycmF5KHkpKXtoKz15Lmxlbmd0aDtmb3IodmFyIEM9MDtDPHkubGVuZ3RoO0MrKyl7dmFyIEU9eVtDXTtFLnRleHQmJihnKz1FLnRleHQubGVuZ3RoKSxFLnRoaW5raW5nJiYoZys9RS50aGlua2luZy5sZW5ndGgpLEUuY29udGVudCYmKGcrPUUuY29udGVudC5sZW5ndGgpLEUuaWQmJihnKz1FLmlkLmxlbmd0aCksRS50b29sX3VzZV9pZCYmKGcrPUUudG9vbF91c2VfaWQubGVuZ3RoKSxFLmRlc2NyaXB0aW9uJiYoZys9RS5kZXNjcmlwdGlvbi5sZW5ndGgpLEUuaW5wdXQmJihnKz1KU09OLnN0cmluZ2lmeShFLmlucHV0KS5sZW5ndGgpfWlmKG4ubWVzc2FnZXNbbV0udXNhZ2Upe3ZhciBCPW4ubWVzc2FnZXNbbV0udXNhZ2U7Zys9KEIuaW5wdXRUb2tlbnN8fDApKyhCLm91dHB1dFRva2Vuc3x8MCkrKEIuY2FjaGVSZWFkSW5wdXRUb2tlbnN8fDApKyhCLmNhY2hlQ3JlYXRpb25JbnB1dFRva2Vuc3x8MCkrKEIucmVhc29uaW5nT3V0cHV0VG9rZW5zfHwwKStNYXRoLnJvdW5kKChCLnRvdGFsQ29zdFVzZHx8MCkqMWU2KSsoQi5lc3RpbWF0ZWQ9PT0hMD8xOjApfX1lbHNlIGgrPTEsZz1TdHJpbmcoeSkubGVuZ3RofXY9YyoxZTUraCoxZTMrZ312YXIgRD1lfHxjIT09ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZighRCYmYz09PXIubGFzdFJlbmRlcmVkTXNnQ291bnQmJnY9PT1yLmxhc3RSZW5kZXJlZEhhc2gpe3ZhciBGPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtGJiZUdShGLG4pLGV1KGkpO3JldHVybn12YXIgST1yLmxhc3RSZW5kZXJlZEhhc2gsTD1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50O2lmKHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9YyxyLmxhc3RSZW5kZXJlZEhhc2g9dixGPVhhKHQpLCFGKXJldHVybjt2YXIgSD1pYShGKSxVPSFyLmNoYXRJbml0aWFsUmVuZGVyRG9uZSx4PUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLmxlbmd0aCxrPUR8fHg9PT0wfHxjIT09eDtmdW5jdGlvbiBUKCl7Zm9yKHZhciAkPUN2KG4ub3V0cHV0LGwpLGJlPSIiLFNlPWwuc2xpY2UoKS5yZXZlcnNlKCksRWU9bC5sZW5ndGgsb2U9MDtvZTxTZS5sZW5ndGg7b2UrKyl7Zm9yKHZhciB2ZT1TZVtvZV0sc3Q9RWUtMS1vZSxsdD1zdCtzLHl0PW51bGwsSWU9MDtJZTwkLmxlbmd0aDtJZSsrKWlmKCRbSWVdLmJlZm9yZU1lc3NhZ2U9PT1zdCl7eXQ9JFtJZV07YnJlYWt9eXQmJihiZSs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSBzeXN0ZW0taW5mbyI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY2FyZCI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8taGVhZGVyIj5cdTIxMzlcdUZFMEYgXHU3Q0ZCXHU3RURGXHU0RkUxXHU2MDZGPC9kaXY+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY29udGVudCI+JytwKHl0LmNvbnRlbnQpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKSxiZSs9cnUodmUsTVtsdF18fG51bGwsbHQsYSl9aWYoZil7dmFyIHp0PXM+MD8iXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0ICIrTWF0aC5taW4oci5jaGF0UGFnZVNpemUscykrIiBcdTY3NjFcdTZEODhcdTYwNkYiOiJcdTUyQTBcdThGN0RcdTY2RjRcdTY1RTlcdTc2ODRcdTZEODhcdTYwNkYiO2JlKz0nPGRpdiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUiIGlkPSJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCI+PGJ1dHRvbiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUtYnRuIiB0eXBlPSJidXR0b24iPicrenQrIjwvYnV0dG9uPjwvZGl2PiJ9dmFyIEplPS0xLFJlPTA7aWYoeD4wJiYhSClmb3IodmFyIHFlPUYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLGllPUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLGNlPTA7Y2U8aWUubGVuZ3RoO2NlKyspe3ZhciB3PWllW2NlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih3LmJvdHRvbT49cWUpe3ZhciBydD1pZVtjZV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO3J0IT1udWxsJiYoSmU9cGFyc2VJbnQocnQsMTApLFJlPXcudG9wLXFlKTticmVha319aWYoRi5pbm5lckhUTUw9YmUsKGZ1bmN0aW9uKCl7Zm9yKHZhciBkdD1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxVdD1kdC5sZW5ndGgsVGU9MDtUZTxVdDtUZSsrKWR0W1RlXS5zZXRBdHRyaWJ1dGUoImRhdGEtbXNnLWluZGV4IixTdHJpbmcocytVdC0xLVRlKSl9KSgpLFd0KEYpLEw9PT0wJiYhci5jaGF0SW5pdGlhbFJlbmRlckRvbmUpRi5zY3JvbGxUb3A9MCxyLmNoYXRTdGlja1RvQm90dG9tPSEwLGtuKHtyZW1vdmVEaXZpZGVyOiEwfSksci5jaGF0SW5pdGlhbFJlbmRlckRvbmU9ITA7ZWxzZSBpZihMPT09MCYmci5jaGF0U3RpY2tUb0JvdHRvbSlGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoSClGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoSmU+PTApe3ZhciBWdD1GLnF1ZXJ5U2VsZWN0b3IoJy5jaGF0LW1lc3NhZ2VbZGF0YS1tc2ctaW5kZXg9IicrSmUrJyJdJyk7aWYoVnQpe3ZhciBpdD1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCx4dD1WdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxTdD14dC50b3AtaXQtUmU7TWF0aC5hYnMoU3QpPi41JiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3ArPVN0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpfX1HcyhGKSxscigpLGxhKEYpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2FhKEYpLFllKCksRmQoKX0pfXZhciBNPXt9O2lmKChmdW5jdGlvbigpe2Zvcih2YXIgJD17aW5wdXRUb2tlbnM6MCxvdXRwdXRUb2tlbnM6MCxjYWNoZVJlYWRJbnB1dFRva2VuczowLGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczowLHJlYXNvbmluZ091dHB1dFRva2VuczowLHRvdGFsQ29zdFVzZDowLGVzdGltYXRlZDohMX0sYmU9ITEsU2U9LTEsRWU9MDtFZTxpLmxlbmd0aDtFZSsrKXt2YXIgb2U9aVtFZV07aWYob2Uucm9sZT09PSJ1c2VyIilTZT49MCYmYmUmJihNW1NlXT0kKSwkPXtpbnB1dFRva2VuczowLG91dHB1dFRva2VuczowLGNhY2hlUmVhZElucHV0VG9rZW5zOjAsY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOjAscmVhc29uaW5nT3V0cHV0VG9rZW5zOjAsdG90YWxDb3N0VXNkOjAsZXN0aW1hdGVkOiExfSxiZT0hMSxTZT0tMTtlbHNlIGlmKG9lLnJvbGU9PT0iYXNzaXN0YW50IiYmb2UudXNhZ2Upe3ZhciB2ZT1vZS51c2FnZTtiZT0hMCwkLmlucHV0VG9rZW5zKz12ZS5pbnB1dFRva2Vuc3x8MCwkLm91dHB1dFRva2Vucys9dmUub3V0cHV0VG9rZW5zfHwwLCQuY2FjaGVSZWFkSW5wdXRUb2tlbnMrPXZlLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwLCQuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zKz12ZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnN8fDAsJC5yZWFzb25pbmdPdXRwdXRUb2tlbnMrPXZlLnJlYXNvbmluZ091dHB1dFRva2Vuc3x8MCwkLnRvdGFsQ29zdFVzZCs9dmUudG90YWxDb3N0VXNkfHwwLCQuZXN0aW1hdGVkPSQuZXN0aW1hdGVkfHx2ZS5lc3RpbWF0ZWQ9PT0hMCxTZT1FZX1lbHNlIG9lLnJvbGU9PT0iYXNzaXN0YW50IiYmKFNlPUVlKX1TZT49MCYmYmUmJihNW1NlXT0kKX0pKCksaylUKCk7ZWxzZSBpZihjPngpe3ZhciBZPWwuc2xpY2UoeCk7WS5yZXZlcnNlKCk7Zm9yKHZhciB6PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxRPVtdLGxlPVtdLGVlPXMreCxaPTA7WjxZLmxlbmd0aDtaKyspe3ZhciBxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFA9cyt4KyhZLmxlbmd0aC0xLVopO3EuaW5uZXJIVE1MPXJ1KFlbWl0sTVtQXXx8bnVsbCxQLGEpO3ZhciBqPXEuZmlyc3RFbGVtZW50Q2hpbGQ7aiYmKGouY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZS1pbiIpLGouc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKFApKSxRLnB1c2goaiksbGUucHVzaChQKSx6LmFwcGVuZENoaWxkKGopKX1GLmluc2VydEJlZm9yZSh6LEYuZmlyc3RDaGlsZCksbHIoKSxHcyhGKSxsYShGKSxIP3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0YuaXNDb25uZWN0ZWQmJk1hdGguYWJzKEYuc2Nyb2xsVG9wKT4xJiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3A9MCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKSxrbih7cmVtb3ZlRGl2aWRlcjohMH0pLFllKCl9KTooci5jaGF0VW5yZWFkU3RhcnRJbmRleDwwJiYoci5jaGF0VW5yZWFkU3RhcnRJbmRleD1lZSksci5jaGF0VW5yZWFkQ291bnQrPVEubGVuZ3RoLGFhKEYpLFllKCkpfWVsc2UgaWYoYz09PXgmJnYhPT1JKXtmb3IodmFyIEc9QXJyYXkuZnJvbShGLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSksSj1sLnNsaWNlKCkucmV2ZXJzZSgpLHRlPSExLGRlPU1hdGgubWluKDQsSi5sZW5ndGgsRy5sZW5ndGgpLG5lPTA7bmU8ZGU7bmUrKyl7dmFyIHJlPUdbbmVdLE1lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHllPXMrSi5sZW5ndGgtMS1uZTtNZS5pbm5lckhUTUw9cnUoSltuZV0sTVt5ZV18fG51bGwseWUsYSk7dmFyIHBlPU1lLmZpcnN0RWxlbWVudENoaWxkO2lmKHBlKXtpZihyZS5pbm5lckhUTUwhPT1wZS5pbm5lckhUTUx8fHJlLmNsYXNzTmFtZSE9PXBlLmNsYXNzTmFtZSlGLnJlcGxhY2VDaGlsZChwZSxyZSksa3YocGUpLHRlPSEwO2Vsc2UgaWYobmU+MClicmVha319aWYoIXRlJiZKLmxlbmd0aD5kZSYmVCgpLHRlKXtscigpLGxhKEYpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0gmJkYuaXNDb25uZWN0ZWQmJk1hdGguYWJzKEYuc2Nyb2xsVG9wKT4xJiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3A9MCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKSxhYShGKSxZZSgpfSk7dmFyIFI9Ri5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlIiksaHQ9Ri5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbC11c2UtY2FyZCwgLmlubGluZS1kaWZmW2RhdGEtZXhwYW5kLWtleV0iKSxPZT1udWxsO2h0LmZvckVhY2goZnVuY3Rpb24oJCl7dmFyIGJlPXNhKCQpO0V0KGJlKT09PW51bGwmJigkLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXIiKSYmISQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlci1hbnN3ZXJlZCIpfHwoUiYmUi5jb250YWlucygkKT9PZT8kLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpOk9lPSQ6JC5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKSkpfSl9fWVsc2UgYzx4JiZUKCk7QWYoRiksJHYoRixuKSxVdih0LEYsaSxVKSxUdShGLG4pLGV1KGkpfXZhciBaYT0hMTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIiN0b2RvLXByb2dyZXNzLXRvZ2dsZSIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLFphPSFaYTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2kmJmEmJihaYT8oaS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGEuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSk6KGkuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSxhLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIikpKSxUaSgpfX19KTtmdW5jdGlvbiBUaSgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKCEoIWV8fCF0KSl7dmFyIG49ZSxpPSF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIiksYT10LmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSx1PXQub2Zmc2V0SGVpZ2h0O2kmJmEmJnU+MD9uLnN0eWxlLnBhZGRpbmdCb3R0b209dSs4KyJweCI6bi5zdHlsZS5wYWRkaW5nQm90dG9tPSIifX1mdW5jdGlvbiBCdihlKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTt0eXBlb2YgaT09InN0cmluZyI/dC5wdXNoKGkpOmkmJnR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiZ0LnB1c2goaS50ZXh0KX1yZXR1cm4gdC5qb2luKCIiKX1yZXR1cm4iIn1mdW5jdGlvbiBEdihlLHQpe2Zvcih2YXIgbj17fSxpPXQ7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoISghYXx8IUFycmF5LmlzQXJyYXkoYS5jb250ZW50KSkpZm9yKHZhciB1PTA7dTxhLmNvbnRlbnQubGVuZ3RoO3UrKyl7dmFyIG89YS5jb250ZW50W3VdO28mJm8udHlwZT09PSJ0b29sX3Jlc3VsdCImJm8udG9vbF91c2VfaWQmJihuW28udG9vbF91c2VfaWRdPUJ2KG8uY29udGVudCkpfX1mb3IodmFyIHM9e30sbD0wLGQ9MCxmPSExLGM9dDtjPGUubGVuZ3RoO2MrKyl7dmFyIHY9ZVtjXTtpZighKCF2fHwhQXJyYXkuaXNBcnJheSh2LmNvbnRlbnQpKSlmb3IodmFyIGg9MDtoPHYuY29udGVudC5sZW5ndGg7aCsrKXt2YXIgZz12LmNvbnRlbnRbaF07aWYoISghZ3x8Zy50eXBlIT09InRvb2xfdXNlIikpe3ZhciBtPWcuaW5wdXR8fHt9O2lmKGcubmFtZT09PSJUYXNrQ3JlYXRlIil7Zj0hMCxkKys7dmFyIHk9bltnLmlkXXx8IiIsQz15Lm1hdGNoKC8jKFxkKykvKSxFPUM/Q1sxXTpTdHJpbmcoZCk7c1tFXT17aWQ6RSxjb250ZW50Om0uc3ViamVjdHx8IiIsYWN0aXZlRm9ybTptLmFjdGl2ZUZvcm18fCIiLHN0YXR1czoicGVuZGluZyIsb3JkZXI6bCsrfX1lbHNlIGlmKGcubmFtZT09PSJUYXNrVXBkYXRlIil7Zj0hMDt2YXIgQj1TdHJpbmcobS50YXNrSWQpLEQ9c1tCXTtEfHwoRD17aWQ6Qixjb250ZW50OiIiLGFjdGl2ZUZvcm06IiIsc3RhdHVzOiJwZW5kaW5nIixvcmRlcjpsKyt9LHNbQl09RCksbS5zdGF0dXMmJihELnN0YXR1cz1tLnN0YXR1cyksbS5zdWJqZWN0JiYoRC5jb250ZW50PW0uc3ViamVjdCksbS5hY3RpdmVGb3JtJiYoRC5hY3RpdmVGb3JtPW0uYWN0aXZlRm9ybSl9fX19aWYoIWYpcmV0dXJuIG51bGw7dmFyIEY9W107Zm9yKHZhciBJIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsSSkmJnNbSV0uc3RhdHVzIT09ImRlbGV0ZWQiJiZGLnB1c2goc1tJXSk7cmV0dXJuIEYuc29ydChmdW5jdGlvbihMLEgpe3JldHVybiBMLm9yZGVyLUgub3JkZXJ9KSxGLmxlbmd0aD9GOm51bGx9ZnVuY3Rpb24gZXUoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aC0xO24+PTA7bi0tKWlmKGVbbl0mJmVbbl0ucm9sZT09PSJ1c2VyIil7dD1uKzE7YnJlYWt9Zm9yKHZhciBpPW51bGwsYT1lLmxlbmd0aC0xO2E+PXQ7YS0tKXt2YXIgdT1lW2FdO2lmKCEoIXUuY29udGVudHx8IUFycmF5LmlzQXJyYXkodS5jb250ZW50KSkpe2Zvcih2YXIgbz11LmNvbnRlbnQubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBzPXUuY29udGVudFtvXTtpZihzLnR5cGU9PT0idG9vbF91c2UiJiZzLm5hbWU9PT0iVG9kb1dyaXRlIiYmcy5pbnB1dCYmcy5pbnB1dC50b2Rvcyl7aT1zLmlucHV0LnRvZG9zO2JyZWFrfX1pZihpKWJyZWFrfX1pfHwoaT1EdihlLHQpKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKGwpe2lmKCFpfHxpLmxlbmd0aD09PTApe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxUaSgpO3JldHVybn1mb3IodmFyIGY9MCxjPTAsdj0iIixoPTA7aDxpLmxlbmd0aDtoKyspaVtoXS5zdGF0dXM9PT0iY29tcGxldGVkIiYmZisrLGlbaF0uc3RhdHVzPT09ImluX3Byb2dyZXNzIiYmKGMrKyx2fHwodj1pW2hdLmFjdGl2ZUZvcm18fGlbaF0uY29udGVudHx8IiIpKTt2YXIgZz1mPT09aS5sZW5ndGgsbT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oeil7cmV0dXJuIHouaWQ9PT1yLnNlbGVjdGVkSWR9KSx5PSEhbSYmbS5zdGF0dXM9PT0icnVubmluZyI7aWYoIXl8fGcpe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxUaSgpO3JldHVybn1sLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGwuY2xhc3NMaXN0LnJlbW92ZSgiYWxsLWRvbmUiKSxkJiZkLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWNvdW50ZXIiKTtDJiYoQy50ZXh0Q29udGVudD1mKyIvIitpLmxlbmd0aCk7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtdGFzayIpO2lmKEUpe2lmKCF2KXtmb3IodmFyIEI9MDtCPGkubGVuZ3RoO0IrKylpZihpW0JdLnN0YXR1cz09PSJwZW5kaW5nIiYmKGlbQl0uYWN0aXZlRm9ybXx8aVtCXS5jb250ZW50KSl7dj1pW0JdLmFjdGl2ZUZvcm18fGlbQl0uY29udGVudDticmVha319RS50ZXh0Q29udGVudD12fHwiXHU1MUM2XHU1OTA3XHU0RTJEXHUyMDI2In12YXIgRD1pLmxlbmd0aD4wP2YvaS5sZW5ndGg6MCxGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLXJpbmciKTtGJiZGLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixELnRvRml4ZWQoMykpO3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWZpbGwiKTtJJiZJLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixELnRvRml4ZWQoMykpO3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWxpc3QiKTtpZihMKXtmb3IodmFyIEg9IiIsVT0wO1U8aS5sZW5ndGg7VSsrKXt2YXIgeD1pW1VdLGs9eC5zdGF0dXN8fCJwZW5kaW5nIixUPWs9PT0iaW5fcHJvZ3Jlc3MiPyJhY3RpdmUiOms9PT0iY29tcGxldGVkIj8iZG9uZSI6IiIsTT1rPT09ImluX3Byb2dyZXNzIj8iYWN0aXZlIjprPT09ImNvbXBsZXRlZCI/ImRvbmUiOiJwZW5kaW5nIixZPWs9PT0iY29tcGxldGVkIj8iXHUyNzEzIjprPT09ImluX3Byb2dyZXNzIj8iXHUyMDNBIjoiXHUyNUNCIjtIKz0nPGxpIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWl0ZW0gJytUKyciPjxzcGFuIGNsYXNzPSJ0b2RvLWl0ZW0taWNvbiAnK00rJyI+JytZKyI8L3NwYW4+PHNwYW4+IitwKHguY29udGVudHx8IiIpKyI8L3NwYW4+PC9saT4ifUwuaW5uZXJIVE1MPUh9ci5zZWxlY3RlZElkJiZxYShyLnNlbGVjdGVkSWQpLFRpKCl9fWZ1bmN0aW9uIGt2KGUpe2UucXVlcnlTZWxlY3RvckFsbCgiLmNvZGUtY29weSIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgbj10LmNsb3Nlc3QoIi5jb2RlLWJsb2NrIiksaT1uP24ucXVlcnlTZWxlY3RvcigiY29kZSIpOm51bGw7aSYmVnIoaS50ZXh0Q29udGVudHx8IiIsbnVsbCxmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcGllZCEiLHQuY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcHkiLHQuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9KX0pfSl9ZnVuY3Rpb24gR3MoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY29kZS1jb3B5IikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LmNsb25lTm9kZSghMCk7dC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuLHQpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9bi5jbG9zZXN0KCIuY29kZS1ibG9jayIpLGE9aT9pLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTpudWxsO2EmJlZyKGEudGV4dENvbnRlbnR8fCIiLG51bGwsZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3B5IixuLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfSl9KX0pLEF2KGUpfXZhciBjaD17dGltZXI6bnVsbCxhY3RpdmVCdG46bnVsbH07ZnVuY3Rpb24gQXYoZSl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlczt0JiZlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLnF1ZXJ5U2VsZWN0b3IoIi5tc2ctY29weS1idG4iKSl7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO2lmKGkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2EuY2xhc3NOYW1lPSJtc2ctY29weS1idG4iLGEudGV4dENvbnRlbnQ9Ilx1NTkwRFx1NTIzNiIsYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odSl7dS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbz1pLmlubmVyVGV4dHx8aS50ZXh0Q29udGVudHx8IiI7VnIoby50cmltKCksbnVsbCxmdW5jdGlvbigpe2EudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsYS5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixhLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSwxNTAwKX0pfSksbi5hcHBlbmRDaGlsZChhKX19fSl9KGZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcztpZih0KXt2YXIgbj1udWxsLGk9MDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXt2YXIgdT1hLnRhcmdldC5jbG9zZXN0KCIuY2hhdC1tZXNzYWdlIik7aWYodSl7dmFyIG89dS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO28mJihpPWEudG91Y2hlc1swXS5jbGllbnRZLG49c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBzPXUucXVlcnlTZWxlY3RvcigiLm1zZy1jb3B5LWJ0biIpO3MmJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2wuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSkscy5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpfSw1MDApKX19LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihhKXtuJiZNYXRoLmFicyhhLnRvdWNoZXNbMF0uY2xpZW50WS1pKT4xMCYmKGNsZWFyVGltZW91dChuKSxuPW51bGwpfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmdW5jdGlvbigpe24mJihjbGVhclRpbWVvdXQobiksbj1udWxsKX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS50YXJnZXQuY2xvc2VzdCgiLm1zZy1jb3B5LWJ0biIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSl9KX19KSgpO2Z1bmN0aW9uIHh2KGUpe2lmKCFlKXJldHVybiExO3ZhciB0PVN0cmluZyhlKS50cmltKCk7cmV0dXJuIHQ/ISEodC5pbmRleE9mKCJcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAiKT09PTB8fHQ9PT0iXHUyNzZGInx8dD09PSJcdTIwM0EifHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdezIsfSQvLnRlc3QodCl8fC9eW+KWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWlOKWleKWj+KWkF0rJC8udGVzdCh0KXx8dC5pbmRleE9mKCJlc2MgdG8gaW50ZXJydXB0IikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgQ29kZSB2IikhPT0tMXx8L15Tb25uZXRcYi8udGVzdCh0KXx8dC5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCBBbnRocm9waWMiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBDb2RlIGhhcyBzd2l0Y2hlZCIpIT09LTF8fHQuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpIT09LTF8fHQuaW5kZXhPZigiW3dhbmRdIikhPT0tMXx8dC5pbmRleE9mKCIwOyIpPT09MHx8dC5pbmRleE9mKCI5OyIpPT09MHx8dC5pbmRleE9mKCJjdHJsK2ciKSE9PS0xfHx0LmluZGV4T2YoIi9lZmZvcnQiKSE9PS0xfHwvXlVzaW5nIC4qIGZvciAuKiBzZXNzaW9uLy50ZXN0KHQpfHx0LmluZGV4T2YoIlByZXNzICIpPT09MCYmdC5pbmRleE9mKCIgZm9yIikhPT0tMXx8dC5pbmRleE9mKCJ0eXBlICIpPT09MCYmdC5pbmRleE9mKCIgdG8gIikhPT0tMXx8dC5pbmRleE9mKCJhdXRvIG1vZGUgaXMgdW5hdmFpbGFibGUiKSE9PS0xfHwvTUNQIHNlcnZlci4qZmFpbGVkL2kudGVzdCh0KXx8dC5pbmRleE9mKCJHZXJtaW5hdGluZyIpIT09LTF8fHQuaW5kZXhPZigiRG9vZGxpbmciKSE9PS0xfHx0LmluZGV4T2YoIkJyZXdpbmciKSE9PS0xfHx0LmluZGV4T2YoIlBlcm1pc3Npb25zIikhPT0tMSYmdC5pbmRleE9mKCJtb2RlIikhPT0tMXx8dC5pbmRleE9mKCJcdTI1Q0YiKT09PTAmJnQuaW5kZXhPZigiXHhCNyIpIT09LTF8fHQuaW5kZXhPZigiWz4iKT09PTB8fHQuaW5kZXhPZigiWzwiKT09PTB8fHQuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKSE9PS0xfHwvXj5fXHMqT3BlbkFJIENvZGV4XGIvLnRlc3QodCl8fC9eT3BlbkFJIENvZGV4XGIvaS50ZXN0KHQpfHwvXihtb2RlbHxkaXJlY3RvcnkpOlxzKy9pLnRlc3QodCl8fC9eKHRpcHxjb250ZXh0KTpccysvaS50ZXN0KHQpfHwvXndvcmsodHJlZXxzcGFjZSk6XHMrL2kudGVzdCh0KXx8L14oYXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKy9pLnRlc3QodCl8fC9eKHRoaW5raW5nfHdvcmtpbmcpKFwuXC5cLnzigKYpPyQvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytXb3JraW5nXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccysoUnVubmluZ3xQbGFubmluZ3xBcHBseWluZ3xSZWFkaW5nfFNlYXJjaGluZylcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzKyhJbnNwZWN0aW5nfFJldmlld2luZ3xTdW1tYXJpemluZ3xFZGl0aW5nfFVwZGF0aW5nfFdyaXRpbmcpXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytDb21wbGV0ZWRcYi9pLnRlc3QodCl8fC9eKGN0cmx8ZW50ZXJ8dGFifHNoaWZ0fGVzY3xhbHQpXCsvaS50ZXN0KHQpfHwvXGIob3BlbnxjbG9zZXx0b2dnbGUpIChjaGF0fHRlcm1pbmFsKVxiL2kudGVzdCh0KXx8L1xiKGFwcHJvdmV8ZGVueSlcYi4qXGIocGVybWlzc2lvbnxhcHByb3ZhbClcYi9pLnRlc3QodCl8fC9eKHVzZXxwcmVzcykgLiogKHRvfGZvcikgLiovaS50ZXN0KHQpfHwvXig/OnRva2VufGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGNvbnZlcnNhdGlvbik6XHMrL2kudGVzdCh0KXx8L14oPzpjd2R8cGF0aCk6XHMrXC8vaS50ZXN0KHQpfHwvXls8PuKUguKUhuKVjl0uKls8PuKUguKUhuKVjl0kLy50ZXN0KHQpJiZ0Lmxlbmd0aDw4KTohMX1mdW5jdGlvbiBTdihlKXtyZXR1cm4gU3RyaW5nKGV8fCIiKS5yZXBsYWNlKC9ceDFiXF1bXlx4MDddKihceDA3fFx4MWJcXCkvZywiIikucmVwbGFjZSgvXHgxYlxbKFxkKylDL2csZnVuY3Rpb24odCxuKXtyZXR1cm4iICIucmVwZWF0KE51bWJlcihuKXx8MSl9KS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltBQl0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW3N1XS9nLCIiKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltIZkpLcl0vZyxgCmApLnJlcGxhY2UoL1x4MWJNL2csYApgKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltTVF0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW2EtekEtWl0vZywiIikucmVwbGFjZSgvXHgxYls+PD1lUFheX10vZywiIikucmVwbGFjZSgvW1x1MDBhMFx1MjAwYi1cdTIwMGRcdWZlZmZdL2csIiAiKS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwYlx4MGNceDBlLVx4MWZdL2csIiIpLnJlcGxhY2UoL1xyXG4/L2csYApgKS5yZXBsYWNlKC9bIFx0XStcbi9nLGAKYCkucmVwbGFjZSgvXG57Myx9L2csYAoKYCl9ZnVuY3Rpb24gSXYoZSx0KXt2YXIgbj1bXTtpZighZSlyZXR1cm4gbjt2YXIgaT1TdHJpbmcoZXx8IiIpLGE9YApgLHU9IlxyIixvPSJceDFCIjtpZigvXmNvZGV4XGIvLnRlc3QoU3RyaW5nKHR8fCIiKS50cmltKCkpKXtsZXQgVmU9ZnVuY3Rpb24oXyl7cmV0dXJuIFN0cmluZyhffHwiIikucmVwbGFjZSgvXHgxYlxdW15ceDA3XSooXHgwN3xceDFiXFwpL2csIiIpLnJlcGxhY2UoL1x4MWJcWyhcZCspQy9nLGZ1bmN0aW9uKE8sSyl7cmV0dXJuIiAiLnJlcGVhdChOdW1iZXIoSyl8fDEpfSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbQUJdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbc3VdL2csIiIpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0hmSktyXS9nLGEpLnJlcGxhY2UoL1x4MWJNL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbU1RdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbYS16QS1aXS9nLCIiKS5yZXBsYWNlKC9ceDFiWz48PWVQWF5fXS9nLCIiKS5yZXBsYWNlKC9bXHUwMGEwXHUyMDBiLVx1MjAwZFx1ZmVmZl0vZywiICIpLnJlcGxhY2UoL1tceDAwLVx4MDhceDBiXHgwY1x4MGUtXHgxZl0vZywiIikucmVwbGFjZSgvWyBcdF0rXG4vZyxhKX0sVWU9ZnVuY3Rpb24oXyl7cmV0dXJuIFN0cmluZyhffHwiIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9bTV0rJC9nLCIiKS50cmltKCl9LEJlPWZ1bmN0aW9uKF8pe3JldHVybiBTdHJpbmcoX3x8IiIpLnJlcGxhY2UoL17igLpccyovLCIiKS5yZXBsYWNlKC9ePlxzKi8sIiIpLnRyaW0oKX0sZnQ9ZnVuY3Rpb24oXyl7dmFyIE89U3RyaW5nKF98fCIiKS50cmltKCk7cmV0dXJuISEoIU98fHh2KE8pfHxFLnRlc3QoTyl8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3QoTyl8fC9eXFs+WzAtOTs/XSp1JC9pLnRlc3QoTyl8fC9eTSskL2kudGVzdChPKXx8L14oPzpPcGVuQUkgQ29kZXh8Q29kZXgpXGIvaS50ZXN0KE8pfHwvXig/OnRva2Vucz98Y29udGV4dCB3aW5kb3d8cmVtYWluaW5nIGNvbnRleHR8YXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKi9pLnRlc3QoTyl8fC9eKD86dGhpbmtpbmd8d29ya2luZylccyooPzpcLlwuXC584oCmKT8kL2kudGVzdChPKXx8L15b4oCi4pemwrddXHMrKD86dGhpbmtpbmd8d29ya2luZ3xydW5uaW5nfHBsYW5uaW5nfGFwcGx5aW5nfHJlYWRpbmd8c2VhcmNoaW5nfGluc3BlY3Rpbmd8cmV2aWV3aW5nfHN1bW1hcml6aW5nfGVkaXRpbmd8dXBkYXRpbmd8d3JpdGluZ3xjb21wbGV0ZWQpXGIvaS50ZXN0KE8pfHwvXig/Om1vZGVsfGRpcmVjdG9yeXx0aXB8Y29udGV4dHxjd2R8cGF0aCk6XHMrL2kudGVzdChPKSl9LHB0PWZ1bmN0aW9uKF8pe3ZhciBPPVN0cmluZyhffHwiIikudHJpbSgpO2lmKCEvXuKAuig/OlxzfCQpLy50ZXN0KE8pfHxFLnRlc3QoTykpcmV0dXJuIG51bGw7dmFyIEs9VWUoQmUoTykpO3JldHVybiFLfHxmdChLKT9udWxsOkt9LHduPWZ1bmN0aW9uKF8pe3ZhciBPPVN0cmluZyhffHwiIikudHJpbSgpO2lmKCEvXlvigKLil6bCt+KPul0vLnRlc3QoTykpcmV0dXJuIG51bGw7dmFyIEs9Ty5yZXBsYWNlKC9eW+KAouKXpsK3XVxzKi8sIiIpLnJlcGxhY2UoL17ij7pccysvLCIiKS5yZXBsYWNlKC9e4pSCXHMqLywiIikudHJpbSgpO3JldHVybiFLfHwvXlvigKLil6bCt+KPul0kLy50ZXN0KEspfHwoSz1LLnJlcGxhY2UoL1xzKlwoXGQrW3NtaF0/XHMq4oCiXHMqZXNjIHRvIGludGVycnVwdFwpW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvKD86W2Etel17MSw2fSk/4oC6W1xzXFNdKiQvLCIiKS5yZXBsYWNlKC9cc3syLH1ncHQtXGRbXHNcU10qJC9pLCIiKS5yZXBsYWNlKC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6KVxiW1xzXFNdKiQvaSwiIiksSz1VZShLKSwhS3x8Sy5sZW5ndGg8Mnx8Qi50ZXN0KEspfHxmdChLKSk/bnVsbDpLfSxDbj1mdW5jdGlvbihfKXt2YXIgTz1VZShfKTtyZXR1cm4hT3x8ZnQoTyl8fC9eW+KAouKXpsK34o+64oC6XS8udGVzdChPKXx8L15bXFtcXTw+MC05Oz9dK3U/JC9pLnRlc3QoTyl8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3QoTyl8fE8ubGVuZ3RoPjUwMD9udWxsOk99LHNlPWZ1bmN0aW9uKF8sTyl7aWYoXy5pbmRleE9mKE8pIT09MClyZXR1cm4hMTt2YXIgSz1fLnNsaWNlKE8ubGVuZ3RoKTtyZXR1cm4vXlthLXpdezEsNH0kL2kudGVzdChLKX0sZXQ9ZnVuY3Rpb24oXyl7Zm9yKHZhciBPPVtdLEs9MDtLPF8ubGVuZ3RoO0srKyl7dmFyIGFlPVVlKF9bS10pO2lmKCEoIWFlfHxhZS5sZW5ndGg8Mnx8ZnQoYWUpKSl7dmFyIG1lPU9bTy5sZW5ndGgtMV07aWYoIW1lKXtPLnB1c2goYWUpO2NvbnRpbnVlfWlmKGFlIT09bWUpe2lmKGFlLmluZGV4T2YobWUpPT09MCl7T1tPLmxlbmd0aC0xXT1hZTtjb250aW51ZX1pZihtZS5pbmRleE9mKGFlKT09PTApe3NlKG1lLGFlKSYmKE9bTy5sZW5ndGgtMV09YWUpO2NvbnRpbnVlfU8ucHVzaChhZSl9fX1yZXR1cm4gTy5qb2luKGEpLnRyaW0oKX0sQ2U9ZnVuY3Rpb24oXyl7Zm9yKHZhciBPPTA7TzxfLmxlbmd0aDtPKyspe3ZhciBLPVN0cmluZyhfW09dfHwiIikudHJpbSgpO2lmKEspe3ZhciBhZT1wdChLKTtpZihhZSlyZXR1cm4gYWU7aWYoSz09PSJcdTIwM0EiKWZvcih2YXIgbWU9TysxO21lPF8ubGVuZ3RoO21lKyspe3ZhciBEZT1VZShfW21lXSk7aWYoISghRGV8fEUudGVzdChEZSl8fGZ0KERlKSkpcmV0dXJuIERlfX19cmV0dXJuIG51bGx9LHR0PWZ1bmN0aW9uKF8pe2Zvcih2YXIgTz1bXSxLPSExLGFlPTA7YWU8Xy5sZW5ndGg7YWUrKyl7dmFyIG1lPVN0cmluZyhfW2FlXXx8IiIpLnRyaW0oKTtpZighbWUpe2lmKEspYnJlYWs7Y29udGludWV9dmFyIERlPXduKG1lKTtpZihEZSl7Ty5wdXNoKERlKSxLPSEwO2NvbnRpbnVlfWlmKEspe2lmKG1lPT09Ilx1MjAzQSJ8fC9e4oC6KD86XHN8JCkvLnRlc3QobWUpfHxFLnRlc3QobWUpfHxmdChtZSkpYnJlYWs7Ty5wdXNoKFVlKG1lKSl9fXJldHVybiBPfTtmb3IodmFyIHM9VmUsbD1VZSxkPUJlLGY9ZnQsYz1wdCx2PXduLGg9Q24sZz1zZSxtPWV0LHk9Q2UsQz10dCxFPS9cYmdwdC1cZCsoPzpcLlxkKyk/KD86XHMrW2EtejAtOS4tXSspP1xzK8K3XHMrXGQrJVxzK2xlZnRccyvCt1xzKyg/OlwvfH5cLykuKy9pLEI9L14oPzp0aGlua2luZ3x3b3JraW5nfHJ1bm5pbmd8cGxhbm5pbmd8YXBwbHlpbmd8cmVhZGluZ3xzZWFyY2hpbmd8aW5zcGVjdGluZ3xyZXZpZXdpbmd8c3VtbWFyaXppbmd8ZWRpdGluZ3x1cGRhdGluZ3x3cml0aW5nfGNvbXBsZXRlZClcYi9pLEQ9W10sRj0wLEk9aS5yZXBsYWNlKC9cclxuPy9nLGEpLnNwbGl0KGEpLEw9MDtMPEkubGVuZ3RoO0wrKylmb3IodmFyIEg9VmUoSVtMXSksVT1ILnNwbGl0KGEpLHg9MDt4PFUubGVuZ3RoO3grKyl7dmFyIGs9U3RyaW5nKFVbeF18fCIiKS50cmltKCk7aWYoayl7dmFyIFQ9cHQoayk7aWYoVCl7RC5wdXNoKHtraW5kOiJ1c2VyIixvcmRlcjpGKyssdGV4dDpUfSk7Y29udGludWV9dmFyIE09d24oayk7aWYoTSl7RC5wdXNoKHtraW5kOiJhc3Npc3RhbnQiLG9yZGVyOkYrKyx0ZXh0Ok19KTtjb250aW51ZX12YXIgWT1DbihrKTtZJiZELnB1c2goe2tpbmQ6ImVjaG8iLG9yZGVyOkYrKyx0ZXh0Oll9KX19Zm9yKHZhciB6PUQuZmlsdGVyKGZ1bmN0aW9uKF8sTyxLKXt2YXIgYWU9S1tPLTFdO3JldHVybiFhZXx8YWUua2luZCE9PV8ua2luZHx8YWUudGV4dCE9PV8udGV4dH0pLFE9ei5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIF8ua2luZD09PSJ1c2VyIn0pLGxlPXouZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBfLmtpbmQ9PT0iYXNzaXN0YW50In0pLGVlPXouZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBfLmtpbmQ9PT0iZWNobyJ9KSxaPVN2KGkpLHE9Wi5zcGxpdChhKS5tYXAoZnVuY3Rpb24oXyl7cmV0dXJuIFN0cmluZyhffHwiIikudHJpbUVuZCgpfSksUD1DZShxKSxqPVEubGVuZ3RoP1FbUS5sZW5ndGgtMV06bnVsbCxHPWVlLm1hcChmdW5jdGlvbihfKXtyZXR1cm4gXy50ZXh0fSkuZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBfLmxlbmd0aD49M30pLEo9bnVsbCx0ZT1HLmxlbmd0aC0xO3RlPj0wO3RlLS0paWYoR1t0ZV0hPT1QKXtKPUdbdGVdO2JyZWFrfSFKJiZHLmxlbmd0aCYmKEo9R1tHLmxlbmd0aC0xXSk7Zm9yKHZhciBkZT1qP2oudGV4dDpKLG5lPWxlLmZpbHRlcihmdW5jdGlvbihfKXtyZXR1cm4hanx8Xy5vcmRlcj5qLm9yZGVyfSkubWFwKGZ1bmN0aW9uKF8pe3JldHVybiBfLnRleHR9KSxyZT1bXSxNZT1aLm1hdGNoKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKiguKykkL2dtKXx8W10seWU9MDt5ZTxNZS5sZW5ndGg7eWUrKyl7dmFyIHBlPVVlKE1lW3llXS5yZXBsYWNlKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKi8sIiIpKTtwZSYmKEIudGVzdChwZSl8fEUudGVzdChwZSl8fC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6fGVzYyB0byBpbnRlcnJ1cHQpXGIvaS50ZXN0KHBlKXx8cmUucHVzaChwZSkpfXZhciBSPWV0KG5lKXx8ZXQodHQocSkpfHwocmUubGVuZ3RoP3JlW3JlLmxlbmd0aC0xXTpudWxsKTtyZXR1cm4gZGUmJm4ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpkZX0pLFImJm4ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50OlJ9KSwhbi5sZW5ndGgmJmo/bi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50OmoudGV4dH0pOiFuLmxlbmd0aCYmSiYmbi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Okp9KSxufWZvcih2YXIgaHQ9IlwwIixPZT0iXGIiLCQ9Ilx2IixiZT0iXGYiLFNlPSIOIixFZT0iHyIsb2U9Ilx4QTAiLHZlPSJceDA3IixzdD1uZXcgUmVnRXhwKG8rIlxcW1swLTk7P10qW2EtekEtWl18IitvKyJcXF1bXiIrdmUrIl0qKCIrdmUrInwiK28rIlxcXFxcXFxcKXwiK28rIls+PD1lUF9YXl18WyIraHQrIi0iK09lKyQrYmUrU2UrIi0iK0VlKyJdfCIrb2UrInwiK3UsImciKSxsdD1pLnJlcGxhY2Uoc3QsZnVuY3Rpb24oVmUpe3JldHVybiBWZT09PW9lPyIgIjpWZT09PXU/YToiIn0pLnNwbGl0KHUpLmpvaW4oYSkseXQ9bHQuc3BsaXQoYSkubWFwKGZ1bmN0aW9uKFZlKXtyZXR1cm4gVmUudHJpbSgpfSkuZmlsdGVyKEJvb2xlYW4pLEllPVsvdGhpbmtpbmcgd2l0aCBoaWdoIGVmZm9ydC9pLC90aGlua2luZyB3aXRoIG1lZGl1bSBlZmZvcnQvaSwvdGhpbmtpbmcgd2l0aCBsb3cgZWZmb3J0L2ksbmV3IFJlZ0V4cCgidGhvdWdodCBmb3IgWzAtOV0rcyIsImkiKSxuZXcgUmVnRXhwKCJTYXV0ZWVkIGZvciBbMC05XSttIiwiaSIpLC9HZXJtaW5hdGluZy9pLC9Eb29kbGluZy9pLC9CcmV3aW5nL2ldLHp0PW51bGwsSmU9LTEsUmU9W10scWU9W10saWU9W10sY2U9MDtjZTx5dC5sZW5ndGg7Y2UrKyl7dmFyIHc9eXRbY2VdLHJ0PXcucmVwbGFjZSgvXuKdr1xzKi8sIiIpO2lmKHJ0LmluZGV4T2YoJ1RyeSInKT09PTB8fHJ0LmluZGV4T2YoJ1RyeSAiJyk9PT0wKXtSZS5wdXNoKHJ0KTtjb250aW51ZX1mb3IodmFyIFZ0PSExLGl0PTA7aXQ8SWUubGVuZ3RoO2l0KyspaWYoSWVbaXRdLnRlc3Qodykpe1Z0PSEwLGllLnB1c2godyk7YnJlYWt9aWYoIVZ0JiZ3JiZ3LmluZGV4T2YoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpIT09MCYmdyE9PSJcdTI3NkYiJiZ3LmluZGV4T2YoImVzYyB0byBpbnRlcnJ1cHQiKT09PS0xJiZ3LmluZGV4T2YoIkNsYXVkZSBDb2RlIHYiKT09PS0xJiZ3LmluZGV4T2YoIlNvbm5ldCIpPT09LTEmJncuaW5kZXhPZigifi8iKSE9PTAmJncuaW5kZXhPZigiXHUyNUNGIGhpZ2giKT09PS0xJiZ3LmluZGV4T2YoIkZhaWxlZCB0byBpbnN0YWxsIEFudGhyb3BpYyBtYXJrZXRwbGFjZSIpPT09LTEmJncuaW5kZXhPZigiQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIGZyb20gbnBtIHRvIG5hdGl2ZSBpbnN0YWxsZXIiKT09PS0xJiZ3LmluZGV4T2YoIkZsdXR0ZXJpbmciKT09PS0xJiZ3LmluZGV4T2YoIj8gZm9yIHNob3J0Y3V0cyIpPT09LTEmJncuaW5kZXhPZigiMDsiKSE9PTAmJncuaW5kZXhPZigiOTsiKSE9PTAmJncuaW5kZXhPZigiQ2xhdWRlIGlzIHdhaXRpbmciKT09PS0xJiYhKHcuaW5kZXhPZigiXHUyNzIyIikhPT0tMXx8dy5pbmRleE9mKCJcdTI3MzMiKSE9PS0xfHx3LmluZGV4T2YoIlx1MjczNiIpIT09LTF8fHcuaW5kZXhPZigiXHUyNzNCIikhPT0tMXx8dy5pbmRleE9mKCJcdTI3M0QiKSE9PS0xKSYmISh3LmluZGV4T2YoIlx1MjU5MCIpPT09MHx8dy5pbmRleE9mKCJcdTI1OUQiKT09PTB8fHcuaW5kZXhPZigiXHUyNTk4Iik9PT0wKSYmISgodz09PSJsdSJ8fHc9PT0idWUifHx3PT09InRyInx8dz09PSJ0aSJ8fHc9PT0iZyJ8fHc9PT0ibiJ8fHc9PT0iaVx1MjAyNiJ8fHc9PT0iXHUyMDI2Inx8dz09PSJ1dHMifHx3PT09Imx0Inx8dz09PSJyZyJ8fHc9PT0iXHhCNyIpJiZ3Lmxlbmd0aDw0KSYmISh3LmluZGV4T2YoIlx1MjczREYiKT09PTB8fHcuaW5kZXhPZigiXHUyNzNCRiIpPT09MCkmJncuaW5kZXhPZigibnBtIFdBUk4iKT09PS0xJiZ3LmluZGV4T2YoIm5wbSBub3RpY2UiKT09PS0xJiYhKHcuaW5kZXhPZigiYWRkZWQgIikhPT0tMSYmdy5pbmRleE9mKCIgcGFja2FnZXMiKSE9PS0xKSYmdy5pbmRleE9mKCJhdWRpdGVkICIpPT09LTEmJiEody5pbmRleE9mKCJmb3VuZCAiKSE9PS0xJiZ3LmluZGV4T2YoIiB2dWxuZXJhYmlsaXRpZXMiKSE9PS0xKSYmISh3LmluZGV4T2YoIlVzaW5nICIpIT09LTEmJncuaW5kZXhPZigiIGZvciAiKSE9PS0xJiZ3LmluZGV4T2YoInNlc3Npb24iKSE9PS0xKSYmdy5pbmRleE9mKCJZb3UgY2FuIHVzZSIpPT09LTEmJiEody5pbmRleE9mKCJQcmVzcyAiKSE9PS0xJiZ3LmluZGV4T2YoIiBmb3IiKSE9PS0xKSYmISh3LmluZGV4T2YoInR5cGUgIik9PT0wJiZ3LmluZGV4T2YoIiB0byAiKSE9PS0xKSYmdy5pbmRleE9mKCJbd2FuZF0iKSE9PTAmJncuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKT09PS0xJiZ3LmluZGV4T2YoIlx1MjNGNSIpPT09LTEmJncuaW5kZXhPZigiYWNjZXB0ZWRpdCIpPT09LTEmJncuaW5kZXhPZigic2hpZnQrdGFiIik9PT0tMSYmdy5pbmRleE9mKCJ0YWJ0b2N5Y2xlIik9PT0tMSYmdy5pbmRleE9mKCJjdHJsK2ciKT09PS0xJiZ3LmluZGV4T2YoIi9lZmZvcnQiKT09PS0xJiYhKHcuaW5kZXhPZigiT3B1cyIpIT09LTEmJncuaW5kZXhPZigibW9kZWwiKSE9PS0xKSYmdy5pbmRleE9mKCJIYWlrdSIpPT09LTEmJncuaW5kZXhPZigidG8gY3ljbGUiKT09PS0xJiYhKHcuaW5kZXhPZigiaGlnaCBceEI3IikhPT0tMXx8dy5pbmRleE9mKCJoaWdoXHhCNyIpIT09LTEpJiYhKHcuaW5kZXhPZigibWVkaXVtIFx4QjciKSE9PS0xfHx3LmluZGV4T2YoIm1lZGl1bVx4QjciKSE9PS0xKSYmISh3LmluZGV4T2YoImxvdyBceEI3IikhPT0tMXx8dy5pbmRleE9mKCJsb3dceEI3IikhPT0tMSkpe2lmKHcuaW5kZXhPZigiXHUyNUNGIik9PT0wKXtpZih3PXcuc2xpY2UoMSkudHJpbSgpLCF3KWNvbnRpbnVlO3FlLnB1c2godyk7Y29udGludWV9dy5sZW5ndGg8MyYmIS9eW2EtekEtWl17M30kLy50ZXN0KHcpfHxxZS5wdXNoKHcpfX1pZihpZS5sZW5ndGg+MCl7dmFyIHh0PWllW2llLmxlbmd0aC0xXSxTdD14dC5tYXRjaChuZXcgUmVnRXhwKCJmb3IgKFswLTldK1ttc10rfCBbMC05XSttIFswLTldK3MpIiwiaSIpKSxkdD1TdD8iXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzICIrU3RbMF0ucmVwbGFjZSgvZm9yIC9pLCIiKToiXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzXHU0RTJELi4uIjtuLnB1c2goe3JvbGU6InRoaW5raW5nIixjb250ZW50OmR0LHR5cGU6ImRlZXAtdGhvdWdodCJ9KX1pZihSZS5sZW5ndGg+MCl7dmFyIFV0PVJlW1JlLmxlbmd0aC0xXS5yZXBsYWNlKC9eVHJ5XHMqLywiIikudHJpbSgpO24ucHVzaCh7cm9sZToicHJvbXB0Iixjb250ZW50OlV0LHR5cGU6InN1Z2dlc3Rpb24ifSl9aWYoIXFlLmxlbmd0aClyZXR1cm4gbjtmb3IodmFyIFRlPVtdLFdlPW51bGwsemU9W10sY2U9MDtjZTxxZS5sZW5ndGg7Y2UrKylpZih3PXFlW2NlXSx3LmluZGV4T2YoIlx1Mjc2RiIpPT09MCl7dmFyIEl0PXcucmVwbGFjZSgvXuKdr1xzKi8sIiIpLnRyaW0oKTtpZihJdC5pbmRleE9mKCdUcnkiJyk9PT0wfHxJdC5pbmRleE9mKCdUcnkgIicpPT09MCljb250aW51ZTtXZSE9PW51bGwmJnplLmxlbmd0aD4wJiYoVGUucHVzaCh7dXNlcjpXZSxhc3Npc3RhbnRMaW5lczp6ZX0pLHplPVtdKSxJdD9XZT1JdDooV2UhPT1udWxsJiZ6ZS5sZW5ndGg+MCYmKFRlLnB1c2goe3VzZXI6V2UsYXNzaXN0YW50TGluZXM6emV9KSx6ZT1bXSksV2U9bnVsbCl9ZWxzZSBXZSE9PW51bGwmJih3LmluZGV4T2YoIlx1MjNGQSIpIT09LTEmJih3LmluZGV4T2YoIkhpISIpIT09LTF8fHcuaW5kZXhPZigiSGVsbG8iKSE9PS0xfHx3LmluZGV4T2YoIldoYXQiKSE9PS0xfHx3LmluZGV4T2YoIndvcmtpbmciKSE9PS0xKT96ZS5wdXNoKHcpOncuaW5kZXhPZigiXHUyM0ZBIik9PT0wP3plLnB1c2gody5zbGljZSgxKS50cmltKCl8fHcpOncubGVuZ3RoPj04JiZ3LmluZGV4T2YoIlx1MjcyMiIpPT09LTEmJncuaW5kZXhPZigiXHUyNzMzIik9PT0tMSYmdy5pbmRleE9mKCJcdTI3MzYiKT09PS0xJiZ3LmluZGV4T2YoIlx1MjczQiIpPT09LTEmJncuaW5kZXhPZigiXHUyNzNEIik9PT0tMSYmdy5pbmRleE9mKCJcdTI1OTAiKSE9PTAmJncuaW5kZXhPZigiXHUyNTlEIikhPT0wJiZ3LmluZGV4T2YoIlx1MjU5OCIpIT09MCYmdy5pbmRleE9mKCJlc2N0b2ludGVycnVwdCIpPT09LTEmJncuaW5kZXhPZigiP2ZvciIpIT09MCYmdy5pbmRleE9mKCI/IGZvciIpIT09MCYmemUucHVzaCh3KSk7aWYoV2UhPT1udWxsJiZ6ZS5sZW5ndGg+MCYmVGUucHVzaCh7dXNlcjpXZSxhc3Npc3RhbnRMaW5lczp6ZX0pLFRlLmxlbmd0aD09PTApe2Zvcih2YXIgS3Q9IiIsSnQ9LTEsY2U9MDtjZTxxZS5sZW5ndGg7Y2UrKylpZih3PXFlW2NlXSwhKHcuaW5kZXhPZignVHJ5IicpPT09MHx8dy5pbmRleE9mKCdUcnkgIicpPT09MCkmJncuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwiKT09PS0xJiZ3LmluZGV4T2YoImN0cmwrZyIpPT09LTEmJncuaW5kZXhPZigiXHUyNUNGICIpIT09MCYmISh3Lmxlbmd0aDwyfHx3Lmxlbmd0aD4xMDApJiYvXlthLXpBLVpdLy50ZXN0KHcpKXtLdD13LnRyaW0oKSxKdD1jZTticmVha31pZihLdCYmSnQ+PTApe3ZhciBFbj1xZS5zbGljZShKdCsxKS5maWx0ZXIoZnVuY3Rpb24oVmUpe3JldHVybiBWZS5sZW5ndGg+PTh9KTtFbi5sZW5ndGg+MCYmVGUucHVzaCh7dXNlcjpLdCxhc3Npc3RhbnRMaW5lczpFbn0pfX1mb3IodmFyIGN0PTA7Y3Q8VGUubGVuZ3RoO2N0KyspaWYobi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50OlRlW2N0XS51c2VyfSksVGVbY3RdLmFzc2lzdGFudExpbmVzLmxlbmd0aD4wKXt2YXIgRm49cG0oVGVbY3RdLmFzc2lzdGFudExpbmVzLmpvaW4oYSkpO24ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50OkZufSl9cmV0dXJuIG59dmFyIFFzPSJ0cmFuc3BhcmVudCI7ZnVuY3Rpb24gTGkoZSx0KXtmb3IodmFyIG49dHx8MyxpPWVbMF0ubGVuZ3RoKm4sYT1lLmxlbmd0aCpuLHU9IiIsbz0wO288ZS5sZW5ndGg7bysrKWZvcih2YXIgcz0wO3M8ZVtvXS5sZW5ndGg7cysrKWVbb11bc10hPT1RcyYmKHUrPSc8cmVjdCB4PSInK3MqbisnIiB5PSInK28qbisnIiB3aWR0aD0iJytuKyciIGhlaWdodD0iJytuKyciIGZpbGw9IicrZVtvXVtzXSsnIi8+Jyk7cmV0dXJuJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgJytpKyIgIithKyciIGNsYXNzPSJwaXhlbC1hdmF0YXItc3ZnIj4nK3UrIjwvc3ZnPiJ9ZnVuY3Rpb24gTWkoZSl7dmFyIHQ9UXMsbj1lLmJhc2UsaT1lLmRhcmssYT1lLmxpZ2h0fHxlLmJhc2UsdT1lLmFjY2VudHx8IiNGRkZGRkYiLG89ZS5leWV8fCIjMkQyRDJEIixzPWUubW91dGh8fCIjRjI4QjlBIixsPWUubm9zZXx8ZS5kYXJrO3JldHVybltbdCxpLHQsdCx0LHQsdCx0LGksdF0sW2ksbixpLHQsdCx0LHQsaSxuLGldLFtpLG4sbixuLG4sbixuLG4sbixpXSxbbixuLHUsbyxuLG4sdSxvLG4sbl0sW24sbix1LHUsbixuLHUsdSxuLG5dLFtuLG4sbixuLHMscyxuLG4sbixuXSxbbixsLG4sYSxuLG4sYSxuLGwsbl0sW3QsbixuLG4sbixuLG4sbixuLHRdLFt0LHQsbixpLG4sbixpLG4sdCx0XSxbdCx0LHQsbix0LHQsbix0LHQsdF1dfXZhciBUdj17YmFzZToiI0YwOTIzQSIsZGFyazoiI0M0NkExQSIsbGlnaHQ6IiNGMDkyM0EiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIsbm9zZToiI0U4N0Q1QSJ9LEx2PXtiYXNlOiIjOUVBQUI4IixkYXJrOiIjNkI3QjhEIixsaWdodDoiI0M1Q0VEOCIsYWNjZW50OiIjRkZGRkZGIixleWU6IiM3RUM4OEIiLG1vdXRoOiIjRjI4QjlBIn0sJHM9W3tiYXNlOiIjNUE4RkUwIixkYXJrOiIjMkU1QkIzIixsaWdodDoiIzlDQzBGMiIsYWNjZW50OiIjRkZGRkZGIixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNUE4RkUwIn0se2Jhc2U6IiNBMDZGRTAiLGRhcms6IiM2QjQ1QTgiLGxpZ2h0OiIjQzhBNEYyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRTM2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiNBMDZGRTAifSx7YmFzZToiIzdCQjc2QiIsZGFyazoiIzRGOEE0MCIsbGlnaHQ6IiNBOUQ0OUMiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzdCQjc2QiJ9LHtiYXNlOiIjRDg2QTg4IixkYXJrOiIjOUMzQTU3IixsaWdodDoiI0U4QTRCNSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRkZGRkZGIixwcmltYXJ5OiIjRDg2QTg4In0se2Jhc2U6IiM1QkI3QjAiLGRhcms6IiMyRTc4NzMiLGxpZ2h0OiIjOUNENkQyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM1QkI3QjAifSx7YmFzZToiIzRBNEE2MCIsZGFyazoiIzFGMUYyRSIsbGlnaHQ6IiM2RTZFODQiLGFjY2VudDoiI0Y1RjVGNSIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzRBNEE2MCJ9LHtiYXNlOiIjRDhBODVBIixkYXJrOiIjOUM3MDI4IixsaWdodDoiI0VCQzc4QSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjRDhBODVBIn1dO2Z1bmN0aW9uIE12KGUsdCl7Zm9yKHZhciBuPVN0cmluZyhlfHwiIiksaT0wLGE9MDthPG4ubGVuZ3RoO2ErKylpPShpPDw1KS1pK24uY2hhckNvZGVBdChhKXwwO3JldHVybiBNYXRoLmFicyhpKSV0fXZhciBYcz17ImdlbmVyYWwtcHVycG9zZSI6Ilx1NEUwN1x1ODBGRFx1NzMyQiIsRXhwbG9yZToiXHU0RkE2XHU2M0EyXHU3MzJCIiwiY29kZS1leHBsb3JlciI6Ilx1NEZBNlx1NjNBMlx1NzMyQiIsImNvZGUtcmV2aWV3ZXIiOiJcdTVCQTFcdTY3RTVcdTczMkIiLCJjb2RlLWFyY2hpdGVjdCI6Ilx1NjdCNlx1Njc4NFx1NzMyQiIsImNvZGUtc2ltcGxpZmllciI6Ilx1N0I4MFx1NTMxNlx1NzMyQiIsImNvZGUtZ3VpZGUiOiJcdTU0MTFcdTVCRkNcdTczMkIiLFBsYW46Ilx1N0I1Nlx1NTIxMlx1NzMyQiIsImZlYXR1cmUtZGV2IjoiXHU1RjAwXHU1M0QxXHU3MzJCIiwicHItdGVzdC1hbmFseXplciI6Ilx1NkQ0Qlx1OEJENVx1NzMyQiIsInNpbGVudC1mYWlsdXJlLWh1bnRlciI6Ilx1NjJBNFx1NTM2Qlx1NzMyQiIsInR5cGUtZGVzaWduLWFuYWx5emVyIjoiXHU3QzdCXHU1NzhCXHU3MzJCIiwiY29tbWVudC1hbmFseXplciI6Ilx1NkNFOFx1OTFDQVx1NzMyQiJ9LHR1PW51bGw7ZnVuY3Rpb24gWnMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ZS5hZ2VudFR5cGV8fCIiO3JldHVybiB0JiZYc1t0XT9Yc1t0XTp0fHwoX3UoKT09PSJFbmdsaXNoIj8iU3VidGFzayI6Ilx1NUI1MFx1NEVGQlx1NTJBMSIpfWZ1bmN0aW9uIHF2KGUpe3ZhciB0PVN0cmluZyhlfHwiIikudHJpbSgpO3JldHVybiB0P3QuaW5kZXhPZigiXHU3MzJCXHU3MzJCIik9PT0wP3Q6Ilx1NzMyQlx1NzMyQiAiK3Q6Ilx1NzMyQlx1NzMyQlx1NUI1MCBBZ2VudCJ9ZnVuY3Rpb24gZWwoZSl7dmFyIHQ9WnMoZSk7aWYoIXQpcmV0dXJuIHQ7dmFyIG49dHUmJmUmJmUudGFza0lkP3R1LmdldChlLnRhc2tJZCk6bnVsbDtyZXR1cm4gcXYobj90K246dCl9ZnVuY3Rpb24gdGwoZSl7dmFyIHQ9ZSYmKGUuYWdlbnRUeXBlfHxlLnRhc2tJZCl8fCJzdWJhZ2VudCI7cmV0dXJuICRzW012KHQsJHMubGVuZ3RoKV19ZnVuY3Rpb24gZmgoZSl7dmFyIHQ9dGwoZSksbj1lbChlKSxpPUxpKE1pKHQpKTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciBhc3Npc3RhbnQgc3ViYWdlbnQiIHN0eWxlPSItLWFnZW50LWNvbG9yOicrdC5wcmltYXJ5KyciPjxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytpKyc8L2Rpdj48c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gUHYoZSx0KXtpZighZXx8ZS50eXBlIT09InRvb2xfcmVzdWx0IilyZXR1cm4iIjt2YXIgbj1wbihlLmNvbnRlbnQpLGk9ZS5pc19lcnJvcj09PSEwLGE9dHlwZW9mIG49PSJzdHJpbmciP246bj09bnVsbD8iIjpTdHJpbmcobik7aWYoIWkmJiFhLnRyaW0oKSlyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHkgcGVuZGluZyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlciBwZW5kaW5nIj4nK3Aod2UoInN1YmFnZW50LnJ1bm5pbmciKSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPjwvZGl2Pic7dmFyIHU9YS50cmltKCk/YTp3ZSgic3ViYWdlbnQubm9fb3V0cHV0Iiksbz1hLnRyaW0oKT9zdSh1KTpwKHUpLHM9d2UoaT8ic3ViYWdlbnQudGFzay5mYWlsZWQiOiJzdWJhZ2VudC50YXNrLmRvbmUiKSxsPWk/Ilx1MjcxNyI6Ilx1MjcxMyI7cmV0dXJuJzxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5IGZpbmFsJysoaT8iIGVycm9yIjoiIikrJyI+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyICcrKGk/ImVycm9yIjoiZG9uZSIpKyciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItbGFiZWwiPicrcChzKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5LWNvbnRlbnQiPicrbysiPC9kaXY+PC9kaXY+In12YXIgcWk9e2Fzc2lzdGFudDpMaShNaShUdikpLHVzZXI6TGkoTWkoTHYpKX0sbmw9e3VzZXI6e25hbWU6Ilx1OEQ1Qlx1NTM1QVx1ODY0RVx1NTk5RSIsYXZhdGFyU3ZnOnFpLnVzZXJ9LGFzc2lzdGFudDp7bmFtZToiXHU1MkU0XHU1MkIzXHU1MjFEXHU0RThDIixhdmF0YXJTdmc6cWkuYXNzaXN0YW50fX07ZnVuY3Rpb24gbnUoZSl7dmFyIHQ9ci5jb25maWcmJnIuY29uZmlnLnN0cnVjdHVyZWRDaGF0UGVyc29uYSxuPXQmJnRbZV0/dFtlXTpudWxsLGk9bmxbZV18fG5sLmFzc2lzdGFudDtyZXR1cm57bmFtZTpuJiZ0eXBlb2Ygbi5uYW1lPT0ic3RyaW5nIiYmbi5uYW1lLnRyaW0oKT9uLm5hbWUudHJpbSgpOmkubmFtZSxhdmF0YXI6biYmdHlwZW9mIG4uYXZhdGFyPT0ic3RyaW5nIiYmbi5hdmF0YXIudHJpbSgpP24uYXZhdGFyLnRyaW0oKTpudWxsLGF2YXRhclN2ZzppLmF2YXRhclN2Z319ZnVuY3Rpb24gcmwoZSl7cmV0dXJuJzxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytlKyI8L2Rpdj4ifWZ1bmN0aW9uIHBoKGUsdCl7aWYoISghZXx8IWUucGFyZW50Tm9kZSkpe3ZhciBuPW51KHQ9PT0idXNlciI/InVzZXIiOiJhc3Npc3RhbnQiKTtlLm91dGVySFRNTD1ybChuLmF2YXRhclN2Zyl9fWZ1bmN0aW9uIFhuKGUsdCl7dD10fHx7fTt2YXIgbj1lPT09InVzZXIiPyJ1c2VyIjoiYXNzaXN0YW50IixpPW51KG4pLGE9aS5hdmF0YXI/JzxpbWcgY2xhc3M9InBpeGVsLWF2YXRhci1pbWFnZSIgc3JjPSInK3AoaS5hdmF0YXIpKyciIGFsdD0iJytwKGkubmFtZSkrJyIgb25lcnJvcj0iaGFuZGxlQ2hhdEF2YXRhckltYWdlRXJyb3IodGhpcywgJytKU09OLnN0cmluZ2lmeShuKSsnKSIgLz4nOnJsKGkuYXZhdGFyU3ZnKSx1PXQubGVmdFNsb3Q/dC5sZWZ0U2xvdDoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciAnK2UrJyI+JythKyc8c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChpLm5hbWUpKyI8L3NwYW4+Iit1KyI8L2Rpdj4ifWZ1bmN0aW9uIE92KCl7dmFyIGU9a3QoKTtyZXR1cm4hZXx8IXVlKGUpPyIiOkNsKGUse2tpbmQ6ImNvbXBhY3QifSl9ZnVuY3Rpb24gcnUoZSx0LG4saSl7aWYoZS5yb2xlPT09InRoaW5raW5nIil7dmFyIGE9dHlwZW9mIGUuY29udGVudD09InN0cmluZyI/ZS5jb250ZW50OiIiO2lmKCFhLnRyaW0oKSlyZXR1cm4iIjt2YXIgdT1MdCgidGhpbmtpbmciLFtZdShlLG4pLCJwdHkiXSksbz1FdCh1KSxzPW89PT1udWxsP0xuKCJ0aGlua2luZyIpOm87cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSB0aGlua2luZyI+PGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lIHRoaW5raW5nLXB0eSAnKyhzPyJleHBhbmRlZCI6ImNvbGxhcHNlZCIpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRoaW5raW5nIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh1KSsnIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgb25jbGljaz0iX190aGlua2luZ1RvZ2dsZSh0aGlzKSI+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1pY29uIj5cdTI5QkY8L3NwYW4+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1wcmV2aWV3Ij4nK3AoYSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWFjdGlvbiI+Jysocz8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIikrIjwvc3Bhbj48L2Rpdj48L2Rpdj4ifWlmKGUucm9sZT09PSJwcm9tcHQiKXJldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgcHJvbXB0Ij48ZGl2IGNsYXNzPSJwcm9tcHQtY2FyZCI+PGRpdiBjbGFzcz0icHJvbXB0LWljb24iPlx1MjE5MjwvZGl2PjxkaXYgY2xhc3M9InByb21wdC1jb250ZW50Ij5cdThCRDVcdThCRDVcdUZGMUE8c3BhbiBjbGFzcz0icHJvbXB0LXRleHQiPicrcChlLmNvbnRlbnQpKyI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+IjtpZihBcnJheS5pc0FycmF5KGUuY29udGVudCkpcmV0dXJuIG5tKGUsdCxuLGkpO3ZhciBsPVhuKGUucm9sZSksZD1lLnJvbGU9PT0iYXNzaXN0YW50Ij9zdShlLmNvbnRlbnQpOmUucm9sZT09PSJ1c2VyIj9kbChlLmNvbnRlbnQpOnAoZS5jb250ZW50KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrZS5yb2xlKyciPicrbCsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWJ1YmJsZSI+JytkKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEh2KGUpe3ZhciB0PXt9O2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKGkmJmkudHlwZT09PSJ0b29sX3Jlc3VsdCIpe3ZhciBhPWkudG9vbF91c2VfaWQ7aWYoIWEpY29udGludWU7dFthXXx8KHRbYV09W10pLHRbYV0ucHVzaChpKX19cmV0dXJuIHR9ZnVuY3Rpb24gaWwoZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8IW4ubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGgtMTtpKyspaWYod2wobltpXSxuW2krMV0pKXJldHVybiBuW2krMV07cmV0dXJuIG5bbi5sZW5ndGgtMV19ZnVuY3Rpb24gX3YoZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8bi5sZW5ndGg8MilyZXR1cm4hMTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoLTE7aSsrKWlmKHdsKG5baV0sbltpKzFdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBOdihlKXtyZXR1cm4nPGRpdiBjbGFzcz0ic3RydWN0dXJlZC10b29sLWhpbnQiPlx1NURGMlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1NEUwMFx1NkIyMSAnK3Aob3UoZSkpKyIgXHU1M0MyXHU2NTcwXHU5NUVFXHU5ODk4PC9kaXY+In12YXIganY9e1JlYWQ6MSxHbG9iOjEsR3JlcDoxLFdlYkZldGNoOjEsV2ViU2VhcmNoOjEsVG9kb1JlYWQ6MX07ZnVuY3Rpb24gYWwoZSl7aWYoIWV8fGUudHlwZSE9PSJ0b29sX3VzZSJ8fCFqdltlLm5hbWVdKXJldHVybiExO2lmKGUubmFtZT09PSJSZWFkIil7dmFyIHQ9ZS5pbnB1dHx8e307aWYoTHUodC5maWxlX3BhdGh8fHQucGF0aHx8IiIpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIFJ2KGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDspe3ZhciBpPWVbbl07aWYoaS50eXBlPT09InRvb2xfcmVzdWx0Iil7bisrO2NvbnRpbnVlfWlmKGFsKGkpKXtmb3IodmFyIGE9W3tibG9jazppLGluZGV4Om59XSx1PW4rMTt1PGUubGVuZ3RoOyl7aWYoZVt1XS50eXBlPT09InRvb2xfcmVzdWx0Iil7dSsrO2NvbnRpbnVlfWlmKGFsKGVbdV0pKWEucHVzaCh7YmxvY2s6ZVt1XSxpbmRleDp1fSksdSsrO2Vsc2UgYnJlYWt9YS5sZW5ndGg+PTI/dC5wdXNoKHt0eXBlOiJncm91cCIsaXRlbXM6YSxlbmRJbmRleDp1fSk6dC5wdXNoKHt0eXBlOiJzaW5nbGUiLGJsb2NrOmksaW5kZXg6bn0pLG49dX1lbHNlIHQucHVzaCh7dHlwZToic2luZ2xlIixibG9jazppLGluZGV4Om59KSxuKyt9cmV0dXJuIHR9dmFyIFd2PXtSZWFkOiJcdThCRkJcdTUzRDYiLEdsb2I6Ilx1NjQxQ1x1N0QyMiIsR3JlcDoiXHU2NDFDXHU3RDIyIixXZWJGZXRjaDoiXHU2MjkzXHU1M0Q2IixXZWJTZWFyY2g6Ilx1NjQxQ1x1N0QyMiIsVG9kb1JlYWQ6Ilx1NUY4NVx1NTI5RSJ9O2Z1bmN0aW9uIHp2KGUsdCxuLGksYSl7Zm9yKHZhciB1PWF8fHt9LG89e30scz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbD1lW3NdLmJsb2NrLm5hbWU7b1tsXT0ob1tsXXx8MCkrMX1mb3IodmFyIGQ9ITAsZj0hMSxzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBjPWVbc10uYmxvY2ssdj1pbChuLGMuaWQpO3Y/di5pc19lcnJvciYmKGY9ITApOmQ9ITF9dmFyIGg9ZD9mPyJcdTI3MTciOiJcdTI3MTMiOiJcdTIwMjYiLGc9ZD9mPyJlcnJvciI6ImRvbmUiOiJwZW5kaW5nIixtPVtdO2Zvcih2YXIgeSBpbiBvKW0ucHVzaChvW3ldKyIgIisoV3ZbeV18fHkpKTtmb3IodmFyIEM9bS5qb2luKCIgXHhCNyAiKSxFPUx0KCJ0b29sLWdyb3VwIixbaSxlWzBdJiZlWzBdLmluZGV4LGUubGVuZ3RoXSksQj1FdChFKSxEPXUuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6Qj09PW51bGw/TG4oInRvb2xHcm91cCIpOkIsRj0iIixzPTA7czxlLmxlbmd0aDtzKyspdHJ5e0YrPWNsKGVbc10uYmxvY2ssdCxuLGVbc10uaW5kZXgsaSx1KX1jYXRjaHtGKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTVERTVcdTUxNzdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybic8ZGl2IGNsYXNzPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1rZXk9IicrcChFKSsnIiBkYXRhLWV4cGFuZGVkPSInKyhEPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLXN0YXR1cz0iJytnKyciPjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtc3VtbWFyeSIgb25jbGljaz0iX190b29sR3JvdXBUb2dnbGUodGhpcy5wYXJlbnROb2RlKSI+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtc3RhdHVzIj4nK2grJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC10ZXh0Ij4nK3AoQykrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC1jb3VudCI+JytlLmxlbmd0aCsnIFx1NEUyQVx1OEMwM1x1NzUyODwvc3Bhbj48c3ZnIGNsYXNzPSJ0b29sLWdyb3VwLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ0cmFuc2Zvcm06JysoRD8icm90YXRlKDE4MGRlZykiOiIiKSsnIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoRD8iYmxvY2siOiJub25lIikrJzsiPicrRisiPC9kaXY+PC9kaXY+In13aW5kb3cuX190b29sR3JvdXBUb2dnbGU9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsdD8iZmFsc2UiOiJ0cnVlIik7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1ib2R5Iik7biYmKG4uc3R5bGUuZGlzcGxheT10PyJub25lIjoiYmxvY2siKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWNoZXZyb24iKTtpJiYoaS5zdHlsZS50cmFuc2Zvcm09dD8iIjoicm90YXRlKDE4MGRlZykiKSxSbihlLCJ0b29sLWdyb3VwIil9fTtmdW5jdGlvbiBWdihlLHQpe2Zvcih2YXIgbj0wLGk9MCxhPTAsdT17fSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPWVbdFtvXV07aWYocyl7cy5yb2xlPT09InVzZXIiJiZuKys7dmFyIGw9cy5jb250ZW50O2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBkPTA7ZDxsLmxlbmd0aDtkKyspe3ZhciBmPWxbZF07aWYoZilpZihmLl9fc3ViYWdlbnQmJmYuX19zdWJhZ2VudC50YXNrSWQmJih1W2YuX19zdWJhZ2VudC50YXNrSWRdPTEpLGYudHlwZT09PSJ0b29sX3VzZSIpe2krKzt2YXIgYz1QaShmKTtjJiZjLnRhc2tJZCYmKHVbYy50YXNrSWRdPTEpfWVsc2UgZi50eXBlPT09InRvb2xfcmVzdWx0IiYmZi5pc19lcnJvciYmYSsrfX19dmFyIHY9MDtmb3IodmFyIGggaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxoKSYmdisrO3JldHVybntyb3VuZHM6bix0b29sczppLGFnZW50czp2LGVycm9yczphfX1mdW5jdGlvbiB1bChlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKHdlKCJoaXN0b3J5LnJvdW5kcyIse246U3RyaW5nKGUucm91bmRzKX0pKSxlLnRvb2xzPjAmJnQucHVzaCh3ZSgiaGlzdG9yeS50b29scyIse246U3RyaW5nKGUudG9vbHMpfSkpLGUuYWdlbnRzPjAmJnQucHVzaCh3ZSgiaGlzdG9yeS5hZ2VudHMiLHtuOlN0cmluZyhlLmFnZW50cyl9KSksZS5lcnJvcnM+MCYmdC5wdXNoKHdlKCJoaXN0b3J5LmVycm9ycyIse246U3RyaW5nKGUuZXJyb3JzKX0pKSx0LmpvaW4oIiBceEI3ICIpfWZ1bmN0aW9uIGl1KGUsdCl7Zm9yKHZhciBuPWUubmV4dEVsZW1lbnRTaWJsaW5nO247KW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LWxvYWQtbW9yZSIpfHwodD9uLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTpuLmNsYXNzTGlzdC5hZGQoImNoYXQtaGlzdG9yeS1oaWRkZW4iKSksbj1uLm5leHRFbGVtZW50U2libGluZ31mdW5jdGlvbiBVdihlLHQsbixpKXshZXx8IXR8fChLdihlLHQsITEpLGF1KHQpLEd2KGUpKX1mdW5jdGlvbiB2aChlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LWZvbGQtYmFyIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuaWQ9ImNoYXQtZm9sZC1iYXIiLHQuY2xhc3NOYW1lPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIsZS5pbnNlcnRCZWZvcmUodCxlLmZpcnN0Q2hpbGQpLHQpfWZ1bmN0aW9uIEt2KGUsdCxuKXtlJiZlLmNsYXNzTGlzdC50b2dnbGUoImF1dG8tZm9sZCIsISFuKX1mdW5jdGlvbiBtaChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0O2krKyllW2ldJiZuLnB1c2goaSk7cmV0dXJuIG59ZnVuY3Rpb24gYXUoZSl7aWYoZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1hdXRvLWZvbGQtaGlkZGVuIiksbj0wO248dC5sZW5ndGg7bisrKXRbbl0uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1hdXRvLWZvbGQtaGlkZGVuIil9ZnVuY3Rpb24gZ2goZSx0LG4pe2lmKGF1KGUpLCEoIW58fHQ8MSkpe2Zvcih2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciB1PWlbYV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHUhPW51bGwpe3ZhciBvPXBhcnNlSW50KHUsMTApOyFpc05hTihvKSYmbzx0JiZpW2FdLmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfX1KdihlKX19ZnVuY3Rpb24gSnYoZSl7dmFyIHQ9ZT9lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpOm51bGw7aWYodCl7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLCJmYWxzZSIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIpO24mJm4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgaT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2kmJihpLnRleHRDb250ZW50PXdlKCJoaXN0b3J5LmV4cGFuZCIpKSxpdSh0LCExKSx0LmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpO3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYoYSl7dmFyIHU9YS5zcGxpdCgiOiIpO3UubGVuZ3RoPj0zJiYodVsyXT0iMCIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHUuam9pbigiOiIpKSl9fX1mdW5jdGlvbiBZdihlKXshZXx8IWUuaXNDb25uZWN0ZWR8fChrbih7cmVtb3ZlRGl2aWRlcjohMH0pLE51KCEwKSl9ZnVuY3Rpb24gR3YoZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3QmJih0LmlubmVySFRNTD0iIix0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuY2hhdEF1dG9Gb2xkU25hcHNob3Q9bnVsbCl9fWZ1bmN0aW9uIGhoKGUsdCxuKXt2YXIgaT1vbChlKXx8Ilx1NjVCMFx1NkQ4OFx1NjA2RiIsYT10P29sKHQpOiJcdTdCNDlcdTVGODVcdTU2REVcdTU5MEQuLi4iLHU9IiI7cmV0dXJuIG4mJih1PSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNoYXQtZm9sZC1yb3cgaGlzdG9yeSIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRUb2dnbGVIaXN0b3J5ICYmIHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSgpIiB0aXRsZT0iXHU1QzU1XHU1RjAwXHU2MjE2XHU2NTM2XHU4RDc3XHU2NkY0XHU2NUU5XHU1QkY5XHU4QkREIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NTM4Nlx1NTNGMjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPlx1NURGMlx1NjUzNlx1OEQ3NyAnK3AodWwobikpKyI8L3NwYW4+PC9idXR0b24+IiksdSsnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IHVzZXIiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+XHU2MjExPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGkpKyc8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGFzc2lzdGFudCIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QgJiYgd2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QoKSIgdGl0bGU9Ilx1NUI5QVx1NEY0RFx1NTIzMFx1NjcwMFx1NjVCMFx1NTZERVx1NTkwRCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5DbGF1ZGU8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij4nK3AoYSkrIjwvc3Bhbj48L2J1dHRvbj4ifWZ1bmN0aW9uIG9sKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVtdO2Z1bmN0aW9uIG4obyl7aWYodHlwZW9mIG89PSJzdHJpbmciKXt2YXIgcz1vLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO3MmJnQucHVzaChzKX19aWYodHlwZW9mIGUuY29udGVudD09InN0cmluZyIpbihlLmNvbnRlbnQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKWZvcih2YXIgaT0wO2k8ZS5jb250ZW50Lmxlbmd0aCYmdC5qb2luKCIgIikubGVuZ3RoPDE4MDtpKyspe3ZhciBhPWUuY29udGVudFtpXTthJiYoYS50eXBlPT09InRleHQiP24oYS50ZXh0KTphLnR5cGU9PT0idGhpbmtpbmciP24oYS50aGlua2luZyk6YS50eXBlPT09InRvb2xfdXNlIj9uKGEubmFtZT8iXHU4QzAzXHU3NTI4ICIrYS5uYW1lOiJcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiKTphLnR5cGU9PT0idG9vbF9yZXN1bHQiP24oYS5pc19lcnJvcj8iXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU5NTE5XHU4QkVGIjoiXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU3RUQzXHU2NzlDIik6YS50ZXh0JiZuKGEudGV4dCkpfXZhciB1PXQuam9pbigiIFx4QjcgIik7cmV0dXJuIHUubGVuZ3RoPjE4MD91LnNsaWNlKDAsMTc3KSsiLi4uIjp1fXdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIik7ZSYmWXYoZSl9LHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeT1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSx0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIik6bnVsbDtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLHQmJndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlJiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0KX07ZnVuY3Rpb24gUXYoZSx0LG4saSl7dmFyIGE9e3Nob3VsZENvbGxhcHNlRm9yVmlld3BvcnQ6ITEsaGlzdG9yeUluZGljZXM6W10sZmlyc3RIaXN0b3J5RWw6bnVsbH07aWYoIWV8fG48MClyZXR1cm4gYTtmb3IodmFyIHU9aSYmKGUuY2xpZW50SGVpZ2h0fHxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCl8fDAsbz1udWxsLHM9bnVsbCxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBkPXRbbF0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKGQhPW51bGwpe3ZhciBmPXBhcnNlSW50KGQsMTApO2lzTmFOKGYpfHwoZjxuPyhhLmhpc3RvcnlJbmRpY2VzLnB1c2goZiksYS5maXJzdEhpc3RvcnlFbHx8KGEuZmlyc3RIaXN0b3J5RWw9dFtsXSkpOmkmJihvfHwobz10W2xdKSxzPXRbbF0pKX19aWYoaSYmdT4wJiZvJiZzKXt2YXIgYz1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPU1hdGgubWF4KGMuYm90dG9tLHYuYm90dG9tKS1NYXRoLm1pbihjLnRvcCx2LnRvcCksZz1NYXRoLm1heCgyMjAsdS0yNCk7YS5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0PWg+PWd9cmV0dXJuIGF9ZnVuY3Rpb24gJHYoZSx0KXtpZighZSlyZXR1cm47dmFyIG49ci5jdXJyZW50TWVzc2FnZXN8fFtdO3R8fCh0PWt0KCkpO2Zvcih2YXIgaT0tMSxhPW4ubGVuZ3RoLTE7YT49MDthLS0paWYoblthXSYmblthXS5yb2xlPT09InVzZXIiKXtpPWE7YnJlYWt9ZnVuY3Rpb24gdSgpe3ZhciBGPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7RiYmRi5yZW1vdmUoKTtmb3IodmFyIEk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLEw9MDtMPEkubGVuZ3RoO0wrKylJW0xdLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTtlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpfWlmKGk8MSl7dSgpO3JldHVybn12YXIgbz1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxzPUZsKHQpLGw9UXYoZSxvLGkscyYmci5jaGF0U3RpY2tUb0JvdHRvbSk7aWYocyYmKCFyLmNoYXRTdGlja1RvQm90dG9tfHwhbC5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0KSl7dSgpO3JldHVybn12YXIgZD1sLmhpc3RvcnlJbmRpY2VzLGY9bC5maXJzdEhpc3RvcnlFbDtpZihkLmxlbmd0aDwyfHwhZil7dSgpO3JldHVybn12YXIgYz1WdihuLGQpLHY9THQoImhpc3Rvcnktc3VtbWFyeSIsW2ldKSxoPUV0KHYpPT09ITAsZz1pKyI6IitkLmxlbmd0aCsiOiIrKGg/MTowKSsiOiIrYy5yb3VuZHMrIjoiK2MudG9vbHMrIjoiK2MuYWdlbnRzKyI6IitjLmVycm9ycztpZighKGUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik9PT1nJiZlLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpKSl7dmFyIG09ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTttJiZtLnJlbW92ZSgpO2Zvcih2YXIgeT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LWhpc3RvcnktaGlkZGVuIiksQz0wO0M8eS5sZW5ndGg7QysrKXlbQ10uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1oaXN0b3J5LWhpZGRlbiIpO3ZhciBFPXVsKGMpLEI9d2UoaD8iaGlzdG9yeS5jb2xsYXBzZSI6Imhpc3RvcnkuZXhwYW5kIiksRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtELmNsYXNzTmFtZT0iY2hhdC1oaXN0b3J5LXN1bW1hcnkiLEQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiLHYpLEQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixoPyJ0cnVlIjoiZmFsc2UiKSxELmlubmVySFRNTD0nPGJ1dHRvbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9IndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlKHRoaXMpIiBhcmlhLWV4cGFuZGVkPSInKyhoPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktaWNvbiI+JytWKCJmb2xkZXIiLHtzaXplOjE1fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYm9keSI+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxlIj4nK3AoQikrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YSI+JytwKEUpKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9uIj4nK1YoImNoZXZyb25Eb3duIix7c2l6ZToxNn0pKyI8L3NwYW4+PC9idXR0b24+IixlLmluc2VydEJlZm9yZShELGYpLGl1KEQsaCksZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLGcpfX13aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLmNsb3Nlc3Q/ZS5jbG9zZXN0KCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTpudWxsO2lmKHQpe3ZhciBuPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiKSxpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIikhPT0idHJ1ZSI7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLGk/InRydWUiOiJmYWxzZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixpPyJ0cnVlIjoiZmFsc2UiKTt2YXIgYT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2EmJihhLnRleHRDb250ZW50PXdlKGk/Imhpc3RvcnkuY29sbGFwc2UiOiJoaXN0b3J5LmV4cGFuZCIpKSxuJiZKdShuLGkpLGl1KHQsaSk7dmFyIHU9dC5wYXJlbnRFbGVtZW50O2lmKGkmJmF1KHUpLHUpe3ZhciBvPXUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYobyl7dmFyIHM9by5zcGxpdCgiOiIpO3MubGVuZ3RoPj0zJiYoc1syXT1pPyIxIjoiMCIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHMuam9pbigiOiIpKSl9fX19O2Z1bmN0aW9uIFBpKGUpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF91c2UiKXJldHVybiBudWxsO3ZhciB0PWUuaW5wdXR8fHt9LG49dHlwZW9mIHQuc3ViYWdlbnRfdHlwZT09InN0cmluZyI/dC5zdWJhZ2VudF90eXBlOm51bGw7cmV0dXJuIW4mJmUubmFtZSE9PSJUYXNrIiYmZS5uYW1lIT09IkFnZW50Ij9udWxsOnt0YXNrSWQ6ZS5pZCxhZ2VudFR5cGU6bnx8dm9pZCAwLHRhc2tEZXNjcmlwdGlvbjp0eXBlb2YgdC5kZXNjcmlwdGlvbj09InN0cmluZyI/dC5kZXNjcmlwdGlvbjp2b2lkIDB9fWZ1bmN0aW9uIFh2KGUpe3ZhciB0PW5ldyBNYXA7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aWYoISghaXx8aS5yb2xlIT09ImFzc2lzdGFudCJ8fCFBcnJheS5pc0FycmF5KGkuY29udGVudCkpKWZvcih2YXIgYT0wO2E8aS5jb250ZW50Lmxlbmd0aDthKyspe3ZhciB1PWkuY29udGVudFthXTtpZighKCF1fHx1LnR5cGUhPT0idG9vbF91c2UiKSl7dmFyIG89dS5fX3N1YmFnZW50fHxQaSh1KTtvJiZ0LnNldCh1LmlkLG8pfX19cmV0dXJuIHR9ZnVuY3Rpb24gWnYoZSl7dmFyIHQ9bmV3IE1hcDtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdDt2YXIgbj1uZXcgTWFwLGk9bmV3IFNldDtmdW5jdGlvbiBhKGYpe2lmKCEoIWZ8fCFmLnRhc2tJZCkmJiFpLmhhcyhmLnRhc2tJZCkpe2kuYWRkKGYudGFza0lkKTt2YXIgYz1acyhmKTtjJiYobi5oYXMoYyl8fG4uc2V0KGMsW10pLG4uZ2V0KGMpLnB1c2goZi50YXNrSWQpKX19Zm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBvPWVbdV07aWYoISghb3x8IUFycmF5LmlzQXJyYXkoby5jb250ZW50KSkpZm9yKHZhciBzPTA7czxvLmNvbnRlbnQubGVuZ3RoO3MrKyl7dmFyIGw9by5jb250ZW50W3NdO2lmKGwpe3ZhciBkPWwuX19zdWJhZ2VudHx8KGwudHlwZT09PSJ0b29sX3VzZSI/UGkobCk6bnVsbCk7ZCYmYShkKX19fXJldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZil7aWYoIShmLmxlbmd0aDwyKSlmb3IodmFyIGM9MDtjPGYubGVuZ3RoO2MrKyl0LnNldChmW2NdLCIgIyIrKGMrMSkpfSksdH1mdW5jdGlvbiBzbChlLHQpe3ZhciBuPVtdO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhZS5sZW5ndGgpcmV0dXJuIG47Zm9yKHZhciBpPW51bGwsYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgdT1lW2FdLG89dSYmdS50eXBlPT09InRleHQiJiZ1Ll9fcHJvY2Vzc2luZz09PSEwO2lmKG8mJmkpe2kuYmxvY2tzLnB1c2godSk7Y29udGludWV9dmFyIHM9dSYmdS5fX3N1YmFnZW50P3UuX19zdWJhZ2VudDpudWxsO3N8fChzPVBpKHUpKSwhcyYmdSYmdS50eXBlPT09InRvb2xfcmVzdWx0IiYmdCYmdC5oYXModS50b29sX3VzZV9pZCkmJihzPXQuZ2V0KHUudG9vbF91c2VfaWQpKTt2YXIgbD1zP3MudGFza0lkOm51bGw7KCFpfHxpLmtleSE9PWwpJiYoaT17a2V5Omwsc3ViYWdlbnQ6cyxibG9ja3M6W10sZmlyc3RJbmRleDphfSxuLnB1c2goaSkpLGkuYmxvY2tzLnB1c2godSl9cmV0dXJuIG59ZnVuY3Rpb24gdXUoZSx0LG4saSxhLHUpe3ZhciBvPSIiLHM9dXx8e307dHJ5e2Zvcih2YXIgbD1SdihlKSxkPTA7ZDxsLmxlbmd0aDtkKyspe3ZhciBmPWxbZF07dHJ5e2lmKGYudHlwZT09PSJncm91cCIpe2Zvcih2YXIgYz1bXSx2PTA7djxmLml0ZW1zLmxlbmd0aDt2KyspYy5wdXNoKHtibG9jazpmLml0ZW1zW3ZdLmJsb2NrLGluZGV4OmYuaXRlbXNbdl0uaW5kZXgrdH0pO28rPXp2KGMsbixpLGEscyl9ZWxzZSBvKz1jbChmLmJsb2NrLG4saSxmLmluZGV4K3QsYSxzKX1jYXRjaHtvKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTZEODhcdTYwNkZcdTU3NTdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfX19Y2F0Y2h7bys9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU2RDg4XHU2MDZGXHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J31yZXR1cm4gb31mdW5jdGlvbiBsbChlLHQsbixpLGEsdSl7Zm9yKHZhciBvPXV8fHt9LHM9by5zaG93SGFuZG9mZiE9PSExLGw9IiIsZD1udWxsLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGM9ZVtmXSx2PWMuc3ViYWdlbnQ/e2luU3ViYWdlbnRQYW5lbDohMH06e30saD11dShjLmJsb2NrcyxjLmZpcnN0SW5kZXgsdCxpLGEsdik7aWYoISghaHx8IWgudHJpbSgpKSlpZihjLnN1YmFnZW50KXt2YXIgZz1zJiZkIT09Yy5zdWJhZ2VudC50YXNrSWQ7bCs9ZW0oYyxuLGgsYSxnKSxkPWMuc3ViYWdlbnQudGFza0lkfWVsc2UgbCs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1zZWdtZW50IHBhcmVudCI+JytYbih0KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicraCsiPC9kaXY+PC9kaXY+IixkPW51bGx9cmV0dXJuIGx9ZnVuY3Rpb24gZW0oZSx0LG4saSxhKXt2YXIgdT1lLnN1YmFnZW50LG89dGwodSkscz1lbCh1KSxsPXUudGFza0lkfHwiIixkPUxpKE1pKG8pKSxmPXRtKGUuYmxvY2tzKSxjO2lmKGEpe3ZhciB2PSEhKHUudGFza0Rlc2NyaXB0aW9uJiZTdHJpbmcodS50YXNrRGVzY3JpcHRpb24pLnRyaW0oKSksaD12Pyc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFzay1kZXNjIj4nK3AodS50YXNrRGVzY3JpcHRpb24pKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhc2stZGVzYyI+JytwKHdlKCJzdWJhZ2VudC5jb250aW51ZWQiKSkrIjwvc3Bhbj4iO2M9JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbiI+PHN0cm9uZyBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtbmFtZSI+JytwKHMpKyc8L3N0cm9uZz48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFnIiB0aXRsZT0iJytwKHdlKCJzdWJhZ2VudC50YWdfdGl0bGUiKSkrJyI+JytwKHdlKCJzdWJhZ2VudC50YWciKSkrIjwvc3Bhbj4iK2grIjwvc3Bhbj4ifWVsc2UgYz0nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9uIj48c3Ryb25nIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1uYW1lIj4nK3AocykrJzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YXNrLWRlc2MiPiAnK3Aod2UoInN1YmFnZW50LmNvbnRpbnVlZCIpKSsiPC9zcGFuPjwvc3Bhbj4iO3ZhciBnPUx0KCJzdWJhZ2VudC1wYW5lbCIsW2ksbF0pO3JldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbCIgZGF0YS1leHBhbmQta2luZD0ic3ViYWdlbnQtcGFuZWwiIGRhdGEtZXhwYW5kLWtleT0iJytwKGcpKyciIGRhdGEtYWdlbnQtaWQ9IicrcChsKSsnIiBkYXRhLWV4cGFuZGVkPSJ0cnVlIiBzdHlsZT0iLS1hZ2VudC1jb2xvcjonK28ucHJpbWFyeSsnIj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1oZWFkZXIiIGFyaWEtbGFiZWw9IicrcCh3ZSgic3ViYWdlbnQudGl0bGVfYXJpYSIpKSsnIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXZhdGFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytkKyI8L3NwYW4+IitjKyc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtY291bnQiPicrcChmKyIgXHU2NzYxXHU1MTg1XHU1QkI5IikrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1ib2R5Ij4nK24rIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdG0oZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dOyFpfHwhaS50eXBlfHxpLnR5cGUhPT0idG9vbF9yZXN1bHQiJiYoaS50eXBlPT09InRleHQiJiYhU3RyaW5nKGkudGV4dHx8IiIpLnRyaW0oKSYmIWkuX19wcm9jZXNzaW5nfHxpLnR5cGU9PT0idGhpbmtpbmciJiYhU3RyaW5nKGkudGhpbmtpbmd8fCIiKS50cmltKCl8fHQrKyl9cmV0dXJuIE1hdGgubWF4KDEsdCl9ZnVuY3Rpb24gbm0oZSx0LG4saSl7dmFyIGE9ZS5yb2xlLHU9WXUoZSxuKSxvPWE9PT0iYXNzaXN0YW50Ij9ybSh0KToiIixzPWE9PT0idXNlciImJmUuY29udGVudCYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuX19xdWV1ZWR9KTtpZighZS5jb250ZW50fHxlLmNvbnRlbnQubGVuZ3RoPT09MClyZXR1cm4gYT09PSJhc3Npc3RhbnQiPyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKyciPicrWG4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4nK28rIjwvZGl2PjwvZGl2PiI6JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyBlbXB0eS1tZXNzYWdlIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytYbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJlbXB0eS1tZXNzYWdlLWhpbnQiPlx1RkYwOFx1N0E3QVx1NkQ4OFx1NjA2Rlx1RkYwOTwvc3Bhbj48L2Rpdj48L2Rpdj4nO3ZhciBsPUh2KGUuY29udGVudCksZD1udSgiYXNzaXN0YW50Iik7aWYoYSE9PSJhc3Npc3RhbnQiKXt2YXIgZj1zbChlLmNvbnRlbnQsaSksYz1mLnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuc3ViYWdlbnR9KSx2PXM/IiBxdWV1ZWQiOiIiLGg9cz8nPHNwYW4gY2xhc3M9InF1ZXVlZC1iYWRnZSI+XHU2MzkyXHU5NjFGXHU0RTJEPC9zcGFuPic6IiIsZz1PdigpO2lmKGMpe3ZhciBtPWxsKGYsYSxkLm5hbWUsbCx1LHtzaG93SGFuZG9mZjohMX0pO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythK3YrJyBtdWx0aS1hZ2VudCIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrbStoKyI8L2Rpdj4ifXZhciB5PXV1KGUuY29udGVudCwwLGEsbCx1KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSt2KyciIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK1huKGEse2xlZnRTbG90Omd9KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicreStoKyI8L2Rpdj48L2Rpdj4ifXZhciBDPXNsKGUuY29udGVudCxpKSxFPUMuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5zdWJhZ2VudH0pO2lmKCFFKXt2YXIgQj11dShlLmNvbnRlbnQsMCxhLGwsdSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrWG4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK0IrbysiPC9kaXY+PC9kaXY+In12YXIgRD0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIG11bHRpLWFnZW50IiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JztyZXR1cm4gRCs9bGwoQyxhLGQubmFtZSxsLHUse3Nob3dIYW5kb2ZmOiEwfSksRCs9byxEKz0iPC9kaXY+IixEfWZ1bmN0aW9uIFByKGUpe3JldHVybiBlPj0xZTY/KGUvMWU2KS50b0ZpeGVkKDEpLnJlcGxhY2UoL1wuMCQvLCIiKSsiTSI6ZT49MWUzPyhlLzFlMykudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIikrImsiOlN0cmluZyhNYXRoLm1heCgwLE1hdGgucm91bmQoZXx8MCkpKX1mdW5jdGlvbiBybShlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1lLmVzdGltYXRlZD09PSEwLG49W107cmV0dXJuKGUuaW5wdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU4RjkzXHU1MTY1ICIrUHIoZS5pbnB1dFRva2VucykpLChlLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1N0YxM1x1NUI1OFx1NTQ3RFx1NEUyRCAiK1ByKGUuY2FjaGVSZWFkSW5wdXRUb2tlbnMpKSwoZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU3RjEzXHU1QjU4XHU1MTk5XHU1MTY1ICIrUHIoZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMpKSwoZS5vdXRwdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU4RjkzXHU1MUZBICIrKHQ/Ilx1MjI0OCI6IiIpK1ByKGUub3V0cHV0VG9rZW5zKSksKGUucmVhc29uaW5nT3V0cHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1NjNBOFx1NzQwNiAiKyh0PyJcdTIyNDgiOiIiKStQcihlLnJlYXNvbmluZ091dHB1dFRva2VucykpLChlLnRvdGFsQ29zdFVzZHx8MCk+MCYmbi5wdXNoKCIkIitOdW1iZXIoZS50b3RhbENvc3RVc2QpLnRvRml4ZWQoNCkucmVwbGFjZSgvMCskLywiIikucmVwbGFjZSgvXC4kLywiIikpLG4ubGVuZ3RoPT09MCYmdCYmbi5wdXNoKCJcdTZCNjNcdTU3MjhcdTdFREZcdThCQTFcdTc1MjhcdTkxQ0ZcdTIwMjYiKSxuLmxlbmd0aD09PTA/IiI6JzxkaXYgY2xhc3M9InR1cm4tdXNhZ2Utc3VtbWFyeScrKHQ/IiBpcy1lc3RpbWF0ZWQiOiIiKSsnIiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWxhYmVsPSJcdTY3MkNcdThGNkVcdTc1MjhcdTkxQ0YgJytwKG4uam9pbigiXHVGRjBDIikpKyciPjxzdmcgY2xhc3M9InR1cm4tdXNhZ2UtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIuNSAxMy41aDExTTQgMTFWNy41TTggMTFWM00xMiAxMVY1LjUiLz48L3N2Zz48c3Bhbj4nK3Aobi5qb2luKCIgXHhCNyAiKSkrIjwvc3Bhbj48L2Rpdj4ifXZhciBpbT0vXlxzKlxb6ZmE5Lu25bey5LiK5Lyg77yM6K+35p+l55yL5Lul5LiL5paH5Lu2OlxuKFtcc1xTXSo/KVxdXG4rLztmdW5jdGlvbiBhbShlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtpZighdClyZXR1cm4iIjt2YXIgbj10LnNwbGl0KCIvIikucG9wKCl8fHQ7aWYoTHUodCkpe3ZhciBpPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodCk7cmV0dXJuJzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC1pbWFnZSI+PGltZyBjbGFzcz0idXNlci1hdHRhY2htZW50LXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9IicraSsnIiBhbHQ9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcCh0KStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcudXNlci1hdHRhY2htZW50LWltYWdlJyk7IGlmKHcpdy5zdHlsZS5kaXNwbGF5PSdub25lJzsiIC8+PC9kaXY+YH1yZXR1cm4nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUiIGRhdGEtcGF0aD0iJytwKHQpK2AiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7Ij48c3BhbiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNOSAxLjVINGExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjUuNUw5IDEuNXoiLz48cGF0aCBkPSJNOSAxLjVWNS41aDQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlLW5hbWUiPmArcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gZGwoZSl7dmFyIHQ9ZXx8IiIsbj10Lm1hdGNoKGltKTtpZighbilyZXR1cm4gcCh0KTtmb3IodmFyIGk9IiIsYT1uWzFdLnNwbGl0KGAKYCksdT0wO3U8YS5sZW5ndGg7dSsrKWkrPWFtKGFbdV0pO3ZhciBvPXQuc2xpY2UoblswXS5sZW5ndGgpLHM9aT8nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50cyI+JytpKyI8L2Rpdj4iOiIiLGw9by50cmltKCk/JzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC10ZXh0Ij4nK3AobykrIjwvZGl2PiI6IiI7cmV0dXJuIHMrbH1mdW5jdGlvbiBjbChlLHQsbixpLGEsdSl7dmFyIG89dXx8e307aWYoIWV8fCFlLnR5cGV8fCFvLmluU3ViYWdlbnRQYW5lbCYmZS50eXBlPT09InRvb2xfdXNlIiYmZS5fX3N1YmFnZW50JiZlLl9fc3ViYWdlbnQudGFza0lkPT09ZS5pZClyZXR1cm4iIjtpZihlLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZlLl9fc3ViYWdlbnQmJmUuX19zdWJhZ2VudC50YXNrSWQ9PT1lLnRvb2xfdXNlX2lkKXJldHVybiBQdihlLHQpO3N3aXRjaChlLnR5cGUpe2Nhc2UidGV4dCI6cmV0dXJuIHQ9PT0iYXNzaXN0YW50IiYmZS5fX3Byb2Nlc3Npbmc/JzxkaXYgY2xhc3M9InR5cGluZy1pbmRpY2F0b3IiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2Pic6dD09PSJhc3Npc3RhbnQiP3N1KGUudGV4dHx8IiIpOmRsKGUudGV4dHx8IiIpO2Nhc2UidGhpbmtpbmciOnZhciBzPWUudGhpbmtpbmd8fCIiLGw9ZS50aGlua2luZz09PXZvaWQgMCYmZS50eXBlPT09InRoaW5raW5nIjtpZihsKXJldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctc3RyZWFtaW5nIiBkYXRhLXRoaW5raW5nPSIiPjxkaXYgY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pbm5lciI+PHNwYW4gY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pY29uIHNwaW5uaW5nIj5cdTI5QkY8L3NwYW4+PGRpdiBjbGFzcz0idGhpbmtpbmctc3RyZWFtaW5nLXRleHQiPjwvZGl2PjwvZGl2PjwvZGl2Pic7aWYoIXMudHJpbSgpKXJldHVybiIiO3ZhciBkPXMubGVuZ3RoPjYwP3Muc2xpY2UoMCw1NykrIlx1MjAyNiI6cyxmPUx0KCJ0aGlua2luZyIsW2EsaV0pLGM9RXQoZiksdj1jPT09bnVsbD9MbigidGhpbmtpbmciKTpjO3JldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgJysodj8iZXhwYW5kZWQiOiJjb2xsYXBzZWQiKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0aGlua2luZyIgZGF0YS1leHBhbmQta2V5PSInK3AoZikrJyIgZGF0YS10aGlua2luZz0iJytwKHMpKyciIG9uY2xpY2s9Il9fdGhpbmtpbmdUb2dnbGUodGhpcykiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtaWNvbiI+XHUyOUJGPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtcHJldmlldyI+JytwKHY/czpkKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyh2PyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PiI7Y2FzZSJ0b29sX3VzZSI6dmFyIGg9aWwobixlLmlkKSxnPWRtKGUsaCxpLGEsbyk7cmV0dXJuIF92KG4sZS5pZCkmJihnPU52KGUubmFtZXx8Ilx1NURFNVx1NTE3NyIpK2cpLGc7Y2FzZSJ0b29sX3Jlc3VsdCI6cmV0dXJuIiI7ZGVmYXVsdDp2YXIgbT1lJiZlLnR5cGU/U3RyaW5nKGUudHlwZSk6Ilx1NjcyQVx1NzdFNSIseT0iIjt0cnl7eT1KU09OLnN0cmluZ2lmeShlLG51bGwsMil9Y2F0Y2h7eT0ie30ifXJldHVybmA8ZGl2IGNsYXNzPSJ1bmtub3duLWJsb2NrIGNvbGxhcHNlZCIgb25jbGljaz0idGhpcy5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZWQnKSI+PGRpdiBjbGFzcz0idW5rbm93bi1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLWljb24iPj88L3NwYW4+PHNwYW4gY2xhc3M9InVua25vd24tYmxvY2stbGFiZWwiPlx1NjcyQVx1OEJDNlx1NTIyQlx1NzY4NFx1NTE4NVx1NUJCOVx1NTc1N1x1RkYxQWArcChtKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxwcmUgY2xhc3M9InVua25vd24tYmxvY2stYm9keSI+JytwKHkpKyI8L3ByZT48L2Rpdj4ifX1mdW5jdGlvbiB1bShlLHQsbixpLGEsdSxvLHMpe3ZhciBsPXN8fHt9LGQ9ZS5pZHx8InRvb2wtIituLGY9THQoImlubGluZS10b29sIixbdSxkfHxvLG9dKSxjPUV0KGYpLHY9ZS5pbnB1dHx8e30saD1wbih0JiZ0LmNvbnRlbnQpLGc9dCYmdC5pc19lcnJvcixtPWgubGVuZ3RoPjAseT1nPyJcdTI3MTciOm0/Ilx1MjcxMyI6Ilx1MjAyNiIsQz0iIixFPSIiLEI9IiIsRD0iIjtpZihuPT09IlJlYWQiKXtDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNMSAzLjVBMS41IDEuNSAwIDAgMSAyLjUgMmgyLjc2NGMuOTU4IDAgMS43Ni41NiAyLjMxMSAxLjE4NEM4LjQwNSAzLjc3IDkuMTQ2IDQgMTAgNGgzLjVBMS41IDEuNSAwIDAgMSAxNSA1LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMSAxMi41di05eiIvPjxwYXRoIGQ9Ik0yIDUuNWgxMk0yIDhoOE0yIDEwLjVoNSIvPjwvc3ZnPic7dmFyIEY9di5maWxlX3BhdGh8fHYucGF0aHx8aXx8IiIsST0iIjt2LmxpbWl0JiYoST0iICIrdi5vZmZzZXQrIi0iKyh2Lm9mZnNldCt2LmxpbWl0KSksRT1GLEI9SX1lbHNlIGlmKG49PT0iR2xvYiIpe0M9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSI1Ii8+PHBhdGggZD0iTTEwLjUgMTAuNUwxNCAxNCIvPjwvc3ZnPic7dmFyIEw9di5wYXR0ZXJufHwiIixIPXYucGF0aHx8aXx8IiI7RT1MLEI9SH1lbHNlIGlmKG49PT0iR3JlcCIpe0M9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iNC41Ii8+PHBhdGggZD0iTTExLjUgMTEuNUwxNSAxNSIvPjwvc3ZnPic7dmFyIEw9di5wYXR0ZXJufHwiIixIPXYucGF0aHx8aXx8IiI7RT1MLEI9SCx2LmNvbnRleHQmJihCKz0iIC1DIit2LmNvbnRleHQpfWVsc2UgaWYobj09PSJXZWJGZXRjaCIpe0M9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSI2LjUiLz48cGF0aCBkPSJNOCAxLjV2MTNNMS41IDhoMTMiLz48L3N2Zz4nO3ZhciBVPXYudXJsfHwiIjtFPVUsQj1hfHwiIn1lbHNlIGlmKG49PT0iV2ViU2VhcmNoIil7Qz0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iNyIgY3k9IjciIHI9IjUiLz48cGF0aCBkPSJNMTAuNSAxMC41TDE0IDE0Ii8+PHBhdGggZD0iTTUgN2g0TTcgNXY0Ii8+PC9zdmc+Jzt2YXIgeD12LnF1ZXJ5fHwiIjtFPXgsQj1hfHwiIn1lbHNlIG49PT0iVG9kb1JlYWQiPyhDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PHBhdGggZD0iTTUgOGwyIDIgNC00Ii8+PC9zdmc+JyxFPSJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUVcdTUyMTdcdTg4NjgiLEI9YXx8IiIpOihDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNi41Ii8+PHBhdGggZD0iTTggNXYzLjVNOCAxMWguMDEiLz48L3N2Zz4nLEU9b3UobiksQj1hfHwiIik7aWYobSl7dmFyIGs9aC5zcGxpdChgCmApO2subGVuZ3RoPjEwP0Q9ay5zbGljZSgwLDEwKS5qb2luKGAKYCkrYApcdTIwMjZgOkQ9aH12YXIgVD1wKGgpLE09cChEKSxZPWgsej0iIixRPWwuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6Yz09PW51bGw/TG4oImlubGluZVRvb2xzIik6YzttP3o9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoUT8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytwbChoLG4pKyI8L2Rpdj48L2Rpdj4iOmc/ej0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyhRPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0IGlubGluZS10b29sLWVycm9yIj4nK3AoaHx8Ilx1NjRDRFx1NEY1Q1x1NTkzMVx1OEQyNSIpKyI8L2Rpdj48L2Rpdj4iOnR8fCh6PSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKFE/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1sb2FkaW5nIj5cdTdCNDlcdTVGODVcdTU0Q0RcdTVFOTRcdTIwMjY8L2Rpdj48L2Rpdj4nKTt2YXIgbGU9dCYmdC5fdHJ1bmNhdGVkPT09ITAsZWU9IiI7aWYobj09PSJSZWFkIil7dmFyIFo9di5maWxlX3BhdGh8fHYucGF0aHx8aXx8IiI7aWYoWiYmTHUoWikpe3ZhciBxPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoWik7ZWU9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWltYWdlIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiPjxpbWcgY2xhc3M9ImlubGluZS10b29sLWltYWdlLXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9IicrcSsnIiBhbHQ9IicrcChGKSsnIiBkYXRhLXBhdGg9IicrcChaKStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcuaW5saW5lLXRvb2wtaW1hZ2UnKTsgaWYodyl3LnN0eWxlLmRpc3BsYXk9J25vbmUnOyIgLz48L2Rpdj5gfX12YXIgUD1CPyc8c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtbWV0YSI+JytwKEIpKyI8L3NwYW4+IjoiIixqPWc/ImlubGluZS10b29sLWVycm9yLWlubGluZSI6IiI7USYmKGorPSIgaW5saW5lLXRvb2wtb3BlbiIpO3ZhciBHPWxlPydkYXRhLXRydW5jYXRlZD0idHJ1ZSIgZGF0YS10b29sLXVzZS1pZD0iJytwKGUuaWR8fCIiKSsnIiAnOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbCAnK2orJyIgZGF0YS1leHBhbmQta2luZD0iaW5saW5lLXRvb2wiIGRhdGEtZXhwYW5kLWtleT0iJytwKGYpKyciIGRhdGEtcmVzdWx0PSInK3AoWSkrJyIgZGF0YS1wcmV2aWV3PSInK00rJyIgZGF0YS1zdGF0dXM9IicrKGc/ImVycm9yIjptPyJkb25lIjoicGVuZGluZyIpKyciICcrRysnb25jbGljaz0iX19pbmxpbmVUb29sVG9nZ2xlKHRoaXMpIj48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yb3ciPjxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1zdGF0dXMiPicreSsiPC9zcGFuPiIrQysnPHNwYW4gY2xhc3M9ImlubGluZS10b29sLXRpdGxlIj4nK3AoRSkrIjwvc3Bhbj4iK1ArIjwvZGl2PiIrZWUreisiPC9kaXY+In1mdW5jdGlvbiBvbShlLHQsbixpLGEsdSl7dmFyIG89dXx8e30scz1lLmlucHV0fHx7fSxsPXMuY29tbWFuZHx8cy5jbWR8fCIiLGQ9cG4odCYmdC5jb250ZW50KSxmPWUuaWR8fCJ0b29sLSIrbixjPUx0KCJ0ZXJtaW5hbCIsW2ksZnx8YSxhXSksdj1FdChjKSxoPXQmJnQuaXNfZXJyb3IsZz1zLmV4aXRDb2RlLG09ZC5sZW5ndGg+MCx5PSIiO3Q/aD95PSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tZXJyb3IiPjwvc3Bhbj4nOmc9PT0wfHxnPT09dm9pZCAwP3k9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1zdWNjZXNzIj48L3NwYW4+Jzp5PSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0td2FybiI+PC9zcGFuPic6eT0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXJ1bm5pbmciPjwvc3Bhbj4nO2Zvcih2YXIgQz0nPHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPicsRT1wKGwpLEI9ZC5zcGxpdChgCmApLEQ9IiIsRj0wO0Y8Qi5sZW5ndGg7RisrKXt2YXIgST1CW0ZdOyFJJiZGPT09Qi5sZW5ndGgtMXx8KEQrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChJKSsiPC9kaXY+Iil9dmFyIEw9IiI7aWYodCYmZyE9PXZvaWQgMCl7dmFyIEg9Zz09PTA/InRlcm0tZXhpdC1zdWNjZXNzIjoidGVybS1leGl0LWVycm9yIjtMPSc8ZGl2IGNsYXNzPSJ0ZXJtLWV4aXQgJytIKyciPmV4aXQgJytnKyI8L2Rpdj4ifXZhciBVPWwubGVuZ3RoPjgwP2wuc2xpY2UoMCw3NykrIlx1MjAyNiI6bCx4PW8uZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6dj09PW51bGw/TG4oInRlcm1pbmFsIik6dixrPXQmJnQuX3RydW5jYXRlZD09PSEwLFQ9az8nIGRhdGEtdHJ1bmNhdGVkPSJ0cnVlIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AoZS5pZHx8IiIpKyciJzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLXRlcm1pbmFsIiBkYXRhLWV4cGFuZC1raW5kPSJ0ZXJtaW5hbCIgZGF0YS1leHBhbmQta2V5PSInK3AoYykrJyIgZGF0YS1leHBhbmRlZD0iJysoeD8idHJ1ZSI6ImZhbHNlIikrJyInK1QrJz48ZGl2IGNsYXNzPSJ0ZXJtLWhlYWRlciIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iJysoeD8idHJ1ZSI6ImZhbHNlIikrYCIgb25jbGljaz0iX190ZXJtaW5hbEV4cGFuZCh0aGlzKSIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInfHxldmVudC5rZXk9PT0nICcpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7X190ZXJtaW5hbEV4cGFuZCh0aGlzKTt9Ij5gK3krJzxzcGFuIGNsYXNzPSJ0ZXJtLWNtZC1wcmV2aWV3Ij48c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+ICcrcChVKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXJtLXRvZ2dsZS1pY29uIj4nKyh4PyJcdTI1QkMiOiJcdTI1QjYiKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRlcm0tYm9keSIgYXJpYS1oaWRkZW49IicrKHg/ImZhbHNlIjoidHJ1ZSIpKyciIHN0eWxlPSJkaXNwbGF5OicrKHg/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJ0ZXJtLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4gJytFKyI8L2Rpdj4iKyhEPyc8ZGl2IGNsYXNzPSJ0ZXJtLW91dHB1dCI+JytEKyI8L2Rpdj4iOiIiKStMKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHBuKGUpe3JldHVybiBlP3R5cGVvZiBlPT0ic3RyaW5nIj9lOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoZnVuY3Rpb24odCl7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4iIjtpZih0LnR5cGU9PT0idGV4dCImJnR5cGVvZiB0LnRleHQ9PSJzdHJpbmciKXJldHVybiB0LnRleHQ7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaHtyZXR1cm4iIn19KS5maWx0ZXIoQm9vbGVhbikuam9pbihgCmApOiIiOiIifWZ1bmN0aW9uIHNtKGUsdCxuLGksYSx1KXt2YXIgbz11fHx7fSxzPWUuaW5wdXR8fHt9LGw9cy5maWxlX3BhdGh8fHMucGF0aHx8IiIsZD1sLnNwbGl0KCIvIikucG9wKCl8fGwsZj1lLmlkfHwidG9vbC0iK24rIi0iKyh0eXBlb2YgYT09Im51bWJlciI/YTowKSxjPXMub2xkX3N0cmluZ3x8IiIsdj1zLm5ld19zdHJpbmd8fHMuY29udGVudHx8IiIsaD1zLm9sZF9jb250ZW50fHwiIixnPXMubmV3X2NvbnRlbnR8fCIiLG09cy51bmlmaWVkX2RpZmZ8fHMuZGlmZnx8IiIseT1zLmtpbmR8fCIiLEM9bj09PSJXcml0ZSJ8fG49PT0iTXVsdGlFZGl0IixFPXQmJnQuaXNfZXJyb3IsQj1wbih0JiZ0LmNvbnRlbnQpLEQ9ISEoQiYmQi50cmltKCkubGVuZ3RoPjApLEY9IiIsST0iIixMPSIiO20/TD0nPGRpdiBjbGFzcz0iZGlmZi1jb2wgZGlmZi1jb2wtZnVsbCI+PGRpdiBjbGFzcz0iZGlmZi1jb2wtbGFiZWwiPkRpZmY8L2Rpdj4nK2xtKG0pKyI8L2Rpdj4iOkM/ST0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtYWRkIj4rICcrcChnKSsiPC9kaXY+IjooYyYmKEY9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLXJlbW92ZSI+LSAnK3AoYykrIjwvZGl2PiIpLHYmJihJPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1hZGQiPisgJytwKHYpKyI8L2Rpdj4iKSk7dmFyIEg9IiIsVT0iIjt0P0U/KEg9ImRpZmYtZXJyb3IiLFU9Qi5pbmRleE9mKCJoYXZlbid0IGdyYW50ZWQiKSE9PS0xfHxCLmluZGV4T2YoInBlcm1pc3Npb24iKSE9PS0xPyJcdTdCNDlcdTVGODVcdTYzODhcdTY3NDMiOiJcdTU5MzFcdThEMjUiKTooSD0iZGlmZi1zdWNjZXNzIixVPXk9PT0iYWRkIj8iXHU1REYyXHU2NUIwXHU1ODlFIjp5PT09ImRlbGV0ZSI/Ilx1NURGMlx1NTIyMFx1OTY2NCI6eT09PSJtb3ZlIj8iXHU1REYyXHU3OUZCXHU1MkE4IjoiXHU1REYyXHU0RkVFXHU2NTM5Iik6KEg9ImRpZmYtcGVuZGluZyIsVT0iXHU2MjY3XHU4ODRDXHU0RTJEIik7dmFyIHg9THQoImRpZmYiLFtpLGZ8fGEsYV0pLGs9RXQoeCksVD1MbigiZWRpdENhcmRzIiksTT1vLmZvcmNlRXhwYW5kZWRUb29sQm9kaWVzPyEwOms9PT1udWxsP1Q6ayxZPU0/IiI6IiBjb2xsYXBzZWQiLHo9IUwmJkYmJkksUT16PyJkaWZmLWNvbC1oYWxmIjoiZGlmZi1jb2wtZnVsbCIsbGU9THx8KHo/JzxkaXYgY2xhc3M9ImRpZmYtY29sICcrUSsnIj48ZGl2IGNsYXNzPSJkaWZmLWNvbC1sYWJlbCI+XHU2NUU3PC9kaXY+JytGKyI8L2Rpdj4iOiIiKSsnPGRpdiBjbGFzcz0iZGlmZi1jb2wgJytRKyciPjxkaXYgY2xhc3M9ImRpZmYtY29sLWxhYmVsIj4nKyh6PyJcdTY1QjAiOiIiKSsiPC9kaXY+IisoSXx8Rnx8ZmwobCkpKyI8L2Rpdj4iLGVlPWw/JzxidXR0b24gY2xhc3M9ImRpZmYtb3Blbi1maWxlIiB0eXBlPSJidXR0b24iIGRhdGEtcGF0aD0iJytwKGwpK2AiIHRpdGxlPSJcdTYyNTNcdTVGMDBcdTY1ODdcdTRFRjYiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7Ij5cdTYyNTNcdTVGMDA8L2J1dHRvbj5gOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtZGlmZicrWSsnIiBkYXRhLXRvb2wtbmFtZT0iJytwKG4pKyciIGRhdGEtZXhwYW5kLWtpbmQ9ImRpZmYiIGRhdGEtZXhwYW5kLWtleT0iJytwKHgpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChmKSsnIiBkYXRhLXBhdGg9IicrcChsKSsnIj48ZGl2IGNsYXNzPSJkaWZmLWhlYWRlciIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iJysoTT8idHJ1ZSI6ImZhbHNlIikrYCIgb25jbGljaz0iX190Y1RvZ2dsZShldmVudCx0aGlzKSIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInfHxldmVudC5rZXk9PT0nICcpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7X190Y1RvZ2dsZShldmVudCx0aGlzKTt9Ij48c3BhbiBjbGFzcz0iZGlmZi1maWxlLWljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLW5hbWUiPmArcChkKSsiPC9zcGFuPiIrZ3QobCwiZGlmZi1wYXRoIikrJzxzcGFuIGNsYXNzPSJkaWZmLXN0YXR1cyAnK0grJyI+JytVKyI8L3NwYW4+IitlZSsnPHNwYW4gY2xhc3M9ImRpZmYtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZGlmZi1ib2R5IiBhcmlhLWhpZGRlbj0iJysoTT8iZmFsc2UiOiJ0cnVlIikrJyI+PGRpdiBjbGFzcz0iZGlmZi1jb2x1bW5zIj4nK2xlKyI8L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGxtKGUpe2Zvcih2YXIgdD1TdHJpbmcoZXx8IiIpLnNwbGl0KGAKYCksbj02MDAsaT0iIixhPTA7YTx0Lmxlbmd0aCYmYTxuO2ErKyl7dmFyIHU9dFthXSxvPSJkaWZmLWNvbnRleHQiOy9eQEAvLnRlc3QodSk/bz0iZGlmZi1odW5rIjovXlwrLy50ZXN0KHUpJiYhL15cK1wrXCsvLnRlc3QodSk/bz0iZGlmZi1hZGQiOi9eLS8udGVzdCh1KSYmIS9eLS0tLy50ZXN0KHUpJiYobz0iZGlmZi1yZW1vdmUiKSxpKz0nPGRpdiBjbGFzcz0iZGlmZi1saW5lICcrbysnIj4nK3AodXx8IiAiKSsiPC9kaXY+In1yZXR1cm4gdC5sZW5ndGg+biYmKGkrPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1jb250ZXh0Ij5cdTIwMjZcdUZGMDhcdTVERjJcdTYyMkFcdTY1QUQgJysodC5sZW5ndGgtbikrIiBcdTg4NENcdUZGMDk8L2Rpdj4iKSxpfHxmbCgiIil9ZnVuY3Rpb24gZmwoZSl7dmFyIHQ9ZT8iXHVGRjBDXHU1M0VGXHU2MjUzXHU1RjAwXHU2NTg3XHU0RUY2XHU2N0U1XHU3NzBCXHU1RjUzXHU1MjREXHU1MTg1XHU1QkI5IjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iZGlmZi1lbXB0eSI+Q29kZXggXHU2NzJBXHU2M0QwXHU0RjlCXHU1MTg1XHU4MDU0IGRpZmYnK3QrIlx1MzAwMjwvZGl2PiJ9ZnVuY3Rpb24gcGwoZSx0KXtyZXR1cm4gZT8nPHByZSBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0LXRleHQiIHN0eWxlPSJtYXgtaGVpZ2h0OiAzMDBweDsgb3ZlcmZsb3cteTogYXV0bzsiPicrcChlKSsiPC9wcmU+IjonPHNwYW4gY2xhc3M9ImlubGluZS10b29sLWVtcHR5Ij5cdTY1RTBcdThGOTNcdTUxRkE8L3NwYW4+J31mdW5jdGlvbiBkbShlLHQsbixpLGEpe3ZhciB1PWF8fHt9LG89ZS5uYW1lfHwidW5rbm93biIscz1lLmlkfHwidG9vbC0iK28rIi0iKyh0eXBlb2Ygbj09Im51bWJlciI/bjowKSxsPWZtKG8sZS5pbnB1dCk7aWYobz09PSJSZWFkInx8bz09PSJHbG9iInx8bz09PSJHcmVwInx8bz09PSJXZWJGZXRjaCJ8fG89PT0iV2ViU2VhcmNoInx8bz09PSJUb2RvUmVhZCIpcmV0dXJuIHVtKGUsdCxvLGwsIiIsaSxuLHUpO2lmKG89PT0iQmFzaCIpcmV0dXJuIG9tKGUsdCxvLGksbix1KTtpZihvPT09IkVkaXQifHxvPT09IldyaXRlInx8bz09PSJNdWx0aUVkaXQiKXJldHVybiBzbShlLHQsbyxpLG4sdSk7aWYobz09PSJBc2tVc2VyUXVlc3Rpb24iJiZlLmlucHV0JiZlLmlucHV0LnF1ZXN0aW9ucyl7dmFyIGQ9ZS5pbnB1dC5xdWVzdGlvbnM7aWYoZCYmZC5sZW5ndGg+MCl7Zm9yKHZhciBmPSEhdCxjPXIuYXNrVXNlclNlbGVjdGlvbnNbc118fHt9LHY9ISFjLnN1Ym1pdHRlZCxoPWY/cG4odC5jb250ZW50KToiIixnPWg/aC50cmltKCkuc3BsaXQoYApgKTpbXSxtPSIiLHk9MDt5PGQubGVuZ3RoO3krKylpZihkW3ldLmhlYWRlcil7bT1kW3ldLmhlYWRlcjticmVha312YXIgQz1tPyc8c3BhbiBjbGFzcz0idG9vbC11c2Utc3VtbWFyeSI+JytwKG0pKyI8L3NwYW4+IjoiIixFPSIiO2QuZm9yRWFjaChmdW5jdGlvbihPZSwkKXt2YXIgYmU9ISFPZS5tdWx0aVNlbGVjdCxTZT1PZS5xdWVzdGlvbj8nPGRpdiBjbGFzcz0iYXNrLXVzZXItdGl0bGUiPicrcChPZS5xdWVzdGlvbikrIjwvZGl2PiI6IiIsRWU9IiI7T2Uub3B0aW9ucyYmT2Uub3B0aW9ucy5sZW5ndGg+MCYmKEVlPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb25zIiBkYXRhLW11bHRpLXNlbGVjdD0iJytiZSsnIj4nLE9lLm9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbihvZSx2ZSl7dmFyIHN0PW9lLmxhYmVsP3Aob2UubGFiZWwpOiJcdTkwMDlcdTk4NzkgIisodmUrMSksbHQ9b2UuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1kZXNjIj4nK3Aob2UuZGVzY3JpcHRpb24pKyI8L2Rpdj4iOiIiO2lmKGYpe3ZhciB5dD1nWyRdfHxnWzBdfHwiIixJZT15dC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihxZSl7cmV0dXJuIHFlLnRyaW0oKX0pLHp0PUllLmluZGV4T2Yob2UubGFiZWx8fCIiKSE9PS0xO0VlKz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uIGFzay11c2VyLW9wdGlvbi1yZWFkb25seScrKHp0PyIgYXNrLXVzZXItb3B0aW9uLWNob3NlbiI6IiIpKyciPjxzcGFuIGNsYXNzPSJhc2stdXNlci1pbmRpY2F0b3IiPjwvc3Bhbj48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tY29udGVudCI+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWxhYmVsIj4nK3N0KyI8L2Rpdj4iK2x0KyI8L2Rpdj48L2Rpdj4ifWVsc2V7dmFyIEplPShjWyRdfHxbXSkuaW5kZXhPZih2ZSkhPT0tMSxSZT12PyIgZGlzYWJsZWQiOiIiO0VlKz0nPGJ1dHRvbiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uJysoSmU/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtb3B0aW9uLWluZGV4PSInK3ZlKyciIGRhdGEtcXVlc3Rpb24taW5kZXg9IicrJCsnIiBkYXRhLW9wdGlvbi1sYWJlbD0iJytwKG9lLmxhYmVsfHwiXHU5MDA5XHU5ODc5ICIrKHZlKzEpKStgIiBvbmNsaWNrPSJfX2Fza1NlbGVjdCgnYCtwKHMpKyInLCIrJCsiLCIrdmUrIiwiK2JlKycpIicrUmUrJz48c3BhbiBjbGFzcz0iYXNrLXVzZXItaW5kaWNhdG9yIj48L3NwYW4+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWNvbnRlbnQiPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1sYWJlbCI+JytzdCsiPC9kaXY+IitsdCsiPC9kaXY+PC9idXR0b24+In19KSxFZSs9IjwvZGl2PiIpLEUrPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1xdWVzdGlvbi1ncm91cCIgZGF0YS1xdWVzdGlvbi1pbmRleD0iJyskKyciPicrU2UrRWUrIjwvZGl2PiJ9KTt2YXIgQj0iIjtpZighZil7Zm9yKHZhciBEPSEwLEY9MDtGPGQubGVuZ3RoO0YrKylpZighY1tGXXx8Y1tGXS5sZW5ndGg9PT0wKXtEPSExO2JyZWFrfXZhciBJPSFEfHx2PyIgZGlzYWJsZWQiOiIiLEw9dj8iIGFzay11c2VyLXN1Ym1pdHRlZCI6IiIsSD12PyJcdTVERjJcdTYzRDBcdTRFQTQuLi4iOiJcdTc4NkVcdThCQTRcdTYzRDBcdTRFQTQiO0I9JzxkaXYgY2xhc3M9ImFzay11c2VyLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImFzay11c2VyLXN1Ym1pdCcrTCsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AocykrYCIgb25jbGljaz0iX19hc2tTdWJtaXQoJ2ArcChzKStgJykiYCtJKyI+IitIKyI8L2J1dHRvbj48L2Rpdj4ifXZhciBVPSIiO2lmKGYmJmgpe3ZhciB4PWgudHJpbSgpLnJlcGxhY2UoL1xuL2csIiwgIik7eC5sZW5ndGg+NDAmJih4PXguc2xpY2UoMCwzNykrIi4uLiIpLFU9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AoeCkrIjwvc3Bhbj4ifXZhciBrPUx0KCJ0b29sLWNhcmQiLFtpLHNdKSxUPUV0KGspLE09dS5mb3JjZUV4cGFuZGVkVG9vbEJvZGllcz8hMDpUPT09bnVsbD8hZjpULFk9TT8iIjoiIGNvbGxhcHNlZCIsej1mPyIgYXNrLXVzZXItYW5zd2VyZWQiOiIiO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkIGFzay11c2VyJyt6K1krJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKHMpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AoaykrJyI+PGRpdiBjbGFzcz0idG9vbC11c2UtaGVhZGVyIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1pY29uIj4nKyhmPyJcdTI3MTMiOiI/IikrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC11c2UtbmFtZSI+XHU2M0QwXHU5NUVFPC9zcGFuPicrQytVKyc8c3BhbiBjbGFzcz0idG9vbC11c2UtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9vbC11c2UtYm9keSBhc2stdXNlci1ib2R5Ij4nK0UrQisiPC9kaXY+PC9kaXY+In19dmFyIFE9ZS5kZXNjcmlwdGlvbnx8ZS5pbnB1dCYmZS5pbnB1dC5kZXNjcmlwdGlvbnx8IiIsbGU9Y20oZS5uYW1lLGUuaW5wdXQpLGVlPSIiLFo9IiI7UT8oZWU9US5sZW5ndGg+ODA/US5zbGljZSgwLDc3KSsiLi4uIjpRLGwmJihaPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtZmlsZSI+JytwKGwpKyI8L3NwYW4+IikpOihlZT1vdShvKSxsJiYoWj0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChsKSsiPC9zcGFuPiIpLGxlJiYoWis9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zdW1tYXJ5Ij4nK3AobGUpKyI8L3NwYW4+IikpO3ZhciBxPWUuaW5wdXQ/SlNPTi5zdHJpbmdpZnkoZS5pbnB1dCxudWxsLDIpOiJ7fSIsUD0ibG9hZGluZyIsaj0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXNwaW5uZXIiPjwvc3Bhbj4nLEc9IiI7aWYodCl7dmFyIEo9dC5pc19lcnJvcix0ZT1wbih0LmNvbnRlbnQpO1A9Sj8iZXJyb3IiOiJzdWNjZXNzIixqPXZsKG8pO3ZhciBkZT10ZSYmdGUudHJpbSgpLmxlbmd0aD4wO2RlP0c9JzxwcmUgY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1jb250ZW50Ij4nK3AodGUpKyI8L3ByZT4iOkc9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtZW1wdHkiPlx1NjVFMFx1OEY5M1x1NTFGQTwvc3Bhbj4nfWVsc2Ugaj12bChvKTt2YXIgbmU9THQoInRvb2wtY2FyZCIsW2ksc10pLHJlPUV0KG5lKSxNZT1MbigiZWRpdENhcmRzIikseWU9dS5mb3JjZUV4cGFuZGVkVG9vbEJvZGllcz8hMDpyZT09PW51bGw/TWU6cmUscGU9dCYmdC5fdHJ1bmNhdGVkPT09ITAsUj15ZT8iIjoiIGNvbGxhcHNlZCIsaHQ9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS10b2dnbGUiPlx1MjVCQzwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkICcrUCtSKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AobmUpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChzKSsnIicrKHBlPycgZGF0YS10cnVuY2F0ZWQ9InRydWUiJzoiIikrJz48ZGl2IGNsYXNzPSJ0b29sLXVzZS1oZWFkZXIiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9IicrKHllPyJ0cnVlIjoiZmFsc2UiKStgIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJ3x8ZXZlbnQua2V5PT09JyAnKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO19fdGNUb2dnbGUoZXZlbnQsdGhpcyk7fSI+PHNwYW4gY2xhc3M9InRvb2wtdXNlLWljb24iPmAraisnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1uYW1lIj4nK3AoZWUpKyI8L3NwYW4+IitaK2h0Kyc8L2Rpdj48ZGl2IGNsYXNzPSJ0b29sLXVzZS1ib2R5IiBhcmlhLWhpZGRlbj0iJysoeWU/ImZhbHNlIjoidHJ1ZSIpKyciPicrKFE/JzxkaXYgY2xhc3M9InRvb2wtdXNlLW1ldGEiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1tZXRhLWxhYmVsIj5cdTVERTVcdTUxNzdcdUZGMUE8L3NwYW4+JytwKG8pKyI8L2Rpdj4iOiIiKSsnPHByZSBjbGFzcz0idG9vbC11c2UtY29udGVudCI+JytwKHEpKyI8L3ByZT4iKyhHPyc8ZGl2IGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQiPicrRysiPC9kaXY+IjoiIikrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gb3UoZSl7dmFyIHQ9e1JlYWQ6Ilx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiIsV3JpdGU6Ilx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiIsRWRpdDoiXHU3RjE2XHU4RjkxXHU2NTg3XHU0RUY2IixNdWx0aUVkaXQ6Ilx1NTkxQVx1NTkwNFx1N0YxNlx1OEY5MSIsQmFzaDoiXHU2MjY3XHU4ODRDXHU1NDdEXHU0RUU0IixHcmVwOiJcdTY0MUNcdTdEMjJcdTUxODVcdTVCQjkiLEdsb2I6Ilx1NjdFNVx1NjI3RVx1NjU4N1x1NEVGNiIsV2ViRmV0Y2g6Ilx1ODNCN1x1NTNENlx1N0Y1MVx1OTg3NSIsV2ViU2VhcmNoOiJcdTY0MUNcdTdEMjJcdTdGNTFcdTk4NzUiLFRhc2s6Ilx1NEVGQlx1NTJBMSIsVG9kb1dyaXRlOiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUiLFRvZG9SZWFkOiJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUUiLE5vdGVib29rRWRpdDoiXHU3RjE2XHU4RjkxXHU3QjE0XHU4QkIwXHU2NzJDIixBZ2VudDoiXHU1QjUwXHU0RUUzXHU3NDA2IixBc2tVc2VyUXVlc3Rpb246Ilx1NjNEMFx1OTVFRSIsRXhpdDoiXHU5MDAwXHU1MUZBIn07cmV0dXJuIHRbZV18fGV9ZnVuY3Rpb24gdmwoZSl7dmFyIHQ9e1JlYWQ6IlIiLFdyaXRlOiJXIixFZGl0OiJFIixNdWx0aUVkaXQ6IkUiLEJhc2g6IiQiLEdyZXA6IkciLEdsb2I6IkYiLFdlYkZldGNoOiJcdTIxRTMiLFdlYlNlYXJjaDoiXHUyMUUyIixUYXNrOiJUIixUb2RvV3JpdGU6Ilx1MjYxMCIsVG9kb1JlYWQ6Ilx1MjYxMSIsTm90ZWJvb2tFZGl0OiJOIixBZ2VudDoiQSIsRXhpdDoiXHhENyJ9O3JldHVybiB0W2VdfHwiXHhCNyJ9ZnVuY3Rpb24gY20oZSx0KXtpZighdHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiIiO3ZhciBuPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoPT09MClyZXR1cm4ie30iO2lmKGU9PT0iUmVhZCIpcmV0dXJuIlx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiI7aWYoZT09PSJXcml0ZSIpcmV0dXJuIlx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiI7aWYoZT09PSJFZGl0Iil7dmFyIGk9dC5lZGl0cz90LmVkaXRzLmxlbmd0aDowO3JldHVybiJcdTdGMTZcdThGOTEgKCIraSsiIFx1NTkwNFx1NEZFRVx1NjUzOSkifWlmKGU9PT0iQmFzaCIpe3ZhciBhPXQuY29tbWFuZHx8IiI7aWYoYSl7dmFyIHU9YS5sZW5ndGg+NjA/YS5zbGljZSgwLDYwKSsiLi4uIjphO3JldHVybiJcdTU0N0RcdTRFRTRcdUZGMUEiK3V9fWlmKGU9PT0iR3JlcCIpe3ZhciBvPXQucGF0dGVybnx8IiIscz10LnBhdGh8fCIiO2lmKG8pcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrbysocz8iIChcdTU3MjggIitzKyIpIjoiIil9aWYoZT09PSJHbG9iIil7dmFyIG89dC5wYXR0ZXJufHwiIjtpZihvKXJldHVybiJcdTY3RTVcdTYyN0VcdUZGMUEiK299aWYoZT09PSJBZ2VudCIpe3ZhciBsPXQucHJvbXB0fHx0LnRhc2t8fCIiO2lmKGwpe3ZhciBkPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitkfX1pZihlPT09IlRhc2siKXt2YXIgbD10LnRhc2t8fHQuZGVzY3JpcHRpb258fCIiO2lmKGwpe3ZhciBkPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitkfX1pZihlPT09IlRvZG9Xcml0ZSIpe3ZhciBmPXQudG9kb3N8fFtdO3JldHVybiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUgKCIrZi5sZW5ndGgrIiBcdTk4NzkpIn1pZihlPT09IldlYlNlYXJjaCIpe3ZhciBjPXQucXVlcnl8fCIiO2lmKGMpcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrY312YXIgdj1uWzBdLGg9dFt2XTtpZih0eXBlb2YgaD09InN0cmluZyIpe3ZhciBnPWgubGVuZ3RoPjUwP2guc2xpY2UoMCw1MCkrIi4uLiI6aDtyZXR1cm4gdisiOiAiK2d9cmV0dXJuIG4ubGVuZ3RoKyIgXHU0RTJBXHU1M0MyXHU2NTcwIn1mdW5jdGlvbiBmbShlLHQpe2lmKCF0KXJldHVybiBudWxsO3ZhciBuPXQuZmlsZV9wYXRofHx0LnBhdGh8fHQuY3dkO3JldHVybiBuP24ubGVuZ3RoPjUwPyIuLi4iK24uc2xpY2UoLTQ3KTpuOm51bGx9ZnVuY3Rpb24gcG0oZSl7aWYoIWUpcmV0dXJuIiI7Zm9yKHZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPSExLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XSxzPW8udHJpbSgpO2lmKCEoIWEmJiFzKSl7aWYoYT0hMCxzLmluZGV4T2YoIlx1MjNGQSIpPT09MCYmcy5sZW5ndGg+Mil7aS5wdXNoKHMuc2xpY2UoMSkudHJpbSgpKTtjb250aW51ZX1pZihzLmluZGV4T2YoIlx1MjVDRiIpPT09MCl7aWYocz1zLnNsaWNlKDEpLnRyaW0oKSwhcyljb250aW51ZTtvPXN9aS5wdXNoKG8pfX1mb3IoO2kubGVuZ3RoPjAmJiFpW2kubGVuZ3RoLTFdLnRyaW0oKTspaS5wb3AoKTtmb3IodmFyIGw9W10sZD17fSxmPTA7ZjxpLmxlbmd0aDtmKyspe3ZhciBjPWlbZl0ucmVwbGFjZSgvXHMrL2csIiIpO2MubGVuZ3RoPjUmJmRbY118fChjLmxlbmd0aD41JiYoZFtjXT0hMCksbC5wdXNoKGlbZl0pKX1yZXR1cm4gbC5qb2luKHQpfWZ1bmN0aW9uIG1sKGUpe3ZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPTA7ZnVuY3Rpb24gdShtKXt2YXIgeT1tLnRyaW0oKTtyZXR1cm4geS5jaGFyQXQoMCk9PT0ifCImJih5PXkuc2xpY2UoMSkpLHkuY2hhckF0KHkubGVuZ3RoLTEpPT09InwiJiYoeT15LnNsaWNlKDAsLTEpKSx5LnNwbGl0KCJ8Iil9ZnVuY3Rpb24gbyhtKXtyZXR1cm4gbT8nIHN0eWxlPSJ0ZXh0LWFsaWduOicrbSsnIic6IiJ9ZnVuY3Rpb24gcyhtLHksQyl7dmFyIEU9Ijx0aGVhZD48dHI+IittLm1hcChmdW5jdGlvbihELEYpe3JldHVybiI8dGgiK28oeVtGXSkrIj4iK0QudHJpbSgpKyI8L3RoPiJ9KS5qb2luKCIiKSsiPC90cj48L3RoZWFkPiIsQj1DLmxlbmd0aD8iPHRib2R5PiIrQy5tYXAoZnVuY3Rpb24oRCl7cmV0dXJuIjx0cj4iK0QubWFwKGZ1bmN0aW9uKEYsSSl7cmV0dXJuIjx0ZCIrbyh5W0ldKSsiPiIrRi50cmltKCkrIjwvdGQ+In0pLmpvaW4oIiIpKyI8L3RyPiJ9KS5qb2luKCIiKSsiPC90Ym9keT4iOiIiO3JldHVybic8ZGl2IGNsYXNzPSJtZC10YWJsZS13cmFwIj48dGFibGUgY2xhc3M9Im1kLXRhYmxlIj4nK0UrQisiPC90YWJsZT48L2Rpdj4ifWZvcig7YTxuLmxlbmd0aDspe3ZhciBsPW5bYV07aWYobC5pbmRleE9mKCJ8IikhPT0tMSYmYSsxPG4ubGVuZ3RoKXt2YXIgZD1uW2ErMV0udHJpbSgpO2lmKC9eXHw/XHMqOj8tKzo/KFxzKlx8XHMqOj8tKzo/KStccypcfD8kLy50ZXN0KGQpKXtmb3IodmFyIGY9dShsKSxjPXUoZCkubWFwKGZ1bmN0aW9uKG0pe3ZhciB5PW0udHJpbSgpLEM9eS5jaGFyQXQoMCk9PT0iOiIsRT15LmNoYXJBdCh5Lmxlbmd0aC0xKT09PSI6IjtyZXR1cm4gQyYmRT8iY2VudGVyIjpFPyJyaWdodCI6Qz8ibGVmdCI6IiJ9KSx2PVtdLGg9YSsyO2g8bi5sZW5ndGg7KXt2YXIgZz1uW2hdLnRyaW0oKTtpZighZ3x8Zy5pbmRleE9mKCJ8Iik9PT0tMSlicmVhazt2LnB1c2godShuW2hdKSksaCs9MX1pLnB1c2goIiIscyhmLGMsdiksIiIpLGE9aDtjb250aW51ZX19aS5wdXNoKGwpLGErPTF9cmV0dXJuIGkuam9pbih0KX1mdW5jdGlvbiBzdShlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1wKGUpLG49ImAiLGk9YApgO2Z1bmN0aW9uIGEocSxQLGosRyl7Zm9yKHZhciBKPTA7Oyl7dmFyIHRlPXEuaW5kZXhPZihQLEopO2lmKHRlPT09LTEpYnJlYWs7dmFyIGRlPXEuaW5kZXhPZihQLHRlK1AubGVuZ3RoKTtpZihkZT09PS0xKWJyZWFrO3ZhciBuZT1xLnNsaWNlKHRlK1AubGVuZ3RoLGRlKTtpZighbmUpe0o9ZGUrUC5sZW5ndGg7Y29udGludWV9dmFyIHJlPWorbmUrRztxPXEuc2xpY2UoMCx0ZSkrcmUrcS5zbGljZShkZStQLmxlbmd0aCksSj10ZStyZS5sZW5ndGh9cmV0dXJuIHF9ZnVuY3Rpb24gdShxKXtyZXR1cm4gcT49NDgmJnE8PTU3fHxxPj02NSYmcTw9OTB8fHE+PTk3JiZxPD0xMjJ8fHE9PT05NX1mdW5jdGlvbiBvKHEsUCxqKXtmb3IodmFyIEc9MDtHPHEubGVuZ3RoOyl7dmFyIEo9cS5pbmRleE9mKCJfIixHKTtpZihKPT09LTEpYnJlYWs7dmFyIHRlPUo+MD9xLmNoYXJDb2RlQXQoSi0xKTowO2lmKHUodGUpKXtHPUorMTtjb250aW51ZX1mb3IodmFyIGRlPUorMSxuZT0tMTtkZTxxLmxlbmd0aDspe3ZhciByZT1xLmluZGV4T2YoIl8iLGRlKTtpZihyZT09PS0xKWJyZWFrO3ZhciBNZT1yZSsxLHllPU1lPHEubGVuZ3RoP3EuY2hhckNvZGVBdChNZSk6MDtpZighdSh5ZSkpe25lPXJlO2JyZWFrfWRlPXJlKzF9aWYobmU9PT0tMSlicmVhazt2YXIgcGU9cS5zbGljZShKKzEsbmUpO2lmKCFwZSl7Rz1uZSsxO2NvbnRpbnVlfXZhciBSPVArcGUrajtxPXEuc2xpY2UoMCxKKStSK3Euc2xpY2UobmUrMSksRz1KK1IubGVuZ3RofXJldHVybiBxfWZ1bmN0aW9uIHMocSxQLGosRyl7cmV0dXJuIHEuc3BsaXQoaSkubWFwKGZ1bmN0aW9uKEope3JldHVybiBKLmluZGV4T2YoUCkhPT0wP0o6aitKLnNsaWNlKFAubGVuZ3RoKStHfSkuam9pbihpKX1mdW5jdGlvbiBsKHEpe3JldHVybiBxLnNwbGl0KGkpLm1hcChmdW5jdGlvbihQKXt2YXIgaj1QLmluZGV4T2YoIi4gIik7aWYoajw9MClyZXR1cm4gUDtmb3IodmFyIEc9MDtHPGo7Rys9MSl7dmFyIEo9UC5jaGFyQ29kZUF0KEcpO2lmKEo8NDh8fEo+NTcpcmV0dXJuIFB9cmV0dXJuIjxsaT4iK1Auc2xpY2UoaisyKSsiPC9saT4ifSkuam9pbihpKX1mdW5jdGlvbiBkKHEpe3JldHVybiBxLnNwbGl0KGkraSkubWFwKGZ1bmN0aW9uKFApe3ZhciBqPVAudHJpbSgpO3JldHVybiBqP2ouaW5kZXhPZigiPGRpdiIpPT09MHx8ai5pbmRleE9mKCI8aDEiKT09PTB8fGouaW5kZXhPZigiPGgyIik9PT0wfHxqLmluZGV4T2YoIjxoMyIpPT09MHx8ai5pbmRleE9mKCI8aDQiKT09PTB8fGouaW5kZXhPZigiPGg1Iik9PT0wfHxqLmluZGV4T2YoIjxoNiIpPT09MHx8ai5pbmRleE9mKCI8dWwiKT09PTB8fGouaW5kZXhPZigiPG9sIik9PT0wfHxqLmluZGV4T2YoIjxsaSIpPT09MHx8ai5pbmRleE9mKCI8YmxvY2txdW90ZSIpPT09MHx8ai5pbmRleE9mKCI8cHJlIik9PT0wP2o6IjxwPiIrai5zcGxpdChpKS5qb2luKCI8YnI+IikrIjwvcD4iOiIifSkuam9pbigiIil9Zm9yKHZhciBmPTA7Oyl7dmFyIGM9dC5pbmRleE9mKG4rbituLGYpO2lmKGM9PT0tMSlicmVhazt2YXIgdj10LmluZGV4T2YobituK24sYyszKTtpZih2PT09LTEpYnJlYWs7dmFyIGg9dC5zbGljZShjKzMsdiksZz1oLmluZGV4T2YoaSksbT0iIix5PWg7aWYoZyE9PS0xJiZnPDMwKXtmb3IodmFyIEM9aC5zbGljZSgwLGcpLnRyaW0oKSxFPUMubGVuZ3RoPjAsQj0wO0I8Qy5sZW5ndGg7Qis9MSl7dmFyIEQ9Qy5jaGFyQ29kZUF0KEIpLEY9RD49NDgmJkQ8PTU3LEk9RD49NjUmJkQ8PTkwLEw9RD49OTcmJkQ8PTEyMjtpZighRiYmIUkmJiFMKXtFPSExO2JyZWFrfX1FJiYobT1DLHk9aC5zbGljZShnKzEpKX12YXIgSD12bSh5LnRyaW0oKSxtKSxVPUgucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IikseD0nPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+PGRpdiBjbGFzcz0iY29kZS1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJjb2RlLWxhbmciPicrKG18fCJjb2RlIikrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJjb2RlLWNvcHkiPkNvcHk8L2J1dHRvbj48L2Rpdj48cHJlPjxjb2RlPicrVSsiPC9jb2RlPjwvcHJlPjwvZGl2PiI7dD10LnNsaWNlKDAsYykreCt0LnNsaWNlKHYrMyksZj1jK3gubGVuZ3RofWZvcihmPTA7Oyl7dmFyIGs9dC5pbmRleE9mKG4sZik7aWYoaz09PS0xKWJyZWFrO3ZhciBUPXQuaW5kZXhPZihuLGsrMSk7aWYoVD09PS0xKWJyZWFrO2lmKFQ9PT1rKzEpe2Y9VCsxO2NvbnRpbnVlfXZhciBNPXQuc2xpY2UoaysxLFQpLFk9TS5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKSx6PSc8Y29kZSBjbGFzcz0iY29kZS1pbmxpbmUiPicrWSsiPC9jb2RlPiI7dD10LnNsaWNlKDAsaykreit0LnNsaWNlKFQrMSksZj1rK3oubGVuZ3RofXQ9YSh0LCIqKiIsIjxzdHJvbmc+IiwiPC9zdHJvbmc+IiksdD1hKHQsIioiLCI8ZW0+IiwiPC9lbT4iKSx0PW8odCwiPGVtPiIsIjwvZW0+IiksdD1zKHQsIiMjIyAiLCI8aDM+IiwiPC9oMz4iKSx0PXModCwiIyMgIiwiPGgyPiIsIjwvaDI+IiksdD1zKHQsIiMgIiwiPGgxPiIsIjwvaDE+IiksdD1zKHQsIiZndDsgIiwiPGJsb2NrcXVvdGU+IiwiPC9ibG9ja3F1b3RlPiIpLHQ9cyh0LCItICIsIjxsaT4iLCI8L2xpPiIpLHQ9cyh0LCIqICIsIjxsaT4iLCI8L2xpPiIpLHQ9bCh0KSx0PW1sKHQpO3ZhciBRPXQuc3BsaXQoaSksbGU9W10sZWU9W107ZnVuY3Rpb24gWigpe2VlLmxlbmd0aCYmKGxlLnB1c2goIjx1bD4iK2VlLmpvaW4oIiIpKyI8L3VsPiIpLGVlPVtdKX1yZXR1cm4gUS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2lmKHEuaW5kZXhPZigiPGxpPiIpPT09MCYmcS5sYXN0SW5kZXhPZigiPC9saT4iKT09PXEubGVuZ3RoLTUpe2VlLnB1c2gocSk7cmV0dXJufVooKSxsZS5wdXNoKHEpfSksWigpLHQ9ZChsZS5qb2luKGkpKSwnPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+Jyt0KyI8L2Rpdj4ifWZ1bmN0aW9uIHZtKGUsdCl7cmV0dXJuIGU9ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksZX1mdW5jdGlvbiBabihlKXt2YXIgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdC5sZW5ndGg8PTI0P3R8fCJcdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQiOnQuc2xpY2UoMCwyMSkrIi4uLiJ9ZnVuY3Rpb24gbHUoZSl7cmV0dXJuIFN0cmluZyhlfHwiIikucmVwbGFjZSgvXHJcclxuL2csYFxyCmApLnJlcGxhY2UoL1x1MDAwMC9nLCIiKX1mdW5jdGlvbiBtbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWh0dHAtbGluayIpO3QmJih0LmhyZWY9Imh0dHA6Ly8iK2xvY2F0aW9uLmhvc3QrbG9jYXRpb24ucGF0aG5hbWUsdC5zdHlsZS5kaXNwbGF5PWxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IiI6Im5vbmUiKX1mdW5jdGlvbiBnbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIGR1KCl7aWYoIXIubG9naW5QZW5kaW5nKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpOyFlfHwhdHx8IW58fChoaShuKSxnbSgpLGUuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpLHIubG9naW5QZW5kaW5nPSEwLHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU3NjdCXHU1RjU1XHU0RTJELi4uIixmZXRjaCgiL2FwaS9sb2dpbiIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXNzd29yZDplLnZhbHVlfSksY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuc3RhdHVzPT09NDI5PyhQZShuLCJcdTc2N0JcdTVGNTVcdTVDMURcdThCRDVcdTZCMjFcdTY1NzBcdThGQzdcdTU5MUFcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTUxOERcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKTppLm9rP2ZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTooZS5kYXRhc2V0LmVycm9yPSJ0cnVlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwidHJ1ZSIpLFBlKG4sIlx1NUJDNlx1NzgwMVx1OTUxOVx1OEJFRlx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5vaz9pLmpzb24oKToobG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij9tbSgpOlBlKG4sIlx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyLmNvbmZpZz1pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMtZG90IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzLXRleHQiKTtyZXR1cm4gYSYmYS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSx1JiYodS50ZXh0Q29udGVudD0iXHU1REYyXHU3NjdCXHU1RjU1IiksSHQoKX0pLnRoZW4oZnVuY3Rpb24oKXtPbygpLFp0KCl9KS5jYXRjaChmdW5jdGlvbihpKXtpIT09ImhhbmRsZWQiJiYoY29uc29sZS5lcnJvcigiW3dhbmRdIExvZ2luIGVycm9yOiIsaSksUGUobiwiXHU3NjdCXHU1RjU1XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIikpfSkuZmluYWxseShmdW5jdGlvbigpe3IubG9naW5QZW5kaW5nPSExLHQuZGlzYWJsZWQ9ITEsdC50ZXh0Q29udGVudD0iXHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwIn0pKX19ZnVuY3Rpb24gY3UoKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zd2l0Y2hTZXJ2ZXI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gZ2woKXtpZihjdSgpKXRyeXtXYW5kTmF0aXZlLnN3aXRjaFNlcnZlcigpfWNhdGNoe319ZnVuY3Rpb24gaG0oKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiI/ITA6dHlwZW9mIHdpbmRvdy5fX3dhbmRCYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24geW0oKXt0cnl7aWYodHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiIpe1dhbmROYXRpdmUuYmFja1RvTmF0aXZlKCk7cmV0dXJufXR5cGVvZiB3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iJiZ3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlKCl9Y2F0Y2h7fX1mdW5jdGlvbiBobCgpe2ZldGNoKCIvYXBpL2xvZ291dCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLmNhdGNoKGZ1bmN0aW9uKCl7fSksV28oKSxPbighMSksemEoKSx3cigpLHIuY29uZmlnPW51bGwsci5zZWxlY3RlZElkPW51bGwsaGUoKSxyLnNlc3Npb25zPVtdLHIuY2xhdWRlSGlzdG9yeT1bXSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzPXt9LHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLEFlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLFp0KCl9ZnVuY3Rpb24gSHQoKXtyZXR1cm4gbW4oKX1mdW5jdGlvbiBmdShlKXtyZXR1cm4gZT09PSJmdWxsLWFjY2VzcyI/Ilx1NTE2OFx1Njc0M1x1OTY1MCI6ZT09PSJkZWZhdWx0Ij8iXHU5RUQ4XHU4QkE0IjplPT09Im5hdGl2ZSI/Ilx1NTM5Rlx1NzUxRiI6ZT09PSJhdXRvLWVkaXQiPyJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEiOmU9PT0ibWFuYWdlZCI/Ilx1NjI1OFx1N0JBMSI6ZX1mdW5jdGlvbiAkZSgpe3JldHVybiByLnNlc3Npb25Ub29sfHxyLnByZWZlcnJlZENvbW1hbmR8fCJjbGF1ZGUifWZ1bmN0aW9uIGJtKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIGUmJmUucHJvdmlkZXJ8fHIucHJlZmVycmVkQ29tbWFuZHx8ImNsYXVkZSJ9ZnVuY3Rpb24geWwoZSx0KXtyZXR1cm4gdD8iXHU5NTJFXHU3NkQ4XHU4RjkzXHU1MTY1XHU1QzA2XHU1M0QxXHU5MDAxXHU1MjMwXHU3RUM4XHU3QUVGIjplJiYoZS5zdGF0dXM9PT0iZXhpdGVkInx8ZS5zdGF0dXM9PT0iZmFpbGVkInx8ZS5zdGF0dXM9PT0ic3RvcHBlZCIpP05hKGUpPyJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkZcdTRFRTVcdTdFRTdcdTdFRURcdTRGMUFcdThCREQiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOnVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ/Ilx1NTZERVx1NTkwRFx1NEUyRFx1RkYwQ1x1NTNFRlx1N0VFN1x1N0VFRFx1OEY5M1x1NTE2NSI6Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiJ9ZnVuY3Rpb24gYmwoZSx0KXtyZXR1cm4gZT09PSJjb2RleCI/IkNvZGV4IFx1NjUyRlx1NjMwMSBQVFkgXHU3RUM4XHU3QUVGXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHVGRjA4SlNPTkxcdUZGMDlcdTRFMjRcdTc5Q0RcdTRGMUFcdThCRERcdUZGMENcdTdFRDNcdTY3ODRcdTUzMTZcdTZBMjFcdTVGMEZcdTYzMDkgZnVsbC1hY2Nlc3MgXHU1NDJGXHU1MkE4XHUzMDAyIjp0PT09ImZ1bGwtYWNjZXNzIj8iXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwXHU4QkY3XHU2QzQyXHU0RTBFXHU5QUQ4XHU2NzQzXHU5NjUwXHU2NENEXHU0RjVDXHVGRjBDXHU5MDAyXHU1NDA4XHU0RjYwXHU3ODZFXHU4QkE0XHU3M0FGXHU1ODgzXHU1Qjg5XHU1MTY4XHU1NDBFXHU3Njg0XHU4RkRFXHU3RUVEXHU0RkVFXHU2NTM5XHUzMDAyIjp0PT09ImF1dG8tZWRpdCI/Ilx1NEZERFx1NzU1OVx1NEVBNFx1NEU5Mlx1NUYwRlx1NEYxQVx1OEJERFx1RkYwQ1x1NTQwQ1x1NjVGNlx1NjZGNFx1NTA0Rlx1NTQxMVx1NzZGNFx1NjNBNVx1N0YxNlx1OEY5MVx1NEVFM1x1NzgwMVx1MzAwMiI6dD09PSJuYXRpdmUiPyJcdThDMDNcdTc1MjggQ2xhdWRlIFx1NTM5Rlx1NzUxRiBBUEkgXHU4RjkzXHU1MUZBXHVGRjBDXHU5MDAyXHU1NDA4XHU1RkVCXHU5MDFGXHU5NUVFXHU3QjU0XHU2MjE2XHU0RTAwXHU2QjIxXHU2MDI3XHU3NTFGXHU2MjEwXHUzMDAyIjp0PT09Im1hbmFnZWQiPyJBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUNcdUZGMENcdTY1RTBcdTk3MDBcdTRFMkRcdTkwMTRcdTc4NkVcdThCQTRcdUZGMENcdTkwMDJcdTU0MDhcdTY3MDlcdTY2MEVcdTc4NkVcdTc2RUVcdTY4MDdcdTc2ODRcdTRFRkJcdTUyQTFcdTMwMDIiOiJcdTRGRERcdTc1NTlcdTY4MDdcdTUxQzZcdTRFQTRcdTRFOTJcdTZENDFcdTdBMEJcdUZGMENcdTkwMDJcdTU0MDhcdTYyNEJcdTUyQThcdTc4NkVcdThCQTRcdTZCQ0ZcdTRFMDBcdTZCNjVcdTMwMDIifWZ1bmN0aW9uIHB1KGUpe3JldHVybiBlPT09ImNvZGV4Ij9bImZ1bGwtYWNjZXNzIl06WyJkZWZhdWx0IiwiZnVsbC1hY2Nlc3MiLCJhdXRvLWVkaXQiLCJuYXRpdmUiLCJtYW5hZ2VkIl19ZnVuY3Rpb24gQXQoZSx0KXt2YXIgbj1wdShlKTtpZihuLmluZGV4T2YodCkhPT0tMSlyZXR1cm4gdDt2YXIgaT1yLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiO3JldHVybiBuLmluZGV4T2YoaSkhPT0tMT9pOm5bMF19ZnVuY3Rpb24geWgoZSx0KXtyZXR1cm4gcHUoZSkubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPUVsKG4pO3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrJyB0aXRsZT0iJytpKyciPicrcChmdShuKSkrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBFbChlKXt2YXIgdD17ZGVmYXVsdDoiXHU2ODA3XHU1MUM2XHU2QTIxXHU1RjBGIC0gXHU5NzAwXHU4OTgxXHU3ODZFXHU4QkE0XHU2NTg3XHU0RUY2XHU0RkVFXHU2NTM5IiwiZnVsbC1hY2Nlc3MiOiJcdTVCOENcdTUxNjhcdThCQkZcdTk1RUUgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTBcdTRFMEVcdTY0Q0RcdTRGNUMiLCJhdXRvLWVkaXQiOiJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY1ODdcdTRFRjZcdTRGRUVcdTY1MzkiLG5hdGl2ZToiXHU1MzlGXHU3NTFGXHU2QTIxXHU1RjBGIC0gXHU4RkQ0XHU1NkRFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RjkzXHU1MUZBIixtYW5hZ2VkOiJcdTYyNThcdTdCQTFcdTZBMjFcdTVGMEYgLSBBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUMifTtyZXR1cm4gdFtlXXx8IiJ9ZnVuY3Rpb24gRW0oZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcj9lLnByb3ZpZGVyOiJjbGF1ZGUiO3JldHVybih1ZShlKT8iXHU3RUQzXHU2Nzg0XHU1MzE2IjoiXHU3RUM4XHU3QUVGIikrIiBceEI3ICIrdH1mdW5jdGlvbiBGbShlKXtyZXR1cm4gdWUoZSk/Ilx1N0VEM1x1Njc4NFx1NTMxNiBceEI3IFx1NTc1N1x1N0VBN1x1OEJCMFx1NUY1NSI6ZSYmZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1N0VDOFx1N0FFRiBceEI3IENvZGV4IFBUWVx1RkYwOGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjA5IjoiXHU3RUM4XHU3QUVGIFx4QjcgUFRZIFx1NEYxQVx1OEJERCJ9ZnVuY3Rpb24gRmwoZSl7cmV0dXJuIGU/dWUoZSl8fGUucHJvdmlkZXI9PT0iY29kZXgiOiExfWZ1bmN0aW9uIHdsKGUsdCl7aWYoIWV8fCFlLmlzX2Vycm9yfHwhdHx8dC5pc19lcnJvcilyZXR1cm4hMTt2YXIgbj1wbihlLmNvbnRlbnQpLnRvTG93ZXJDYXNlKCksaT1wbih0LmNvbnRlbnQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG4/bi5pbmRleE9mKCJpbnZhbGlkIHBhZ2VzIHBhcmFtZXRlciIpIT09LTEmJmkubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gdWUoZSl7cmV0dXJuISFlJiYoZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5ydW5uZXI9PT0iY2xhdWRlLWNsaS1wcmludCIpfWZ1bmN0aW9uIE9pKCl7ci5jaGF0TW9kZT1BdCgiY2xhdWRlIixyLmNoYXRNb2RlKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1oaW50Iik7ZSYmKGUudGV4dENvbnRlbnQ9RWwoci5jaGF0TW9kZSkpLGVyKCl9ZnVuY3Rpb24gQ2woZSx0KXt0PXR8fHt9O3ZhciBuPXQua2luZD09PSJjb21wYWN0Inx8dC5raW5kPT09InBvcG92ZXIiP3Qua2luZDoiZHJvcGRvd24iLGk9JGUoKSxhPXIuY2hhdE1vZGV8fCJkZWZhdWx0Iix1PVJpKGUpfHwiIixvPV9pKHUsZSkscz1odShlKTtmdW5jdGlvbiBsKGQsZixjLHYpe3ZhciBoPW49PT0iY29tcGFjdCI/IiI6JzxzcGFuIGNsYXNzPSJjaGF0LW1vZGUtdHJpby10YWciPicrcChmKSsiPC9zcGFuPiI7cmV0dXJuJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXBpbGwgY2hhdC1tb2RlLXRyaW8tcGlsbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytkKyciIHRpdGxlPSInK3AoZikrJyI+JytoKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1sYWJlbCI+JytwKGMpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0iJytkKyciIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iJytwKGYpKyciPicrdisiPC9zZWxlY3Q+PC9zcGFuPiJ9cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbW9kZS10cmlvIGNoYXQtbW9kZS10cmlvLScrbisnIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iXHU0RjFBXHU4QkREXHU4QkJFXHU3RjZFIj4nK2woIm1vZGUiLCJcdTZBMjFcdTVGMEYiLGEsTmkoaSxhKSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXNlcCIgYXJpYS1oaWRkZW49InRydWUiPlx4Qjc8L3NwYW4+JytsKCJtb2RlbCIsIlx1NkEyMVx1NTc4QiIsbyxTbCh1LGUpKSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtc2VwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHhCNzwvc3Bhbj4nK2woInRoaW5raW5nIiwiXHU2MDFEXHU4MDAzIixzLElsKHMpKSsiPC9kaXY+In1mdW5jdGlvbiBCbChlKXtyZXR1cm4gZT09PSJzdGFuZGFyZCI/Ilx1NEY0RSI6ZT09PSJkZWVwIj8iXHU0RTJEIjplPT09Im1heCI/Ilx1OUFEOCI6Ilx1NTE3MyJ9ZnVuY3Rpb24gd20oZSl7cmV0dXJuIGU9PT0ic3RhbmRhcmQiPyJcdTRGNEUiOmU9PT0iZGVlcCI/Ilx1NEUyRCI6ZT09PSJtYXgiPyJcdTlBRDgiOiJcdTUxNzNcdTk1RUQifWZ1bmN0aW9uIEhpKGUsdCl7dmFyIG49ZXx8IiIsaT1ndSh0KTtpZighbnx8bj09PSJkZWZhdWx0Iil7Zm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspaWYoaVthXS5pZD09PSJkZWZhdWx0IilyZXR1cm4gaVthXS5sYWJlbHx8aVthXS5pZDtyZXR1cm4iXHU5RUQ4XHU4QkE0In1mb3IodmFyIHU9MDt1PGkubGVuZ3RoO3UrKylpZihpW3VdLmlkPT09bilyZXR1cm4gaVt1XS5sYWJlbHx8aVt1XS5pZDtyZXR1cm4gbn1mdW5jdGlvbiBfaShlLHQpe3ZhciBuPUhpKGUsdCk7aWYoIW58fG49PT0iXHU4RERGXHU5NjhGXHU2NzBEXHU1MkExXHU3QUVGXHU5RUQ4XHU4QkE0IilyZXR1cm4iXHU5RUQ4XHU4QkE0Ijt2YXIgaT1uLnNlYXJjaCgvW++8iChdLyk7aT4wJiYobj1uLnNsaWNlKDAsaSkudHJpbSgpKTt2YXIgYT1uLmxhc3RJbmRleE9mKCIvIik7YT49MCYmYTxuLmxlbmd0aC0xJiYobj1uLnNsaWNlKGErMSkudHJpbSgpKTt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHUuaW5kZXhPZigib3B1cyIpIT09LTE/Ik9wdXMiOnUuaW5kZXhPZigic29ubmV0IikhPT0tMT8iU29ubmV0Ijp1LmluZGV4T2YoImhhaWt1IikhPT0tMT8iSGFpa3UiOnUuaW5kZXhPZigiZ3B0LTUuNSIpIT09LTE/IkdQVC01LjUiOnUuaW5kZXhPZigiZ3B0LTUiKSE9PS0xPyJHUFQtNSI6dS5pbmRleE9mKCJncHQtNCIpIT09LTE/IkdQVC00IjpuLmxlbmd0aD4xMj9uLnNsaWNlKDAsMTApKyJcdTIwMjYiOm59ZnVuY3Rpb24gRGwoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8X3QubGVuZ3RoO2krKyl7dmFyIGE9X3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3Aod20oYS5pZCkpKyI8L29wdGlvbj4ifXJldHVybiBufWZ1bmN0aW9uIGtsKGUpe3ZhciB0PSRlKCksbj1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsaT1SaShlKXx8IiIsYT1odShlKSx1PWZ1KG4pLG89X2koaSxlKSxzPUJsKGEpLGw9Ilx1NkEyMVx1NUYwRiAiK3UrIiBceEI3IFx1NkEyMVx1NTc4QiAiK28rIiBceEI3IFx1NjAxRFx1ODAwMyAiK3M7cmV0dXJuJzxkaXYgY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ilx1NEYxQVx1OEJERFx1OEJCRVx1N0Y2RSIgdGl0bGU9IicrcChsKSsnIj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWNoaXAgY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZSIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSIgdGl0bGU9Ilx1NkEyMVx1NUYwRlx1RkYxQScrcCh1KSsnIj4nK1YoInNoaWVsZCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwiPicrcCh1KSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9Im1vZGUiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1RjBGIj4nK05pKHQsbikrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgdGl0bGU9Ilx1NkEyMVx1NTc4Qlx1NEUwRVx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiI+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1wYXJ0IGNvbXBvc2VyLWNvbmZpZy1tb2RlbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZWwiPicrVigiY3B1Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCI+JytwKG8pKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0ibW9kZWwiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1NzhCIj4nK3hsKGksZSkrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLXBhcnQgY29tcG9zZXItY29uZmlnLXRoaW5raW5nIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJ0aGlua2luZyIgZGF0YS10aGlua2luZz0iJytwKGEpKyciPicrVigiYnJhaW4iLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AocykrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJ0aGlua2luZyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYiPicrRGwoYSkrIjwvc2VsZWN0Pjwvc3Bhbj48L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBlcigpe3ZhciBlPXV0KCksdD0kZSgpLG49ci5jaGF0TW9kZXx8ImRlZmF1bHQiLGk9UmkoZSl8fCIiLGE9X2koaSxlKSx1PWh1KGUpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbW9kZS10cmlvIik7by5mb3JFYWNoKGZ1bmN0aW9uKHMpe2Z1bmN0aW9uIGwoZCxmLGMsdil7dmFyIGg9cy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytkKyciXScpO2lmKGgpe3ZhciBnPWgucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLXRleHQtbGFiZWwiKTtnJiYoZy50ZXh0Q29udGVudD12fHxmKTt2YXIgbT1oLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbD0iJytkKyciXScpO20mJihjJiYobS5pbm5lckhUTUw9YyksbS52YWx1ZSE9PWYmJihtLnZhbHVlPWYpKX19bCgibW9kZSIsbixOaSh0LG4pKSxsKCJtb2RlbCIsaSxTbChpLGUpLGEpLGwoInRoaW5raW5nIix1LElsKHUpKX0pLENtKGUsbixSaShlKXx8IiIsdSl9ZnVuY3Rpb24gQ20oZSx0LG4saSl7dmFyIGE9JGUoKSx1PWZ1KHQpLG89X2kobixlKSxzPUJsKGkpLGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIpO2wuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgZj0iXHU2QTIxXHU1RjBGICIrdSsiIFx4QjcgXHU2QTIxXHU1NzhCICIrbysiIFx4QjcgXHU2MDFEXHU4MDAzICIrcztkLnNldEF0dHJpYnV0ZSgidGl0bGUiLGYpO2Z1bmN0aW9uIGMoQixELEYpe3ZhciBJPUIucXVlcnlTZWxlY3RvcigiW2RhdGEtbW9kZS1jb250cm9sXSIpO0kmJihJLmlubmVySFRNTD1GLEkudmFsdWU9RCl9dmFyIHY9ZC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSJdJyk7aWYodil7dmFyIGg9di5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7aCYmKGgudGV4dENvbnRlbnQ9dSksdi5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QTIxXHU1RjBGXHVGRjFBIit1KSxjKHYsdCxOaShhLHQpKX12YXIgZz1kLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlbCJdJyk7aWYoZyl7dmFyIG09Zy5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7bSYmKG0udGV4dENvbnRlbnQ9byksYyhnLG4seGwobixlKSl9dmFyIHk9ZC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciXScpO2lmKHkpe3ZhciBDPXkucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO0MmJihDLnRleHRDb250ZW50PXMpLHkuc2V0QXR0cmlidXRlKCJkYXRhLXRoaW5raW5nIixpKSxjKHksaSxEbChpKSl9dmFyIEU9ZC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIik7RSYmRS5zZXRBdHRyaWJ1dGUoImRhdGEtdGhpbmtpbmciLGkpfSl9ZnVuY3Rpb24gTmkoZSx0KXtyZXR1cm4gcHUoZSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrIj4iK3AobikrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBqaShlKXtyZXR1cm4gZT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIn1mdW5jdGlvbiBBbChlKXtyZXR1cm4gamkoZSYmZS5wcm92aWRlcnx8ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSIpfWZ1bmN0aW9uIHZ1KCl7dmFyIGU9ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHMmJnR5cGVvZiByLmNvbmZpZy5kZWZhdWx0TW9kZWxzPT0ib2JqZWN0Ij9yLmNvbmZpZy5kZWZhdWx0TW9kZWxzOnt9O3JldHVybntjbGF1ZGU6dHlwZW9mIGUuY2xhdWRlPT0ic3RyaW5nIj9lLmNsYXVkZTpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIixjb2RleDp0eXBlb2YgZS5jb2RleD09InN0cmluZyI/ZS5jb2RleDpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdENvZGV4TW9kZWx8fCIifX1mdW5jdGlvbiBCbShlKXt2YXIgdD12dSgpO3JldHVybiBqaShlKT09PSJjb2RleCI/dC5jb2RleHx8IiI6dC5jbGF1ZGV8fCIifWZ1bmN0aW9uIE9yKGUpe3ZhciB0PWppKGUpLG49ci5jaGF0TW9kZWxzJiZ0eXBlb2Ygci5jaGF0TW9kZWxzW3RdPT0ic3RyaW5nIj9yLmNoYXRNb2RlbHNbdF06IiI7cmV0dXJuIW4mJnQ9PT0iY2xhdWRlIiYmKG49ci5jaGF0TW9kZWx8fCIiKSxufHwiIn1mdW5jdGlvbiBtdShlLHQpe3ZhciBuPWppKGUpLGk9KHR8fCIiKS50cmltKCk7ci5jaGF0TW9kZWxzfHwoci5jaGF0TW9kZWxzPXtjbGF1ZGU6IiIsY29kZXg6IiJ9KSxyLmNoYXRNb2RlbHNbbl09aSxyLmNoYXRNb2RlbD1pO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsLSIrbixpKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1jaGF0LW1vZGVsIil9Y2F0Y2h7fX1mdW5jdGlvbiBSaShlKXtpZihlJiZlLnNlbGVjdGVkTW9kZWwpcmV0dXJuIGUuc2VsZWN0ZWRNb2RlbDt2YXIgdD1BbChlKSxuPU9yKHQpO3JldHVybiBufHxCbSh0KXx8IiJ9ZnVuY3Rpb24gZ3UoZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcnx8ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSI7cmV0dXJuIHQ9PT0iY29kZXgiP3IuYXZhaWxhYmxlQ29kZXhNb2RlbHN8fFtdOnIuYXZhaWxhYmxlTW9kZWxzfHxbXX1mdW5jdGlvbiB4bChlLHQpe2Zvcih2YXIgbj1ndSh0KSxpPWU9PT0iZGVmYXVsdCI/IiI6ZXx8IiIsYT0nPG9wdGlvbiB2YWx1ZT0iIicrKGk/IiI6IiBzZWxlY3RlZCIpKyI+XHU5RUQ4XHU4QkE0IFx4QjcgIitwKEhpKCIiLHQpKSsiPC9vcHRpb24+Iix1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBvPW5bdV07aWYoby5pZCE9PSJkZWZhdWx0Iil7dmFyIHM9by5sYWJlbHx8by5pZDthKz0nPG9wdGlvbiB2YWx1ZT0iJytwKG8uaWQpKyciJysoby5pZD09PWk/IiBzZWxlY3RlZCI6IiIpKyI+IitwKHMpKyI8L29wdGlvbj4ifX1yZXR1cm4gaSYmIW4uc29tZShmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PWl9KSYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3AoaSkrJyIgc2VsZWN0ZWQ+JytwKGkpKyJcdUZGMDhcdTgxRUFcdTVCOUFcdTRFNDlcdUZGMDk8L29wdGlvbj4iKSxhfWZ1bmN0aW9uIFNsKGUsdCl7Zm9yKHZhciBuPWd1KHQpLGk9ZT09PSJkZWZhdWx0Ij8iIjplfHwiIixhPSc8b3B0aW9uIHZhbHVlPSIiJysoaT8iIjoiIHNlbGVjdGVkIikrIj4iK3AoSGkoIiIsdCkpKyI8L29wdGlvbj4iLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XTtvLmlkIT09ImRlZmF1bHQiJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChvLmlkKSsnIicrKG8uaWQ9PT1pPyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChvLmlkKSsiPC9vcHRpb24+Iil9cmV0dXJuIGkmJiFuLnNvbWUoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1pfSkmJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKGkpKyciIHNlbGVjdGVkPicrcChpKSsiPC9vcHRpb24+IiksYX1mdW5jdGlvbiB0cihlKXtlcigpfXZhciBfdD1be2lkOiJvZmYiLGxhYmVsOiJhdXRvIixoaW50OiJDbGF1ZGUgQ0xJOiBhdXRvL2RlZmF1bHQgXHhCNyBTREsgXHU1MTczXHU5NUVEIHRoaW5raW5nIFx4QjcgQ29kZXggbWluaW1hbCJ9LHtpZDoic3RhbmRhcmQiLGxhYmVsOiJsb3ciLGhpbnQ6IkNsYXVkZSBDTEk6IGxvdyBceEI3IFNESyBidWRnZXQgNDA5NiBceEI3IENvZGV4IGxvdyJ9LHtpZDoiZGVlcCIsbGFiZWw6Im1lZGl1bSIsaGludDoiQ2xhdWRlIENMSTogbWVkaXVtIFx4QjcgU0RLIGJ1ZGdldCAxNjAwMCBceEI3IENvZGV4IG1lZGl1bSJ9LHtpZDoibWF4IixsYWJlbDoibWF4IixoaW50OiJDbGF1ZGUgQ0xJOiBtYXggXHhCNyBTREsgYnVkZ2V0IDMxOTk5IFx4QjcgQ29kZXggeGhpZ2gifV07ZnVuY3Rpb24gRG0oZSl7Zm9yKHZhciB0PTA7dDxfdC5sZW5ndGg7dCsrKWlmKF90W3RdLmlkPT09ZSlyZXR1cm4gX3RbdF0ubGFiZWw7cmV0dXJuIF90WzBdLmxhYmVsfWZ1bmN0aW9uIGh1KGUpe3JldHVybiBlJiZlLnRoaW5raW5nRWZmb3J0P2UudGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmc/ci5jaGF0VGhpbmtpbmc6Im9mZiJ9ZnVuY3Rpb24gYmgoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8X3QubGVuZ3RoO2krKyl7dmFyIGE9X3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3AoYS5sYWJlbCkrIjwvb3B0aW9uPiJ9cmV0dXJuIG59ZnVuY3Rpb24gSWwoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8X3QubGVuZ3RoO2krKyl7dmFyIGE9X3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChhLmlkKSsiPC9vcHRpb24+In1yZXR1cm4gbn1mdW5jdGlvbiBFaChlKXtlcigpfWZ1bmN0aW9uIGttKGUpe3ZhciB0PShlfHwib2ZmIikudHJpbSgpO3QhPT0ib2ZmIiYmdCE9PSJzdGFuZGFyZCImJnQhPT0iZGVlcCImJnQhPT0ibWF4IiYmKHQ9Im9mZiIpLHIuY2hhdFRoaW5raW5nPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIsdCl9Y2F0Y2h7fWVyKCk7dmFyIG49dXQoKTtuJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL3RoaW5raW5nLWVmZm9ydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3RoaW5raW5nRWZmb3J0OnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtBKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWkmJmkuaWQmJihYKGkpLHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKCJcdTVERjJcdTUyMDdcdTYzNjJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYgXHUyMTkyICIrRG0odCksInN1Y2Nlc3MiKSl9KS5jYXRjaChmdW5jdGlvbigpe0EoIlx1NTIwN1x1NjM2Mlx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBUbChlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLm1vZGU7cmV0dXJuIHQ9PT0ibWFuYWdlZCJ8fHQ9PT0iZnVsbC1hY2Nlc3MifWZ1bmN0aW9uIEFtKGUpe2lmKCFlfHxUbChlKSlyZXR1cm4iIjt2YXIgdD0hIWUuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztyZXR1cm4gdD8nPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IgYWN0aXZlIiB0eXBlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0idHJ1ZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiPicrVigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj48L2J1dHRvbj4nOic8YnV0dG9uIGlkPSJhdXRvLWFwcHJvdmUtdG9nZ2xlIiBjbGFzcz0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIiBhcmlhLWxhYmVsPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiIHRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiI+JytWKCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj48L2J1dHRvbj4nfWZ1bmN0aW9uIExsKCl7cmV0dXJuIGZldGNoKCIvYXBpL21vZGVscyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkFycmF5LmlzQXJyYXkoZS5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9ZS5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KGUuY29kZXhNb2RlbHMpP2UuY29kZXhNb2RlbHM6W10sdHIodXQoKSksVmkoZSksemkoITEpKSxlfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pfWZ1bmN0aW9uIE1sKCl7aWYoci5tb2RlbHNSZWZyZXNoaW5nKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7ci5tb2RlbHNSZWZyZXNoaW5nPSEwO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNjZmctZGVmYXVsdC1tb2RlbC1yZWZyZXNoLCAjY2ZnLWNvbW1pdC1tb2RlbC1yZWZyZXNoIik7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LGk9bi5xdWVyeVNlbGVjdG9yKCJzcGFuIik7bi5kaXNhYmxlZD0hMCxuLmNsYXNzTGlzdC5hZGQoImlzLWxvYWRpbmciKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwidHJ1ZSIpLGkmJihpLnRleHRDb250ZW50PSJcdTY4QzBcdTZENEJcdTRFMkQiKX0pLGZldGNoKCIvYXBpL21vZGVscy9yZWZyZXNoIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZBcnJheS5pc0FycmF5KHQubW9kZWxzKSYmKHIuYXZhaWxhYmxlTW9kZWxzPXQubW9kZWxzLHIuYXZhaWxhYmxlQ29kZXhNb2RlbHM9QXJyYXkuaXNBcnJheSh0LmNvZGV4TW9kZWxzKT90LmNvZGV4TW9kZWxzOltdLHRyKHV0KCkpLFZpKHQpLHppKCExKSx0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4XHU1REYyXHU1MjM3XHU2NUIwIisodC5jbGF1ZGVWZXJzaW9uPyJcdUZGMDhjbGF1ZGUgIit0LmNsYXVkZVZlcnNpb24rIlx1RkYwOSI6IiIpLCJzdWNjZXNzIikpLHR9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU1MjM3XHU2NUIwXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4XHU1OTMxXHU4RDI1IiwiZXJyb3IiKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpe3IubW9kZWxzUmVmcmVzaGluZz0hMSxlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dCxpPW4ucXVlcnlTZWxlY3Rvcigic3BhbiIpO24uZGlzYWJsZWQ9ITEsbi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksbi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpLGkmJihpLnRleHRDb250ZW50PSJcdTUyMzdcdTY1QjBcdTUyMTdcdTg4NjgiKX0pfSl9ZnVuY3Rpb24geG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbW9kYWwiKTtpZighZSl7ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIiksZS5pZD0iZW52LXByZXZpZXctbW9kYWwiLGUuY2xhc3NOYW1lPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iLGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtb2RhbCBlbnYtcHJldmlldy1tb2RhbCIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9ImVudi1wcmV2aWV3LXRpdGxlIiBhcmlhLW1vZGFsPSJ0cnVlIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSIgaWQ9ImVudi1wcmV2aWV3LXRpdGxlIj5cdTVDMDZcdTZDRThcdTUxNjVcdTVCNTBcdThGREJcdTdBMEJcdTc2ODRcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0Y8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSIgaWQ9ImVudi1wcmV2aWV3LXN1YnRpdGxlIj5cdThGRDlcdTRFOUJcdTUzRDhcdTkxQ0ZcdTRGMUFcdTg4QUJcdTRGMjBcdTdFRDkgY2xhdWRlIC8gY29kZXhcdUZGMDhQVFkgXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RkQwXHU4ODRDXHU1NjY4XHU0RTAwXHU4MUY0XHVGRjA5XHUzMDAyPC9wPjwvZGl2PjxidXR0b24gaWQ9ImVudi1wcmV2aWV3LWNsb3NlIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSBlbnYtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy10b29sYmFyIj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1tZXRhIiBpZD0iZW52LXByZXZpZXctbWV0YSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctY29udHJvbHMiPjxpbnB1dCBpZD0iZW52LXByZXZpZXctc2VhcmNoIiBjbGFzcz0iZW52LXByZXZpZXctc2VhcmNoIiB0eXBlPSJzZWFyY2giIHBsYWNlaG9sZGVyPSJcdTY0MUNcdTdEMjJcdTUzRDhcdTkxQ0ZcdTU0MERcdTIwMjYiIC8+PGxhYmVsIGNsYXNzPSJlbnYtcHJldmlldy1yZXZlYWwiPjxpbnB1dCBpZD0iZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIC8+PHNwYW4+XHU2NjNFXHU3OTNBXHU2NTRGXHU2MTFGXHU1MDNDPC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbGlzdCIgaWQ9ImVudi1wcmV2aWV3LWxpc3QiIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIgZW52LXByZXZpZXctZm9vdGVyIj48c3BhbiBjbGFzcz0iZW52LXByZXZpZXctaGludCI+XHU2NTRGXHU2MTFGXHU1QjU3XHU2QkI1XHVGRjA4XHU1NDJCIEtFWS9UT0tFTi9TRUNSRVQgXHU3QjQ5XHVGRjA5XHU5RUQ4XHU4QkE0XHU2M0E5XHU3ODAxXHVGRjBDXHU1M0VGXHU1MkZFXHU5MDA5XHUzMDBDXHU2NjNFXHU3OTNBXHU2NTRGXHU2MTFGXHU1MDNDXHUzMDBEXHU0RTM0XHU2NUY2XHU4RkQ4XHU1MzlGXHUzMDAyPC9zcGFuPjxidXR0b24gaWQ9ImVudi1wcmV2aWV3LWNsb3NlLTIiIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHMpe3MudGFyZ2V0PT09ZSYmeXUoKX0pO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LWNsb3NlIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIseXUpO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LWNsb3NlLTIiKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix5dSk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctc2VhcmNoIik7YSYmYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtQbCgpfSk7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3FsKGkuY2hlY2tlZCl9KX1lLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXJldmVhbC10b2dnbGUiKTtpJiYoaS5jaGVja2VkPSExKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1zZWFyY2giKTthJiYoYS52YWx1ZT0iIikscWwoITEpfWZ1bmN0aW9uIHl1KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1vZGFsIik7ZSYmQ3UoZSl9ZnVuY3Rpb24gcWwoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LWxpc3QiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tZXRhIik7dCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2Iik7dmFyIGk9Ii9hcGkvc2V0dGluZ3MvZW52LXByZXZpZXciKyhlPyI/cmV2ZWFsPTEiOiIiKTtmZXRjaChpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKCFhfHwhQXJyYXkuaXNBcnJheShhLmVudHJpZXMpKXt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdThCRkJcdTUzRDZcdTU5MzFcdThEMjVcdTMwMDI8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1Iik7cmV0dXJufWlmKHIuX2VudlByZXZpZXc9YSxuKXt2YXIgdT1hLmluaGVyaXRFbnY/Ilx1N0VFN1x1NjI3Rlx1NzIzNlx1OEZEQlx1N0EwQiI6Ilx1NjcwMFx1NUMwRlx1NzY3RFx1NTQwRFx1NTM1NSI7bi5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1waWxsICcrKGEuaW5oZXJpdEVudj8iaXMtaW5oZXJpdCI6ImlzLW1pbmltYWwiKSsnIj4nK3UrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZW52LXByZXZpZXctY291bnQiPlx1NTE3MSAnK2EudG90YWwrIiBcdTk4Nzk8L3NwYW4+In1QbCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdThCRkJcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDI8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1Iil9KX1mdW5jdGlvbiBQbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1saXN0Iik7aWYoZSl7dmFyIHQ9ci5fZW52UHJldmlldztpZighdHx8IUFycmF5LmlzQXJyYXkodC5lbnRyaWVzKSl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdTVDMUFcdTY3MkFcdTUyQTBcdThGN0RcdTMwMDI8L2Rpdj4nO3JldHVybn1mb3IodmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LXNlYXJjaCIpLGk9KG4mJm4udmFsdWV8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxhPSIiLHU9MCxvPTA7bzx0LmVudHJpZXMubGVuZ3RoO28rKyl7dmFyIHM9dC5lbnRyaWVzW29dO2lmKCEoaSYmcy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpKT09PS0xKSl7dSsrO3ZhciBsPXR5cGVvZiBzLnZhbHVlPT0ic3RyaW5nIiYmcy52YWx1ZS5jaGFyQXQoMCk9PT0iPCImJnMudmFsdWUuY2hhckF0KHMudmFsdWUubGVuZ3RoLTEpPT09Ij4iO2ErPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1yb3cnKyhzLnNlbnNpdGl2ZT8iIGlzLXNlbnNpdGl2ZSI6IiIpKyciPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LW5hbWUiPicrcChzLm5hbWUpKyhzLnNlbnNpdGl2ZT8nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWJhZGdlIiB0aXRsZT0iXHU4OEFCXHU4QkM2XHU1MjJCXHU0RTNBXHU2NTRGXHU2MTFGXHU1QjU3XHU2QkI1Ij5cdTY1NEZcdTYxMUY8L3NwYW4+JzoiIikrKGw/JzxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1iYWRnZSBlbnYtcHJldmlldy1iYWRnZS1ydW50aW1lIiB0aXRsZT0iXHU2MzA5XHU0RjFBXHU4QkREXHU1MkE4XHU2MDAxXHU2Q0U4XHU1MTY1Ij5cdThGRDBcdTg4NENcdTY1RjY8L3NwYW4+JzoiIikrJzwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXZhbHVlJysobD8iIGlzLXJ1bnRpbWUiOiIiKSsnIiB0aXRsZT0iJytwKFN0cmluZyhzLnZhbHVlKSkrJyI+JytwKFN0cmluZyhzLnZhbHVlKSkrJzwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxlbiI+JytzLmxlbmd0aCsiIFx1NUI1N1x1N0IyNjwvZGl2PjwvZGl2PiJ9fXU9PT0wJiYoYT0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1NkNBMVx1NjcwOVx1NTMzOVx1OTE0RFx1NzY4NFx1NTNEOFx1OTFDRlx1MzAwMjwvZGl2PicpLGUuaW5uZXJIVE1MPWF9fWZ1bmN0aW9uIE9sKGUpe3JldHVybiBlPT09ImNvZGV4Ij9yLmF2YWlsYWJsZUNvZGV4TW9kZWxzfHxbXTpyLmF2YWlsYWJsZU1vZGVsc3x8W119ZnVuY3Rpb24gSGwoZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIixuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0IiksaT1lLmNsb3Nlc3QoIi5zZXR0aW5ncy1tb2RlbC1maWVsZCIpLGE9aT9pLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLW1vZGVsLXN0YXR1c10iKTpudWxsO2lmKCEoIW58fCFhKSl7Zm9yKHZhciB1PShuLnZhbHVlfHwiIikudHJpbSgpLG89T2wodCkscz1udWxsLGw9MDtsPG8ubGVuZ3RoO2wrKylpZihvW2xdLmlkPT09dSl7cz1vW2xdO2JyZWFrfWlmKGEuY2xhc3NMaXN0LnJlbW92ZSgiaXMtY3VzdG9tIiwiaXMta25vd24iKSwhdSl7YS50ZXh0Q29udGVudD0iXHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQiO3JldHVybn1pZihzKXthLnRleHRDb250ZW50PSJcdTVERjJcdTY4QzBcdTZENEJcdTUyMzAiLGEuY2xhc3NMaXN0LmFkZCgiaXMta25vd24iKTtyZXR1cm59YS50ZXh0Q29udGVudD0iXHU4MUVBXHU1QjlBXHU0RTQ5XHU1NDBEXHU3OUYwIixhLmNsYXNzTGlzdC5hZGQoImlzLWN1c3RvbSIpfX19ZnVuY3Rpb24gSHIoZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIixuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0IiksaT1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1tZW51Iik7aWYoISghbnx8IWkpKXtmb3IodmFyIGE9bi52YWx1ZXx8IiIsdT1hLnRyaW0oKSxvPXUudG9Mb3dlckNhc2UoKSxzPU9sKHQpLGw9bnVsbCxkPSExLGY9W10sYz0wO2M8cy5sZW5ndGg7YysrKXt2YXIgdj1zW2NdO2lmKHYuaWQ9PT0iZGVmYXVsdCIpe2w9djtjb250aW51ZX12LmlkPT09dSYmKGQ9ITApO3ZhciBoPXYubGFiZWx8fHYuaWQ7byYmdi5pZC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yobyk9PT0tMSYmaC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yobyk9PT0tMXx8Zi5wdXNoKHt2YWx1ZTp2LmlkLGxhYmVsOmgsbWV0YTpoPT09di5pZD8iXHU1REYyXHU2OEMwXHU2RDRCXHU2QTIxXHU1NzhCIjp2LmlkLGN1c3RvbTohMX0pfXZhciBnPXQ9PT0iY29kZXgiPyJcdThEREZcdTk2OEYgQ29kZXggXHU5RUQ4XHU4QkE0IjoiXHU4RERGXHU5NjhGIENsYXVkZSBDb2RlIFx1OUVEOFx1OEJBNCIsbT1sJiZsLmxhYmVsP2wubGFiZWw6Ilx1NEUwRFx1NEYyMCAtLW1vZGVsIFx1NTNDMlx1NjU3MCIseT0iIjsoIW98fGcudG9Mb3dlckNhc2UoKS5pbmRleE9mKG8pIT09LTF8fG0udG9Mb3dlckNhc2UoKS5pbmRleE9mKG8pIT09LTEpJiYoeSs9JzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uJysodT8iIjoiIGlzLXNlbGVjdGVkIikrJyIgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSInKyh1PyJmYWxzZSI6InRydWUiKSsnIiBkYXRhLW1vZGVsLXZhbHVlPSIiPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0ibTUgMTIgNCA0TDE5IDYiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jb3B5Ij48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWxhYmVsIj4nK3AoZykrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLW1ldGEiPicrcChtKSsiPC9zcGFuPjwvc3Bhbj48L2J1dHRvbj4iKTtmb3IodmFyIEM9MDtDPGYubGVuZ3RoO0MrKyl7dmFyIEU9ZltDXSxCPUUudmFsdWU9PT11O3krPSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbicrKEI/IiBpcy1zZWxlY3RlZCI6IiIpKyciIHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0iJysoQj8idHJ1ZSI6ImZhbHNlIikrJyIgZGF0YS1tb2RlbC12YWx1ZT0iJytwKEUudmFsdWUpKyciPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0ibTUgMTIgNCA0TDE5IDYiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jb3B5Ij48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWxhYmVsIj4nK3AoRS5sYWJlbCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLW1ldGEiPicrcChFLm1ldGEpKyI8L3NwYW4+PC9zcGFuPjwvYnV0dG9uPiJ9dSYmIWQmJih5Kz0nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24gbW9kZWwtY29tYm9ib3gtb3B0aW9uLWN1c3RvbSBpcy1zZWxlY3RlZCIgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIiBkYXRhLW1vZGVsLXZhbHVlPSInK3AodSkrJyI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jdXN0b20taWNvbiIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xIDIuMSAwIDAgMSAzIDNMOCAxOGwtNCAxIDEtNFoiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jb3B5Ij48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWxhYmVsIj5cdTRGN0ZcdTc1MjhcdTgxRUFcdTVCOUFcdTRFNDlcdTU0MERcdTc5RjA8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1tZXRhIj4nK3AodSkrIjwvc3Bhbj48L3NwYW4+PC9idXR0b24+IikseXx8KHk9JzxkaXYgY2xhc3M9Im1vZGVsLWNvbWJvYm94LWVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzMzlcdTkxNERcdTc2ODRcdTZBMjFcdTU3OEJcdUZGMENcdTUzRUZcdTRFRTVcdTdFRTdcdTdFRURcdThGOTNcdTUxNjVcdTgxRUFcdTVCOUFcdTRFNDlcdTU0MERcdTc5RjBcdTMwMDI8L2Rpdj4nKSxpLmlubmVySFRNTD15O2Zvcih2YXIgRD1pLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC1vcHRpb24iKSxGPS0xLEk9MDtJPEQubGVuZ3RoO0krKylpZihEW0ldLmdldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIpPT09InRydWUiKXtGPUk7YnJlYWt9ZS5fd2FuZE1vZGVsQWN0aXZlSW5kZXg9Rj49MD9GOkQubGVuZ3RoPzA6LTEsX2woZSksSGwoZSl9fX1mdW5jdGlvbiBfbChlKXtpZihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1tZW51Iiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpO2lmKCEoIXR8fCFuKSl7Zm9yKHZhciBpPXQucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94LW9wdGlvbiIpLGE9dHlwZW9mIGUuX3dhbmRNb2RlbEFjdGl2ZUluZGV4PT0ibnVtYmVyIj9lLl93YW5kTW9kZWxBY3RpdmVJbmRleDotMSx1PTA7dTxpLmxlbmd0aDt1KyspaVt1XS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hY3RpdmUiLHU9PT1hKSx1PT09YSYmKGlbdV0uaWR8fChpW3VdLmlkPSh0LmlkfHwibW9kZWwtbGlzdGJveCIpKyItb3B0aW9uLSIrdSksbi5zZXRBdHRyaWJ1dGUoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsaVt1XS5pZCkpO2E8MCYmbi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIpfX19ZnVuY3Rpb24gV2koZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKTshdHx8IW58fChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3guaXMtb3BlbiIpLmZvckVhY2goZnVuY3Rpb24oaSl7aSE9PWUmJnZuKGkpfSksSHIoZSksZS5jbGFzc0xpc3QuYWRkKCJpcy1vcGVuIiksbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsInRydWUiKSl9fWZ1bmN0aW9uIHZuKGUpe2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0Iiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1tZW51Iik7ZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1vcGVuIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiYodC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLHQucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiKSl9fWZ1bmN0aW9uIE5sKGUsdCl7aWYoZSl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKTtpZihuKXt2YXIgaT1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09bjtuLnZhbHVlPXR8fCIiLG4uZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJ0cnVlIixuLmRhdGFzZXQubW9kZWxEaXJ0eT0idHJ1ZSIsSGwoZSksdm4oZSksaSYmbi5mb2N1cygpfX19ZnVuY3Rpb24gU20oKXt3aW5kb3cuX193YW5kU2V0dGluZ3NNb2RlbE91dHNpZGVCb3VuZHx8KHdpbmRvdy5fX3dhbmRTZXR0aW5nc01vZGVsT3V0c2lkZUJvdW5kPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3guaXMtb3BlbiIpLmZvckVhY2goZnVuY3Rpb24oaSl7KCFufHwhaS5jb250YWlucyhuKSkmJnZuKGkpfSl9KSk7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94Iik7ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHQuZGF0YXNldC5ib3VuZCE9PSJ0cnVlIil7dC5kYXRhc2V0LmJvdW5kPSJ0cnVlIjt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLGk9dC5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtdG9nZ2xlIiksYT10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1tZW51Iik7IW58fCFpfHwhYXx8KG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7V2kodCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe24uZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJ0cnVlIixuLmRhdGFzZXQubW9kZWxEaXJ0eT0idHJ1ZSIsV2kodCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHUpe2lmKHUua2V5PT09IkVzY2FwZSIpe3UucHJldmVudERlZmF1bHQoKSx2bih0KTtyZXR1cm59aWYoISh1LmtleSE9PSJBcnJvd0Rvd24iJiZ1LmtleSE9PSJBcnJvd1VwIiYmdS5rZXkhPT0iRW50ZXIiKSl7aWYoIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1vcGVuIikpe2lmKHUua2V5PT09IkVudGVyIilyZXR1cm47V2kodCl9dmFyIG89YS5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3gtb3B0aW9uIik7aWYoby5sZW5ndGgpe3UucHJldmVudERlZmF1bHQoKTt2YXIgcz10eXBlb2YgdC5fd2FuZE1vZGVsQWN0aXZlSW5kZXg9PSJudW1iZXIiP3QuX3dhbmRNb2RlbEFjdGl2ZUluZGV4Oi0xO2lmKHUua2V5PT09IkFycm93RG93biImJihzPXM8by5sZW5ndGgtMT9zKzE6MCksdS5rZXk9PT0iQXJyb3dVcCImJihzPXM+MD9zLTE6by5sZW5ndGgtMSksdC5fd2FuZE1vZGVsQWN0aXZlSW5kZXg9cyxfbCh0KSx1LmtleT09PSJFbnRlciIpe3ZhciBsPW9bc107bCYmTmwodCxsLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlbC12YWx1ZSIpfHwiIil9ZWxzZXt2YXIgZD1vW3NdO2QmJnR5cGVvZiBkLnNjcm9sbEludG9WaWV3PT0iZnVuY3Rpb24iJiZkLnNjcm9sbEludG9WaWV3KHtibG9jazoibmVhcmVzdCJ9KX19fX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbih1KXt1LnByZXZlbnREZWZhdWx0KCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1vcGVuIik/dm4odCk6V2kodCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odSl7dS5wcmV2ZW50RGVmYXVsdCgpfSksYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odSl7dmFyIG89dS50YXJnZXQuY2xvc2VzdCgiLm1vZGVsLWNvbWJvYm94LW9wdGlvbiIpO28mJk5sKHQsby5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZWwtdmFsdWUiKXx8IiIpfSksdC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KXx8dm4odCl9LDApfSksSHIodCkpfX0pfWZ1bmN0aW9uIHppKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LWNsaSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jb21taXQtbW9kZWwtY29tYm9ib3giKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbC1wcm92aWRlciIpO2lmKCEoIXR8fCFufHwhaSkpe3ZhciB1PXQudmFsdWU9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSI7bi5zZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiLHUpLGkucGxhY2Vob2xkZXI9dT09PSJjb2RleCI/Ilx1OERERlx1OTY4RiBDb2RleCBcdTlFRDhcdThCQTQiOiJcdThEREZcdTk2OEYgQ2xhdWRlIENvZGUgXHU5RUQ4XHU4QkE0IixhJiYoYS50ZXh0Q29udGVudD11PT09ImNvZGV4Ij8iQ29kZXggQ0xJIjoiQ2xhdWRlIENvZGUiKSxlJiYoaS52YWx1ZT0iIixpLmRhdGFzZXQubW9kZWxEaXJ0eT0idHJ1ZSIpLEhyKG4pfX1mdW5jdGlvbiBWaShlKXt2YXIgdD12dSgpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsIik7aWYobil7bi5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQhPT0idHJ1ZSImJihuLnZhbHVlPXIuY29uZmlnRGVmYXVsdE1vZGVscyYmci5jb25maWdEZWZhdWx0TW9kZWxzLmNsYXVkZXx8dC5jbGF1ZGV8fCIiLG4uZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJ0cnVlIik7dmFyIGk9bi5jbG9zZXN0KCIubW9kZWwtY29tYm9ib3giKTtpJiZIcihpKX12YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtY29kZXgtbW9kZWwiKTtpZihhKXthLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZCE9PSJ0cnVlIiYmKGEudmFsdWU9ci5jb25maWdEZWZhdWx0TW9kZWxzJiZyLmNvbmZpZ0RlZmF1bHRNb2RlbHMuY29kZXh8fHQuY29kZXh8fCIiLGEuZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJ0cnVlIik7dmFyIHU9YS5jbG9zZXN0KCIubW9kZWwtY29tYm9ib3giKTt1JiZIcih1KX12YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwtdmVyc2lvbiIpO28mJmUmJihvLnRleHRDb250ZW50PWUuY2xhdWRlVmVyc2lvbj8iXHU1REYyXHU2OEMwXHU2RDRCXHU1MjMwIENsYXVkZSBDTEkgIitlLmNsYXVkZVZlcnNpb24rIlx1RkYxQlx1NTIxN1x1ODg2OFx1NURGMlx1NTQwQ1x1NjVGNlx1NTQwQ1x1NkI2NSBDb2RleCBcdTUzRUZcdTc1MjhcdTZBMjFcdTU3OEJcdTMwMDIiOiJcdTY3MkFcdThCRkJcdTUzRDZcdTUyMzAgQ2xhdWRlIENMSSBcdTcyNDhcdTY3MkNcdUZGMUJcdTRFQ0RcdTUzRUZcdTc2RjRcdTYzQTVcdThGOTNcdTUxNjVcdTgxRUFcdTVCOUFcdTRFNDlcdTZBMjFcdTU3OEJcdTU0MERcdTc5RjBcdTMwMDIiKX1mdW5jdGlvbiB1dCgpe2lmKCFyLnNlbGVjdGVkSWQpcmV0dXJuIG51bGw7Zm9yKHZhciBlPTA7ZTxyLnNlc3Npb25zLmxlbmd0aDtlKyspaWYoci5zZXNzaW9uc1tlXS5pZD09PXIuc2VsZWN0ZWRJZClyZXR1cm4gci5zZXNzaW9uc1tlXTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBJbShlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKSxuPXV0KCksaT1BbChuKTttdShpLHQpLGVyKCksbiYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi9tb2RlbCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe21vZGVsOnR8fG51bGx9KX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZihhJiZhLmVycm9yKXtBKGEuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGEmJmEuaWQmJihYKGEpLHR5cGVvZiBBPT0iZnVuY3Rpb24iKSl7dmFyIHU9SGkodCxuKSxvPW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhcdTRFMEJcdTZCMjFcdTVCRjlcdThCRERcdTc1MUZcdTY1NDhcdUZGMDkiOiIiO0EoIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4QiBcdTIxOTIgIit1K28sInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe0EoIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4Qlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBUbShlKXt2YXIgdD1BdCgkZSgpLChlfHwiZGVmYXVsdCIpLnRyaW0oKSk7ci5jaGF0TW9kZT10LGVyKCk7dmFyIG49dXQoKTtpZighbnx8IW4uaWR8fG4uc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIpe0EmJkEoIlx1NjVCMFx1NEYxQVx1OEJERFx1NkEyMVx1NUYwRlx1RkYxQSIrdCwiaW5mbyIpO3JldHVybn1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL21vZGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlOnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtBKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJihYKGkpLHR5cGVvZiBBPT0iZnVuY3Rpb24iKSl7dmFyIGE9bi5wcm92aWRlcj09PSJjb2RleCI/Ilx1RkYwOENvZGV4IFx1NTZGQVx1NUI5QVx1NTE2OFx1Njc0M1x1OTY1MFx1RkYwOSI6IiI7QSgiXHU1REYyXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGIFx1MjE5MiAiK3QrYSwic3VjY2VzcyIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7QSgiXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGXHU1OTMxXHU4RDI1IiwiZXJyb3IiKX0pfWZ1bmN0aW9uIGpsKGUsdCxuLGkpe3ZhciBhPXIuc2Vzc2lvblRvb2w9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsdT1PcihhKSxvPXIuY2hhdFRoaW5raW5nfHwib2ZmIixzPXtjd2Q6dHx8UWUoKSxtb2RlOm58fHIuY2hhdE1vZGV8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLHByb3ZpZGVyOmEscnVubmVyOmE9PT0iY29kZXgiPyJjb2RleC1jbGktZXhlYyI6ci5jb25maWcmJnIuY29uZmlnLnN0cnVjdHVyZWRSdW5uZXI9PT0ic2RrIj8iY2xhdWRlLXNkayI6ci5zdHJ1Y3R1cmVkUnVubmVyfHwiY2xhdWRlLWNsaS1wcmludCIscHJvbXB0OmV8fHZvaWQgMCx3b3JrdHJlZUVuYWJsZWQ6aT09PSEwLG1vZGVsOnV8fHZvaWQgMCx0aGlua2luZ0VmZm9ydDpvfTtyZXR1cm4gZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkocyl9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obCl7aWYobC5lcnJvcil0aHJvdyBuZXcgRXJyb3IobC5lcnJvcik7cmV0dXJuIHIuc2VsZWN0ZWRJZD1sLmlkLGhlKCksci5kcmFmdHNbbC5pZF09IiIsQ3QoKSxYKGwpLGZlKCksU3IobC5pZCksSG4obC5pZCksZ24obC5pZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBsfSl9KX1mdW5jdGlvbiBVaSgpe3ZhciBlPSEhci5zZWxlY3RlZElkLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0IiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpLGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSksdT11ZShhKSxvPWUmJiF1JiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIixzPWUmJih1fHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIik7dT9yLmN1cnJlbnRWaWV3PSJjaGF0IjplfHwoci5jdXJyZW50Vmlldz0idGVybWluYWwiKSx0JiYodC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8pLHQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhbykpLG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIscyksbi5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFzKSksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLGUpLG4mJnMmJlhhKG4pLGxyKCksWWUoKSxJcigpfWZ1bmN0aW9uIF9yKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtZGVzY3JpcHRpb24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtZGVzY3JpcHRpb24iKSxuPXIuc2Vzc2lvblRvb2x8fCJjbGF1ZGUiLGk9ci5zZXNzaW9uQ3JlYXRlS2luZHx8InN0cnVjdHVyZWQiO3Iuc2Vzc2lvblRvb2w9bixyLm1vZGVWYWx1ZT1BdChuLHIubW9kZVZhbHVlfHxyLmNoYXRNb2RlfHwiZGVmYXVsdCIpO3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNwcm92aWRlci1jYXJkcyAucHJvdmlkZXItY2FyZCIpO2EubGVuZ3RoJiZhLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGw9cy5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKTtzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsbD09PW4pLHMuY2xhc3NMaXN0LnJlbW92ZSgiZGlzYWJsZWQiKX0pO3ZhciB1PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNzZXNzaW9uLWtpbmQtY2FyZHMgLnNlc3Npb24ta2luZC1jYXJkIik7dS5sZW5ndGgmJnUuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgbD1zLmdldEF0dHJpYnV0ZSgiZGF0YS1zZXNzaW9uLWtpbmQiKSxkPSExO3MuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixsPT09aSkscy5jbGFzc0xpc3QudG9nZ2xlKCJkaXNhYmxlZCIsZCl9KTt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjbW9kZS1jYXJkcyAubW9kZS1jYXJkIik7by5sZW5ndGgmJm8uZm9yRWFjaChmdW5jdGlvbihzKXtzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIscy5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZSIpPT09ci5tb2RlVmFsdWUpfSksdCYmKHQudGV4dENvbnRlbnQ9Qm8oaSkpLGUmJihlLnRleHRDb250ZW50PWJsKG4sci5tb2RlVmFsdWUpKX1mdW5jdGlvbiBMbShlLHQsbixpKXt2YXIgYT1ufHwwLHU9dHlwZW9mIGk9PSJudW1iZXIiP2k6TWF0aC5tYXgoYSt0Lmxlbmd0aCx0Lmxlbmd0aCksbz1lJiZBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2UubWVzc2FnZXM6W10scz1lJiZ0eXBlb2YgZS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIj9lLm1lc3NhZ2VPZmZzZXQ6MDtpZih0Lmxlbmd0aD09PTAmJm8ubGVuZ3RoPjAmJnU9PT0wKXJldHVybnttZXNzYWdlczpvLG1lc3NhZ2VPZmZzZXQ6cyxtZXNzYWdlVG90YWw6ZSYmZS5tZXNzYWdlVG90YWx8fG8ubGVuZ3RofTtpZihvLmxlbmd0aD09PTApcmV0dXJue21lc3NhZ2VzOnQsbWVzc2FnZU9mZnNldDphLG1lc3NhZ2VUb3RhbDp1fTtpZihzPD1hKXt2YXIgbD1NYXRoLm1pbihNYXRoLm1heChhLXMsMCksby5sZW5ndGgpLGQ9by5zbGljZSgwLGwpLmNvbmNhdCh0KTtyZXR1cm57bWVzc2FnZXM6ZCxtZXNzYWdlT2Zmc2V0OnMsbWVzc2FnZVRvdGFsOk1hdGgubWF4KHUscytkLmxlbmd0aCl9fXJldHVybnttZXNzYWdlczp0LG1lc3NhZ2VPZmZzZXQ6YSxtZXNzYWdlVG90YWw6dX19ZnVuY3Rpb24gWChlKXtpZighKCFlfHwhZS5pZCkpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWUuaWR9KXx8bnVsbCxuPURkKGUsdCk7aWYoQXJyYXkuaXNBcnJheShuLm1lc3NhZ2VzKSYmdHlwZW9mIG4ubWVzc2FnZU9mZnNldD09Im51bWJlciIpe3ZhciBpPUxtKHQsbi5tZXNzYWdlcyxuLm1lc3NhZ2VPZmZzZXQsbi5tZXNzYWdlVG90YWwpO24ubWVzc2FnZXM9aS5tZXNzYWdlcyxuLm1lc3NhZ2VPZmZzZXQ9aS5tZXNzYWdlT2Zmc2V0LG4ubWVzc2FnZVRvdGFsPWkubWVzc2FnZVRvdGFsfXZhciBhPSExLHU9bnVsbDtyLnNlc3Npb25zPXIuc2Vzc2lvbnMubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkIT09bi5pZD9zOih1PXMsYT0hMCxPYmplY3QuYXNzaWduKHt9LHMsbikpfSksYXx8ci5zZXNzaW9ucy51bnNoaWZ0KG4pO3ZhciBvPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PW4uaWR9KXx8bjtvJiZBcnJheS5pc0FycmF5KG8ucXVldWVkTWVzc2FnZXMpJiZuLmlkPT09ci5zZWxlY3RlZElkJiYoZWkobyksenUoKSxkbigpKSxuLmlkPT09ci5zZWxlY3RlZElkJiYoVmEoKSwkdCgpKSxuLnN0YXR1cyYmbi5zdGF0dXMhPT0icnVubmluZyImJnIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjAmJnNldFRpbWVvdXQoRmksMCl9fWZ1bmN0aW9uIEhuKGUpeyFlfHwhci53c3x8ci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU58fHIud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToic3Vic2NyaWJlIixzZXNzaW9uSWQ6ZX0pKX1mdW5jdGlvbiBNbShlLHQpe2lmKCFlKXJldHVybiB0O3ZhciBuPU9iamVjdC5hc3NpZ24oe30sZSx0KSxpPWUub3V0cHV0fHwiIixhPXQub3V0cHV0fHwiIix1PWkubGVuZ3RoPmEubGVuZ3RoLG89ZS5zdHJ1Y3R1cmVkU3RhdGV8fG51bGwscz10LnN0cnVjdHVyZWRTdGF0ZXx8bnVsbCxsPWUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fHQuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIsZD0hIShlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aCYmKGZ1bmN0aW9uKCl7dmFyIG09ZS5tZXNzYWdlc1tlLm1lc3NhZ2VzLmxlbmd0aC0xXTtyZXR1cm4gbSYmbS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkobS5jb250ZW50KSYmbS5jb250ZW50LnNvbWUoZnVuY3Rpb24oeSl7cmV0dXJuIHkmJnkuX19wcm9jZXNzaW5nfSl9KSgpKSxmPUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyk/bD9jcihlLm1lc3NhZ2VzKTplLm1lc3NhZ2VzOltdLGM9QXJyYXkuaXNBcnJheSh0Lm1lc3NhZ2VzKT9sP2NyKHQubWVzc2FnZXMpOnQubWVzc2FnZXM6W10sdj1jLmxlbmd0aD4wJiYoZnVuY3Rpb24oKXt2YXIgbT1jW2MubGVuZ3RoLTFdO3JldHVybiBtJiZtLnJvbGU9PT0iYXNzaXN0YW50IiYmQXJyYXkuaXNBcnJheShtLmNvbnRlbnQpJiYhbS5jb250ZW50LnNvbWUoZnVuY3Rpb24oeSl7cmV0dXJuIHkmJnkuX19wcm9jZXNzaW5nfSl9KSgpLGg9ZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIiYmISFvJiZvLmluRmxpZ2h0PT09ITAmJighc3x8cy5pbkZsaWdodCE9PSEwKSYmZCYmISFvLmFjdGl2ZVJlcXVlc3RJZCYmISFzJiYhIXMuYWN0aXZlUmVxdWVzdElkJiZzLmFjdGl2ZVJlcXVlc3RJZD09PW8uYWN0aXZlUmVxdWVzdElkJiYhdixnPWYubGVuZ3RoPmMubGVuZ3RofHxmLmxlbmd0aD4wJiZjLmxlbmd0aD4wJiZKU09OLnN0cmluZ2lmeShmW2YubGVuZ3RoLTFdKSE9PUpTT04uc3RyaW5naWZ5KGNbYy5sZW5ndGgtMV0pJiZKU09OLnN0cmluZ2lmeShmKS5sZW5ndGg+SlNPTi5zdHJpbmdpZnkoYykubGVuZ3RoO3JldHVybiB1JiYobi5vdXRwdXQ9aSksaCYmKG4uc3RhdHVzPWUuc3RhdHVzfHxuLnN0YXR1cyxuLnN0cnVjdHVyZWRTdGF0ZT1PYmplY3QuYXNzaWduKHt9LHN8fHt9LG8se2luRmxpZ2h0OiEwfSksbi5tZXNzYWdlcz1lLm1lc3NhZ2VzKSxnJiYobi5tZXNzYWdlcz1mKSxlLmlkPT09ci5zZWxlY3RlZElkJiYoZS5wZXJtaXNzaW9uQmxvY2tlZCYmdC5wZXJtaXNzaW9uQmxvY2tlZD09PSExfHxlLnBlcm1pc3Npb25CbG9ja2VkJiYhdC5wZXJtaXNzaW9uQmxvY2tlZCYmKG4ucGVybWlzc2lvbkJsb2NrZWQ9ITApLGUucGVuZGluZ0VzY2FsYXRpb24mJiF0LnBlbmRpbmdFc2NhbGF0aW9uJiZ0LnBlcm1pc3Npb25CbG9ja2VkIT09ITEmJihuLnBlbmRpbmdFc2NhbGF0aW9uPWUucGVuZGluZ0VzY2FsYXRpb24pLGUubWVzc2FnZXMmJmUubWVzc2FnZXMubGVuZ3RoPjAmJighdC5tZXNzYWdlc3x8dC5tZXNzYWdlcy5sZW5ndGg9PT0wKSYmKG4ubWVzc2FnZXM9ZS5tZXNzYWdlcykpLG59ZnVuY3Rpb24gWGUoZSx0LG4pe2lmKGUmJmUubWVzc2FnZXMmJmUubWVzc2FnZXMubGVuZ3RoPjApcmV0dXJuIGUubWVzc2FnZXM7aWYoZSYmZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIilyZXR1cm5bXTtpZighbilyZXR1cm5bXTt2YXIgaT10eXBlb2YgdD09InN0cmluZyI/dDplJiZlLm91dHB1dHx8IiI7cmV0dXJuIGk/SXYoaSxlJiZlLmNvbW1hbmQpOltdfWZ1bmN0aW9uIHFtKGUpe2lmKCFlfHwhZS5sZW5ndGgpcmV0dXJuIG51bGw7aWYoci5zZWxlY3RlZElkKXt2YXIgdD1lLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gdD90LmlkOm51bGx9dmFyIG49ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLnN0YXR1cz09PSJydW5uaW5nIn0pO2lmKG4pcmV0dXJuIG4uaWQ7dmFyIGk9ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiFhLmFyY2hpdmVkfSk7cmV0dXJuIGk/aS5pZDplWzBdLmlkfWZ1bmN0aW9uIG1uKGUpe3ZhciB0PWV8fHt9O3JldHVybiBmZXRjaCgiL2FwaS9zZXNzaW9ucyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4uc3RhdHVzPT09NDAxKXtobCgpO3JldHVybn1yZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBpPW58fFtdLGE9bmV3IFNldChpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZH0pKTtPYmplY3Qua2V5cyhyLmRyYWZ0cykuZm9yRWFjaChmdW5jdGlvbihjKXthLmhhcyhjKXx8ZGVsZXRlIHIuZHJhZnRzW2NdfSksci5zZXNzaW9ucz1pLm1hcChmdW5jdGlvbihjKXt2YXIgdj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaCl7cmV0dXJuIGguaWQ9PT1jLmlkfSk7cmV0dXJuIE1tKHYsYyl9KTt2YXIgdT1xbShyLnNlc3Npb25zKTtpZih1IT09dm9pZCAwJiYoci5zZWxlY3RlZElkPXUpLFV1KCksZG4oKSxyLmJvb3RzdHJhcHBpbmc9ITEsaGUoKSxyLm1vZGFsT3BlbilmZSgpO2Vsc2V7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWxpc3QiKSxzPXZhKCk7aWYobyYmby5pbm5lckhUTUw9PT1zKXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2wmJihsLnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpfWVsc2V7byYmKG8uaW5uZXJIVE1MPXMsV3QobykpO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWNvdW50Iik7bCYmKGwudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSl9fU5yKCksci5zZWxlY3RlZElkJiZyLmdpdFN0YXR1c1Nlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZCYmQW4oci5zZWxlY3RlZElkKTt2YXIgZD1Qcm9taXNlLnJlc29sdmUoKTtpZighdC5za2lwU2VsZWN0ZWRPdXRwdXRSZWxvYWQmJnIuc2VsZWN0ZWRJZClkPWduKHIuc2VsZWN0ZWRJZCk7ZWxzZSBpZihyLnNlbGVjdGVkSWQpe3ZhciBmPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO3VlKGYpJiYoQ3Qoe3ByZXNlcnZlU3RpY2tTdGF0ZTohMH0pLCRhKCEwKSl9cmV0dXJuIGQudGhlbihmdW5jdGlvbigpe3IuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjAmJkZpKCksRHQoKSxNYSgpfSl9KS5jYXRjaChmdW5jdGlvbihuKXt2YXIgaT1uJiZuLm1lc3NhZ2V8fCIiLGE9aT09PSJGYWlsZWQgdG8gZmV0Y2gifHxpPT09Ik5ldHdvcmtFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2UuInx8aT09PSJMb2FkIGZhaWxlZCJ8fC9hYm9ydGVkfGFib3J0ZXJyb3J8bmV0d29ya2Vycm9yfGZhaWxlZCB0byBmZXRjaC9pLnRlc3QoaSk7YXx8Y29uc29sZS5lcnJvcigiW3dhbmRdIGxvYWRTZXNzaW9ucyBmYWlsZWQ6IixuKX0pfXZhciBidT1udWxsO2Z1bmN0aW9uIEV1KCl7YnV8fChidT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YnU9bnVsbCxmZSgpfSwyMDApKX1mdW5jdGlvbiBmZSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2UmJihlLmlubmVySFRNTD12YSgpLFd0KGUpKSx0JiYodC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKSx0eXBlb2YgdG49PSJmdW5jdGlvbiImJnRuKCksTnIoKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZEdCgpfWZ1bmN0aW9uIE5yKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGcpe3JldHVybiBnLmlkPT09ci5zZWxlY3RlZElkfSk7ZXx8KE9uKCExKSx6YSgpLFBzKCkpO3ZhciB0PWU/Wm4oZS5jb21tYW5kKToiV2FuZCIsbj1lP3ZyKGUpOiJcdTVGMDBcdTU5Q0JcdTVCRjlcdThCREQiLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3VtbWFyeS12YWx1ZSIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXRpdGxlIiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtaW5mbyIpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRvcGJhci1zZXNzaW9uLXRpdGxlLCAudG9wYmFyLXRhZ2xpbmUiKTtvJiZlJiYoby5jbGFzc0xpc3QucmVtb3ZlKCJ0b3BiYXItdGFnbGluZSIpLG8uY2xhc3NMaXN0LmFkZCgidG9wYmFyLXNlc3Npb24tdGl0bGUiKSxvLnRleHRDb250ZW50PWUudGl0bGV8fFpuKGUuY29tbWFuZCksby5zZXRBdHRyaWJ1dGUoInRpdGxlIixlLmRlc2NyaXB0aW9ufHxlLmNvbW1hbmR8fCIiKSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7aSYmaS50ZXh0Q29udGVudCE9PXQmJihpLnRleHRDb250ZW50PXQpLGEmJmEudGV4dENvbnRlbnQhPT10JiYoYS50ZXh0Q29udGVudD10KSx1JiYodS50ZXh0Q29udGVudD1lP24rIiBceEI3ICIrRm0oZSk6bik7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24ta2luZC1kaXNwbGF5Iiksdj1lP0VtKGUpOiJcdTdFQzhcdTdBRUYiO2MmJmMudGV4dENvbnRlbnQhPT12JiYoYy50ZXh0Q29udGVudD12KSxSbygpLCFyLnRlcm1pbmFsJiZsJiZlJiZRbigpLHIudGVybWluYWwmJmwmJiFsLmNvbnRhaW5zKHIudGVybWluYWwuZWxlbWVudCkmJih3cigpLFFuKCkpLGV8fChyLnRlcm1pbmFsU2Vzc2lvbklkPW51bGwsci50ZXJtaW5hbE91dHB1dD0iIixyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTApLHIudGVybWluYWwmJmUmJnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiJiZ2dCgidmlldyIpO3ZhciBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2U/KHMmJnMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbCYmbC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxkJiZkLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGgmJmguY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihzJiZzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGwmJmwuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxmJiZmLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGgmJmguY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpLE9pKCksdHIodXQoKSksVWkoKSxWYSgpfWZ1bmN0aW9uIGduKGUpe3IuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKTt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lfSksbj0iL2FwaS9zZXNzaW9ucy8iK2U7cmV0dXJuIEZsKHQpJiYobis9Ij9mb3JtYXQ9Y2hhdCIpLGZldGNoKG4se2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7ci5zZWxlY3RlZElkPT09ZSYmKHIuc2VsZWN0ZWRJZD1udWxsLGhlKCkpLG1uKCk7cmV0dXJufWlmKFgoaSksTnIoKSxyLnRlcm1pbmFsJiZlPT09ci5zZWxlY3RlZElkJiZpLm91dHB1dCE9PXZvaWQgMCl7dmFyIGE9ISFyLndzJiYoci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU58fHIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5DT05ORUNUSU5HKTthP0dlKCJzZXNzaW9uLXN3aXRjaCIpOihtaShlLGkub3V0cHV0LHttb2RlOiJhcHBlbmQifSksR2UoInNlc3Npb24tc3dpdGNoIix7Zm9yY2VSZXBsYXk6ITB9KSl9dmFyIHU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ZX0pO3IuY3VycmVudE1lc3NhZ2VzPU5lKHUsWGUodSxpLm91dHB1dCwhMSkpLGplKCExKX0pfXZhciBGdT0hMTtmdW5jdGlvbiBQbSgpe2lmKEZ1KXJldHVybiExO3ZhciBlPXIuc2VsZWN0ZWRJZDtpZighZSlyZXR1cm4hMTt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1lfSk7aWYoIXQpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQubWVzc2FnZU9mZnNldD09Im51bWJlciI/dC5tZXNzYWdlT2Zmc2V0OjA7aWYobjw9MClyZXR1cm4hMTt2YXIgaT00MCxhPU1hdGgubWF4KDAsbi1pKSx1PW4tYTtyZXR1cm4gRnU9ITAsZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi9tZXNzYWdlcz9vZmZzZXQ9IithKyImbGltaXQ9Iit1LHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG8mJkFycmF5LmlzQXJyYXkoby5tZXNzYWdlcykmJnQubWVzc2FnZU9mZnNldD09PW4pe3ZhciBzPUFycmF5LmlzQXJyYXkodC5tZXNzYWdlcyk/dC5tZXNzYWdlczpbXTt0Lm1lc3NhZ2VzPW8ubWVzc2FnZXMuY29uY2F0KHMpLHQubWVzc2FnZU9mZnNldD1hLHR5cGVvZiBvLnRvdGFsPT0ibnVtYmVyIiYmKHQubWVzc2FnZVRvdGFsPW8udG90YWwpLGU9PT1yLnNlbGVjdGVkSWQmJihyLmN1cnJlbnRNZXNzYWdlcz1OZSh0LFhlKHQsdC5vdXRwdXQsITEpKSxyLmNoYXRSZW5kZXJlZENvdW50PXIuY3VycmVudE1lc3NhZ2VzLmxlbmd0aCxqZSghMCkpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkuZmluYWxseShmdW5jdGlvbigpe0Z1PSExfSksITB9ZnVuY3Rpb24gTnQoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ZX0pO2lmKHQpe3Iuc2VsZWN0ZWRJZCE9PWUmJndyKCksci5zZWxlY3RlZElkPWUsaGUoKSxyLnRvb2xDb250ZW50Q2FjaGU9e30sci5tZXNzYWdlUXVldWU9W10sci5wZW5kaW5nTWVzc2FnZXM9W10sZWkodCksVXUoKSxkbigpLEN0KCksci5jdXJyZW50TWVzc2FnZXM9W10sci5jaGF0UmVuZGVyVGltZXImJihjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLHIuY2hhdFJlbmRlclRpbWVyPW51bGwpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIik7aSYmaS5yZW1vdmUoKSxyLl9zdGF0dXNCYXJUaW1lcklkJiYoY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGwpLHIuX3N0YXR1c0JhclN0YXJ0VGltZT0wO3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2EmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0Iik7dmFyIHU9dDtyLnByZWZlcnJlZENvbW1hbmQ9JGUoKSxyLmNoYXRNb2RlPUF0KCJjbGF1ZGUiLHUmJnUubW9kZT91Lm1vZGU6ci5jaGF0TW9kZSksci50ZXJtaW5hbEludGVyYWN0aXZlJiZ1JiZ1LnN0YXR1cyE9PSJydW5uaW5nIiYmT24oITEpLGZlKCksU3IoZSksci5maWxlUGFuZWxPcGVuJiYoSWQodSksTXQoKSksZ24oZSkudGhlbihmdW5jdGlvbigpe090KCEwKX0pLEhuKGUpLHIuZ2l0U3RhdHVzPW51bGwsci5naXRTdGF0dXNTZXNzaW9uSWQ9bnVsbCxwYSgpLEFuKGUse2ZvcmNlOiEwfSl9fWZ1bmN0aW9uIE9tKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlciIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tbGF5b3V0Iiksbj1IZSgpLGk9ISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkLGE9aXx8IW4mJighIXIuc2lkZWJhclBpbm5lZHx8ISFyLnNlc3Npb25zRHJhd2VyT3Blbik7ZSYmKGUuY2xhc3NMaXN0LnRvZ2dsZSgicGlubmVkIixhKSxlLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlZCIsaSkpLHQmJih0LmNsYXNzTGlzdC50b2dnbGUoInNpZGViYXItcGlubmVkIixhKSx0LmNsYXNzTGlzdC50b2dnbGUoInNpZGViYXItY29sbGFwc2VkIixpKSk7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcGluLWJ0biIpO3UmJih1LmNsYXNzTGlzdC50b2dnbGUoInBpbm5lZCIsISFyLnNpZGViYXJQaW5uZWQpLHUudGl0bGU9ci5zaWRlYmFyUGlubmVkPyJcdTVERjJcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0JcdUZGMDhcdTcwQjlcdTUxRkJcdTg5RTNcdTk2NjRcdTk1MDFcdTVCOUFcdUZGMDkiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiLHUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixyLnNpZGViYXJQaW5uZWQ/Ilx1ODlFM1x1OTY2NFx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3QiI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpLHUuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLHIuc2lkZWJhclBpbm5lZD8idHJ1ZSI6ImZhbHNlIikpfWZ1bmN0aW9uIGpyKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlciIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tbGF5b3V0Iik7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLnNlc3Npb25zRHJhd2VyT3BlbiksdCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixRdSgpKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoInNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIik7aSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSxPbSgpfWZ1bmN0aW9uIEhtKCl7dmFyIGU9SGUoKTtpZighZSl7dmFyIHQ9ci5zaWRlYmFyUGlubmVkPyExOiFyLnNlc3Npb25zRHJhd2VyT3BlbjtyLnNlc3Npb25zRHJhd2VyT3Blbj10LHQmJihyLnNpZGViYXJDb2xsYXBzZWQ9ITEsQWUoIndhbmQtc2lkZWJhci1jb2xsYXBzZWQiLCExKSksQWUoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3BlbiksdW4oKSxXcigpO3JldHVybn1pZihyLnNlc3Npb25zRHJhd2VyT3Blbj0hci5zZXNzaW9uc0RyYXdlck9wZW4sQWUoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3Blbiksci5zZXNzaW9uc0RyYXdlck9wZW4pe3IuZmlsZVBhbmVsT3Blbj0hMTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtZmlsZS1wYW5lbC1vcGVuIiwiZmFsc2UiKX1jYXRjaHt9fXVuKCl9ZnVuY3Rpb24gUnIoKXt2YXIgZT1IZSgpO2lmKCFlKXtpZighci5zaWRlYmFyUGlubmVkJiYhci5zZXNzaW9uc0RyYXdlck9wZW4pcmV0dXJuO01yKCksci5zaWRlYmFyUGlubmVkPSExLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLEFlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMSksQWUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksdW4oKSxXcigpO3JldHVybn1yLnNlc3Npb25zRHJhd2VyT3BlbiYmKE1yKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITEsQWUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksdW4oKSl9ZnVuY3Rpb24gX20oKXtpZihIZSgpKXtScigpO3JldHVybn1yLnNpZGViYXJQaW5uZWR8fHIuc2lkZWJhckNvbGxhcHNlZHx8IXIuc2Vzc2lvbnNEcmF3ZXJPcGVufHwoTXIoKSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSx1bigpLFdyKCkpfWZ1bmN0aW9uIFJsKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2gtYnRuIik7ci5wbHVzUG9wb3Zlck9wZW49ISFlLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhZSksbiYmKG4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIWUpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixlPyJ0cnVlIjoiZmFsc2UiKSl9ZnVuY3Rpb24gTm0oKXtSbCghci5wbHVzUG9wb3Zlck9wZW4pfWZ1bmN0aW9uIEtpKCl7ci5wbHVzUG9wb3Zlck9wZW4mJlJsKCExKX1mdW5jdGlvbiBqdCgpe0hlKCkmJnIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiZScigpfWZ1bmN0aW9uIFdyKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tbGF5b3V0Iik7aWYoZSl7dmFyIHQ9ZnVuY3Rpb24obil7bi5wcm9wZXJ0eU5hbWU9PT0icGFkZGluZy1sZWZ0IiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCksUHQoITApKX07ZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0KX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7UHQoITApfSwzNTApfXZhciBSdD1udWxsO2Z1bmN0aW9uIGptKCl7cmV0dXJuIFJ0JiZkb2N1bWVudC5ib2R5LmNvbnRhaW5zKFJ0KXx8KFJ0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFJ0LmNsYXNzTmFtZT0ic2lkZWJhci10aWxlLWJ1YmJsZSIsUnQuc2V0QXR0cmlidXRlKCJyb2xlIiwidG9vbHRpcCIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoUnQpKSxSdH1mdW5jdGlvbiB0bigpe1J0JiZSdC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9ZnVuY3Rpb24gUm0oZSx0KXtpZighdCl7dG4oKTtyZXR1cm59dmFyIG49am0oKTtuLnRleHRDb250ZW50PXQubGVuZ3RoPjQwMD90LnNsaWNlKDAsNDAwKSsiXHUyMDI2Ijp0O3ZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bi5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIik7dmFyIGE9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1PWkudG9wK2kuaGVpZ2h0LzIsbz11LWEuaGVpZ2h0LzIscz04LGw9d2luZG93LmlubmVySGVpZ2h0LWEuaGVpZ2h0LTg7bzxzJiYobz1zKSxvPmwmJihvPU1hdGgubWF4KHMsbCkpLG4uc3R5bGUubGVmdD1pLnJpZ2h0KzEyKyJweCIsbi5zdHlsZS50b3A9bysicHgiLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYnViYmxlLXRhaWwteSIsdS1vKyJweCIpfWZ1bmN0aW9uIFdtKGUpe2lmKGUuZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PWUuZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWR9KTtpZighdClyZXR1cm4iIjt2YXIgbj1kYyh0KTtyZXR1cm4gbnx8dC5zdW1tYXJ5fHx0LmNvbW1hbmR8fCIifWlmKGUuZGF0YXNldC5jb2xsYXBzZWRIaXN0b3J5SWQpe3ZhciBpPXIuY2xhdWRlSGlzdG9yeS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZD09PWUuZGF0YXNldC5jb2xsYXBzZWRIaXN0b3J5SWR9KTtpZihpJiZpLmZpcnN0VXNlck1lc3NhZ2UpcmV0dXJuIGkuZmlyc3RVc2VyTWVzc2FnZX1yZXR1cm4iIn1mdW5jdGlvbiB6bShlKXt2YXIgdD1lLnRhcmdldDtpZighKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkpe3ZhciBuPXQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKTtpZighbil7dG4oKTtyZXR1cm59dmFyIGk9V20obik7aWYoIWkpe3RuKCk7cmV0dXJufVJtKG4saSl9fWZ1bmN0aW9uIFZtKGUpe3ZhciB0PWUucmVsYXRlZFRhcmdldDt0JiZ0IGluc3RhbmNlb2YgRWxlbWVudCYmdC5jbG9zZXN0KCIuc2lkZWJhci1jb2xsYXBzZWQtdGlsZSIpfHx0bigpfWZ1bmN0aW9uIFVtKCl7dmFyIGU9SGUoKTtyLnNpZGViYXJQaW5uZWR8fChyLnNpZGViYXJQaW5uZWQ9ITAsQWUoIndhbmQtc2lkZWJhci1waW5uZWQiLCEwKSksci5zaWRlYmFyQ29sbGFwc2VkPSFyLnNpZGViYXJDb2xsYXBzZWQsQWUoIndhbmQtc2lkZWJhci1jb2xsYXBzZWQiLHIuc2lkZWJhckNvbGxhcHNlZCksci5zaWRlYmFyQ29sbGFwc2VkP3Iuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExOmU/KHIuc2lkZWJhclBpbm5lZD0hMSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxBZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITEpKTpyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSx1bigpLGZlKCksSm0oKSx0bigpLFdyKCl9ZnVuY3Rpb24gS20oKXtIZSgpfHwoci5zaWRlYmFyUGlubmVkPSFyLnNpZGViYXJQaW5uZWQsci5zZXNzaW9uc0RyYXdlck9wZW49ITAsQWUoIndhbmQtc2lkZWJhci1waW5uZWQiLHIuc2lkZWJhclBpbm5lZCksQWUoIndhbmQtc2lkZWJhci1vcGVuIiwhMCksdW4oKSxXcigpKX1mdW5jdGlvbiBKbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLWNvbGxhcHNlLWJ0biIpO2lmKGUpe3ZhciB0PSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZDtlLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlZCIsdCksZS50aXRsZT10PyJcdTVDNTVcdTVGMDBcdTRGQTdcdTY4MEYiOiJcdTY1MzZcdThENzdcdTRFM0FcdTdBODRcdTY3NjEiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0PyJcdTVDNTVcdTVGMDBcdTRGQTdcdTY4MEYiOiJcdTY1MzZcdThENzdcdTRFM0FcdTdBODRcdTY3NjEiKSxlLmlubmVySFRNTD10Pyc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjEwIDYgMTYgMTIgMTAgMTgiLz48bGluZSB4MT0iMjAiIHkxPSI1IiB4Mj0iMjAiIHkyPSIxOSIvPjwvc3ZnPic6Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTQgNiA4IDEyIDE0IDE4Ii8+PGxpbmUgeDE9IjQiIHkxPSI1IiB4Mj0iNCIgeTI9IjE5Ii8+PC9zdmc+J319ZnVuY3Rpb24gWW0oZSl7aWYoZSl7ZS5zdHlsZS5sZWZ0PSIiLGUuc3R5bGUucmlnaHQ9IiI7dmFyIHQ9ZS5vZmZzZXRQYXJlbnR8fGUucGFyZW50RWxlbWVudDtpZih0KXt2YXIgbj04LGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT13aW5kb3cuaW5uZXJXaWR0aDthLmxlZnQ8bj8oZS5zdHlsZS5yaWdodD0iYXV0byIsZS5zdHlsZS5sZWZ0PW4taS5sZWZ0KyJweCIpOmEucmlnaHQ+dS1uJiYoZS5zdHlsZS5sZWZ0PSJhdXRvIixlLnN0eWxlLnJpZ2h0PWkucmlnaHQtKHUtbikrInB4Iil9fX1mdW5jdGlvbiB3dSgpe3JyKCksci5tb2RhbE9wZW49ITAsci5zZXNzaW9uc0RyYXdlck9wZW49ITEsQWUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksanIoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2UmJihlLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LHIuc2Vzc2lvblRvb2w9JGUoKSxyLnByZWZlcnJlZENvbW1hbmQ9ci5zZXNzaW9uVG9vbCxyLnNlc3Npb25DcmVhdGVLaW5kPSJzdHJ1Y3R1cmVkIixyLnNlc3Npb25DcmVhdGVXb3JrdHJlZT0hMSxyLm1vZGVWYWx1ZT1BdChyLnNlc3Npb25Ub29sLHIubW9kZVZhbHVlfHxyLmNoYXRNb2RlKSxfcigpLGJnKCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWNhcmRzIik7dCYmdC5mb2N1cygpfSwyMCksSmkoZSkpfWZ1bmN0aW9uIGhuKCl7ci5tb2RhbE9wZW49ITE7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtlJiYoci5mb2N1c1RyYXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKSxyLmZvY3VzVHJhcEhhbmRsZXI9bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKSxDdShlKSksYXIoKX1mdW5jdGlvbiBDdShlKXtpZihlJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXt2YXIgdD0hMTt0cnl7dD13aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIikubWF0Y2hlc31jYXRjaHt9aWYodHx8ZG9jdW1lbnQuaGlkZGVuKXtlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3JldHVybn1lLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QuYWRkKCJjbG9zaW5nIiksZS5fd2FuZENsb3NlVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5fd2FuZENsb3NlVGltZXI9bnVsbH0sMTcwKX19ZnVuY3Rpb24gSmkoZSl7ci5mb2N1c1RyYXBIYW5kbGVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpO3ZhciB0PSdidXR0b246bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgYVtocmVmXSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKSc7ci5mb2N1c1RyYXBIYW5kbGVyPWZ1bmN0aW9uKG4pe2lmKG4ua2V5PT09IlRhYiIpe3ZhciBpPWUucXVlcnlTZWxlY3RvckFsbCh0KSxhPWlbMF0sdT1pW2kubGVuZ3RoLTFdOyFhfHwhdXx8KG4uc2hpZnRLZXk/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWEmJihuLnByZXZlbnREZWZhdWx0KCksdS5mb2N1cygpKTpkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dSYmKG4ucHJldmVudERlZmF1bHQoKSxhLmZvY3VzKCkpKX19LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlcil9ZnVuY3Rpb24gR20oKXtyZXR1cm4gci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkJiZyLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT1yLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWR9KXx8bnVsbH1mdW5jdGlvbiB6cigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jb250ZW50IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29uZmlybS1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1lcnJvciIpLGk9R20oKSxhPXIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0O2lmKCEoIWV8fCF0KSl7aWYoIWl8fCFpLndvcmt0cmVlKXtlLmlubmVySFRNTD0nPHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NjcyQVx1NjI3RVx1NTIzMFx1NTNFRlx1NTQwOFx1NUU3Nlx1NzY4NCB3b3JrdHJlZSBcdTRGMUFcdThCRERcdTMwMDI8L3A+Jyx0LmRpc2FibGVkPSEwO3JldHVybn1uJiYoci53b3JrdHJlZU1lcmdlRXJyb3I/UGUobixyLndvcmt0cmVlTWVyZ2VFcnJvcik6aGkobikpO3ZhciB1PVsnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTY3NjVcdTZFOTBcdTUyMDZcdTY1MkY8L3NwYW4+PHN0cm9uZz4nK3AoaS53b3JrdHJlZS5icmFuY2h8fCItIikrIjwvc3Ryb25nPjwvZGl2PiIsJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9zcGFuPjxzdHJvbmc+JytwKGkud29ya3RyZWUucGF0aHx8Ii0iKSsiPC9zdHJvbmc+PC9kaXY+Il07YT8odS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NzZFRVx1NjgwN1x1NTIwNlx1NjUyRjwvc3Bhbj48c3Ryb25nPicrcChhLnRhcmdldEJyYW5jaHx8Ii0iKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NUY4NVx1NTQwOFx1NUU3Nlx1NjNEMFx1NEVBNDwvc3Bhbj48c3Ryb25nPicrcChTdHJpbmcoYS5haGVhZENvdW50fHwwKSkrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTY3MkFcdTYzRDBcdTRFQTRcdTY1MzlcdTUyQTg8L3NwYW4+PHN0cm9uZz4nK3AoYS5oYXNVbmNvbW1pdHRlZENoYW5nZXM/Ilx1NjcwOSI6Ilx1NjVFMCIpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU1MUIyXHU3QTgxXHU5OENFXHU5NjY5PC9zcGFuPjxzdHJvbmc+JytwKGEuaGFzQ29uZmxpY3RzPyJcdTY3MDkiOiJcdTY1RTAiKSsiPC9zdHJvbmc+PC9kaXY+IiksYS5yZWFzb24mJnUucHVzaCgnPHAgY2xhc3M9ImZpZWxkLWhpbnQiPicrcChhLnJlYXNvbikrIjwvcD4iKSk6ci53b3JrdHJlZU1lcmdlTG9hZGluZyYmdS5wdXNoKCc8cCBjbGFzcz0iZmllbGQtaGludCI+XHU2QjYzXHU1NzI4XHU2OEMwXHU2N0U1IHdvcmt0cmVlIFx1NTQwOFx1NUU3Nlx1NzJCNlx1NjAwMVx1MjAyNjwvcD4nKSxlLmlubmVySFRNTD11LmpvaW4oIiIpLHQuZGlzYWJsZWQ9ci53b3JrdHJlZU1lcmdlTG9hZGluZ3x8ci53b3JrdHJlZU1lcmdlU3VibWl0dGluZ3x8IWF8fGEub2shPT0hMCx0LnRleHRDb250ZW50PXIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc/Ilx1NTQwOFx1NUU3Nlx1NEUyRC4uLiI6Ilx1Nzg2RVx1OEJBNFx1NTQwOFx1NUU3Nlx1NUU3Nlx1NkUwNVx1NzQwNiJ9fWZ1bmN0aW9uIFdsKGUpe3IuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZD1lLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW51bGwsci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMCxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPSExLHIud29ya3RyZWVNZXJnZUVycm9yPSIiLGhuKCkscnIoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTt0JiYodC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LEppKHQpKSx6cigpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvd29ya3RyZWUvbWVyZ2UvY2hlY2siLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcik7biYmbi5zZXNzaW9uJiZYKG4uc2Vzc2lvbiksci53b3JrdHJlZU1lcmdlQ2hlY2tSZXN1bHQ9bi5yZXN1bHR8fG51bGwsci53b3JrdHJlZU1lcmdlRXJyb3I9IiJ9KS5jYXRjaChmdW5jdGlvbihuKXtyLndvcmt0cmVlTWVyZ2VFcnJvcj1uJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTY4QzBcdTY3RTUgd29ya3RyZWUgXHU1NDA4XHU1RTc2XHU3MkI2XHU2MDAxXHUzMDAyIn0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLndvcmt0cmVlTWVyZ2VMb2FkaW5nPSExLHpyKCl9KX1mdW5jdGlvbiBucigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1tb2RhbCIpO3IuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZD1udWxsLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW51bGwsci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMSxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPSExLHIud29ya3RyZWVNZXJnZUVycm9yPSIiLGUmJmUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksci5mb2N1c1RyYXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKSxyLmZvY3VzVHJhcEhhbmRsZXI9bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKX1mdW5jdGlvbiBRbSgpeyFyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWR8fHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmd8fChyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPSEwLHIud29ya3RyZWVNZXJnZUVycm9yPSIiLHpyKCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkKSsiL3dvcmt0cmVlL21lcmdlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7fSl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZSYmZS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoZS5lcnJvcik7cmV0dXJuIGUmJmUuc2Vzc2lvbiYmWChlLnNlc3Npb24pLEEoIlx1NURGMlx1NTQwOFx1NUU3Nlx1NTIzMCAiK3AoZS5yZXN1bHQmJmUucmVzdWx0LnRhcmdldEJyYW5jaHx8Ilx1NEUzQlx1NTIwNlx1NjUyRiIpKyhlLnJlc3VsdCYmZS5yZXN1bHQuY2xlYW51cERvbmU9PT0hMT8iXHVGRjBDXHU0RjQ2XHU1REU1XHU0RjVDXHU2ODExXHU1Rjg1XHU2RTA1XHU3NDA2XHUzMDAyIjoiXHUzMDAyIiksImluZm8iKSxucigpLEh0KCl9KS5jYXRjaChmdW5jdGlvbihlKXtyLndvcmt0cmVlTWVyZ2VFcnJvcj1lJiZlLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MDhcdTVFNzYgd29ya3RyZWVcdTMwMDIiLHpyKCl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSx6cigpfSkpfWZ1bmN0aW9uIHpsKGUpe2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvd29ya3RyZWUvY2xlYW51cCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZih0JiZ0LmVycm9yKXRocm93IG5ldyBFcnJvcih0LmVycm9yKTtyZXR1cm4gdCYmdC5zZXNzaW9uJiZYKHQuc2Vzc2lvbiksQSgiXHU1REYyXHU1QjhDXHU2MjEwIHdvcmt0cmVlIFx1NkUwNVx1NzQwNlx1MzAwMiIsImluZm8iKSxIdCgpfSkuY2F0Y2goZnVuY3Rpb24odCl7QSh0JiZ0Lm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTZFMDVcdTc0MDYgd29ya3RyZWVcdTMwMDIiLCJlcnJvciIpfSl9ZnVuY3Rpb24gJG0oKXtobigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2lmKGUpe2UuX3dhbmRDbG9zZVRpbWVyJiYoY2xlYXJUaW1lb3V0KGUuX3dhbmRDbG9zZVRpbWVyKSxlLl93YW5kQ2xvc2VUaW1lcj1udWxsKSxlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHIubGFzdEZvY3VzZWRFbGVtZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpcm0tcGFzc3dvcmQiKTt0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLFZsKCksSmkoZSksWm0oKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5kYXRhc2V0Lm1vZGVsRGlydHk9ImZhbHNlIixjLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0iZmFsc2UifSksQnUoImFib3V0IikscmcoKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2kmJihpLmNoZWNrZWQ9ci5ub3RpZlNvdW5kKSxhJiYoYS5jaGVja2VkPXIubm90aWZCdWJibGUpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKTtpZih1KXt1LnZhbHVlPXIubm90aWZWb2x1bWUsbyYmKG8udGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpO3RyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fX12YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7aWYocyYmKHMuc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKSxibigpLHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXBwSWNvbj09ImZ1bmN0aW9uIil0cnl7SmwoV2FuZE5hdGl2ZS5nZXRBcHBJY29uKCl8fCJzaG9ydGhhaXIiKX1jYXRjaHt9aWYoX2UmJnR5cGVvZiBXYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kPT0iZnVuY3Rpb24iKXRyeXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpO2wmJihsLnZhbHVlPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uU291bmQoKSl9Y2F0Y2h7fWlmKF9lJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e3ZhciBkPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lKCk7aWYoci5ub3RpZlZvbHVtZT1kLHUmJih1LnZhbHVlPVN0cmluZyhkKSksbyYmKG8udGV4dENvbnRlbnQ9ZCsiJSIpLHUpdHJ5e3UuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKX1jYXRjaHt9dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIsU3RyaW5nKGQpKX1jYXRjaHt9fWNhdGNoe31pZihfZSYmdHlwZW9mIFdhbmROYXRpdmUuaXNIYXB0aWNFbmFibGVkPT0iZnVuY3Rpb24iKXRyeXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7ZiYmKGYuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpKX1jYXRjaHt9fX1mdW5jdGlvbiBycigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2UmJihlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbih0KXt2bih0KX0pLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCksQ3UoZSkpfWZ1bmN0aW9uIFZsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWVycm9yIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtc3VjY2VzcyIpO2UmJmUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX1mdW5jdGlvbiBYbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKS52YWx1ZSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIikudmFsdWUsbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtZXJyb3IiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1zdWNjZXNzIik7aWYoVmwoKSwhZXx8ZS5sZW5ndGg8Nil7bi50ZXh0Q29udGVudD0iXHU1QkM2XHU3ODAxXHU5NTdGXHU1RUE2XHU4MUYzXHU1QzExXHU0RTNBIDYgXHU0RTJBXHU1QjU3XHU3QjI2XHUzMDAyIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1pZihlIT09dCl7bi50ZXh0Q29udGVudD0iXHU0RTI0XHU2QjIxXHU4RjkzXHU1MTY1XHU3Njg0XHU1QkM2XHU3ODAxXHU0RTBEXHU0RTAwXHU4MUY0XHUzMDAyIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1mZXRjaCgiL2FwaS9zZXQtcGFzc3dvcmQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cGFzc3dvcmQ6ZX0pLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYS5lcnJvcil7bi50ZXh0Q29udGVudD1hLmVycm9yLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7cmV0dXJufWkudGV4dENvbnRlbnQ9Ilx1NUJDNlx1NzgwMVx1NEZFRVx1NjUzOVx1NjIxMFx1NTI5Rlx1RkYwMSIsaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIikudmFsdWU9IiIsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpcm0tcGFzc3dvcmQiKS52YWx1ZT0iIn0pLmNhdGNoKGZ1bmN0aW9uKCl7bi50ZXh0Q29udGVudD0iRmFpbGVkIHRvIHNhdmUgcGFzc3dvcmQuIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfSl9ZnVuY3Rpb24gQnUoZSl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94LmlzLW9wZW4iKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZuKHMpfSk7Zm9yKHZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1wYW5lbCIpLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXS5nZXRBdHRyaWJ1dGUoImRhdGEtdGFiIik9PT1lO2E/dFtpXS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTp0W2ldLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHRbaV0uc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixhPyJ0cnVlIjoiZmFsc2UiKSx0W2ldLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGE/IjAiOiItMSIpfWZvcih2YXIgdT0wO3U8bi5sZW5ndGg7dSsrKXt2YXIgbz1uW3VdLmlkPT09InNldHRpbmdzLXRhYi0iK2U7bz8oblt1XS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxuW3VdLnJlbW92ZUF0dHJpYnV0ZSgiaGlkZGVuIikpOihuW3VdLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLG5bdV0uc2V0QXR0cmlidXRlKCJoaWRkZW4iLCJoaWRkZW4iKSl9fWZ1bmN0aW9uIFVsKGUpe2lmKGUmJiEoZS5rZXkhPT0iQXJyb3dVcCImJmUua2V5IT09IkFycm93RG93biImJmUua2V5IT09IkFycm93TGVmdCImJmUua2V5IT09IkFycm93UmlnaHQiJiZlLmtleSE9PSJIb21lIiYmZS5rZXkhPT0iRW5kIikpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSk7aWYodC5sZW5ndGgpe3ZhciBuPWUuY3VycmVudFRhcmdldCYmZS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3Q/ZS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoIi5zZXR0aW5ncy10YWJzIik6bnVsbCxpPW4mJm4uZ2V0QXR0cmlidXRlKCJhcmlhLW9yaWVudGF0aW9uIik9PT0iaG9yaXpvbnRhbCI7aWYoIShpJiYoZS5rZXk9PT0iQXJyb3dVcCJ8fGUua2V5PT09IkFycm93RG93biIpKSYmISghaSYmKGUua2V5PT09IkFycm93TGVmdCJ8fGUua2V5PT09IkFycm93UmlnaHQiKSkpe3ZhciBhPXQuaW5kZXhPZihlLmN1cnJlbnRUYXJnZXQpO2lmKGEhPT0tMSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB1PWE7KGUua2V5PT09IkFycm93VXAifHxlLmtleT09PSJBcnJvd0xlZnQiKSYmKHU9YT4wP2EtMTp0Lmxlbmd0aC0xKSwoZS5rZXk9PT0iQXJyb3dEb3duInx8ZS5rZXk9PT0iQXJyb3dSaWdodCIpJiYodT1hPHQubGVuZ3RoLTE/YSsxOjApLGUua2V5PT09IkhvbWUiJiYodT0wKSxlLmtleT09PSJFbmQiJiYodT10Lmxlbmd0aC0xKTt2YXIgbz10W3VdO2lmKG8pe3ZhciBzPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpO3MmJkJ1KHMpLHR5cGVvZiBvLmZvY3VzPT0iZnVuY3Rpb24iJiZvLmZvY3VzKCl9fX19fX1mdW5jdGlvbiBabSgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXR0aW5ncy10YWJzIik7aWYoZSl7dmFyIHQ9ITE7dHJ5e3Q9ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3NjBweCkiKS5tYXRjaGVzKX1jYXRjaHt9ZS5zZXRBdHRyaWJ1dGUoImFyaWEtb3JpZW50YXRpb24iLHQ/Imhvcml6b250YWwiOiJ2ZXJ0aWNhbCIpfWZvcih2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksaT0wO2k8bi5sZW5ndGg7aSsrKW5baV0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsVWwpLG5baV0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsVWwpfWZ1bmN0aW9uIGVnKGUpe2lmKGUpe3ZhciB0PWUuY29uZmlnfHx7fSxuPXthYm91dDplLnZlcnNpb24/Ilx1NUY1M1x1NTI0RCB2IitlLnZlcnNpb246Ilx1NzI0OFx1NjcyQ1x1NEUwRVx1NjZGNFx1NjVCMFx1NEZFMVx1NjA2RiIsZ2VuZXJhbDpbdC5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLHQubGFuZ3VhZ2V8fCJcdTgxRUFcdTUyQThcdThCRURcdThBMDAiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIFx4QjcgIiksbm90aWZpY2F0aW9uczpyLm5vdGlmU291bmQ/Ilx1NjNEMFx1NzkzQVx1OTdGMyAiK3Iubm90aWZWb2x1bWUrIiUiOiJcdTYzRDBcdTc5M0FcdTk3RjNcdTVERjJcdTUxNzNcdTk1RUQiLHNlY3VyaXR5OmUuaGFzQ2VydD8iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiOiJcdTVCQzZcdTc4MDFcdTRFMEVcdThCQzFcdTRFNjZcdTdCQTFcdTc0MDYiLHByZXNldHM6dC5jb21tYW5kUHJlc2V0cyYmdC5jb21tYW5kUHJlc2V0cy5sZW5ndGg/dC5jb21tYW5kUHJlc2V0cy5sZW5ndGgrIiBcdTY3NjFcdTk4ODRcdThCQkUiOiJcdTY2ODJcdTY1RTBcdTk4ODRcdThCQkUiLGRpc3BsYXk6Ilx1NjNBN1x1NTIzNlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMCJ9O2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2V0dGluZ3MtdGFiW2RhdGEtdGFiPSInK2krJyJdIC5zZXR0aW5ncy10YWItbWV0YScpO2EmJihhLnRleHRDb250ZW50PW5baV18fCIiKX19fWZ1bmN0aW9uIHRnKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiKSxpPXdpbmRvdy5RUkNvZGVMaWI7aWYodCl7aWYoIWl8fHR5cGVvZiBpLnRvQ2FudmFzIT0iZnVuY3Rpb24iKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU1RTkzXHU2NzJBXHU1MkEwXHU4RjdEIik7cmV0dXJufXRyeXtpLnRvQ2FudmFzKHQsZSx7d2lkdGg6MjIwLG1hcmdpbjoxLGVycm9yQ29ycmVjdGlvbkxldmVsOiJNIixjb2xvcjp7ZGFyazoiIzFmMWIxNyIsbGlnaHQ6IiNmZmZmZmYwMCJ9fSxmdW5jdGlvbihhKXtpZihhKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtyZXR1cm59biYmKG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHQuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9KX1jYXRjaHtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn19fWZ1bmN0aW9uIG5nKGUpe3ZhciB0PXdpbmRvdy5RUkNvZGVMaWI7aWYoIXR8fHR5cGVvZiB0LnRvQ2FudmFzIT0iZnVuY3Rpb24iKXJldHVybjt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29ubmVjdC1xci1tb2RhbCIpO24mJm4ucmVtb3ZlKCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5pZD0iY29ubmVjdC1xci1tb2RhbCIsaS5jbGFzc05hbWU9ImNvbm5lY3QtcXItbW9kYWwtb3ZlcmxheSIsaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvbm5lY3QtcXItbW9kYWwtY2FyZCI+PGNhbnZhcyBpZD0iY29ubmVjdC1xci1tb2RhbC1jYW52YXMiPjwvY2FudmFzPjxwIGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdThGREVcdTYzQTVcdTVGNTNcdTUyNERcdTY3MERcdTUyQTFcdTU2Njg8L3A+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gY29ubmVjdC1xci1tb2RhbC1jbG9zZSI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciBhPWkucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3QtcXItbW9kYWwtY2FudmFzIiksdT1NYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpKi43O3U8MjQwJiYodT0yNDApLHU+NDgwJiYodT00ODApO3RyeXt0LnRvQ2FudmFzKGEsZSx7d2lkdGg6dSxtYXJnaW46MixlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmIn19KX1jYXRjaHt9ZnVuY3Rpb24gbygpe2kucmVtb3ZlKCl9aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obCl7bC50YXJnZXQ9PT1pJiZvKCl9KTt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIi5jb25uZWN0LXFyLW1vZGFsLWNsb3NlIik7cyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbyl9ZnVuY3Rpb24gVnIoZSx0LG4pe2lmKCFlKXJldHVybjtmdW5jdGlvbiBpKCl7aWYoJG4oImxpZ2h0Iiksbil7bigpO3JldHVybn1pZih0KXt2YXIgYT10LnRleHRDb250ZW50O3QudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9YX0sMTUwMCl9fWlmKF9lJiZ0eXBlb2YgV2FuZE5hdGl2ZS5jb3B5VG9DbGlwYm9hcmQ9PSJmdW5jdGlvbiIpdHJ5e2lmKFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkKGUpPT09Im9rIil7aSgpO3JldHVybn19Y2F0Y2h7fW5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oaSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2EudmFsdWU9ZSxhLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsYS5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpLGkoKX0pfWZ1bmN0aW9uIHluKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIi0iO2lmKGU8MTAyNClyZXR1cm4gZSsiIEIiO2Zvcih2YXIgdD1bIktCIiwiTUIiLCJHQiIsIlRCIl0sbj1lLzEwMjQsaT0wO24+PTEwMjQmJmk8dC5sZW5ndGgtMTspbj1uLzEwMjQsaSs9MTt2YXIgYT1uPj0xMD9uLnRvRml4ZWQoMCk6bi50b0ZpeGVkKDEpO3JldHVybiBhKyIgIit0W2ldfWZ1bmN0aW9uIHJnKCl7ZmV0Y2goIi9hcGkvc2V0dGluZ3MiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2VnKGUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1wa2ctbmFtZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXZlcnNpb24iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1ub2RlLXJlcSIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXJlcG8tdXJsIik7dCYmKHQudGV4dENvbnRlbnQ9ZS5wYWNrYWdlTmFtZXx8Ii0iKSxuJiYobi50ZXh0Q29udGVudD1lLnZlcnNpb258fCItIiksaSYmKGkudGV4dENvbnRlbnQ9ZS5ub2RlVmVyc2lvbnx8Ii0iKSxhJiZlLnJlcG9VcmwmJihhLmlubmVySFRNTD0nPGEgaHJlZj0iJytwKGUucmVwb1VybCkrJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicrcChlLnJlcG9VcmwpKyI8L2E+Iik7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO2UubGF0ZXN0VmVyc2lvbiYmdSYmKHUudGV4dENvbnRlbnQ9ZS5sYXRlc3RWZXJzaW9uLGUudXBkYXRlQXZhaWxhYmxlJiZvJiZvLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO3MmJihzLmNoZWNrZWQ9ZS51cGRhdGVDaGFubmVsPT09ImJldGEiKTt2YXIgbD1lLmF1dG9VcGRhdGV8fHt9LGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKTtkJiYoZC5jaGVja2VkPSEhbC53ZWIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIik7ZiYmKGYuY2hlY2tlZD0hIU1uJiYhIWwuYXBrKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2MmJihjLmNoZWNrZWQ9ISFzbiYmISFsLmRtZyk7ZnVuY3Rpb24gdihzZSxldCl7b3Moc2Use3R5cGU6ZXQ9PT0iZXJyb3IiPyJkYW5nZXIiOiJpbmZvIn0pfWZ1bmN0aW9uIGgoc2UsZXQsQ2Upe3ZhciB0dD1DZT9DZS50ZXh0Q29udGVudDoiIjtDZSYmKENlLmRpc2FibGVkPSEwLENlLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0RcdTRFMkRcdTIwMjYiKTtmdW5jdGlvbiBfKCl7Q2UmJihDZS5kaXNhYmxlZD0hMSxDZS50ZXh0Q29udGVudD10dCl9ZmV0Y2goc2Use21ldGhvZDoiSEVBRCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oTyl7aWYoIU8ub2spe3YoTy5zdGF0dXM9PT00MDQ/Ilx1NEUwQlx1OEY3RFx1NjcyQVx1NTQyRlx1NzUyOFx1NjIxNlx1NjU4N1x1NEVGNlx1NURGMlx1NzlGQlx1OTY2NCI6Ilx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNSAoSFRUUCAiK08uc3RhdHVzKyIpIiwiZXJyb3IiKSxfKCk7cmV0dXJufXZhciBLPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtLLmhyZWY9c2UsSy5kb3dubG9hZD1ldHx8IiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChLKSxLLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChLKSx2KCJcdTVERjJcdTVGMDBcdTU5Q0JcdTRFMEJcdThGN0RcdUZGMENcdThCRjdcdTU3MjhcdTkwMUFcdTc3RTVcdTY4MEYvXHU0RTBCXHU4RjdEXHU3QkExXHU3NDA2XHU0RTJEXHU2N0U1XHU3NzBCIiwiaW5mbyIpLF8oKX0pLmNhdGNoKGZ1bmN0aW9uKE8pe3YoIlx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoTyYmTy5tZXNzYWdlP08ubWVzc2FnZTpPKSwiZXJyb3IiKSxfKCl9KX1mdW5jdGlvbiBnKHNlLGV0KXtmdW5jdGlvbiBDZShvcil7dmFyIE5uPVN0cmluZyhvcnx8IiIpLnJlcGxhY2UoL152LywiIiksam49Tm4uaW5kZXhPZigiLSIpLFFpPWpuPj0wP05uLnNsaWNlKDAsam4pOk5uLEpyPWpuPj0wP05uLnNsaWNlKGpuKzEpOiIiO3JldHVybntwYXJ0czpRaS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbigkaSl7cmV0dXJuIHBhcnNlSW50KCRpLDEwKXx8MH0pLHByZTpKcixpc0RlYnVnOkpyLmluZGV4T2YoImRlYnVnIik9PT0wfX1mb3IodmFyIHR0PUNlKHNlKSxfPUNlKGV0KSxPPTA7TzwzO08rKyl7dmFyIEs9KHR0LnBhcnRzW09dfHwwKS0oXy5wYXJ0c1tPXXx8MCk7aWYoSyE9PTApcmV0dXJuIEs+MD8xOi0xfWlmKHR0LmlzRGVidWchPT1fLmlzRGVidWcpcmV0dXJuIHR0LmlzRGVidWc/MTotMTtpZih0dC5pc0RlYnVnJiZfLmlzRGVidWcpZm9yKHZhciBhZT10dC5wcmUuc3BsaXQoIi4iKSxtZT1fLnByZS5zcGxpdCgiLiIpLERlPTA7RGU8TWF0aC5tYXgoYWUubGVuZ3RoLG1lLmxlbmd0aCk7RGUrKyl7aWYoYWVbRGVdPT09dm9pZCAwKXJldHVybi0xO2lmKG1lW0RlXT09PXZvaWQgMClyZXR1cm4gMTt2YXIgX249cGFyc2VJbnQoYWVbRGVdLDEwKSxZdD1wYXJzZUludChtZVtEZV0sMTApO2lmKCFpc05hTihfbikmJiFpc05hTihZdCkpe2lmKF9uIT09WXQpcmV0dXJuIF9uPll0PzE6LTF9ZWxzZSBpZihhZVtEZV0hPT1tZVtEZV0pcmV0dXJuIGFlW0RlXT5tZVtEZV0/MTotMX1yZXR1cm4gMH1mdW5jdGlvbiBtKHNlLGV0LENlLHR0LF8sTyl7c2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksc2UuZGlzYWJsZWQ9ITEsZXQ+MD9zZS50ZXh0Q29udGVudD0iXHU1MzQ3XHU3RUE3IjpldD09PTA/KHNlLnRleHRDb250ZW50PSJcdTVERjJcdTY2MkZcdTY3MDBcdTY1QjAiLHNlLmRpc2FibGVkPSEwKTpPP3NlLnRleHRDb250ZW50PSJcdTkxQ0RcdTY1QjBcdTVCODlcdTg4QzUiOihzZS50ZXh0Q29udGVudD0iXHU3MjQ4XHU2NzJDXHU4RjgzXHU2NUU3IixzZS5kaXNhYmxlZD0hMCksc2Uub25jbGljaz1zZS5kaXNhYmxlZD9udWxsOmZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUoQ2UsdHQsXyl9Y2F0Y2goSyl7digiXHU4QzAzXHU3NTI4XHU0RTBCXHU4RjdEXHU1OTMxXHU4RDI1OiAiKyhLJiZLLm1lc3NhZ2U/Sy5tZXNzYWdlOkspLCJlcnJvciIpfX19dmFyIHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLXNlY3Rpb24iKSxDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1jdXJyZW50LXJvdyIpLEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWN1cnJlbnQiKSxCPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1naXRodWItcm93IiksRD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstZ2l0aHViIiksRj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtZ2l0aHViLWFway1idG4iKSxJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1sb2NhbC1yb3ciKSxMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1sb2NhbCIpLEg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWxvY2FsLWFway1idG4iKSxVPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1tZXNzYWdlIikseD1lLmFuZHJvaWRBcGt8fHt9LGs9ISFNbixUPXguZW5hYmxlZCE9PSExLE09a3x8VCYmKCEheC5naXRodWJ8fCEheC5sb2NhbCk7aWYoeSYmKE0/eS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTp5LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxrKXtpZihDJiZFJiYoRS50ZXh0Q29udGVudD0idiIrTW4sQy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSkseC5naXRodWImJkImJkQpe3ZhciBZPXguZ2l0aHViLnZlcnNpb24/InYiK3guZ2l0aHViLnZlcnNpb246eC5naXRodWIuZmlsZU5hbWU7aWYodHlwZW9mIHguZ2l0aHViLnNpemU9PSJudW1iZXIiJiYoWSs9IiBceEI3ICIreW4oeC5naXRodWIuc2l6ZSkpLEQudGV4dENvbnRlbnQ9WSxCLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEYpe3ZhciB6PXguZ2l0aHViLnZlcnNpb24/Zyh4LmdpdGh1Yi52ZXJzaW9uLE1uKToxO20oRix6LHguZ2l0aHViLmRvd25sb2FkVXJsLHguZ2l0aHViLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIiwiZ2l0aHViIiwhMSl9fWlmKHgubG9jYWwmJkkmJkwpe3ZhciBRPXgubG9jYWwudmVyc2lvbj8idiIreC5sb2NhbC52ZXJzaW9uOngubG9jYWwuZmlsZU5hbWU7aWYodHlwZW9mIHgubG9jYWwuc2l6ZT09Im51bWJlciImJihRKz0iIFx4QjcgIit5bih4LmxvY2FsLnNpemUpKSxMLnRleHRDb250ZW50PVEsSS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxIKXt2YXIgbGU9eC5sb2NhbC52ZXJzaW9uP2coeC5sb2NhbC52ZXJzaW9uLE1uKToxO20oSCxsZSx4LmxvY2FsLmRvd25sb2FkVXJsLHgubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLCJsb2NhbCIsITEpfX0heC5naXRodWImJiF4LmxvY2FsJiZVJiYoVS50ZXh0Q29udGVudD0iXHU2NjgyXHU2NUUwXHU1M0VGXHU3NTI4XHU2NkY0XHU2NUIwIixVLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgZWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXV0by11cGRhdGUtcm93IiksWj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Iik7ZWUmJmVlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFomJlouY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZWxzZXtpZih4LmdpdGh1YiYmQiYmRCl7dmFyIHE9eC5naXRodWIudmVyc2lvbj8idiIreC5naXRodWIudmVyc2lvbjp4LmdpdGh1Yi5maWxlTmFtZTt0eXBlb2YgeC5naXRodWIuc2l6ZT09Im51bWJlciImJihxKz0iIFx4QjcgIit5bih4LmdpdGh1Yi5zaXplKSksRC50ZXh0Q29udGVudD1xLEIuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRiYmKEYudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsRi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxGLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3Blbih4LmdpdGh1Yi5kb3dubG9hZFVybCwiX2JsYW5rIiksdigiXHU2QjYzXHU1NzI4XHU2MjUzXHU1RjAwXHU0RTBCXHU4RjdEXHU5ODc1XHUyMDI2IiwiaW5mbyIpfSl9aWYoeC5sb2NhbCYmSSYmTCl7dmFyIFA9eC5sb2NhbC52ZXJzaW9uPyJ2Iit4LmxvY2FsLnZlcnNpb246eC5sb2NhbC5maWxlTmFtZTt0eXBlb2YgeC5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKFArPSIgXHhCNyAiK3luKHgubG9jYWwuc2l6ZSkpLEwudGV4dENvbnRlbnQ9UCxJLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEgmJihILnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLEguY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksSC5vbmNsaWNrPWZ1bmN0aW9uKCl7aCh4LmxvY2FsLmRvd25sb2FkVXJsLHgubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLEgpfSl9IXguZ2l0aHViJiYheC5sb2NhbCYmVSYmKFUudGV4dENvbnRlbnQ9VD8iXHU1NzI4XHU3RUJGXHU3MjQ4XHU2NzJDXHU2NjgyXHU2NUY2XHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1IjoiQW5kcm9pZCBcdTRFMEJcdThGN0RcdTY3MkFcdTU3MjhcdTY3MERcdTUyQTFcdTdBRUZcdTU0MkZcdTc1MjgiLFUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfXZhciBqPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctc2VjdGlvbiIpLEc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1jdXJyZW50LXJvdyIpLEo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1jdXJyZW50IiksdGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1naXRodWItcm93IiksZGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1naXRodWIiKSxuZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtZ2l0aHViLWRtZy1idG4iKSxyZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWxvY2FsLXJvdyIpLE1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tYWNvcy1kbWctbG9jYWwiKSx5ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtbG9jYWwtZG1nLWJ0biIpLHBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctbWVzc2FnZSIpLFI9ZS5tYWNvc0RtZ3x8e30saHQ9ISFzbixPZT1SLmVuYWJsZWQhPT0hMSwkPWh0fHxPZSYmKCEhUi5naXRodWJ8fCEhUi5sb2NhbCk7aWYoaiYmKCQ/ai5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTpqLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxodCl7aWYoRyYmSiYmKEoudGV4dENvbnRlbnQ9InYiK3NuLEcuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLFIuZ2l0aHViJiZ0ZSYmZGUpe3ZhciBiZT1SLmdpdGh1Yi52ZXJzaW9uPyJ2IitSLmdpdGh1Yi52ZXJzaW9uOlIuZ2l0aHViLmZpbGVOYW1lO2lmKHR5cGVvZiBSLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKGJlKz0iIFx4QjcgIit5bihSLmdpdGh1Yi5zaXplKSksZGUudGV4dENvbnRlbnQ9YmUsdGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbmUpe3ZhciBTZT1SLmdpdGh1Yi52ZXJzaW9uP2coUi5naXRodWIudmVyc2lvbixzbik6MTttKG5lLFNlLFIuZ2l0aHViLmRvd25sb2FkVXJsLFIuZ2l0aHViLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIiwiZ2l0aHViIiwhMCl9fWlmKFIubG9jYWwmJnJlJiZNZSl7dmFyIEVlPVIubG9jYWwudmVyc2lvbj8idiIrUi5sb2NhbC52ZXJzaW9uOlIubG9jYWwuZmlsZU5hbWU7aWYodHlwZW9mIFIubG9jYWwuc2l6ZT09Im51bWJlciImJihFZSs9IiBceEI3ICIreW4oUi5sb2NhbC5zaXplKSksTWUudGV4dENvbnRlbnQ9RWUscmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikseWUpe3ZhciBvZT1SLmxvY2FsLnZlcnNpb24/ZyhSLmxvY2FsLnZlcnNpb24sc24pOjE7bSh5ZSxvZSxSLmxvY2FsLmRvd25sb2FkVXJsLFIubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLCJsb2NhbCIsITApfX0hUi5naXRodWImJiFSLmxvY2FsJiZwZSYmKHBlLnRleHRDb250ZW50PSJcdTY2ODJcdTY1RTBcdTUzRUZcdTc1MjhcdTY2RjRcdTY1QjAiLHBlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgdmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWF1dG8tdXBkYXRlLXJvdyIpLHN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1hdXRvLXVwZGF0ZS1oaW50Iik7dmUmJnZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHN0JiZzdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1lbHNle2lmKFIuZ2l0aHViJiZ0ZSYmZGUpe3ZhciBsdD1SLmdpdGh1Yi52ZXJzaW9uPyJ2IitSLmdpdGh1Yi52ZXJzaW9uOlIuZ2l0aHViLmZpbGVOYW1lO3R5cGVvZiBSLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKGx0Kz0iIFx4QjcgIit5bihSLmdpdGh1Yi5zaXplKSksZGUudGV4dENvbnRlbnQ9bHQsdGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbmUmJihuZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIixuZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxuZS5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93Lm9wZW4oUi5naXRodWIuZG93bmxvYWRVcmwsIl9ibGFuayIpLHYoIlx1NkI2M1x1NTcyOFx1NjI1M1x1NUYwMFx1NEUwQlx1OEY3RFx1OTg3NVx1MjAyNiIsImluZm8iKX0pfWlmKFIubG9jYWwmJnJlJiZNZSl7dmFyIHl0PVIubG9jYWwudmVyc2lvbj8idiIrUi5sb2NhbC52ZXJzaW9uOlIubG9jYWwuZmlsZU5hbWU7dHlwZW9mIFIubG9jYWwuc2l6ZT09Im51bWJlciImJih5dCs9IiBceEI3ICIreW4oUi5sb2NhbC5zaXplKSksTWUudGV4dENvbnRlbnQ9eXQscmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikseWUmJih5ZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIix5ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx5ZS5vbmNsaWNrPWZ1bmN0aW9uKCl7aChSLmxvY2FsLmRvd25sb2FkVXJsLFIubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLHllKX0pfSFSLmdpdGh1YiYmIVIubG9jYWwmJnBlJiYocGUudGV4dENvbnRlbnQ9T2U/Ilx1NTcyOFx1N0VCRlx1NzI0OFx1NjcyQ1x1NjY4Mlx1NjVGNlx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1NTNFRlx1N0EwRFx1NTQwRVx1OTFDRFx1OEJENSI6Im1hY09TIFx1NEUwQlx1OEY3RFx1NjcyQVx1NTcyOFx1NjcwRFx1NTJBMVx1N0FFRlx1NTQyRlx1NzUyOCIscGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfXZhciBJZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LWNvZGUiKSx6dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyIiksSmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xci1lbXB0eSIpLFJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItd3JhcCIpO2lmKEllKXtJZS50ZXh0Q29udGVudD0iXHU1MkEwXHU4RjdEXHU0RTJELi4uIixKZSYmKEplLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTRFMkRcdTIwMjYiKSx6dCYmKHp0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO3ZhciBxZT0iL2FwaS9hcHAtY29ubmVjdC1jb2RlIjt3aW5kb3cubG9jYXRpb24mJndpbmRvdy5sb2NhdGlvbi5vcmlnaW4mJihxZSs9Ij9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLm9yaWdpbikpLGZldGNoKHFlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihzZSl7cmV0dXJuIHNlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oc2Upe3NlLmNvZGU/KEllLnRleHRDb250ZW50PXNlLmNvZGUsci5hbmRyb2lkQ29ubmVjdENvZGU9c2UuY29kZSx0ZyhzZS5jb2RlKSk6KEllLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjUiLEplJiYoSmUudGV4dENvbnRlbnQ9Ilx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7SWUudGV4dENvbnRlbnQ9Ilx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNSIsSmUmJihKZS50ZXh0Q29udGVudD0iXHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1Iil9KX1SZSYmIVJlLmRhdGFzZXQuYm91bmQmJihSZS5kYXRhc2V0LmJvdW5kPSIxIixSZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmFuZHJvaWRDb25uZWN0Q29kZSYmbmcoci5hbmRyb2lkQ29ubmVjdENvZGUpfSkpO3ZhciBpZT1lLmNvbmZpZ3x8e30sY2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ob3N0Iiksdz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXBvcnQiKSxydD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWh0dHBzIiksVnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1tb2RlIiksaXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jd2QiKSx4dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXNoZWxsIik7Y2UmJihjZS52YWx1ZT1pZS5ob3N0fHwiIiksdyYmKHcudmFsdWU9aWUucG9ydHx8IiIpLHJ0JiYocnQuY2hlY2tlZD1pZS5odHRwcz09PSEwKSxWdCYmKFZ0LnZhbHVlPWllLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIpLGl0JiYoaXQudmFsdWU9aWUuZGVmYXVsdEN3ZHx8IiIpLHh0JiYoeHQudmFsdWU9aWUuc2hlbGx8fCIiKTt2YXIgU3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1sYW5ndWFnZSIpO1N0JiYoU3QudmFsdWU9aWUubGFuZ3VhZ2V8fCIiKTt2YXIgZHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciIpO2R0JiYoZHQudmFsdWU9aWUuc3RydWN0dXJlZFJ1bm5lcnx8ImNsaSIpO3ZhciBVdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWluaGVyaXQtZW52Iik7VXQmJihVdC5jaGVja2VkPWllLmluaGVyaXRFbnYhPT0hMSk7dmFyIFRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LWNsaSIpLFdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsIik7VGUmJihUZS52YWx1ZT1pZS5jb21taXRDbGk9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIpLFdlJiYoV2UudmFsdWU9aWUuY29tbWl0TW9kZWx8fCIiLFdlLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0idHJ1ZSIsV2UuZGF0YXNldC5tb2RlbERpcnR5PSJmYWxzZSIpLHppKCExKTt2YXIgemU9aWUuZGVmYXVsdE1vZGVscyYmdHlwZW9mIGllLmRlZmF1bHRNb2RlbHM9PSJvYmplY3QiP2llLmRlZmF1bHRNb2RlbHM6e2NsYXVkZTppZS5kZWZhdWx0TW9kZWx8fCIiLGNvZGV4OmllLmRlZmF1bHRDb2RleE1vZGVsfHwiIn07ci5jb25maWdEZWZhdWx0TW9kZWxzPXtjbGF1ZGU6emUuY2xhdWRlfHwiIixjb2RleDp6ZS5jb2RleHx8IiJ9LHIuY29uZmlnRGVmYXVsdE1vZGVsPXIuY29uZmlnRGVmYXVsdE1vZGVscy5jbGF1ZGU7dmFyIEl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpLEt0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIpO0l0JiZJdC5kYXRhc2V0Lm1vZGVsRGlydHkhPT0idHJ1ZSImJihJdC5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9ImZhbHNlIiksS3QmJkt0LmRhdGFzZXQubW9kZWxEaXJ0eSE9PSJ0cnVlIiYmKEt0LmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0iZmFsc2UiKSxWaSgpLExsKCkudGhlbihmdW5jdGlvbigpe1ZpKCl9KS5jYXRjaChmdW5jdGlvbigpe30pO3ZhciBKdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1zdGF0dXMiKTtKdCYmKEp0LnRleHRDb250ZW50PWUuaGFzQ2VydD8iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiOiJcdTY3MkFcdTVCODlcdTg4QzVcdThCQzFcdTRFNjZcdUZGMDhcdTRGN0ZcdTc1MjhcdTgxRUFcdTdCN0VcdTU0MERcdTYyMTYgSFRUUFx1RkYwOSIsSnQuc3R5bGUuY29sb3I9ZS5oYXNDZXJ0PyJ2YXIoLS1zdWNjZXNzKSI6InZhcigtLXRleHQtc2Vjb25kYXJ5KSIpO3ZhciBFbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlc2V0cy1saXN0Iik7aWYoRW4mJmllLmNvbW1hbmRQcmVzZXRzKXtmb3IodmFyIGN0PSIiLEZuPTA7Rm48aWUuY29tbWFuZFByZXNldHMubGVuZ3RoO0ZuKyspe3ZhciBWZT1pZS5jb21tYW5kUHJlc2V0c1tGbl07Y3QrPSc8ZGl2IGNsYXNzPSJwcmVzZXQtaXRlbSI+PHNwYW4gY2xhc3M9InByZXNldC1sYWJlbCI+JytwKFZlLmxhYmVsKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmVzZXQtZGV0YWlsIj4nK3AoVmUuY29tbWFuZCkrKFZlLm1vZGU/IiAoIitwKFZlLm1vZGUpKyIpIjoiIikrIjwvc3Bhbj48L2Rpdj4ifWN0fHwoY3Q9JzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLWNvbXBhY3QiPjxzcGFuIGNsYXNzPSJlbXB0eS1pY29uIj5cdTI2OTk8L3NwYW4+PHNwYW4+XHU2Q0ExXHU2NzA5XHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFPC9zcGFuPjxzcGFuIGNsYXNzPSJoaW50Ij5cdTU3MjggY29uZmlnLmpzb24gXHU3Njg0IGNvbW1hbmRQcmVzZXRzIFx1NEUyRFx1OTE0RFx1N0Y2RTwvc3Bhbj48L2Rpdj4nKSxFbi5pbm5lckhUTUw9Y3R9dmFyIFVlPWllLmNhcmREZWZhdWx0c3x8e30sQmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWVkaXQiKSxmdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtaW5saW5lIikscHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRlcm1pbmFsIiksd249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRoaW5raW5nIiksQ249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRvb2xncm91cCIpO0JlJiYoQmUuY2hlY2tlZD1VZS5lZGl0Q2FyZHM9PT0hMCksZnQmJihmdC5jaGVja2VkPVVlLmlubGluZVRvb2xzPT09ITApLHB0JiYocHQuY2hlY2tlZD1VZS50ZXJtaW5hbD09PSEwKSx3biYmKHduLmNoZWNrZWQ9VWUudGhpbmtpbmc9PT0hMCksQ24mJihDbi5jaGVja2VkPVVlLnRvb2xHcm91cD09PSEwKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gaWcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlnLW1lc3NhZ2UiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLnRleHRDb250ZW50PSIiKTt2YXIgdD0oKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiKS50cmltKCksbj0oKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiKS50cmltKCksaT0oKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsIil8fHt9KS52YWx1ZXx8IiIpLnRyaW0oKSxhPXtob3N0Oihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhvc3QiKXx8e30pLnZhbHVlLHBvcnQ6TnVtYmVyKChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXBvcnQiKXx8e30pLnZhbHVlKSxodHRwczooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpfHx7fSkuY2hlY2tlZCxkZWZhdWx0TW9kZTooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1tb2RlIil8fHt9KS52YWx1ZSxkZWZhdWx0Q3dkOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWN3ZCIpfHx7fSkudmFsdWUsc2hlbGw6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc2hlbGwiKXx8e30pLnZhbHVlLGxhbmd1YWdlOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWxhbmd1YWdlIil8fHt9KS52YWx1ZXx8IiIsZGVmYXVsdE1vZGVsOnQsZGVmYXVsdENvZGV4TW9kZWw6bixkZWZhdWx0TW9kZWxzOntjbGF1ZGU6dCxjb2RleDpufSxjb21taXRDbGk6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LWNsaSIpfHx7fSkudmFsdWU9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsY29tbWl0TW9kZWw6aSxzdHJ1Y3R1cmVkUnVubmVyOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXN0cnVjdHVyZWQtcnVubmVyIil8fHt9KS52YWx1ZXx8ImNsaSIsaW5oZXJpdEVudjooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpfHx7fSkuY2hlY2tlZCE9PSExfSx1PXZ1KCksbz1hLmRlZmF1bHRNb2RlbHx8IiIscz1hLmRlZmF1bHRDb2RleE1vZGVsfHwiIjtmZXRjaCgiL2FwaS9zZXR0aW5ncy9jb25maWciLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGEpfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGUmJihsLmVycm9yPyhlLnRleHRDb250ZW50PWwuZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIik6KGUudGV4dENvbnRlbnQ9bC5yZXN0YXJ0UmVxdWlyZWQ/Ilx1OTE0RFx1N0Y2RVx1NURGMlx1NEZERFx1NUI1OFx1RkYwQ1x1OTBFOFx1NTIwNlx1OTBFOFx1N0Y3Mlx1NUI1N1x1NkJCNVx1RkYwOGhvc3QvcG9ydC9odHRwcy9zaGVsbFx1RkYwOVx1OTcwMFx1ODk4MVx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1NjI0RFx1NzUxRlx1NjU0OFx1MzAwMiI6Ilx1OTE0RFx1N0Y2RVx1NURGMlx1NEZERFx1NUI1OFx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhbHx8IWwuZXJyb3Ipe3IuY29uZmlnJiYoci5jb25maWcuZGVmYXVsdE1vZGVsPW8sci5jb25maWcuZGVmYXVsdENvZGV4TW9kZWw9cyxyLmNvbmZpZy5kZWZhdWx0TW9kZWxzPXtjbGF1ZGU6byxjb2RleDpzfSxyLmNvbmZpZy5jb21taXRDbGk9YS5jb21taXRDbGksci5jb25maWcuY29tbWl0TW9kZWw9YS5jb21taXRNb2RlbCksci5jb25maWdEZWZhdWx0TW9kZWxzPXtjbGF1ZGU6byxjb2RleDpzfSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD1vO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpLGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIik7ZCYmKGQuZGF0YXNldC5tb2RlbERpcnR5PSJmYWxzZSIpLGYmJihmLmRhdGFzZXQubW9kZWxEaXJ0eT0iZmFsc2UiKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbCIpO2MmJihjLmRhdGFzZXQubW9kZWxEaXJ0eT0iZmFsc2UiKSxvIT09dS5jbGF1ZGUmJm11KCJjbGF1ZGUiLCIiKSxzIT09dS5jb2RleCYmbXUoImNvZGV4IiwiIiksKG8hPT11LmNsYXVkZXx8cyE9PXUuY29kZXgpJiZ0cih1dCgpKX19KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX1mdW5jdGlvbiBhZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXNwbGF5LW1lc3NhZ2UiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLnRleHRDb250ZW50PSIiKTt2YXIgdD17Y2FyZERlZmF1bHRzOntlZGl0Q2FyZHM6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWVkaXQiKXx8e30pLmNoZWNrZWQsaW5saW5lVG9vbHM6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWlubGluZSIpfHx7fSkuY2hlY2tlZCx0ZXJtaW5hbDohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGVybWluYWwiKXx8e30pLmNoZWNrZWQsdGhpbmtpbmc6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRoaW5raW5nIil8fHt9KS5jaGVja2VkLHRvb2xHcm91cDohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdG9vbGdyb3VwIil8fHt9KS5jaGVja2VkfX07ZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtlJiYobi5lcnJvcj8oZS50ZXh0Q29udGVudD1uLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIpOihlLnRleHRDb250ZW50PSJcdTY2M0VcdTc5M0FcdThCQkVcdTdGNkVcdTVERjJcdTRGRERcdTVCNTgiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksIW4uZXJyb3ImJnIuY29uZmlnJiYoci5jb25maWcuY2FyZERlZmF1bHRzPXQuY2FyZERlZmF1bHRzKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pfWZ1bmN0aW9uIHVnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQta2V5LWZpbGUiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LWNlcnQtZmlsZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtbWVzc2FnZSIpO2lmKG4mJihuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4udGV4dENvbnRlbnQ9IiIpLCFlfHwhZS5maWxlc3x8IWUuZmlsZXNbMF18fCF0fHwhdC5maWxlc3x8IXQuZmlsZXNbMF0pe24mJihuLnRleHRDb250ZW50PSJcdThCRjdcdTkwMDlcdTYyRTlcdTc5QzFcdTk0QTVcdTU0OENcdThCQzFcdTRFNjZcdTY1ODdcdTRFRjZcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7cmV0dXJufXZhciBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGE9aS5yZXN1bHQsdT1uZXcgRmlsZVJlYWRlcjt1Lm9ubG9hZD1mdW5jdGlvbigpe3ZhciBvPXUucmVzdWx0O2ZldGNoKCIvYXBpL3NldHRpbmdzL3VwbG9hZC1jZXJ0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7a2V5OmEsY2VydDpvfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYobil7aWYocy5lcnJvciluLnRleHRDb250ZW50PXMuZXJyb3Isbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIjtlbHNle24udGV4dENvbnRlbnQ9Ilx1OEJDMVx1NEU2Nlx1NURGMlx1NEUwQVx1NEYyMFx1RkYwQ1x1OTFDRFx1NTQyRlx1NTQwRVx1NzUxRlx1NjU0OFx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LXN0YXR1cyIpO2wmJihsLnRleHRDb250ZW50PSJcdTVERjJcdTVCODlcdTg4QzUgU1NMIFx1OEJDMVx1NEU2NiIsbC5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKX1uLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNVx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pfSx1LnJlYWRBc1RleHQodC5maWxlc1swXSl9LGkucmVhZEFzVGV4dChlLmZpbGVzWzBdKX1mdW5jdGlvbiBLbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpO2UmJihlLnRleHRDb250ZW50PSJcdTY4QzBcdTY3RTVcdTRFMkQuLi4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZmV0Y2goIi9hcGkvY2hlY2stdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpLmVycm9yKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU1OTMxXHU4RDI1Iik7cmV0dXJufXZhciBhPWkuY2hhbm5lbD09PSJiZXRhIjtpZihlJiYoZS50ZXh0Q29udGVudD1pLmxhdGVzdHx8KGE/ImJldGEgXHU2NzJBXHU1M0QxXHU1RTAzIjoiLSIpKSwhaS5sYXRlc3Qpe24mJihuLnRleHRDb250ZW50PWE/Ilx1NjVFMFx1NkNENVx1OEJGQlx1NTNENiBucG0gYmV0YSBcdTcyNDhcdTY3MkNcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzAgbnBtIHJlZ2lzdHJ5XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3JldHVybn1pLnVwZGF0ZUF2YWlsYWJsZSYmdCYmKHQudGV4dENvbnRlbnQ9YT8iXHU2NkY0XHU2NUIwXHU1MjMwIEJldGEiOiJcdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDgiLHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCFpLnVwZGF0ZUF2YWlsYWJsZSYmbiYmKG4udGV4dENvbnRlbnQ9YT8iXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwIEJldGEgXHU3MjQ4XHU2NzJDXHUzMDAyIjoiXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwXHU3MjQ4XHU2NzJDXHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTY4QzBcdTY3RTVcdTU5MzFcdThEMjUiKX0pfWZ1bmN0aW9uIG9nKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1tZXNzYWdlIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO3QmJih0LmRpc2FibGVkPSEwLGUmJihlLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjBcdUZGMENcdThCRjdcdTdBMERcdTUwMTkuLi4iLGUuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksZmV0Y2goIi9hcGkvdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobi5lcnJvcil7ZSYmKGUudGV4dENvbnRlbnQ9bi5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHQuZGlzYWJsZWQ9ITE7cmV0dXJufWlmKGUmJihlLnRleHRDb250ZW50PShuLm1lc3NhZ2V8fCJcdTY2RjRcdTY1QjBcdTVCOENcdTYyMTAiKSsiXHVGRjBDXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUyMDI2IixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuLmRldGFjaGVkVXBkYXRlKWxuKCk7ZWxzZSBpZihuLnJlc3RhcnRSZXF1aXJlZCE9PSExKXZzKG51bGwsZSk7ZWxzZXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tcmVzdGFydC1idXR0b24iKTtpJiZpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjZGNFx1NjVCMFx1NTkzMVx1OEQyNVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSx0LmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIHNnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKTt2cyhlLHQpfWZ1bmN0aW9uIGxnKCl7ZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUuYXBrKXJldHVybiBmZXRjaCgiL2FwaS9hbmRyb2lkLWFway11cGRhdGU/Y3VycmVudFZlcnNpb249IitlbmNvZGVVUklDb21wb25lbnQoTW4pLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCEoIXQudXBkYXRlQXZhaWxhYmxlfHwhdC5kb3dubG9hZFVybCkpdHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUodC5kb3dubG9hZFVybCx0LmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIix0LnNvdXJjZXx8ImxvY2FsIil9Y2F0Y2h7fX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBkZygpe3NuJiZmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZS5kbWcpcmV0dXJuIGZldGNoKCIvYXBpL21hY29zLWRtZy11cGRhdGU/Y3VycmVudFZlcnNpb249IitlbmNvZGVVUklDb21wb25lbnQoc24pLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCEoIXQudXBkYXRlQXZhaWxhYmxlfHwhdC5kb3dubG9hZFVybCkpdHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUodC5kb3dubG9hZFVybCx0LmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIix0LnNvdXJjZXx8ImxvY2FsIil9Y2F0Y2h7fX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBEdShlLHQpe3ZhciBuPXt9O25bZV09dCxmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobil9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKSx1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2EmJihhLmNoZWNrZWQ9ISFpLndlYiksdSYmKHUuY2hlY2tlZD0hIWkuYXBrKSxvJiYoby5jaGVja2VkPSEhaS5kbWcpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtIitlKyItdG9nZ2xlIik7aSYmKGkuY2hlY2tlZD0hdCl9KX1mdW5jdGlvbiBjZyhlKXtmZXRjaCgiL2FwaS91cGRhdGUtY2hhbm5lbCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NoYW5uZWw6ZX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7biYmKG4uY2hlY2tlZD10LmNoYW5uZWw9PT0iYmV0YSIpLEtsKCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7dCYmKHQuY2hlY2tlZD1lIT09ImJldGEiKX0pfWZ1bmN0aW9uIEpsKGUpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIik9PT1lO3Rbbl0uY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLGkpLHRbbl0uc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLGk/InRydWUiOiJmYWxzZSIpfX1mdW5jdGlvbiBibigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcGVybWlzc2lvbi1zdGF0dXMiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVzZXQtYnRuIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO2lmKGUpe3ZhciBhPXlpKCk7aWYoYT09PW51bGwpe2lmKHR5cGVvZiBOb3RpZmljYXRpb24+InUiKXtlLnRleHRDb250ZW50PSJcdTRFMERcdTY1MkZcdTYzMDEiLGUuc3R5bGUuY29sb3I9InZhcigtLWZnLW11dGVkKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3JldHVybn1hPU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9ufWE9PT0iZ3JhbnRlZCI/KGUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjM4OFx1Njc0MyBcdTI3MTMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpOmE9PT0iZGVuaWVkIj8oZS50ZXh0Q29udGVudD0iXHU1REYyXHU2MkQyXHU3RUREIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1kYW5nZXIpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihlLnRleHRDb250ZW50PSJcdTY3MkFcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXdhcm5pbmcpIix0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfX1mdW5jdGlvbiBmZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIik7aWYoX2Upe3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKHQpe2JuKCksZSYmKHQ9PT0iZ3JhbnRlZCI/KGUudGV4dENvbnRlbnQ9Ilx1MjcxMyBcdTVERjJcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIik6KGUudGV4dENvbnRlbnQ9Ilx1MjcxNyBcdTY3MkFcdTYzODhcdTY3NDNcdUZGMENcdThCRjdcdTU3MjhcdTdDRkJcdTdFREZcdThCQkVcdTdGNkVcdTRFMkRcdTVGMDBcdTU0MkYgV2FuZCBcdTc2ODRcdTkwMUFcdTc3RTVcdTY3NDNcdTk2NTAiLGUuc3R5bGUuY29sb3I9InZhcigtLWRhbmdlcikiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10eXBlb2YgTm90aWZpY2F0aW9uPiJ1Inx8Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbih0KXtpZihibigpLHQ9PT0iZ3JhbnRlZCIpZSYmKGUudGV4dENvbnRlbnQ9Ilx1MjcxMyBcdTVERjJcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtlbHNlIGlmKHQ9PT0iZGVuaWVkIiYmZSl7dmFyIG49bG9jYXRpb24ub3JpZ2luO2UuaW5uZXJIVE1MPSdcdTZENEZcdTg5QzhcdTU2NjhcdTVERjJcdTYyRTZcdTYyMkFcdTYzODhcdTY3NDNcdTVGMzlcdTdBOTdcdUZGMENcdThCRjdcdTYyNEJcdTUyQThcdTkxQ0RcdTdGNkVcdUZGMUE8YnI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7bWFyZ2luOjRweCAwIj5cdTI0NjAgXHU3MEI5XHU1MUZCXHU1NzMwXHU1NzQwXHU2ODBGXHU1REU2XHU0RkE3XHU3Njg0IDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2ZvbnQtc2l6ZToxMXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSI+aTwvc3Bhbj4gXHU2MjE2XHU5NTAxXHU1NkZFXHU2ODA3PC9zcGFuPjxicj5cdTI0NjEgXHU2MjdFXHU1MjMwXHUzMDBDXHU5MDFBXHU3N0U1XHUzMDBEXHUyMTkyIFx1NjUzOVx1NEUzQVx1MzAwQ1x1NTE0MVx1OEJCOFx1MzAwRDxicj5cdTI0NjIgXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHU1MzczXHU1M0VGJyxlLnN0eWxlLmNvbG9yPSJ2YXIoLS1mZy1tdXRlZCkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fSl9ZnVuY3Rpb24gWWwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITEsZS50ZXh0Q29udGVudD0iMTAgXHU3OUQyXHU1NDBFXHU1M0QxXHU5MDAxIil9ZnVuY3Rpb24gcGcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO3IuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7dCYmKHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU1REYyXHU1Qjg5XHU2MzkyXHVGRjA4MTBzXHVGRjA5IiksZSYmKGUuaW5uZXJIVE1MPSJcdTVERjJcdTVCODlcdTYzOTIgMTAgXHU3OUQyXHU1NDBFXHU1M0QxXHU5MDAxXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1XHVGRjBDXHU4QkY3XHU1MjA3XHU1MjMwXHU1NDBFXHU1M0YwXHU3QjQ5XHU1Rjg1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsLFlsKCksR2woKX0sMWU0KX1mdW5jdGlvbiBHbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIiksdD1bXTtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciYmKGNsZWFyVGltZW91dChyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCxZbCgpKTt2YXIgbj0kZigpO3QucHVzaChuPyJcdTI3MTMgXHU2M0QwXHU3OTNBXHU5N0YzIjoiXHUyNzE3IFx1NjNEMFx1NzkzQVx1OTdGM1x1RkYwOFx1NjVFMFx1NkNENVx1NjRBRFx1NjUzRVx1RkYwOSIpO3ZhciBpPXIubm90aWZCdWJibGU7aWYoVGEoe3RpdGxlOiJcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLGJvZHk6Ilx1OEZEOVx1NjYyRlx1NEUwMFx1Njc2MVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNVx1MzAwMiIsdHlwZToiaW5mbyIsaWNvbjoiXHUyNjZBIixkdXJhdGlvbjo1ZTMscGxheVNvdW5kOiExfSksdC5wdXNoKGk/Ilx1MjcxMyBcdTVFOTRcdTc1MjhcdTUxODVcdTZDMTRcdTZDRTEiOiJcdTIwMTMgXHU1RTk0XHU3NTI4XHU1MTg1XHU2QzE0XHU2Q0UxXHVGRjA4XHU1REYyXHU1MTczXHU5NUVEXHVGRjA5IiksX2Upe3ZhciBhPXlpKCk7aWYoYT09PSJncmFudGVkIil0cnl7V2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsIlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsIndhbmQtdGVzdCIpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwOSIpfWVsc2UgaWYoYT09PSJkZW5pZWQiKXQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjJEMlx1N0VERFx1RkYwQ1x1OEJGN1x1NTcyOFx1N0NGQlx1N0VERlx1OEJCRVx1N0Y2RVx1NEUyRFx1NUYwMFx1NTQyRlx1RkYwOSIpO2Vsc2V7d2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHQ9ZnVuY3Rpb24ocyl7aWYoYm4oKSxzPT09ImdyYW50ZWQiKXRyeXtXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1IiwiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIiwid2FuZC10ZXN0IiksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2Mzg4XHU2NzQzXHVGRjA5Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjA5Iil9ZWxzZSB0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTY3MkFcdTYzODhcdTY3NDNcdUZGMDkiKTtpcihlLHQpLGRlbGV0ZSB3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdH07dHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJufWlyKGUsdCk7cmV0dXJufWlmKHR5cGVvZiBOb3RpZmljYXRpb24+InUiKXt0LnB1c2goIlx1MjAxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTRFMERcdTY1MkZcdTYzMDFcdUZGMDkiKSxpcihlLHQpO3JldHVybn12YXIgdT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbjtpZih1PT09ImdyYW50ZWQiKXt0cnl7dmFyIG89bmV3IE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLHtib2R5OiJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLGljb246Ii9mYXZpY29uLmljbyIsdGFnOiJ3YW5kLXRlc3QifSk7c2V0VGltZW91dChmdW5jdGlvbigpe28uY2xvc2UoKX0sNWUzKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTUiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTgwRkRcdTk3MDBcdTg5ODEgSFRUUFNcdUZGMDkiKX1pcihlLHQpfWVsc2UgdT09PSJkZW5pZWQiPyh0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYyRDJcdTdFRERcdUZGMDkiKSxpcihlLHQpKTpOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKGZ1bmN0aW9uKHMpe2JuKCkscz09PSJncmFudGVkIj90LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYzODhcdTY3NDNcdUZGMDkiKTp0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTY3MkFcdTYzODhcdTY3NDNcdUZGMDkiKSxpcihlLHQpfSl9ZnVuY3Rpb24gaXIoZSx0KXtpZihlKXtlLmlubmVySFRNTD10Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gcChpKX0pLmpvaW4oIjxicj4iKTt2YXIgbj10LmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpLmluZGV4T2YoIlx1MjcxMyIpPT09MHx8aS5pbmRleE9mKCJcdTIwMTMiKT09PTB9KTtlLnN0eWxlLmNvbG9yPW4/InZhcigtLXN1Y2Nlc3MpIjoidmFyKC0td2FybmluZykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fWZ1bmN0aW9uIG90KGUpe2lmKCFlfHx0eXBlb2YgZSE9Im9iamVjdCJ8fCFyLnRlcm1pbmFsKXJldHVybiBlO3RyeXt0eXBlb2Ygci50ZXJtaW5hbC5yZW1lYXN1cmU9PSJmdW5jdGlvbiImJnIudGVybWluYWwucmVtZWFzdXJlKCl9Y2F0Y2h7fXZhciB0PXIudGVybWluYWwuY29scyxuPXIudGVybWluYWwucm93cztyZXR1cm4gdHlwZW9mIHQ9PSJudW1iZXIiJiZ0eXBlb2Ygbj09Im51bWJlciImJk51bWJlci5pc0Zpbml0ZSh0KSYmTnVtYmVyLmlzRmluaXRlKG4pJiZ0PjAmJm4+MCYmKGUuY29scz10LGUucm93cz1uKSxlfWZ1bmN0aW9uIFFsKCl7cmV0dXJuIHIudGVybWluYWwmJnIudGVybWluYWwuY29scz9Qcm9taXNlLnJlc29sdmUoKTpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgdD0hMSxuPWZ1bmN0aW9uKCl7dHx8KHQ9ITAsZSgpKX0saT1zZXRUaW1lb3V0KG4sMmUzKTt0cnl7UW4oKX1jYXRjaHt9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5jb2xzJiYoY2xlYXJUaW1lb3V0KGkpLG4oKSl9KX0pfSl9ZnVuY3Rpb24gJGwoKXt2YXIgZT0kZSgpLHQ9UWUoKSxuPUF0KGUsci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlP3IuY29uZmlnLmRlZmF1bHRNb2RlOiJkZWZhdWx0Iik7ci5wcmVmZXJyZWRDb21tYW5kPWUsci5jaGF0TW9kZT1BdChlLHIuY2hhdE1vZGUpLFFsKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkob3Qoe2NvbW1hbmQ6ZSxwcm92aWRlcjplLGN3ZDp0LG1vZGU6bn0pKX0pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe0EoaS5lcnJvciwiZXJyb3IiKTtyZXR1cm59cmV0dXJuIHIuc2VsZWN0ZWRJZD1pLmlkLGhlKCksci5kcmFmdHNbaS5pZF09IiIsQ3QoKSxIdCgpfSkudGhlbihmdW5jdGlvbigpe090KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKCl7QSgiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfXZhciBVcj0hMTtmdW5jdGlvbiB2Zygpe2lmKCFVcil7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsLWVycm9yIiksbj0kZSgpLGk9ci5zZXNzaW9uQ3JlYXRlS2luZHx8InN0cnVjdHVyZWQiLGE9ci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9PT0hMDtoaSh0KTt2YXIgdT1RZSgpLG89KGU/ZS52YWx1ZS50cmltKCk6IiIpfHx1LHM9QXQobixyLm1vZGVWYWx1ZSk7aWYoaT09PSJzdHJ1Y3R1cmVkIil7bWcobyxzLGEsdCk7cmV0dXJufWdnKG4sbyxzLGEsdCl9fWZ1bmN0aW9uIG1nKGUsdCxuLGkpe3ZhciBhPXIuc2Vzc2lvblRvb2w9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSI7cmV0dXJuIFVyPSEwLHIubW9kZVZhbHVlPXQsci5jaGF0TW9kZT10LHIuc2Vzc2lvblRvb2w9YSxyLnByZWZlcnJlZENvbW1hbmQ9YSxPaSgpLHRyKHV0KCkpLGpsKHZvaWQgMCxlLHQsbikudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gWHQoZSksaG4oKSxqdCgpLHV9KS50aGVuKGZ1bmN0aW9uKCl7T3QoITApfSkuY2F0Y2goZnVuY3Rpb24odSl7UGUoaSx1JiZ1Lm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTdFRDNcdTY3ODRcdTUzMTZcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgQ2xhdWRlIFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1MzAwMiIpfSkuZmluYWxseShmdW5jdGlvbigpe1VyPSExfSl9ZnVuY3Rpb24gZ2coZSx0LG4saSxhKXtVcj0hMCxyLm1vZGVWYWx1ZT1uLHIuY2hhdE1vZGU9bixyLnNlc3Npb25Ub29sPWUsci5wcmVmZXJyZWRDb21tYW5kPWUsT2koKSxRbCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG90KHtjb21tYW5kOmUscHJvdmlkZXI6ZSxjd2Q6dCxtb2RlOm4sd29ya3RyZWVFbmFibGVkOml9KSl9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbih1KXtpZih1LmVycm9yKXtQZShhLHUuZXJyb3IpO3JldHVybn1yZXR1cm4gci5zZWxlY3RlZElkPXUuaWQsaGUoKSxYdCh0KSxyLmRyYWZ0c1t1LmlkXT0iIixDdCgpLGhuKCksanQoKSxIdCgpfSkudGhlbihmdW5jdGlvbigpe3Iuc2VsZWN0ZWRJZD9OdChyLnNlbGVjdGVkSWQpOk90KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKCl7UGUoYSxlPT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1Nzg2RVx1OEJBNCBjb2RleCBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTVFNzZcdTUzRUZcdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdTYyNjdcdTg4NENcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1Nzg2RVx1OEJBNCBDbGF1ZGUgXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHUzMDAyIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7VXI9ITF9KX1mdW5jdGlvbiBoZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZCIpO2UmJihlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYbCksZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXsodC5rZXk9PT0iRW50ZXIifHx0LmtleT09PSIgIikmJih0LnByZXZlbnREZWZhdWx0KCksWGwoKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIik7aWYoISghbnx8bi5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKSYmIXQudGFyZ2V0LmNsb3Nlc3QoIi5ibGFuay1jaGF0LWN3ZC13cmFwIikpe24uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWFycm93Iik7aSYmKGkudGV4dENvbnRlbnQ9Ilx1MjVCQyIpfX0pKX1mdW5jdGlvbiBYbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1kcm9wZG93biIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWFycm93Iik7aWYoZSl7dmFyIG49ZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpO24/KHlnKGUpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1MjVCMiIpKTooZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiYodC50ZXh0Q29udGVudD0iXHUyNUJDIikpfX1mdW5jdGlvbiB5ZyhlKXt2YXIgdD1hbigpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkQuLi48L2Rpdj4nLHdhKGZ1bmN0aW9uKG4pe3ZhciBpPSIiLGE9ci53b3JraW5nRGlyfHx0O2lmKGkrPSc8ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pdGVtJysoYT09PXQ/IiBhY3RpdmUiOiIiKSsnIiBkYXRhLXBhdGg9IicrcCh0KSsnIj48c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbS1sYWJlbCI+XHU5RUQ4XHU4QkE0PC9zcGFuPicrZ3QodCwiYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoIikrIjwvZGl2PiIsbi5sZW5ndGgpe3ZhciB1PXt9O3VbdF09ITAsbi5mb3JFYWNoKGZ1bmN0aW9uKG8pe3Vbby5wYXRoXXx8KHVbby5wYXRoXT0hMCxpKz0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbScrKGE9PT1vLnBhdGg/IiBhY3RpdmUiOiIiKSsnIiBkYXRhLXBhdGg9IicrcChvLnBhdGgpKyciPicrZ3Qoby5wYXRoLCJibGFuay1jaGF0LWN3ZC1pdGVtLXBhdGgiKSsiPC9kaXY+Iil9KX1lLmlubmVySFRNTD1pLFd0KGUpLGUucXVlcnlTZWxlY3RvckFsbCgiLmJsYW5rLWNoYXQtY3dkLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHMpe3Muc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGw9by5kYXRhc2V0LnBhdGg7ci53b3JraW5nRGlyPWw7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXdvcmtpbmctZGlyIixsKX1jYXRjaHt9dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLXBhdGgiKTtNdShkLGwpLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWFycm93Iik7ZiYmKGYudGV4dENvbnRlbnQ9Ilx1MjVCQyIpO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWlucHV0Iik7YyYmKGMudmFsdWU9bCl9KX0pfSl9ZnVuY3Rpb24gYmcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjZW50LXBhdGhzLWJ1YmJsZXMiKTtlJiZ3YShmdW5jdGlvbih0KXtpZighdC5sZW5ndGgpe2UuaW5uZXJIVE1MPSIiO3JldHVybn1lLmlubmVySFRNTD10Lm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0icmVjZW50LXBhdGgtYnViYmxlIiBkYXRhLXBhdGg9IicrcChuLnBhdGgpKyciIHRpdGxlPSInK3Aobi5wYXRoKSsnIj4nK2d0KG4ucGF0aCwicmVjZW50LXBhdGgtYnViYmxlLXBhdGgiKSsiPC9idXR0b24+In0pLmpvaW4oIiIpLFd0KGUpLGUucXVlcnlTZWxlY3RvckFsbCgiLnJlY2VudC1wYXRoLWJ1YmJsZSIpLmZvckVhY2goZnVuY3Rpb24obil7bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7aSYmKGkudmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHIuY3dkVmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiKX0pfSl9KX1mdW5jdGlvbiBabCgpe3Iuc3VnZ2VzdGlvblRpbWVyJiZjbGVhclRpbWVvdXQoci5zdWdnZXN0aW9uVGltZXIpLHIuc3VnZ2VzdGlvblRpbWVyPXNldFRpbWVvdXQoRWcsMTIwKX1mdW5jdGlvbiBFZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYoZSYmZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXthcigpO3JldHVybn12YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7dCYmZmV0Y2goIi9hcGkvcGF0aC1zdWdnZXN0aW9ucz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQudmFsdWUudHJpbSgpKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihGZykuY2F0Y2goYXIpfWZ1bmN0aW9uIEZnKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2Qtc3VnZ2VzdGlvbnMiKTtpZighdHx8IWUubGVuZ3RoKXthcigpO3JldHVybn10LmlubmVySFRNTD1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic3VnZ2VzdGlvbi1pdGVtIiBkYXRhLXBhdGg9IicrcChuLnBhdGgpKyciPjxzdHJvbmc+JytwKG4ubmFtZSkrIjwvc3Ryb25nPjxzbWFsbD4iK2d0KG4ucGF0aCwic3VnZ2VzdGlvbi1pdGVtLXBhdGgiKSsiPC9zbWFsbD48L2J1dHRvbj4ifSkuam9pbigiIiksV3QodCksdC5xdWVyeVNlbGVjdG9yQWxsKCIuc3VnZ2VzdGlvbi1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihuKXtuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKS52YWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIsci5jd2RWYWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIsYXIoKX0pfSksdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1mdW5jdGlvbiBhcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2Qtc3VnZ2VzdGlvbnMiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmlubmVySFRNTD0iIil9ZnVuY3Rpb24gd2coZSl7aWYoIWUuaXNDb21wb3Npbmcpe2lmKFRzKGUpKXtVYShlKTtyZXR1cm59aWYoZS5rZXk9PT0iRW50ZXIiKXtpZihlLnNoaWZ0S2V5KXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKHQpe3ZhciBuPXQuc2VsZWN0aW9uU3RhcnR8fDAsaT10LnZhbHVlLGE9aS5zbGljZSgwLG4pK2AKYCtpLnNsaWNlKG4pO3QudmFsdWU9YSx0LnNlbGVjdGlvblN0YXJ0PW4rMSx0LnNlbGVjdGlvbkVuZD1uKzEsWmUoYSwhMCksQnQodCl9cmV0dXJufWUucHJldmVudERlZmF1bHQoKTt2YXIgdT0hIShlLm1ldGFLZXl8fGUuY3RybEtleSk7d3ModT97aW50ZXJydXB0OiEwfTp2b2lkIDApO3JldHVybn1pZihlLmtleT09PSJCYWNrc3BhY2UiKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO20mJlplKG0udmFsdWUsITApfSwwKTtyZXR1cm59aWYoZS5rZXk9PT0iVGFiIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih0KXt2YXIgbj10LnNlbGVjdGlvblN0YXJ0fHwwLGk9dC52YWx1ZSxhPWkuc2xpY2UoMCxuKSsiCSIraS5zbGljZShuKTt0LnZhbHVlPWEsWmUoYSwhMCl9cmV0dXJufWlmKGUua2V5PT09IkVzY2FwZSIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbz11dCgpO3VlKG8pP28mJm8uc3RydWN0dXJlZFN0YXRlJiZvLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmS2EoKTptdChUcigiZXNjYXBlIiksImVzY2FwZSIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImMiKXt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksbD1zJiZzLnNlbGVjdGlvblN0YXJ0IT09cy5zZWxlY3Rpb25FbmR8fEJpKCk7aWYobClyZXR1cm47dmFyIGQ9dXQoKTtpZih1ZShkKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGQmJmQuc3RydWN0dXJlZFN0YXRlJiZkLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmS2EoKTtyZXR1cm59ZS5wcmV2ZW50RGVmYXVsdCgpLG10KFRyKCJjdHJsX2MiKSwiY3RybF9jIik7cmV0dXJufWlmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0iZCIpe3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxjPWYmJmYuc2VsZWN0aW9uU3RhcnQhPT1mLnNlbGVjdGlvbkVuZHx8QmkoKTtpZihjKXJldHVybjt2YXIgdj11dCgpO2lmKHVlKHYpKXtlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWUucHJldmVudERlZmF1bHQoKSxtdChUcigiY3RybF9kIiksImN0cmxfZCIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImwiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGg9dXQoKTtpZih1ZShoKSlyZXR1cm47bXQoVHIoImN0cmxfbCIpLCJjdHJsX2wiKTtyZXR1cm59aWYoISgoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImEiKSYmISgoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09InYiKSl7aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJ4Iil7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGc9dCYmdC5zZWxlY3Rpb25TdGFydCE9PXQuc2VsZWN0aW9uRW5kO2lmKGcpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxtdCgiGCIsImN0cmxfeCIpO3JldHVybn1lLmtleS5sZW5ndGg9PT0xJiYhZS5jdHJsS2V5JiYhZS5tZXRhS2V5JiYhZS5hbHRLZXkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmWmUobS52YWx1ZSl9LDApfX19dmFyIENnPTEwKjEwMjQqMTAyNDtmdW5jdGlvbiBCZyhlKXtyZXR1cm4gZTwxMDI0P2UrIiBCIjplPDEwMjQqMTAyND8oZS8xMDI0KS50b0ZpeGVkKDEpKyIgS0IiOihlLygxMDI0KjEwMjQpKS50b0ZpeGVkKDEpKyIgTUIifWZ1bmN0aW9uIERnKGUpe3JldHVybi9eaW1hZ2VcLyhwbmd8anBlP2d8Z2lmfHdlYnB8Ym1wfHN2Z1wreG1sKS8udGVzdChlKX1mdW5jdGlvbiBrdShlKXtpZihlKXtpZihlLnNpemU+Q2cpe0EoIlx1NjU4N1x1NEVGNlx1OEZDN1x1NTkyN1x1RkYwOFx1NEUwQVx1OTY1MCAxMCBNQlx1RkYwOTogIitlLm5hbWUsImVycm9yIik7cmV0dXJufXZhciB0PXtmaWxlOmUsbmFtZTplLm5hbWUsc2l6ZTplLnNpemUscHJldmlld1VybDpudWxsfTtEZyhlLnR5cGUpJiYodC5wcmV2aWV3VXJsPVVSTC5jcmVhdGVPYmplY3RVUkwoZSkpLHIucGVuZGluZ0F0dGFjaG1lbnRzLnB1c2godCksQXUoKX19ZnVuY3Rpb24ga2coZSl7dmFyIHQ9ci5wZW5kaW5nQXR0YWNobWVudHMuc3BsaWNlKGUsMSk7dC5sZW5ndGgmJnRbMF0ucHJldmlld1VybCYmVVJMLnJldm9rZU9iamVjdFVSTCh0WzBdLnByZXZpZXdVcmwpLEF1KCl9ZnVuY3Rpb24gQWcoKXtyLnBlbmRpbmdBdHRhY2htZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucHJldmlld1VybCYmVVJMLnJldm9rZU9iamVjdFVSTChlLnByZXZpZXdVcmwpfSksci5wZW5kaW5nQXR0YWNobWVudHM9W10sQXUoKX1mdW5jdGlvbiBBdSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2htZW50LXByZXZpZXciKTtpZihlKXt2YXIgdD1yLnBlbmRpbmdBdHRhY2htZW50cztpZih0Lmxlbmd0aD09PTApe2UuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Zm9yKHZhciBuPSIiLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXSx1PWEucHJldmlld1VybD8nPGltZyBzcmM9IicrcChhLnByZXZpZXdVcmwpKyciIGFsdD0iIj4nOic8c3BhbiBjbGFzcz0iYXR0LWljb24iPicrVigiZmlsZSIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrIjwvc3Bhbj4iO24rPSc8c3BhbiBjbGFzcz0iYXR0YWNobWVudC1waWxsIiBkYXRhLWluZGV4PSInK2krJyI+Jyt1Kyc8c3BhbiBjbGFzcz0iYXR0LW5hbWUiIHRpdGxlPSInK3AoYS5uYW1lKSsnIj4nK3AoYS5uYW1lKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhdHQtc2l6ZSI+JytCZyhhLnNpemUpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYXR0LXJlbW92ZSIgZGF0YS1pbmRleD0iJytpKyciIHRpdGxlPSJcdTc5RkJcdTk2NjQiPlx4RDc8L2J1dHRvbj48L3NwYW4+J31lLmlubmVySFRNTD1uLGUucXVlcnlTZWxlY3RvckFsbCgiLmF0dC1yZW1vdmUiKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHMpe3MucHJldmVudERlZmF1bHQoKSxzLnN0b3BQcm9wYWdhdGlvbigpLGtnKHBhcnNlSW50KG8uZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IiksMTApKX0pfSl9fWZ1bmN0aW9uIHhnKGUpe2lmKCFyLnBlbmRpbmdBdHRhY2htZW50cy5sZW5ndGgpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIHQ9bmV3IEZvcm1EYXRhO3JldHVybiByLnBlbmRpbmdBdHRhY2htZW50cy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3QuYXBwZW5kKCJmaWxlcyIsbi5maWxlLG4ubmFtZSl9KSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3VwbG9hZCIse21ldGhvZDoiUE9TVCIsYm9keTp0LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLnRoZW4oZnVuY3Rpb24oaSl7dGhyb3cgbmV3IEVycm9yKGkuZXJyb3J8fCJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjUiKX0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5maWxlc3x8W119KX1mdW5jdGlvbiBTZyhlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiIiO3ZhciB0PWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnNhdmVkUGF0aH0pO3JldHVybmBbXHU5NjQ0XHU0RUY2XHU1REYyXHU0RTBBXHU0RjIwXHVGRjBDXHU4QkY3XHU2N0U1XHU3NzBCXHU0RUU1XHU0RTBCXHU2NTg3XHU0RUY2OgpgK3Quam9pbihgCmApK2BdCgpgfWZ1bmN0aW9uIGVkKGUpe2lmKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmV8fCFlfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikpcmV0dXJuITE7dmFyIHQ9ZS52YWx1ZXx8IiI7cmV0dXJuIHQ/KG10KHQsImludGVyYWN0aXZlX3RleHQiKS5jYXRjaChmdW5jdGlvbigpe30pLGUudmFsdWU9IiIsQnQoZSksWmUoIiIsITApLCEwKTohMX1mdW5jdGlvbiBJZyhlKXt2YXIgdD1lLmNsaXBib2FyZERhdGEmJmUuY2xpcGJvYXJkRGF0YS5pdGVtcztpZih0JiYhci50ZXJtaW5hbEludGVyYWN0aXZlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLnR5cGUuaW5kZXhPZigiaW1hZ2UvIik9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGk9dFtuXS5nZXRBc0ZpbGUoKTtpJiZrdShpKTtyZXR1cm59fXZhciBhPWUuY2xpcGJvYXJkRGF0YSYmZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQiKTtpZihhKXtpZihlLnByZXZlbnREZWZhdWx0KCksci50ZXJtaW5hbEludGVyYWN0aXZlKXttdChhLCJwYXN0ZSIpLmNhdGNoKGZ1bmN0aW9uKCl7fSk7cmV0dXJufXZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih1KXt2YXIgbz11LnNlbGVjdGlvblN0YXJ0fHwwLHM9dS5zZWxlY3Rpb25FbmR8fDAsbD11LnZhbHVlLGQ9bC5zbGljZSgwLG8pK2ErbC5zbGljZShzKTt1LnZhbHVlPWQsWmUoZCl9fX1mdW5jdGlvbiBGaChlKXttdChlKSxaZShUZygpK2UpfWZ1bmN0aW9uIFRnKCl7aWYoci5zZWxlY3RlZElkKXtpZihyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdIT09dm9pZCAwKXJldHVybiByLmRyYWZ0c1tyLnNlbGVjdGVkSWRdO3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1kcmFmdC0iK3Iuc2VsZWN0ZWRJZCk7aWYoZSlyZXR1cm4gZX1jYXRjaHt9fXJldHVybiIifWZ1bmN0aW9uIFplKGUsdCl7aWYoci5zZWxlY3RlZElkKXtyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWRyYWZ0LSIrci5zZWxlY3RlZElkLGUpfWNhdGNoe31pZighdCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO24mJihuLnZhbHVlPWUpfX19dmFyIHh1PSExO2Z1bmN0aW9uIExnKCl7aWYoIXh1KXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvbXB0LW9wdGltaXplLWJ0biIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYoZSl7dmFyIGk9KGUudmFsdWV8fCIiKS50cmltKCk7aWYoIWkpe3R5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKCJcdThCRjdcdTUxNDhcdThGOTNcdTUxNjVcdTg5ODFcdTRGMThcdTUzMTZcdTc2ODRcdTUxODVcdTVCQjlcdTMwMDIiLCJpbmZvIiksZS5mb2N1cygpO3JldHVybn14dT0hMCx0JiYodC5jbGFzc0xpc3QuYWRkKCJpcy1sb2FkaW5nIiksdC5kaXNhYmxlZD0hMCx0LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTZCNjNcdTU3MjhcdTRGMThcdTUzMTZcdTIwMjYiKSksbiYmbi5jbGFzc0xpc3QuYWRkKCJpcy1vcHRpbWl6aW5nIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtYnVzeSIsInRydWUiKTt2YXIgYT1lLnJlYWRPbmx5O2UucmVhZE9ubHk9ITA7dmFyIHU9e3RleHQ6aX07ciYmci5zZWxlY3RlZElkJiYodS5zZXNzaW9uSWQ9ci5zZWxlY3RlZElkKSxmZXRjaCgiL2FwaS9vcHRpbWl6ZS1wcm9tcHQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHUpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCkudGhlbihmdW5jdGlvbihzKXtyZXR1cm57b2s6by5vayxkYXRhOnN9fSl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKCFvLm9rKXRocm93IG5ldyBFcnJvcihvLmRhdGEmJm8uZGF0YS5lcnJvcnx8Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1NTkzMVx1OEQyNVx1MzAwMiIpO3ZhciBzPW8uZGF0YSYmby5kYXRhLm9wdGltaXplZHx8IiI7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJDbGF1ZGUgXHU4RkQ0XHU1NkRFXHU0RTNBXHU3QTdBXHUzMDAyIik7TWcoZSxzKX0pLmNhdGNoKGZ1bmN0aW9uKG8pe3R5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKG8mJm8ubWVzc2FnZXx8Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIiksdCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpLHQuY2xhc3NMaXN0LmFkZCgiaXMtc2hha2UiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1zaGFrZSIpfSw0MDApKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt4dT0hMSx0JiYodC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksdC5kaXNhYmxlZD0hMSx0LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdUZGMDhBSVx1RkYwOSIpKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImlzLW9wdGltaXppbmciKSxlLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1idXN5IiksZS5yZWFkT25seT1hfSl9fX1mdW5jdGlvbiBNZyhlLHQpe2lmKCFlKXJldHVybjt2YXIgbj1BcnJheS5mcm9tKHQpLGk9bi5sZW5ndGg7aWYoaT09PTApe2UudmFsdWU9IiIsWmUoIiIsITApLEJ0KGUpO3JldHVybn12YXIgYT1NYXRoLm1pbig3MDAsTWF0aC5tYXgoMjIwLGkqOCkpLHU9TWF0aC5taW4oaSw2MCksbz1NYXRoLmNlaWwoaS91KSxzPWEvdSxsPTA7ZS52YWx1ZT0iIixCdChlKTtmdW5jdGlvbiBkKCl7aWYobD1NYXRoLm1pbihpLGwrbyksZS52YWx1ZT1uLnNsaWNlKDAsbCkuam9pbigiIiksQnQoZSksbDxpKXNldFRpbWVvdXQoZCxzKTtlbHNle1plKHQsITApO3RyeXtlLnNldFNlbGVjdGlvblJhbmdlKHQubGVuZ3RoLHQubGVuZ3RoKX1jYXRjaHt9fX1kKCl9ZnVuY3Rpb24gWWkoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYodCl7dmFyIG49ZXx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGk9ISEobiYmbi52YWx1ZSYmbi52YWx1ZS5sZW5ndGg+MCk7dC5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdGV4dCIsaSl9fXIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbCxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgS3I9bnVsbCxHaT0wO2Z1bmN0aW9uIFN1KGUpe2lmKCFlKXJldHVybnthY3RpdmU6ITF9O2lmKGUuYXJjaGl2ZWQpcmV0dXJue2FjdGl2ZTohMX07dmFyIHQ9ISFlLnBlcm1pc3Npb25CbG9ja2VkLG49ISEodWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCksaT0hdWUoZSkmJmUuc3RhdHVzPT09InJ1bm5pbmciO3JldHVybnthY3RpdmU6bnx8aXx8dCxpbkZsaWdodDpuLHB0eVJ1bm5pbmc6aSxwZXJtaXNzaW9uQmxvY2tlZDp0fX1mdW5jdGlvbiBxZyhlKXt2YXIgdD1NYXRoLm1heCgwLE1hdGguZmxvb3IoZS8xZTMpKTtpZih0PDYwKXJldHVybiB0KyJzIjt2YXIgbj1NYXRoLmZsb29yKHQvNjApLGk9dCU2MDtpZihuPDYwKXJldHVybiBuKyJtIisoaT8iICIraSsicyI6IiIpO3ZhciBhPU1hdGguZmxvb3Iobi82MCksdT1uJTYwO3JldHVybiBhKyJoIisodT8iICIrdSsibSI6IiIpfWZ1bmN0aW9uIEl1KGUpe3ZhciB0PVN1KGUpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4taGVhZGVyLXJvdyIpLGk9bj9uLnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN0YXR1cy1waWxsIik6bnVsbCxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7aWYobiYmKG4uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtcnVubmluZyIsdC5hY3RpdmUpLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtcGVybWlzc2lvbi1ibG9ja2VkIix0LnBlcm1pc3Npb25CbG9ja2VkKSksaSl7dmFyIHU9aS5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdGF0dXMtZWxhcHNlZCIpO2lmKHQuaW5GbGlnaHQpe0dpfHwoR2k9ci5fc3RhdHVzQmFyU3RhcnRUaW1lPjA/ci5fc3RhdHVzQmFyU3RhcnRUaW1lOkRhdGUubm93KCkpO3ZhciBvPXFnKERhdGUubm93KCktR2kpO3V8fCh1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSx1LmNsYXNzTmFtZT0ic2Vzc2lvbi1zdGF0dXMtZWxhcHNlZCIsaS5hcHBlbmRDaGlsZCh1KSksdS50ZXh0Q29udGVudD1vfWVsc2UgR2k9MCx1JiZ1LnJlbW92ZSgpfXQuYWN0aXZlP0tyfHwoS3I9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgcz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1yLnNlbGVjdGVkSWR9KTtJdShzKX0sMWUzKSk6S3ImJihjbGVhckludGVydmFsKEtyKSxLcj1udWxsKX1mdW5jdGlvbiBUdShlLHQpe0l1KHQpO3ZhciBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci10b3Atcm93IiksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIiksYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZighdHx8IXVlKHQpKXtpJiZpLnJlbW92ZSgpLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0IiksY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGw7cmV0dXJufXZhciB1PXQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodDtpZih1KXtpZihyLl9zdGF0dXNCYXJUaW1lcklkfHwoci5fc3RhdHVzQmFyU3RhcnRUaW1lPURhdGUubm93KCkpLGEmJmEuY2xhc3NMaXN0LmFkZCgiaW4tZmxpZ2h0IiksIWkmJm4pe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uY2xhc3NOYW1lPSJzdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiLG8uaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0ic3RhdHVzLWJhci1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhci1sYWJlbCI+XHU1NkRFXHU1OTBEXHU0RTJEPC9zcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFyLXRpbWVyIj4wLjBzPC9zcGFuPicsbi5hcHBlbmRDaGlsZChvKSxpPW99ZWxzZSBpZihpJiZpLmNsYXNzTGlzdC5jb250YWlucygiY29tcGxldGVkIikpe2kuY2xhc3NMaXN0LnJlbW92ZSgiY29tcGxldGVkIiksaS5zdHlsZS5hbmltYXRpb249Im5vbmUiLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItbGFiZWwiKS50ZXh0Q29udGVudD0iXHU1NkRFXHU1OTBEXHU0RTJEIjt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWRvdCIpO3MmJihzLnN0eWxlLmRpc3BsYXk9IiIpLHIuX3N0YXR1c0JhclN0YXJ0VGltZT1EYXRlLm5vdygpfXIuX3N0YXR1c0JhclRpbWVySWR8fChyLl9zdGF0dXNCYXJUaW1lcklkPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhcjpub3QoLmNvbXBsZXRlZCkiKTtpZighZCl7Y2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGw7cmV0dXJufXZhciBmPSgoRGF0ZS5ub3coKS1yLl9zdGF0dXNCYXJTdGFydFRpbWUpLzFlMykudG9GaXhlZCgxKSxjPWQucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItdGltZXIiKTtjJiYoYy50ZXh0Q29udGVudD1mKyJzIil9LDEwMCkpfWVsc2UgaWYoY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGwsYSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJpbi1mbGlnaHQiKSxpJiYhaS5jbGFzc0xpc3QuY29udGFpbnMoImNvbXBsZXRlZCIpKXt2YXIgbD1yLl9zdGF0dXNCYXJTdGFydFRpbWU/KChEYXRlLm5vdygpLXIuX3N0YXR1c0JhclN0YXJ0VGltZSkvMWUzKS50b0ZpeGVkKDEpOiIwLjAiO2kuY2xhc3NMaXN0LmFkZCgiY29tcGxldGVkIiksaS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1sYWJlbCIpLnRleHRDb250ZW50PSJcdTVCOENcdTYyMTAiLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItdGltZXIiKS50ZXh0Q29udGVudD1sKyJzIjt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWRvdCIpO3MmJihzLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5wYXJlbnROb2RlJiZpLnJlbW92ZSgpfSwzZTMpfX1mdW5jdGlvbiBwKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpfWZ1bmN0aW9uIGd0KGUsdCxuKXt2YXIgaT1TdHJpbmcoZXx8IiIpO3JldHVybic8c3BhbiBjbGFzcz0iJyt0KycgdGFpbC1tYXJxdWVlLXBhdGgiIHRpdGxlPSInK3AoaSkrJyInKyhufHwiIikrJz48c3BhbiBjbGFzcz0idGFpbC1tYXJxdWVlLXBhdGgtaW5uZXIiPicrcChpKSsiPC9zcGFuPjwvc3Bhbj4ifXZhciBQZz0vXC4ocG5nfGpwZT9nfGdpZnx3ZWJwfHN2Z3xhdmlmfGJtcHxpY298aGVpY3xoZWlmKSQvaTtmdW5jdGlvbiBMdShlKXtpZih0eXBlb2YgZSE9InN0cmluZyIpcmV0dXJuITE7dmFyIHQ9ZS50cmltKCkuc3BsaXQoL1s/I10vKVswXTtyZXR1cm4gUGcudGVzdCh0KX1mdW5jdGlvbiB1cihlKXtpZihlKXt2YXIgdD1mdW5jdGlvbigpe3RyeXt2YXIgbj1lLmZpcnN0RWxlbWVudENoaWxkJiZlLmZpcnN0RWxlbWVudENoaWxkLmNsYXNzTGlzdCYmZS5maXJzdEVsZW1lbnRDaGlsZC5jbGFzc0xpc3QuY29udGFpbnMoInRhaWwtbWFycXVlZS1wYXRoLWlubmVyIik/ZS5maXJzdEVsZW1lbnRDaGlsZDpudWxsO2lmKG4pe3ZhciBpPU1hdGgubWF4KDAsbi5zY3JvbGxXaWR0aC1lLmNsaWVudFdpZHRoKTtlLmNsYXNzTGlzdC50b2dnbGUoImlzLW92ZXJmbG93aW5nIixpPjEpLGUuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGFpbC1tYXJxdWVlLXNoaWZ0IixpKyJweCIpO3ZhciBhPU1hdGgubWF4KDQuOCxpLzE4KTtlLnN0eWxlLnNldFByb3BlcnR5KCItLXRhaWwtbWFycXVlZS1kdXJhdGlvbiIsTWF0aC5tYXgoNi44LGEvLjY4KSsicyIpO3JldHVybn1lLnNjcm9sbFdpZHRoPmUuY2xpZW50V2lkdGgmJihlLnNjcm9sbExlZnQ9ZS5zY3JvbGxXaWR0aCl9Y2F0Y2h7fX07dCgpLHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU9PSJmdW5jdGlvbiImJnJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX19ZnVuY3Rpb24gV3QoZSl7dmFyIHQ9ZXx8ZG9jdW1lbnQ7IXR8fHR5cGVvZiB0LnF1ZXJ5U2VsZWN0b3JBbGwhPSJmdW5jdGlvbiJ8fHQucXVlcnlTZWxlY3RvckFsbCgiLnRhaWwtbWFycXVlZS1wYXRoIikuZm9yRWFjaChmdW5jdGlvbihuKXt1cihuKX0pfWZ1bmN0aW9uIE11KGUsdCl7aWYoZSl7dmFyIG49U3RyaW5nKHR8fCIiKSxpPWUucXVlcnlTZWxlY3RvciYmZS5xdWVyeVNlbGVjdG9yKCIudGFpbC1tYXJxdWVlLXBhdGgtaW5uZXIiKTtpP2kudGV4dENvbnRlbnQ9bjplLnRleHRDb250ZW50PW4sZS5zZXRBdHRyaWJ1dGUmJmUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsbiksdXIoZSl9fWZ1bmN0aW9uIE9nKGUpe2lmKGUpe3ZhciB0PWZ1bmN0aW9uKCl7dHJ5e2lmKHR5cGVvZiBlLnNldFNlbGVjdGlvblJhbmdlPT0iZnVuY3Rpb24iJiZlLnZhbHVlIT1udWxsKXt2YXIgbj1lLnZhbHVlLmxlbmd0aDt0cnl7ZS5zZXRTZWxlY3Rpb25SYW5nZShuLG4pfWNhdGNoe319ZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoJiYoZS5zY3JvbGxMZWZ0PWUuc2Nyb2xsV2lkdGgpfWNhdGNoe319O3QoKSx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9fShmdW5jdGlvbigpe3RyeXt2YXIgZT1uYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnR8fCIiOy9XYW5kQXBwXC8vLnRlc3QoZSkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWFwcCIpLC9XYW5kUGxhdGZvcm1cL2lPUy8udGVzdChlKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtaW9zIiksL1dhbmRQbGF0Zm9ybVwvQW5kcm9pZC8udGVzdChlKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtYW5kcm9pZCIpfWNhdGNoe310cnl7Y29uc3QgdD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXM7dC5nZXQoImVtYmVkIik9PT0idGVybWluYWwiJiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSx0LmdldCgibmF0aXZlSW5wdXQiKT09PSIxIiYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtbmF0aXZlLWlucHV0IikpfWNhdGNoe310cnl7d2luZG93Ll9fd2FuZE5hdGl2ZUJhY2tIb29rZWQ9ITB9Y2F0Y2h7fX0pKCl9KSgpOwo="),
|
|
9
9
|
stylesCss: decode("OnJvb3R7LS1iZy1wcmltYXJ5OiAjZjZmMWU4Oy0tYmctc2Vjb25kYXJ5OiByZ2JhKDI1NSwgMjUxLCAyNDUsIC45Mik7LS1iZy10ZXJ0aWFyeTogI2YwZTVkNzstLWJnLWVsZXZhdGVkOiAjZmZmYWYyOy0tYmctc3VyZmFjZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNik7LS1iZy10ZXJtaW5hbDogIzFmMWIxNzstLWJnLW92ZXJsYXk6IHJnYmEoNDIsIDI4LCAxOCwgLjQpOy0tYm9yZGVyLXN1YnRsZTogcmdiYSgxNTAsIDExOCwgODUsIC4xMik7LS1ib3JkZXItZGVmYXVsdDogcmdiYSgxMjUsIDkxLCA1NywgLjI1KTstLWJvcmRlci1zdHJvbmc6IHJnYmEoMTI1LCA5MSwgNTcsIC40KTstLWJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpOy0tYm9yZGVyLWZvY3VzOiByZ2JhKDE5NywgMTAxLCA2MSwgLjUpOy0tdGV4dC1wcmltYXJ5OiAjMmExZjE2Oy0tdGV4dC1zZWNvbmRhcnk6ICM1YTQ1MzU7LS10ZXh0LXRlcnRpYXJ5OiAjN2E2MzUwOy0tdGV4dC1tdXRlZDogIzhjNzM1ZjstLXRleHQtaW52ZXJzZTogI2ZmZmZmZjstLXRleHQtbGluazogI2M1NjUzZDstLWFjY2VudDogI2M1NjUzZDstLWFjY2VudC1ob3ZlcjogI2Q0NzU1MDstLWFjY2VudC1hY3RpdmU6ICNhZjUzMzA7LS1hY2NlbnQtc29mdDogI2U4YzVhZTstLWFjY2VudC1tdXRlZDogcmdiYSgxOTcsIDEwMSwgNjEsIC4xMik7LS1hY2NlbnQtZ2xvdzogcmdiYSgxOTcsIDEwMSwgNjEsIC4yNSk7LS1zdWNjZXNzOiAjNGY3YTU4Oy0tc3VjY2Vzcy1ob3ZlcjogIzVhOGY2NjstLXN1Y2Nlc3MtbXV0ZWQ6IHJnYmEoNzksIDEyMiwgODgsIC4xNCk7LS1zdWNjZXNzLWdsb3c6IHJnYmEoNzksIDEyMiwgODgsIC4zKTstLXdhcm5pbmc6ICNhOTZhMmY7LS13YXJuaW5nLWhvdmVyOiAjYzA3YTM1Oy0td2FybmluZy1tdXRlZDogcmdiYSgxNjksIDEwNiwgNDcsIC4xNCk7LS13YXJuaW5nLWdsb3c6IHJnYmEoMTY5LCAxMDYsIDQ3LCAuMjUpOy0tZGFuZ2VyOiAjYjI0ZjQ1Oy0tZGFuZ2VyLWhvdmVyOiAjYzk2MDU1Oy0tZGFuZ2VyLW11dGVkOiByZ2JhKDE3OCwgNzksIDY5LCAuMTQpOy0tZGFuZ2VyLWdsb3c6IHJnYmEoMTc4LCA3OSwgNjksIC4yNSk7LS1pbmZvOiAjNGE2ZmE1Oy0taW5mby1tdXRlZDogcmdiYSg3NCwgMTExLCAxNjUsIC4xNCk7LS1zaGFkb3cteHM6IDAgMXB4IDNweCByZ2JhKDg5LCA1OCwgMzIsIC4wNCk7LS1zaGFkb3ctc206IDAgMnB4IDhweCByZ2JhKDg5LCA1OCwgMzIsIC4wNik7LS1zaGFkb3ctbWQ6IDAgNHB4IDE2cHggcmdiYSg4OSwgNTgsIDMyLCAuMDgpOy0tc2hhZG93LWxnOiAwIDhweCAzMnB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy14bDogMCAxMnB4IDQ4cHggcmdiYSg4OSwgNTgsIDMyLCAuMTYpOy0tc2hhZG93LXNvZnQ6IDAgMjBweCA1MHB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy1lbGV2YXRlZDogMCA4cHggMjRweCByZ2JhKDg5LCA1OCwgMzIsIC4wOCk7LS1zaGFkb3ctZ2xvdzogMCAwIDI0cHggdmFyKC0tYWNjZW50LWdsb3cpOy0tc2hhZG93LWdsb3ctc3VjY2VzczogMCAwIDIwcHggdmFyKC0tc3VjY2Vzcy1nbG93KTstLXJhZGl1cy14czogNnB4Oy0tcmFkaXVzLXNtOiAxMHB4Oy0tcmFkaXVzLW1kOiAxNHB4Oy0tcmFkaXVzLWxnOiAyMHB4Oy0tcmFkaXVzLXhsOiAyOHB4Oy0tcmFkaXVzLWZ1bGw6IDk5OTlweDstLWZvbnQtc2FuczogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCAiSGVsdmV0aWNhIE5ldWUiLCAiUGluZ0ZhbmcgU0MiLCAiTm90byBTYW5zIFNDIiwgIk1pY3Jvc29mdCBZYUhlaSIsIHNhbnMtc2VyaWY7LS1mb250LW1vbm86ICJTRiBNb25vIiwgIkZpcmEgQ29kZSIsICJDYXNjYWRpYSBDb2RlIiwgIkpldEJyYWlucyBNb25vIiwgTWVubG8sIE1vbmFjbywgIkNvbnNvbGFzIiwgbW9ub3NwYWNlOy0tZm9udC1zaXplLXhzOiAuNjg3NXJlbTstLWZvbnQtc2l6ZS1zbTogLjgxMjVyZW07LS1mb250LXNpemUtYmFzZTogLjkzNzVyZW07LS1mb250LXNpemUtbGc6IDEuMDYyNXJlbTstLWZvbnQtc2l6ZS14bDogMS4yNXJlbTstLWZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwOy0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7LS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwOy0tZm9udC13ZWlnaHQtYm9sZDogNzAwOy0tbGluZS1oZWlnaHQtdGlnaHQ6IDEuMzstLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNjstLWxpbmUtaGVpZ2h0LXJlbGF4ZWQ6IDEuNzU7LS10cmFuc2l0aW9uLWZhc3Q6IC4xNXMgZWFzZTstLXRyYW5zaXRpb24tbm9ybWFsOiAuMjVzIGVhc2U7LS10cmFuc2l0aW9uLXNsb3c6IC40cyBlYXNlOy0tdHJhbnNpdGlvbi1zcHJpbmc6IC41cyBjdWJpYy1iZXppZXIoLjM0LCAxLjU2LCAuNjQsIDEpOy0tc2lkZWJhci13aWR0aDogMzAwcHg7LS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDogNTZweDstLWZpbGUtcGFuZWwtd2lkdGg6IDMyMHB4Oy0tc2FmZS1ib3R0b206IDBweDstLWVhc2Utb3V0LWV4cG86IGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKTstLWVhc2Utb3V0LWJhY2s6IGN1YmljLWJlemllciguMzQsIDEuNTYsIC42NCwgMSk7LS1lYXNlLWluLW91dC1zbW9vdGg6IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpOy0tZWFzZS1zcHJpbmc6IGN1YmljLWJlemllciguMTc1LCAuODg1LCAuMzIsIDEuMjc1KTstLWVhc2Utc3ByaW5nLWJvdW5jeTogY3ViaWMtYmV6aWVyKC4xNzUsIC44ODUsIC4zMiwgMS40KTstLWVhc2UtYm91bmNlOiBjdWJpYy1iZXppZXIoLjY4LCAtLjU1LCAuMjY1LCAxLjU1KX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upe2h0bWw6bm90KC5pcy13YW5kLWFwcCkgKixodG1sOm5vdCguaXMtd2FuZC1hcHApICo6YmVmb3JlLGh0bWw6bm90KC5pcy13YW5kLWFwcCkgKjphZnRlcnthbmltYXRpb24tZHVyYXRpb246LjAxbXMhaW1wb3J0YW50O2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDFtcyFpbXBvcnRhbnQ7c2Nyb2xsLWJlaGF2aW9yOmF1dG8haW1wb3J0YW50fX06cm9vdHstLWFwcC1pbnNldC10b3A6IDBweDstLWFwcC1pbnNldC1ib3R0b206IDBweDstLWFwcC1pbnNldC1sZWZ0OiAwcHg7LS1hcHAtaW5zZXQtcmlnaHQ6IDBweDstLXdhbmQtc2FmZS10b3A6IG1heCh2YXIoLS1hcHAtaW5zZXQtdG9wKSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpOy0td2FuZC1zYWZlLWJvdHRvbTogbWF4KHZhcigtLWFwcC1pbnNldC1ib3R0b20pLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7LS13YW5kLXNhZmUtbGVmdDogbWF4KHZhcigtLWFwcC1pbnNldC1sZWZ0KSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LCAwcHgpKTstLXdhbmQtc2FmZS1yaWdodDogbWF4KHZhcigtLWFwcC1pbnNldC1yaWdodCksIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQsIDBweCkpOy0tc2FmZS1ib3R0b206IHZhcigtLXdhbmQtc2FmZS1ib3R0b20pOy0taW5wdXQtc2FmZS1ib3R0b206IHZhcigtLXNhZmUtYm90dG9tKX0uaXMtd2FuZC1hcHB7LS13YW5kLXNhZmUtdG9wOiBtYXgodmFyKC0tYXBwLWluc2V0LXRvcCksIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpLCAzMnB4KTstLXdhbmQtc2FmZS1ib3R0b206IG1heCh2YXIoLS1hcHAtaW5zZXQtYm90dG9tKSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCksIDBweCl9LmlzLXdhbmQtYXBwLW5hdGl2ZS1pbnNldHN7LS13YW5kLXNhZmUtdG9wOiAwcHg7LS13YW5kLXNhZmUtYm90dG9tOiAwcHg7LS13YW5kLXNhZmUtbGVmdDogMHB4Oy0td2FuZC1zYWZlLXJpZ2h0OiAwcHh9LmlzLXdhbmQtaW9zLmlzLWtleWJvYXJkLW9wZW57LS1pbnB1dC1zYWZlLWJvdHRvbTogMHB4fS5pcy13YW5kLWFwcCAuc2lkZWJhci1oZWFkZXIsaHRtbC5pcy13YW5kLWFwcCAuc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlcntwYWRkaW5nLXRvcDpjYWxjKDE0cHggKyB2YXIoLS13YW5kLXNhZmUtdG9wKSl9LmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6dmFyKC0td2FuZC1zYWZlLXRvcCl9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnNpZGViYXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4taGVhZGVyLXJvdywuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuYmxhbmstY2hhdCwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuZHJhd2VyLWJhY2tkcm9wLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6MH1odG1sLmlzLXdhbmQtZW1iZWQtdGVybWluYWx7Y29sb3Itc2NoZW1lOmxpZ2h0IGRhcms7LS1lbWJlZC1wdHktYmc6ICMxNzEyMGZ9aHRtbC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsLGh0bWwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCBib2R5e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1sYXlvdXQsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4tbGF5b3V0LnNpZGViYXItcGlubmVkLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6MH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1jb250ZW50e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtY29udGFpbmVye21hcmdpbjowO2JvcmRlci1yYWRpdXM6MDtib3JkZXI6MDtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDowO2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKTtib3gtc2hhZG93Om5vbmV9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4sLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1jb250YWluZXI6YWZ0ZXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXksLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXJlc2l6ZS1oYW5kbGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtc2Nyb2xsLXdyYXB7cGFkZGluZzo4cHggNHB4IDZweDstLXRlcm0tZm9udC1mYW1pbHk6ICJSb2JvdG8gTW9ubyIsICJEcm9pZCBTYW5zIE1vbm8iLCAiTm90byBTYW5zIE1vbm8iLCAiTm90byBTYW5zIFN5bWJvbHMgMiIsICJOb3RvIFNhbnMgU3ltYm9scyIsIG1vbm9zcGFjZTstLXRlcm0tZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7LS10ZXJtLXJvdy1oZWlnaHQ6IDE1cHggIWltcG9ydGFudDstLXRlcm0tZmc6ICNmNWVhZGM7LS10ZXJtLWJnOiB0cmFuc3BhcmVudDstLXRlcm0tY3Vyc29yOiAjZDY3YjUyOy0tdGVybS1jb2xvci0wOiAjMWYxYjE3Oy0tdGVybS1jb2xvci0xOiAjZDI3NzY2Oy0tdGVybS1jb2xvci0yOiAjN2ZhMzZmOy0tdGVybS1jb2xvci0zOiAjZDVhMzViOy0tdGVybS1jb2xvci00OiAjODdhOWQ5Oy0tdGVybS1jb2xvci01OiAjYzU5NWM3Oy0tdGVybS1jb2xvci02OiAjN2ZiM2IxOy0tdGVybS1jb2xvci03OiAjZjVlYWRjOy0tdGVybS1jb2xvci04OiAjNjI1MzQ3Oy0tdGVybS1jb2xvci05OiAjZTM5YTg5Oy0tdGVybS1jb2xvci0xMDogIzljYzA4YTstLXRlcm0tY29sb3ItMTE6ICNlYmJiNmU7LS10ZXJtLWNvbG9yLTEyOiAjYThjMWVhOy0tdGVybS1jb2xvci0xMzogI2RiYjFkYzstLXRlcm0tY29sb3ItMTQ6ICM5YWNiY2E7LS10ZXJtLWNvbG9yLTE1OiAjZmZmN2VmfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1zY3JvbGwtd3JhcCA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kOiNkNjdiNTI0N30uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbC5pcy13YW5kLW5hdGl2ZS1pbnB1dCAuaW5wdXQtcGFuZWx7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAud2FuZC1qb3lzdGljay1yb290e3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXJvb3QudmlzaWJsZXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhY2tkcm9we3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGx7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtjb2xvcjojZmZmN2VmZjU7YmFja2dyb3VuZDojMjMxYzE4ZWI7Ym9yZGVyLWNvbG9yOiNmZmY3ZWYzZDtib3gtc2hhZG93OjAgMTBweCAyNnB4ICMwMDAwMDA2MSxpbnNldCAwIDFweCAjZmZmZmZmMWE7ei1pbmRleDoxMjN9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLndhbmQtam95c3RpY2stYmFsbC5wYW5lbC1vcGVuLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGw6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxLjA0KTtiYWNrZ3JvdW5kOiMxZDE3MTRmYTtib3JkZXItY29sb3I6I2ZmZjdlZjU3fS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXBhbmVse3otaW5kZXg6MTI0O2JhY2tncm91bmQ6IzFkMTcxNGZhO2JvcmRlci1jb2xvcjojZmZmN2VmMmU7Ym94LXNoYWRvdzowIDE4cHggNDBweCAjMDAwMDAwNmIsaW5zZXQgMCAxcHggI2ZmZmZmZjE0fWh0bWwubm8tdHJhbnNpdGlvbixodG1sLm5vLXRyYW5zaXRpb24gKixodG1sLm5vLXRyYW5zaXRpb24gKjpiZWZvcmUsaHRtbC5uby10cmFuc2l0aW9uICo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudDthbmltYXRpb246bm9uZSFpbXBvcnRhbnR9Kntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfWh0bWx7Zm9udC1zaXplOjE0cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVMZWdpYmlsaXR5O21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmNmYxZTh9Ym9keXtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AgbGVmdCxyZ2JhKDIwOCwxMzgsOTIsLjE4KSx0cmFuc3BhcmVudCAzNSUpLHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tIHJpZ2h0LHJnYmEoMTQ4LDEwNyw3NCwuMSksdHJhbnNwYXJlbnQgNDAlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmYmY3ZjEsI2Y2ZjFlOCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttaW4taGVpZ2h0OjEwMHZoO21pbi1oZWlnaHQ6MTAwZHZoO2hlaWdodDoxMDB2aDtoZWlnaHQ6MTAwZHZoO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO292ZXJmbG93OmhpZGRlbn06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NDA7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2Nn06Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LXNvZnQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9OjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1zb2Z0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5pbnB1dC10ZXh0YXJlYTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6IzRmN2E1ODQ3O2NvbG9yOiMyNDE2MGZ9LmlucHV0LXRleHRhcmVhOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOiM0ZjdhNTg0Nztjb2xvcjojMjQxNjBmfS5jaGF0LW1lc3NhZ2UudXNlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6I2ZmZmZmZjUyO2NvbG9yOiNmZmZ9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiB2YXIoLS1maWxlLXBhbmVsLXdpZHRoKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmZpeGVkO3RvcDp2YXIoLS1hcHAtdmlld3BvcnQtdG9wLCAwcHgpO2xlZnQ6MDtyaWdodDowO2hlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpO292ZXJmbG93OmhpZGRlbn0uZmxvYXRpbmctc2lkZWJhci10b2dnbGV7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1zaHJpbms6MDtiYWNrZ3JvdW5kOiNmZmZiZjVkOTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMGY7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXttYXJnaW4tcmlnaHQ6MnB4fS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b30ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDEpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDVweCkgcm90YXRlKDQ1ZGVnKX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMyl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCkgcm90YXRlKC00NWRlZyl9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Mil9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFuLC5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFue2JhY2tncm91bmQ6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZle29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2V9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkyKX0uaGFtYnVyZ2VyLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5oYW1idXJnZXItaWNvbiBzcGFue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4ycyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTpob3ZlciAuaGFtYnVyZ2VyLWljb24gc3BhbntiYWNrZ3JvdW5kOnZhcigtLXRleHQtcHJpbWFyeSl9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KSByb3RhdGUoNDVkZWcpfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDMpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpIHJvdGF0ZSgtNDVkZWcpfS50b3BiYXItbG9nby1pY29ue3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCNkNDc4NWEsI2I4NTczYSwjYTA0YTJlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6ODAwO2JveC1zaGFkb3c6MCAxcHggNHB4ICNiODVjMzc0MCxpbnNldCAwIDFweCAjZmZmMztsZXR0ZXItc3BhY2luZzotLjAyZW07ZmxleC1zaHJpbms6MH0uc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5zdGF0dXMtZG90LmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAwIDhweCB2YXIoLS1zdWNjZXNzKX0ubWFpbi1sYXlvdXR7ZGlzcGxheTpmbGV4O2ZsZXg6MTttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctbGVmdDowO3RyYW5zaXRpb246cGFkZGluZy1sZWZ0IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0uc2lkZWJhci1vcGVuOm5vdCguc2lkZWJhci1waW5uZWQpIC5pbnB1dC1wYW5lbHtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci13aWR0aCk7dHJhbnNpdGlvbjpwYWRkaW5nLWxlZnQgLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZCAuZmxvYXRpbmctc2lkZWJhci10b2dnbGV7ZGlzcGxheTpub25lfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5kcmF3ZXItYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjQ0O2JhY2tncm91bmQ6dmFyKC0tYmctb3ZlcmxheSk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig0cHgpfS5kcmF3ZXItYmFja2Ryb3Aub3BlbntvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0bztiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpfS5zaWRlYmFye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtib3R0b206MDt6LWluZGV4OjQ1O3dpZHRoOm1pbih2YXIoLS1zaWRlYmFyLXdpZHRoKSxjYWxjKDEwMHZ3IC0gMjBweCkpO21heC13aWR0aDo5MHZ3O2JhY2tncm91bmQ6I2ZmZmJmNWY1O2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzo0cHggMCAzMnB4ICM1OTNhMjAxNDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIHZhcigtLWVhc2Utb3V0LWV4cG8pLGJveC1zaGFkb3cgLjM1cyBlYXNlLG9wYWNpdHkgLjI1cyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfS5zaWRlYmFyLm9wZW57dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTtib3gtc2hhZG93OjhweCAwIDQwcHggIzU5M2EyMDI2O3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxfS5zaWRlYmFyLnBpbm5lZHt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxO2JveC1zaGFkb3c6bm9uZTt0cmFuc2l0aW9uOndpZHRoIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxib3gtc2hhZG93IC4zNXMgZWFzZSxvcGFjaXR5IC4yNXMgZWFzZX0uc2lkZWJhci5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLWFjdGlvbnMgLnNpZGViYXItY2xvc2V7ZGlzcGxheTpub25lfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWR7d2lkdGg6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVye3BhZGRpbmc6MTRweCA4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MH0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1tYWluLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLW1vcmUsLnNpZGViYXIucGlubmVkLmNvbGxhcHNlZCAuc2lkZWJhci1waW4tdG9nZ2xlLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItZm9vdGVye2Rpc3BsYXk6bm9uZX0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2dhcDowO3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHl7cGFkZGluZzo4cHggNHB4O292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjB9LnNpZGViYXItY29sbGFwc2VkLXRpbGVze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGV7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjExcHg7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMzIpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZDQ3ODVhLCNiODU3M2EsI2EwNGEyZSk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xldHRlci1zcGFjaW5nOi0uMDFlbTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDtib3gtc2hhZG93OjAgMXB4IDJweCAjYjg1YzM3MzgsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3O3RyYW5zaXRpb246ZmlsdGVyIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyAuMjJzIGVhc2UsdHJhbnNmb3JtIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItY29sbGFwc2VkLXRpbGU6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNik7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMHB4IC0zcHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmY1Mn0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5hZGR7YmFja2dyb3VuZDojYjg1YzM3MGY7Ym9yZGVyOjEuNXB4IGRhc2hlZCByZ2JhKDE4NCw5Miw1NSwuNSk7Y29sb3I6I2EwNGEyZTtib3gtc2hhZG93Om5vbmU7bWFyZ2luLXRvcDoycHh9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuYWRkOmhvdmVye2ZpbHRlcjpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JhY2tncm91bmQ6I2I4NWMzNzFmO2JvcmRlci1jb2xvcjojYjg1YzM3Yjg7Ym94LXNoYWRvdzowIDNweCA4cHggLTNweCAjYjg1YzM3NTJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuYWRkOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguOTQpfS5zaWRlYmFyLWNvbGxhcHNlZC10aWxlLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsI2QyNzM1OCwjYjM1NDM0LCM5MzQxMjgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCAwIDAgMnB4ICNjNTY1M2Q0ZCwwIDVweCAxNHB4IC00cHggI2EwNGEyZTczLGluc2V0IDAgMXB4ICNmZmY2fS5zaWRlYmFyLWNvbGxhcHNlZC10aWxlOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguOTQpO3RyYW5zaXRpb24tZHVyYXRpb246LjA4c30uc2lkZWJhci10aWxlLWJ1YmJsZXtwb3NpdGlvbjpmaXhlZDttYXgtd2lkdGg6MzIwcHg7bWluLXdpZHRoOjgwcHg7cGFkZGluZzo5cHggMTNweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsI2ZmZmJmNWZjLCNmY2Y0ZTlmYyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlLCByZ2JhKDEyMCwgODgsIDU2LCAuMTgpKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAyNHB4IC00cHggIzU5M2EyMDM4LDAgMnB4IDZweCAjNTkzYTIwMTQsaW5zZXQgMCAxcHggI2ZmZmZmZmE2O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDY7Y29sb3I6IzM4MjQxMmViO3otaW5kZXg6MjAwO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTRweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvLCBlYXNlKTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCkgc2F0dXJhdGUoMTYwJSl9LnNpZGViYXItdGlsZS1idWJibGUudmlzaWJsZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0uc2lkZWJhci10aWxlLWJ1YmJsZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi02cHg7dG9wOnZhcigtLWJ1YmJsZS10YWlsLXksIDUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTt3aWR0aDoxMXB4O2hlaWdodDoxMXB4O2JhY2tncm91bmQ6aW5oZXJpdDtib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSwgcmdiYSgxMjAsIDg4LCA1NiwgLjE4KSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSwgcmdiYSgxMjAsIDg4LCA1NiwgLjE4KSk7Ym94LXNoYWRvdzotMnB4IDJweCA1cHggLTJweCAjNTkzYTIwMTR9LnNpZGViYXItY29sbGFwc2UtdG9nZ2xle2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWNvbGxhcHNlLXRvZ2dsZS5jb2xsYXBzZWR7Y29sb3I6dmFyKC0tcHJpbWFyeSl9LnNpZGViYXItcGluLXRvZ2dsZXtmbGV4LXNocmluazowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx0cmFuc2Zvcm0gLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5zaWRlYmFyLXBpbi10b2dnbGUucGlubmVke2JhY2tncm91bmQ6I2M1NjUzZDFmO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LnNpZGViYXItaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE0cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDojZmZmYmY1Y2M7ZmxleC1zaHJpbms6MDttaW4taGVpZ2h0OjUycHg7Z2FwOjEwcHh9LnNpZGViYXItaGVhZGVyLW1haW57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O21pbi13aWR0aDowO2ZsZXg6MX0uc2lkZWJhci1oZWFkZXItYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7ZmxleC1zaHJpbms6MH0uc2lkZWJhci1oZWFkZXItbW9yZXtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3d7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyA2cHgpO3JpZ2h0OjA7bWluLXdpZHRoOjE1MHB4O2JhY2tncm91bmQ6I2ZmZmJmNWZhO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JveC1zaGFkb3c6MCA0cHggMjBweCAjNTkzYTIwMWY7cGFkZGluZzo0cHg7ei1pbmRleDo2MH0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cub3BlbntkaXNwbGF5OmJsb2NrO2FuaW1hdGlvbjpmYWRlU2xpZGVEb3duIC4xNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDt3aWR0aDoxMDAlO3BhZGRpbmc6OXB4IDEycHg7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpub25lO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjZweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Nyl9QGtleWZyYW1lcyBmYWRlU2xpZGVEb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5zaWRlYmFyLWxvZ291dHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi43O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItbG9nb3V0OmhvdmVye29wYWNpdHk6MTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNpZGViYXItc3dpdGNoLXNlcnZlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi43O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItc3dpdGNoLXNlcnZlcjpob3ZlcntvcGFjaXR5OjE7Y29sb3I6dmFyKC0tcHJpbWFyeSwgdmFyKC0tdGV4dC1zZWNvbmRhcnkpKX0ubG9naW4tc3dpdGNoLXNlcnZlcnttYXJnaW4tdG9wOjEwcHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ubG9naW4tc3dpdGNoLXNlcnZlciBzdmd7b3BhY2l0eTouNzV9LmxvZ2luLXN3aXRjaC1zZXJ2ZXI6aG92ZXJ7Y29sb3I6dmFyKC0tcHJpbWFyeSwgdmFyKC0tdGV4dC1wcmltYXJ5KSl9LnNpZGViYXItdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4LXNocmluazowfS5zZXNzaW9uLWNvdW50e2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjEwcHg7Zm9udC13ZWlnaHQ6NjAwfS5zaWRlYmFyLWNsb3Nle2ZsZXgtc2hyaW5rOjB9LmZpbGUtZXhwbG9yZXJ7ZmxleDoxO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjhweCAwO21pbi1oZWlnaHQ6MH0uZmlsZS1leHBsb3Jlci5lbXB0eXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoyNHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbTt0ZXh0LWFsaWduOmNlbnRlcn0uZmlsZS10cmVle2ZvbnQtc2l6ZTouODEyNXJlbX0udHJlZS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjRweCAxMnB4O2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3VzZXItc2VsZWN0Om5vbmU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS50cmVlLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZmZmZiMywjZmZmY2Y3NjYpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZmIzfS50cmVlLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZWIsI2ZmZjRlOGJmKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgMXB4ICNjNTY1M2QzOCwwIDNweCAxMHB4IC0zcHggI2M1NjUzZDQwLGluc2V0IDAgMXB4ICNmZmZmZmZkOX0udHJlZS10b2dnbGV7ZmxleC1zaHJpbms6MDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50cmVlLXRvZ2dsZS5vcGVue3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS50cmVlLXRvZ2dsZS5lbXB0eXt2aXNpYmlsaXR5OmhpZGRlbn0udHJlZS1pY29ue2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOjFyZW07bWFyZ2luLXJpZ2h0OjZweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS50cmVlLW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZmxleDoxO21pbi13aWR0aDowfS50cmVlLWNoaWxkcmVue2Rpc3BsYXk6bm9uZX0udHJlZS1jaGlsZHJlbi5vcGVue2Rpc3BsYXk6YmxvY2t9LmZpbGUtZXhwbG9yZXItaGVhZGVye3BhZGRpbmc6MTBweCAxNHB4IDZweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC1zaHJpbms6MDtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47c2Nyb2xsYmFyLXdpZHRoOnRoaW59LmZpbGUtZXhwbG9yZXItcGF0aHtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXg6MTttaW4td2lkdGg6MDtmb250LXdlaWdodDo1MDB9aW5wdXQuZmlsZS1leHBsb3Jlci1wYXRoe2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6NnB4IDEwcHg7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MS4yO2N1cnNvcjp0ZXh0O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7b3V0bGluZTpub25lO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2lkdGg6bWF4LWNvbnRlbnQ7bWluLXdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94fWlucHV0LmZpbGUtZXhwbG9yZXItcGF0aDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNn1pbnB1dC5maWxlLWV4cGxvcmVyLXBhdGg6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9aW5wdXQuZmlsZS1leHBsb3Jlci1wYXRoOmZvY3Vze2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0ZXh0LW92ZXJmbG93OmNsaXA7Ym94LXNoYWRvdzowIDAgMCAzcHggI2Q0OTg2MzFmfS5maWxlLWV4cGxvcmVyLXJlZnJlc2h7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxcmVtO3BhZGRpbmc6NHB4O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5maWxlLWV4cGxvcmVyLXJlZnJlc2g6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5maWxlLXNpZGUtcGFuZWx7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6Y2FsYygtMSAqIHZhcigtLWZpbGUtcGFuZWwtd2lkdGgpKTt0b3A6MDtib3R0b206MDt3aWR0aDp2YXIoLS1maWxlLXBhbmVsLXdpZHRoKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3otaW5kZXg6NTU7dHJhbnNpdGlvbjpyaWdodCAuM3MgdmFyKC0tZWFzZS1vdXQtZXhwbyksYm94LXNoYWRvdyAuM3MgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JveC1zaGFkb3c6LTRweCAwIDI0cHggIzAwMDAwMDFhO3BhZGRpbmctdG9wOnZhcigtLXdhbmQtc2FmZS10b3ApO3BhZGRpbmctYm90dG9tOnZhcigtLXdhbmQtc2FmZS1ib3R0b20pfS5maWxlLXNpZGUtcGFuZWwub3BlbntyaWdodDowO2JveC1zaGFkb3c6LThweCAwIDMycHggIzU5M2EyMDI2fS5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6bm9uZX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuZmlsZS1wYW5lbC1iYWNrZHJvcHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDojMmExYzEyNGQ7ei1pbmRleDo1NDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMnB4KX0uZmlsZS1wYW5lbC1iYWNrZHJvcC5vcGVue29wYWNpdHk6MTtwb2ludGVyLWV2ZW50czphdXRvfS5zaWRlYmFyLXBpbi10b2dnbGV7ZGlzcGxheTpub25lfX0uZmlsZS1zaWRlLXBhbmVsLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTJweCAxNHB4IDEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZmxleC1zaHJpbms6MDtnYXA6OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmNiwjZmZmMCl9LmZpbGUtc2lkZS1wYW5lbC10aXRsZS1ncm91cHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjA7ZmxleDoxfS5maWxlLXNpZGUtcGFuZWwtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLWFjY2VudCk7b3BhY2l0eTouODV9LmZpbGUtc2lkZS1wYW5lbC10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDFlbX0uZmlsZS1zaWRlLXBhbmVsLWhlYWRlci1hY3Rpb25ze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmbGV4LXNocmluazowfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bnt3aWR0aDozMHB4O2hlaWdodDozMHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjhweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKX0uZmlsZS1zaWRlLXBhbmVsLWljb25idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTQpfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bi5hY3RpdmV7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOiNkNDk4NjM1OX0uZmlsZS1zaWRlLXBhbmVsLWljb25idG4uY2xvc2U6aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOiNkYzQ2NDYxNDtib3JkZXItY29sb3I6I2RjNDY0NjQwfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0biAud2FuZC1pY29ue2Rpc3BsYXk6YmxvY2t9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuOmhvdmVyIC53YW5kLWljb24tcmVmcmVzaHt0cmFuc2Zvcm06cm90YXRlKDYwZGVnKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5maWxlLXNpZGUtcGFuZWwtYm9keXtmbGV4OjE7bWluLWhlaWdodDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVufS5naXQtc3RhdHVzLWJhZGdle2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjFweCA1cHg7Ym9yZGVyLXJhZGl1czozcHg7bWluLXdpZHRoOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKX0uZ2l0LWFkZGVke2JhY2tncm91bmQ6IzIyOGIyMjI2O2NvbG9yOiMyMjhiMjJ9LmdpdC1tb2RpZmllZHtiYWNrZ3JvdW5kOiNmZmE1MDAyNjtjb2xvcjpvcmFuZ2V9LmdpdC1kZWxldGVke2JhY2tncm91bmQ6I2RjMTQzYzI2O2NvbG9yOiNkYzE0M2N9LmdpdC1yZW5hbWVke2JhY2tncm91bmQ6IzQ2ODJiNDI2O2NvbG9yOiM0NjgyYjR9LmdpdC11bnN0YWdlZHtiYWNrZ3JvdW5kOiNmZjhjMDAyNjtjb2xvcjojZmY4YzAwfS5naXQtdW5zdGFnZWQtZGVsZXRlZHtiYWNrZ3JvdW5kOiNkYzE0M2MyNjtjb2xvcjojZGMxNDNjfS5naXQtdW50cmFja2Vke2JhY2tncm91bmQ6IzgwODA4MDI2O2NvbG9yOmdyYXl9LmZpbGUtc2VhcmNoLWJveHtwYWRkaW5nOjhweCAxMnB4IDEwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtmbGV4LXNocmluazowO3Bvc2l0aW9uOnJlbGF0aXZlfS5maWxlLXNlYXJjaC1pY29ue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MjJweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7b3BhY2l0eTouN30uZmlsZS1zZWFyY2gtaW5wdXR7ZmxleDoxO3BhZGRpbmc6N3B4IDMycHggN3B4IDMwcHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2V9LmZpbGUtc2VhcmNoLWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym94LXNoYWRvdzowIDAgMCAzcHggI2Q0OTg2MzFmfS5maWxlLXNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmZpbGUtc2VhcmNoLWNsZWFye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE4cHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo0cHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtib3JkZXItcmFkaXVzOjUwJTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2V9LmZpbGUtc2VhcmNoLWNsZWFyOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmZpbGUtc2VhcmNoLWNsZWFyLnZpc2libGV7ZGlzcGxheTppbmxpbmUtZmxleH0uZmlsZS1zZWFyY2gtY2xlYXI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5zaWRlYmFyLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjE7bWluLWhlaWdodDowO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhci1pbnRyb3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmbGV4LXNocmluazowfS5zZXNzaW9ucy1saXN0e2ZsZXg6MSAwIGF1dG87bWluLWhlaWdodDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjEwcHggMTBweCAxMnB4fSNzZXNzaW9ucy1wYW5lbHtkaXNwbGF5OmNvbnRlbnRzfS5zZXNzaW9ucy1saXN0OmVtcHR5OmJlZm9yZXtjb250ZW50OiJcNjY4Mlw2NWUwXDRmMWFcOGJkZCI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6MjAwcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44NzVyZW19LnNlc3Npb24tZ3JvdXB7bWFyZ2luLWJvdHRvbToxNHB4fS5zZXNzaW9uLWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zZXNzaW9uLWdyb3VwLXRpdGxle3BhZGRpbmc6NHB4IDZweCAxMHB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjA4ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9LnNlc3Npb24tZ3JvdXAtdGl0bGU6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6M3B4O2hlaWdodDoxMnB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtvcGFjaXR5Oi42NTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0uY2xhdWRlLWhpc3RvcnktcHJldmlld3tvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnNlc3Npb24taXRlbXt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kOiNmZmZjZjdlYjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTBweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3BhZGRpbmc6MTBweCAxMnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLHRyYW5zZm9ybSAuMXMgZWFzZTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO21hcmdpbi1ib3R0b206NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uc2Vzc2lvbi1pdGVtOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6NnB4O2JvdHRvbTo2cHg7d2lkdGg6M3B4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWSgwKTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZTtib3JkZXItcmFkaXVzOjJweH0uc2Vzc2lvbi1pdGVtLXJvd3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LnNlc3Npb24taXRlbS1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6aW5oZXJpdDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1vdXQtZXhwbyksYmFja2dyb3VuZCAuMThzIGVhc2U7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfS5zZXNzaW9uLWl0ZW0uc3dpcGVkIC5zZXNzaW9uLWl0ZW0tY29udGVudHt0cmFuc2Zvcm06dHJhbnNsYXRlKC03MnB4KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2Y1LCNmY2Y2ZWRmMCl9LnNlc3Npb24tc3dpcGUtYmd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMThzIGVhc2V9LnNlc3Npb24taXRlbS5zd2lwZWQgLnNlc3Npb24tc3dpcGUtYmd7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LnNlc3Npb24tc3dpcGUtZGVsZXRle3dpZHRoOjcycHg7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UpO2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDozcHg7Zm9udDppbmhlcml0O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXJ9LnNlc3Npb24tc3dpcGUtZGVsZXRlIHN2Z3tmbGV4LXNocmluazowfS5zZXNzaW9uLW1hbmFnZS1jaGVja3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDttYXJnaW4tcmlnaHQ6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcn0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgc3Bhbnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIyKTtiYWNrZ3JvdW5kOiNmZmZiZjU4Yztib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmY2O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSxib3JkZXItY29sb3IgLjE1cyBlYXNlfS5zZXNzaW9uLW1hbmFnZS1jaGVjazpob3ZlciBzcGFue2JhY2tncm91bmQ6I2ZmZmJmNWNjO2JvcmRlci1jb2xvcjojN2Q1YjM5NTl9LnNlc3Npb24tbWFuYWdlLWNoZWNrIGlucHV0OmNoZWNrZWQrc3BhbntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LnNlc3Npb24tbWFuYWdlLWNoZWNrIGlucHV0OmNoZWNrZWQrc3BhbjphZnRlcntjb250ZW50OiJcMjcxMyI7Y29sb3I6I2ZmZjtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjcwMH0uc2Vzc2lvbi1pdGVtLnNlbGVjdGVke2JvcmRlci1jb2xvcjojYzU2NTNkNTk7YmFja2dyb3VuZDojZmZmNWVlZjV9LnNlc3Npb24taXRlbS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9QGtleWZyYW1lcyBzZXNzaW9uLWRlbGV0ZS1jb2xsYXBzZXt0b3ttYXgtaGVpZ2h0OjA7b3BhY2l0eTowO21hcmdpbi1ib3R0b206MDtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7Ym9yZGVyLXdpZHRoOjB9fS5zZXNzaW9uLWl0ZW0uZGVsZXRpbmd7YW5pbWF0aW9uOnNlc3Npb24tZGVsZXRlLWNvbGxhcHNlIC4zcyBlYXNlLW91dCBmb3J3YXJkcztvdmVyZmxvdzpoaWRkZW47bWF4LWhlaWdodDoxMjBweDtwb2ludGVyLWV2ZW50czpub25lfS5zZXNzaW9uLW1haW57ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjNweDtwYWRkaW5nLXJpZ2h0OjYwcHh9LnNlc3Npb24tdGl0bGUtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHh9LnNlc3Npb24tdGl0bGUtcm93IC5zZXNzaW9uLXRpdGxlLC5zZXNzaW9uLXRpdGxlLXJvdyAuc2Vzc2lvbi1jb21tYW5ke2ZsZXg6MTttaW4td2lkdGg6MH0uc2Vzc2lvbi10aW1le2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3JhcDtsaW5lLWhlaWdodDoxLjQ7cGFkZGluZy10b3A6MXB4fS5zZXNzaW9uLWFjdGl2aXR5e2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS1hY2NlbnQpO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztsaW5lLWhlaWdodDoxLjM7b3BhY2l0eTouODV9LnNlc3Npb24tZGVzY3JpcHRpb257Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztsaW5lLWhlaWdodDoxLjM1fS5zZXNzaW9uLXJlY292ZXJ5LWhpbnR7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDojOTY3NjU1MTQ7cGFkZGluZzoxcHggNXB4O2JvcmRlci1yYWRpdXM6M3B4fS5zZXNzaW9uLWFjdGlvbnN7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NHB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmbGV4LXNocmluazowfS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MjhweDtoZWlnaHQ6MjhweDttaW4taGVpZ2h0OjI4cHg7bWluLXdpZHRoOjI4cHg7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6LjgxMjVyZW07YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcn0uc2Vzc2lvbi1hY3Rpb24tYnRuOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTFhO2NvbG9yOnZhcigtLWFjY2VudCl9LnNlc3Npb24tYWN0aW9uLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45KTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xc30uc2Vzc2lvbi1hY3Rpb24tYnRuIHN2Z3tmbGV4LXNocmluazowfS5zZXNzaW9uLWFjdGlvbi1idG4uZGVsZXRlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNlNzRjM2MxNDtjb2xvcjojZDM1MjQ0fS5zZXNzaW9uLWFjdGlvbi1idG4ubWVyZ2UtYnRuOmhvdmVye2JhY2tncm91bmQ6IzJmODBlZDFhO2NvbG9yOiMyZjgwZWR9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZXtiYWNrZ3JvdW5kOiMyZjgwZWQxZjtjb2xvcjojMmY4MGVkfS5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2UuZmFpbGVke2JhY2tncm91bmQ6I2U3NGMzYzFmO2NvbG9yOiNkMzUyNDR9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZS5tZXJnZWR7YmFja2dyb3VuZDojMjdhZTYwMWY7Y29sb3I6IzIxOTY1M30uc2Vzc2lvbi1raW5kLWJhZGdlLndvcmt0cmVlLW1lcmdlLm1lcmdpbmcsLnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZS5jaGVja2luZ3tiYWNrZ3JvdW5kOiNmMjk5NGExZjtjb2xvcjojYzE3YzJifS53b3JrdHJlZS1tZXJnZS1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHh9Lndvcmt0cmVlLW1lcmdlLXJvd3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjE2cHg7cGFkZGluZzoxMHB4IDEycHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojZmZmZmZmODA7Zm9udC1zaXplOi44NzVyZW19Lndvcmt0cmVlLW1lcmdlLXJvdyBzcGFue2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ud29ya3RyZWUtbWVyZ2Utcm93IHN0cm9uZ3tjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3dvcmQtYnJlYWs6YnJlYWstYWxsO3RleHQtYWxpZ246cmlnaHR9Lndvcmt0cmVlLW1lcmdlLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6MTBweDttYXJnaW4tdG9wOjE2cHh9Lndvcmt0cmVlLW1lcmdlLW1vZGFse21heC13aWR0aDo2MjBweH0ubW9kYWwtc3VidGl0bGV7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXNzaW9uLWFjdGlvbi1idG5bZGlzYWJsZWRde29wYWNpdHk6LjQ1O2N1cnNvcjpub3QtYWxsb3dlZH0uc2Vzc2lvbi1hY3Rpb24tYnRuW2Rpc2FibGVkXTpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1hY3Rpb25zIC5idG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS53b3JrdHJlZS1tZXJnZS1hY3Rpb25zIC5idG5bZGlzYWJsZWRdOmhvdmVyLC53b3JrdHJlZS1tZXJnZS1hY3Rpb25zIC5idG5bZGlzYWJsZWRdOmFjdGl2ZXt0cmFuc2Zvcm06bm9uZX0ud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRue21pbi13aWR0aDoxMjBweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLm1vZGFsLWJvZHl7bWluLWhlaWdodDoyNjBweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLmVycm9yLW1lc3NhZ2V7bWFyZ2luLXRvcDoxMnB4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50e21hcmdpbi10b3A6MH0ud29ya3RyZWUtbWVyZ2Utcm93Ky5maWVsZC1oaW50e21hcmdpbi10b3A6MnB4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Ky5maWVsZC1oaW50e21hcmdpbi10b3A6NHB4fS53b3JrdHJlZS1tZXJnZS1tb2RhbCAubW9kYWwtc3VidGl0bGV7bWF4LXdpZHRoOjQyMHB4fS53b3JrdHJlZS1tZXJnZS1tb2RhbCBzdHJvbmd7Zm9udC13ZWlnaHQ6NjAwfS53b3JrdHJlZS1tZXJnZS1tb2RhbCAubW9kYWwtaGVhZGVye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgcHttYXJnaW46MH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCBzdHJvbmd7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ud29ya3RyZWUtbWVyZ2Utcm93IHN0cm9uZzplbXB0eTphZnRlcntjb250ZW50OiItIjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCBjb2Rle2ZvbnQtZmFtaWx5OmluaGVyaXR9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQ6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9Lndvcmt0cmVlLW1lcmdlLXJvdzpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjJweH0ud29ya3RyZWUtbWVyZ2Utcm93Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Lm11dGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50LmVycm9ye2NvbG9yOiNkMzUyNDR9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQuc3VjY2Vzc3tjb2xvcjojMjE5NjUzfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Lndhcm5pbmd7Y29sb3I6I2MxN2MyYn0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC5pbmZve2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCsud29ya3RyZWUtbWVyZ2Utcm93e21hcmdpbi10b3A6MnB4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3crLndvcmt0cmVlLW1lcmdlLXJvd3ttYXJnaW4tdG9wOjB9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmcgc21hbGx7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmcgY29kZSwud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IHNwYW4gY29kZXtmb250LWZhbWlseTppbmhlcml0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgY29kZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BhZGRpbmc6MH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IGVte2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgc21hbGwsLndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAubXV0ZWR7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAud2FybmluZ3tjb2xvcjojYzE3YzJifS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLnN1Y2Nlc3N7Y29sb3I6IzIxOTY1M30ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5lcnJvcntjb2xvcjojZDM1MjQ0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmluZm97Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLnRydW5jYXRle292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLm1vbm9zcGFjZXtmb250LWZhbWlseTp1aS1tb25vc3BhY2UsU0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLG1vbm9zcGFjZX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5zbWFsbHtmb250LXNpemU6LjgxMjVyZW19Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAubm9ybWFse2ZvbnQtc2l6ZTouODc1cmVtfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmJsb2Nre2Rpc3BsYXk6YmxvY2t9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAuaW5saW5le2Rpc3BsYXk6aW5saW5lfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmZsZXh7ZGlzcGxheTpmbGV4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmdyaWR7ZGlzcGxheTpncmlkfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLnJvdW5kZWR7Ym9yZGVyLXJhZGl1czo4cHh9QG1lZGlhKGhvdmVyOmhvdmVyKXsuc2Vzc2lvbi1pdGVtIC5zZXNzaW9uLWFjdGlvbnN7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZX0uc2Vzc2lvbi1pdGVtOmhvdmVyIC5zZXNzaW9uLWFjdGlvbnMsLnNlc3Npb24taXRlbS5hY3RpdmUgLnNlc3Npb24tYWN0aW9ucywuc2Vzc2lvbi1pdGVtLnN3aXBlZCAuc2Vzc2lvbi1hY3Rpb25ze29wYWNpdHk6MX0uc2Vzc2lvbi1pdGVtIC5zZXNzaW9uLWFjdGlvbnM6aGFzKC5zZXNzaW9uLWFjdGlvbi1idG5bZGF0YS1hY3Rpb249cmVzdW1lXSl7b3BhY2l0eToxfX1AbWVkaWEoaG92ZXI6bm9uZSl7LnNlc3Npb24taXRlbSAuc2Vzc2lvbi1hY3Rpb25ze29wYWNpdHk6MX19LnNlc3Npb24taXRlbTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZkZmFmNTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JveC1zaGFkb3c6MCAycHggOHB4ICM1OTNhMjAxMn0uc2Vzc2lvbi1pdGVtOmhvdmVyOmJlZm9yZXtvcGFjaXR5Oi41O3RyYW5zZm9ybTpzY2FsZVkoMSl9LnNlc3Npb24taXRlbS5hY3RpdmV7YmFja2dyb3VuZDojZmZmN2YwZjU7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0ZDtib3gtc2hhZG93OjAgMnB4IDhweCAjYzU2NTNkMWF9LnNlc3Npb24taXRlbTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45OSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMXN9LnNlc3Npb24tY29tbWFuZHtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTI1cmVtO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMWVtfS5zZXNzaW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6LjgxMjVyZW07d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO2xpbmUtaGVpZ2h0OjEuM30uc2Vzc2lvbi1tZXRhe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7ZmxleC13cmFwOndyYXB9LnNlc3Npb24tc3RhdHVze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzozcHggOHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6LjY4NzVyZW07dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2Vzc2lvbi1zdGF0dXMtZG90e3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24tc3RhdHVzLnJ1bm5pbmcgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAwIDVweCB2YXIoLS1zdWNjZXNzLWdsb3cpO2FuaW1hdGlvbjpzdGF0dXMtcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnNlc3Npb24tc3RhdHVzLmV4aXRlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCl9LnNlc3Npb24tc3RhdHVzLmZhaWxlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMuc3RvcHBlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0td2FybmluZyl9LnNlc3Npb24tc3RhdHVzLnJ1bm5pbmd7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uc2Vzc2lvbi1zdGF0dXMuZmFpbGVke2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5zZXNzaW9uLXN0YXR1cy5zdG9wcGVke2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1tdXRlZCk7Y29sb3I6dmFyKC0td2FybmluZyl9LnNlc3Npb24tc3RhdHVzLnBlcm1pc3Npb24tYmxvY2tlZHtiYWNrZ3JvdW5kOiNmMGE1MDAyNDtjb2xvcjojZDE4YjAwfS5zZXNzaW9uLXN0YXR1cy5leGl0ZWQsLnNlc3Npb24tc3RhdHVzLmFyY2hpdmVke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfUBrZXlmcmFtZXMgc3RhdHVzLXB1bHNlezAlLHRve29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19LnNlc3Npb24taWR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiM5Njc2NTUxZjtwYWRkaW5nOjJweCA2cHg7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC13ZWlnaHQ6NTAwfS5zaWRlYmFyLWZvb3RlcntwYWRkaW5nOjEycHggMTJweCAxNHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YmFja2dyb3VuZDojZmZmYmY1YjN9LnNpZGViYXItZm9vdGVyLWFjdGlvbnN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDU2cHgsMWZyKSk7Z2FwOjRweH0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjRweDtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzo3cHggNHB4O21pbi1oZWlnaHQ6NDZweDtib3JkZXItcmFkaXVzOjlweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4gc3Zne3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtvcGFjaXR5Oi44NTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuOmhvdmVye2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7YmFja2dyb3VuZDojOTY3NjU1MTQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bjpob3ZlciBzdmd7b3BhY2l0eToxfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpO3RyYW5zaXRpb24tZHVyYXRpb246LjFzfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4uaGlkZGVue2Rpc3BsYXk6bm9uZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXR7cG9zaXRpb246cmVsYXRpdmV9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLnNpZGViYXItbG9nb3V0OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTNweDt0b3A6MjIlO2JvdHRvbToyMiU7d2lkdGg6MXB4O2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLXN1YnRsZSk7cG9pbnRlci1ldmVudHM6bm9uZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXQ6aG92ZXJ7Y29sb3I6dmFyKC0tZGFuZ2VyKTtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCl9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLnNpZGViYXItbG9nb3V0OmhvdmVyIHN2Z3tjb2xvcjp2YXIoLS1kYW5nZXIpfS50b3BiYXItYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjVweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtoZWlnaHQ6MzJweDttaW4taGVpZ2h0OjMycHg7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDoxO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS50b3BiYXItYnRuOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZjgwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnRvcGJhci1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS50b3BiYXItYnRuLmFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmZmZmZiMztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjYwMDtib3gtc2hhZG93OjAgMXB4IDRweCAjNTkzYTIwMWF9LnRvcGJhci1idG4uc3F1YXJle3dpZHRoOjMycHg7cGFkZGluZzowO2ZvbnQtc2l6ZTouODc1cmVtfSN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6I2M1NjUzZDMzfSN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QyZX0uYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjZweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzotLjAwNWVtO3BhZGRpbmc6MCAxNnB4O2hlaWdodDozOHB4O21pbi1oZWlnaHQ6MzhweDtib3JkZXItcmFkaXVzOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2UsY29sb3IgLjE1cyBlYXNlLGJveC1zaGFkb3cgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bjpmb2N1c3tvdXRsaW5lOm5vbmV9LmJ0bjpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZTtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1iZy1wcmltYXJ5KSwwIDAgMCA0cHggdmFyKC0tYWNjZW50KX0uYnRuOmRpc2FibGVkLC5idG5bZGlzYWJsZWRde29wYWNpdHk6LjQ1O2N1cnNvcjpub3QtYWxsb3dlZDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTpub25lIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50fS5idG4tcHJpbWFyeXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50LWhvdmVyKSAwJSx2YXIoLS1hY2NlbnQpIDEwMCUpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSk7Ym94LXNoYWRvdzowIDFweCAycHggI2M1NjUzZDUyLDAgNHB4IDEwcHggLTJweCAjYzU2NTNkNTIsaW5zZXQgMCAxcHggI2ZmZmZmZjM4LGluc2V0IDAgLTFweCAjNTkzYTIwMmV9LmJ0bi1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZDY4NTVlIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDJweCA0cHggI2M1NjUzZDUyLDAgOHB4IDIwcHggLTRweCAjYzU2NTNkNjYsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3LGluc2V0IDAgLTFweCAjNTkzYTIwMmV9LmJ0bi1wcmltYXJ5OmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSAwJSx2YXIoLS1hY2NlbnQtYWN0aXZlKSAxMDAlKTtib3gtc2hhZG93OjAgMXB4IDJweCAjYzU2NTNkNDcsaW5zZXQgMCAxcHggIzU5M2EyMDJlO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLXNlY29uZGFyeXtiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLXNlY29uZGFyeTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkyNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5idG4tc2Vjb25kYXJ5OmFjdGl2ZXtiYWNrZ3JvdW5kOiM3ZDViMzkzMzt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9LmJ0bi1naG9zdHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1naG9zdDpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5idG4tZ2hvc3Q6YWN0aXZle2JhY2tncm91bmQ6IzdkNWIzOTI0O3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLWRhbmdlcntiYWNrZ3JvdW5kOiNiMjRmNDUxNDtjb2xvcjp2YXIoLS1kYW5nZXIpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUyOTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5idG4tZGFuZ2VyOmFjdGl2ZXtiYWNrZ3JvdW5kOiNiMjRmNDUzZDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9LmJ0bi1kYW5nZXI6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1iZy1wcmltYXJ5KSwwIDAgMCA0cHggdmFyKC0tZGFuZ2VyKX0uYnRuLXN1Y2Nlc3N7YmFja2dyb3VuZDojNGY3YTU4MWE7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tc3VjY2Vzczpob3ZlcntiYWNrZ3JvdW5kOiM0ZjdhNTgyZTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uYnRuLXN1Y2Nlc3M6YWN0aXZle2JhY2tncm91bmQ6IzRmN2E1ODQyO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLXN1Y2Nlc3M6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1iZy1wcmltYXJ5KSwwIDAgMCA0cHggdmFyKC0tc3VjY2Vzcyl9LmJ0bi1ibG9ja3t3aWR0aDoxMDAlfS5idG4teHN7aGVpZ2h0OjI2cHg7bWluLWhlaWdodDoyNnB4O3BhZGRpbmc6MCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07Ym9yZGVyLXJhZGl1czo3cHg7Z2FwOjRweH0uYnRuLXNte2hlaWdodDozMnB4O21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjAgMTJweDtmb250LXNpemU6LjgxMjVyZW07Ym9yZGVyLXJhZGl1czo4cHg7Z2FwOjVweH0uYnRuLWljb257cGFkZGluZzowO3dpZHRoOjM2cHg7bWluLXdpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWluLWhlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6OHB4O2dhcDowfS5idG4taWNvbi5idG4tc217d2lkdGg6MzBweDttaW4td2lkdGg6MzBweDtoZWlnaHQ6MzBweDttaW4taGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo3cHh9LmJ0bi1pY29uIHN2Z3tmbGV4LXNocmluazowfS5tYWluLWNvbnRlbnR7ZmxleDoxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjA7bWluLWhlaWdodDowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYWluLWNvbnRlbnQuZmlsZS1wYW5lbC1vcGVue21hcmdpbi1yaWdodDp2YXIoLS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoKTt0cmFuc2l0aW9uOm1hcmdpbi1yaWdodCAuMjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS50ZXJtaW5hbC1pbmZve2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjUwMH0ubWFpbi1oZWFkZXItcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo2cHggMTBweDtmbGV4LXNocmluazowO21pbi1oZWlnaHQ6NDRweDtnYXA6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYWluLWhlYWRlci1yb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtoZWlnaHQ6MnB4O3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQgMCUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC44NSkgMzUlLHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwxKSA1MCUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC44NSkgNjUlLHRyYW5zcGFyZW50IDEwMCUpO2JhY2tncm91bmQtc2l6ZToyMjAlIDEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIGNlbnRlcjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZX0ubWFpbi1oZWFkZXItcm93LmlzLXJ1bm5pbmc6YWZ0ZXJ7b3BhY2l0eToxO2FuaW1hdGlvbjp0b3BiYXJQcm9ncmVzc0Zsb3cgMS42cyBsaW5lYXIgaW5maW5pdGV9Lm1haW4taGVhZGVyLXJvdy5pcy1wZXJtaXNzaW9uLWJsb2NrZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQgMCUscmdiYSgxNjksMTA2LDQ3LC44NSkgMzUlLHJnYmEoMTY5LDEwNiw0NywxKSA1MCUscmdiYSgxNjksMTA2LDQ3LC44NSkgNjUlLHRyYW5zcGFyZW50IDEwMCUpO2JhY2tncm91bmQtc2l6ZToyMjAlIDEwMCU7YW5pbWF0aW9uLWR1cmF0aW9uOjIuNHN9QGtleWZyYW1lcyB0b3BiYXJQcm9ncmVzc0Zsb3d7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIGNlbnRlcn10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMDAlIGNlbnRlcn19QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsubWFpbi1oZWFkZXItcm93LmlzLXJ1bm5pbmc6YWZ0ZXJ7YW5pbWF0aW9uOm5vbmU7b3BhY2l0eTouN319LnRvcGJhci1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmbGV4LXNocmluazowfS50b3BiYXItY2VudGVye2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7b3ZlcmZsb3c6aGlkZGVufS50b3BiYXItcmlnaHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2ZsZXgtc2hyaW5rOjB9LnRvcGJhci1icmFuZHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCksdmFyKC0tYWNjZW50LWFjdGl2ZSkpO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouODVyZW07bGV0dGVyLXNwYWNpbmc6LjAyZW07Ym94LXNoYWRvdzowIDFweCAzcHggIzU5M2EyMDJlO3VzZXItc2VsZWN0Om5vbmU7ZmxleC1zaHJpbms6MH0udG9wYmFyLXNlc3Npb24tdGl0bGV7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZmxleC1zaHJpbms6MDttYXgtd2lkdGg6MjQwcHh9LnRvcGJhci1jd2R7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi43MnJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjttaW4td2lkdGg6MDtmbGV4OjEgMSAwO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDZweDtib3JkZXItcmFkaXVzOjZweDtkaXJlY3Rpb246bHRyO3RleHQtYWxpZ246bGVmdDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50b3BiYXItY3dkOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NHB4fS50b3BiYXItY3dkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTU0Nztib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0udG9wYmFyLWN3ZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojOTY3NjU1ODB9LnRvcGJhci1jd2Q6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmOGM7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS50YWlsLW1hcnF1ZWUtcGF0aHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6MDttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO2RpcmVjdGlvbjpsdHI7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOmJvdHRvbTstLXRhaWwtbWFycXVlZS1zaGlmdDogMHB4Oy0tdGFpbC1tYXJxdWVlLWR1cmF0aW9uOiAxMnM7LS10YWlsLW1hcnF1ZWUtZGVsYXk6IDIuNHN9LnRhaWwtbWFycXVlZS1wYXRoLWlubmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS10YWlsLW1hcnF1ZWUtc2hpZnQpKSl9LnRhaWwtbWFycXVlZS1wYXRoLmlzLW92ZXJmbG93aW5nIC50YWlsLW1hcnF1ZWUtcGF0aC1pbm5lcnthbmltYXRpb246dGFpbFBhdGhNYXJxdWVlIHZhcigtLXRhaWwtbWFycXVlZS1kdXJhdGlvbikgbGluZWFyIHZhcigtLXRhaWwtbWFycXVlZS1kZWxheSkgaW5maW5pdGUgYWx0ZXJuYXRlIGJvdGh9QGtleWZyYW1lcyB0YWlsUGF0aE1hcnF1ZWV7MCUsMjIle3RyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLXRhaWwtbWFycXVlZS1zaGlmdCkpKX03OCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX19QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsudGFpbC1tYXJxdWVlLXBhdGguaXMtb3ZlcmZsb3dpbmcgLnRhaWwtbWFycXVlZS1wYXRoLWlubmVye2FuaW1hdGlvbjpub25lIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS10YWlsLW1hcnF1ZWUtc2hpZnQpKSl9fS50b3BiYXItdGFnbGluZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljc4cmVtO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uc2Vzc2lvbi1zdGF0dXMtcGlsbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MnB4IDlweCAycHggN3B4O2ZsZXgtc2hyaW5rOjA7bWF4LXdpZHRoOjE0MHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LnNlc3Npb24tc3RhdHVzLXBpbGwgLnNlc3Npb24tc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24tc3RhdHVzLXBpbGwgLnNlc3Npb24tc3RhdHVzLXRleHR7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnNlc3Npb24tc3RhdHVzLXBpbGwucnVubmluZ3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2JvcmRlci1jb2xvcjojNGY3YTU4NGQ7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LnNlc3Npb24tc3RhdHVzLXBpbGwucnVubmluZyAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcyk7YW5pbWF0aW9uOnRhc2stcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5wZXJtaXNzaW9uLWJsb2NrZWR7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLW11dGVkKTtib3JkZXItY29sb3I6I2E5NmEyZjU5O2NvbG9yOnZhcigtLXdhcm5pbmcpfS5zZXNzaW9uLXN0YXR1cy1waWxsLnBlcm1pc3Npb24tYmxvY2tlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0td2FybmluZyk7YW5pbWF0aW9uOnRhc2stcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5leGl0ZWQsLnNlc3Npb24tc3RhdHVzLXBpbGwuc3RvcHBlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5mYWlsZWR7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1jb2xvcjojYjI0ZjQ1NGQ7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5mYWlsZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcil9LnNlc3Npb24tc3RhdHVzLXBpbGwuYXJjaGl2ZWR7b3BhY2l0eTouN30uc2Vzc2lvbi1zdGF0dXMtcGlsbCAuc2Vzc2lvbi1zdGF0dXMtZWxhcHNlZHtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OjRweDtwYWRkaW5nLWxlZnQ6NnB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCBjdXJyZW50Q29sb3I7b3BhY2l0eTouNzU7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOi0uMDFlbX0uY3VycmVudC10YXNre2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMik7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MnB4IDhweCAycHggNXB4O2ZvbnQtd2VpZ2h0OjUwMDttYXgtd2lkdGg6MjQwcHg7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO2ZsZXgtc2hyaW5rOjE7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmN1cnJlbnQtdGFzazpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7ZmxleC1zaHJpbms6MDthbmltYXRpb246dGFzay1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGFzay1wdWxzZXswJSx0b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXtvcGFjaXR5Oi41O3RyYW5zZm9ybTpzY2FsZSguOCl9fS50b3BiYXItbW9yZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXh9LnRvcGJhci1tb3JlLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDZweCk7cmlnaHQ6MDttaW4td2lkdGg6MTY4cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO3BhZGRpbmc6NHB4O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWxnKTt6LWluZGV4OjYwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweH0udG9wYmFyLW1vcmUtbWVudS5oaWRkZW57ZGlzcGxheTpub25lfS50b3BiYXItbW9yZS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjlweDt3aWR0aDoxMDAlO3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44MnJlbTtmb250LXdlaWdodDo1MDA7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo4cHg7dGV4dC1hbGlnbjpsZWZ0O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvcGJhci1tb3JlLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCl9LnRvcGJhci1tb3JlLWl0ZW0gc3Zne2ZsZXgtc2hyaW5rOjA7b3BhY2l0eTouODV9LnRvcGJhci1tb3JlLWl0ZW0udG9wYmFyLW1vcmUtaXRlbS1kYW5nZXJ7Y29sb3I6dmFyKC0tZGFuZ2VyKX0udG9wYmFyLW1vcmUtaXRlbS50b3BiYXItbW9yZS1pdGVtLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Y29sb3I6dmFyKC0tZGFuZ2VyLWhvdmVyKX0udG9wYmFyLW1vcmUtaXRlbS5oaWRkZW57ZGlzcGxheTpub25lfS50b3BiYXItbW9yZS1pdGVtW2Rpc2FibGVkXXtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZH0udG9wYmFyLW1vcmUtaXRlbVtkaXNhYmxlZF06aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS50b3BiYXItbW9yZS1kaXZpZGVye2hlaWdodDoxcHg7bWFyZ2luOjRweCA2cHg7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItZGVmYXVsdCk7b3BhY2l0eTouNn0udGVybWluYWwtY29udGFpbmVye2ZsZXg6MTtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IHRvcCByaWdodCxyZ2JhKDkxLDU4LDM0LC4yKSx0cmFuc3BhcmVudCAzNSUpLHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tIGxlZnQscmdiYSgxOTcsMTAxLDYxLC4wOCksdHJhbnNwYXJlbnQgNDAlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCMyYTIyMWMsIzFmMWIxNywjMWExNjEzKTtvdmVyZmxvdzpoaWRkZW47bWluLWhlaWdodDowO21pbi13aWR0aDowO21hcmdpbjowIDZweCA2cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxNDAsMTEwLDg1LC4zNSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmMGYsMCA4cHggMzJweCAjMDAwMDAwNTksMCAycHggOHB4ICMwMDAzO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0udGVybWluYWwtY29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6c3RyZXRjaH0udGVybWluYWwtc2Nyb2xsLXdyYXB7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47c2Nyb2xsYmFyLXdpZHRoOm5vbmU7cGFkZGluZzoxMnB4O2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7dGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9uZTtmb250LWZlYXR1cmUtc2V0dGluZ3M6ImxpZ2EiIDAsImNsaWciIDAsImNhbHQiIDAsImRsaWciIDA7Zm9udC1rZXJuaW5nOm5vbmU7LS10ZXJtLWZnOiAjZjVlYWRjOy0tdGVybS1iZzogdHJhbnNwYXJlbnQ7LS10ZXJtLWN1cnNvcjogI2Q2N2I1MjstLXRlcm0tZm9udC1mYW1pbHk6ICJHZWlzdCBNb25vIiwgIlNGIE1vbm8iLCBtb25vc3BhY2U7LS10ZXJtLWZvbnQtc2l6ZTogMTNweDstLXRlcm0tbGluZS1oZWlnaHQ6IHZhcigtLXRlcm0tcm93LWhlaWdodCk7LS10ZXJtLXJvdy1oZWlnaHQ6IDIwcHg7LS10ZXJtLWNvbG9yLTA6ICMxZjFiMTc7LS10ZXJtLWNvbG9yLTE6ICNkMjc3NjY7LS10ZXJtLWNvbG9yLTI6ICM3ZmEzNmY7LS10ZXJtLWNvbG9yLTM6ICNkNWEzNWI7LS10ZXJtLWNvbG9yLTQ6ICM4N2E5ZDk7LS10ZXJtLWNvbG9yLTU6ICNjNTk1Yzc7LS10ZXJtLWNvbG9yLTY6ICM3ZmIzYjE7LS10ZXJtLWNvbG9yLTc6ICNmNWVhZGM7LS10ZXJtLWNvbG9yLTg6ICM2MjUzNDc7LS10ZXJtLWNvbG9yLTk6ICNlMzlhODk7LS10ZXJtLWNvbG9yLTEwOiAjOWNjMDhhOy0tdGVybS1jb2xvci0xMTogI2ViYmI2ZTstLXRlcm0tY29sb3ItMTI6ICNhOGMxZWE7LS10ZXJtLWNvbG9yLTEzOiAjZGJiMWRjOy0tdGVybS1jb2xvci0xNDogIzlhY2JjYTstLXRlcm0tY29sb3ItMTU6ICNmZmY3ZWZ9LnRlcm1pbmFsLXNjcm9sbC13cmFwOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnRlcm1pbmFsLXNjcm9sbC13cmFwIDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6I2Q2N2I1MjQ3fS50ZXJtaW5hbC1zY3JvbGwtd3JhcCAudGVybS1ncmlke21pbi1oZWlnaHQ6MTAwJX0udGVybWluYWwtc2Nyb2xsYmFye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0cHg7cmlnaHQ6MnB4O2JvdHRvbTo0cHg7d2lkdGg6MTRweDt6LWluZGV4OjEwO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7cG9pbnRlci1ldmVudHM6bm9uZX0udGVybWluYWwtc2Nyb2xsYmFyLnZpc2libGV7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LnRlcm1pbmFsLXNjcm9sbGJhci10cmFja3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO3dpZHRoOjE0cHg7Ym9yZGVyLXJhZGl1czo3cHh9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDozcHg7d2lkdGg6OHB4O21pbi1oZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOiNiNDk2Nzg1OTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLHdpZHRoIC4xNXMgZWFzZSxyaWdodCAuMTVzIGVhc2V9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNjOGFhOGM4Yzt3aWR0aDoxMHB4O3JpZ2h0OjJweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1iLmRyYWdnaW5nLC50ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWI6YWN0aXZle2JhY2tncm91bmQ6I2RjYjk5NmIzO3dpZHRoOjEwcHg7cmlnaHQ6MnB4fUBtZWRpYShwb2ludGVyOmNvYXJzZSl7LnRlcm1pbmFsLXNjcm9sbGJhciwudGVybWluYWwtc2Nyb2xsYmFyLXRyYWNre3dpZHRoOjIwcHh9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYnt3aWR0aDoxMnB4O3JpZ2h0OjRweDttaW4taGVpZ2h0OjM2cHh9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYjpob3ZlciwudGVybWluYWwtc2Nyb2xsYmFyLXRodW1iLmRyYWdnaW5ne3dpZHRoOjE0cHg7cmlnaHQ6M3B4fX0udGVybWluYWwtY29udGFpbmVyOmZvY3VzLXdpdGhpbntib3JkZXItY29sb3I6I2M1NjUzZDgwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjE0LDAgOHB4IDMycHggIzAwMDYsMCAwIDAgMnB4ICNjNTY1M2QyNn0udGVybWluYWwtcmVzaXplLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206M3B4O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7d2lkdGg6NDhweDtoZWlnaHQ6NXB4O2JhY2tncm91bmQ6I2ZmZmZmZjE0O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2N1cnNvcjpucy1yZXNpemU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTo3cHg7Y29sb3I6I2ZmZmZmZjQwO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAuMjVzIHZhcigtLWVhc2Utb3V0LWV4cG8pO3otaW5kZXg6MTA7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtcmVzaXplLWhhbmRsZTpiZWZvcmV7Y29udGVudDoiXDIyZWVcMjJlZSI7bGV0dGVyLXNwYWNpbmc6OHB4O2ZvbnQtc2l6ZTo2cHh9LnRlcm1pbmFsLXJlc2l6ZS1oYW5kbGU6aG92ZXJ7b3BhY2l0eToxO2JhY2tncm91bmQ6I2ZmZmZmZjI2O2NvbG9yOiNmZmZmZmY4MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHNjYWxlKDEuMSl9LnRlcm1pbmFsLWNvbnRhaW5lcjpob3ZlciAudGVybWluYWwtcmVzaXplLWhhbmRsZXtvcGFjaXR5Oi43fS50ZXJtaW5hbC1jb250YWluZXIuaW50ZXJhY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg4Yztib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmYwZiwwIDAgMCAycHggIzRmN2E1ODQwLDAgOHB4IDMycHggIzAwMDAwMDU5fS50ZXJtaW5hbC1jb250YWluZXIuaW50ZXJhY3RpdmU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCx2YXIoLS1zdWNjZXNzKSx0cmFuc3BhcmVudCk7YW5pbWF0aW9uOnRlcm1pbmFsLWFjdGl2ZS1wdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHRlcm1pbmFsLWFjdGl2ZS1wdWxzZXswJSx0b3tvcGFjaXR5Oi41fTUwJXtvcGFjaXR5OjF9fS50ZXJtaW5hbC1jb250YWluZXI6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6NDhweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byB0b3AscmdiYSgyNiwyMiwxOSwuNSksdHJhbnNwYXJlbnQpO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZTt6LWluZGV4OjEyO2JvcmRlci1yYWRpdXM6MCAwIHZhcigtLXJhZGl1cy1tZCkgdmFyKC0tcmFkaXVzLW1kKX0udGVybWluYWwtY29udGFpbmVyLmhhcy1qdW1wLWJ0bjphZnRlcntvcGFjaXR5OjF9LnRlcm1pbmFsLXNjYWxlLWJ0bnttaW4td2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjAgNHB4O2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMH0udGVybWluYWwtc2NhbGUtbGFiZWx7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21pbi13aWR0aDozMnB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MCAycHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjhweDtyaWdodDo4cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjFweDtwYWRkaW5nOjJweDtib3JkZXItcmFkaXVzOjdweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA2KTtiYWNrZ3JvdW5kOiMxODE0MTE2MTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2JveC1zaGFkb3c6MCA2cHggMThweCAjMDAwMDAwMmU7b3BhY2l0eTouNzI7dHJhbnNpdGlvbjpvcGFjaXR5IC4xOHMgZWFzZSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlO3otaW5kZXg6MTI7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtY29udGFpbmVyOmhvdmVyIC50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LC50ZXJtaW5hbC1zY2FsZS1vdmVybGF5OmZvY3VzLXdpdGhpbntvcGFjaXR5OjE7YmFja2dyb3VuZDojMTgxNDExOGY7Ym9yZGVyLWNvbG9yOiNmZmZmZmYxYX0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG57bWluLXdpZHRoOjIycHg7aGVpZ2h0OjIycHg7cGFkZGluZzowIDNweDtjb2xvcjojZjVlYWRjZTA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjVweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZX0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG46aG92ZXJ7YmFja2dyb3VuZDojZDY3YjUyMmU7Y29sb3I6I2ZmZjdlZmY1fS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWxhYmVse2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiNmNWVhZGNhODttaW4td2lkdGg6MzRweDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjAgM3B4fS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWRpdmlkZXJ7d2lkdGg6MXB4O2hlaWdodDoxNHB4O2JhY2tncm91bmQ6I2Y1ZWFkYzMzO21hcmdpbjowIDJweH0udGVybWluYWwtanVtcC1ib3R0b217cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTRweDtib3R0b206MTZweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzFjMTYxMmM3O2NvbG9yOiNmZmY3ZWZlYjtib3gtc2hhZG93OjAgMXB4IDJweCAjMDAwMDAwNDAsMCA4cHggMjJweCAjMDAwMDAwNTIsaW5zZXQgMCAxcHggI2ZmZmZmZjBmO2JhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMztvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoLjg2KTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMjZzIHZhcigtLWVhc2Utb3V0LWV4cG8pLHRyYW5zZm9ybSAuMzJzIHZhcigtLWVhc2Utc3ByaW5nKSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2V9LnRlcm1pbmFsLWp1bXAtYm90dG9tLnZpc2libGV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpO3BvaW50ZXItZXZlbnRzOmF1dG99LnRlcm1pbmFsLWp1bXAtYm90dG9tIHN2Z3t0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnRlcm1pbmFsLWp1bXAtYm90dG9tOmhvdmVye2JhY2tncm91bmQ6I2Q2N2I1MmViO2JvcmRlci1jb2xvcjojZmZmZmZmMmU7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgMXB4IDJweCAjMDAwMDAwNDcsMCAxMHB4IDI2cHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmYyZX0udGVybWluYWwtanVtcC1ib3R0b206aG92ZXIgc3Zne3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEuNXB4KX0udGVybWluYWwtanVtcC1ib3R0b206YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45Mik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDhzfS50ZXJtaW5hbC1qdW1wLWJvdHRvbTpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZTtib3gtc2hhZG93OjAgMXB4IDJweCAjMDAwMDAwNDcsMCAxMHB4IDI2cHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmYyZSwwIDAgMCAzcHggI2Q2N2I1MjU5fS50ZXJtaW5hbC1jb250YWluZXIuaW50ZXJhY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg4MDtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmYwYSwwIDAgMCAycHggIzRmN2E1ODQwLHZhcigtLXNoYWRvdy1zb2Z0KX0ubWluaS1rZXlib2FyZC1mYWJ7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjYwcHg7cmlnaHQ6MTZweDt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtc2l6ZToxLjEyNXJlbTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNoYWRvdzowIDRweCAxNnB4ICNiODVjMzc1OTt6LWluZGV4OjEwMDt0cmFuc2l0aW9uOmFsbCAuMnMgdmFyKC0tZWFzZS1zcHJpbmcpfS5taW5pLWtleWJvYXJkLWZhYi52aXNpYmxle2Rpc3BsYXk6ZmxleH0ubWluaS1rZXlib2FyZC1mYWI6aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMSk7Ym94LXNoYWRvdzowIDZweCAyMHB4ICNiODVjMzc3M30ubWluaS1rZXlib2FyZC1mYWI6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS5taW5pLWtleWJvYXJke3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTo2MHB4O3JpZ2h0OjE2cHg7YmFja2dyb3VuZDojMmExZjE2ZjU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyMiw5MSw2NCwuNSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO2JveC1zaGFkb3c6MCA4cHggMzJweCAjMDAwNjt6LWluZGV4OjEwMDA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7b3ZlcmZsb3c6aGlkZGVuO21pbi13aWR0aDoyNjBweDthbmltYXRpb246bWtTbGlkZVVwIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0ubWluaS1rZXlib2FyZC5oaWRkZW57ZGlzcGxheTpub25lfUBrZXlmcmFtZXMgbWtTbGlkZVVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMnB4KSBzY2FsZSguOTYpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7Lm1pbmkta2V5Ym9hcmR7Ym90dG9tOjIwcHg7cmlnaHQ6MTBweDtsZWZ0OjEwcHg7bWluLXdpZHRoOjB9Lm1pbmkta2V5Ym9hcmQtZmFie2JvdHRvbToyMHB4O3JpZ2h0OjE2cHh9fS5jaGF0LWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjE7ZGlzcGxheTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAyMHB4IDE2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMjU1LDI1MiwyNDgsLjUpIDAlLHRyYW5zcGFyZW50IDEwMCUpfS5jaGF0LXVucmVhZC1idWJibGV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTRweDtib3R0b206MTBweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo2cHg7aGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7cGFkZGluZzowIDEwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNzIpO2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojZmZmY2Y4ZWI7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXNpemU6Ljc4cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxO2xldHRlci1zcGFjaW5nOi4wMWVtO3doaXRlLXNwYWNlOm5vd3JhcDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpO2JveC1zaGFkb3c6MCAxcHggM3B4ICM1OTNhMjAxZiwwIDEwcHggMjRweCAjYjg1YzM3MmUsaW5zZXQgMCAxcHggI2ZmZjk7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMztvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoOHB4KSBzY2FsZSguOSk7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI2cyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjMycyB2YXIoLS1lYXNlLXNwcmluZyksYmFja2dyb3VuZCAuMThzIGVhc2UsYm9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4ycyBlYXNlLGNvbG9yIC4xOHMgZWFzZSxwYWRkaW5nIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LmNoYXQtdW5yZWFkLWJ1YmJsZS52aXNpYmxle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtwb2ludGVyLWV2ZW50czphdXRvfS5jaGF0LXVucmVhZC1idWJibGUuaGFzLXVucmVhZHtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2ZmZmZmZmM3O3BhZGRpbmc6MCAxMnB4IDAgMTBweDtib3gtc2hhZG93OjAgMXB4IDNweCAjNTkzYTIwMmUsMCAxMnB4IDI4cHggI2I4NWMzNzUyLGluc2V0IDAgMXB4ICNmZmZmZmY0N30uY2hhdC11bnJlYWQtYnViYmxlLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC11bnJlYWQtYnViYmxlOmhvdmVye2JhY2tncm91bmQ6I2ZmZmFmMjtib3gtc2hhZG93OjAgMnB4IDRweCAjNTkzYTIwMjksMCAxNHB4IDMwcHggI2I4NWMzNzNkLGluc2V0IDAgMXB4ICNmZmZmZmZiM30uY2hhdC11bnJlYWQtYnViYmxlLmhhcy11bnJlYWQ6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtaG92ZXIpO2JveC1zaGFkb3c6MCAycHggNXB4ICM1OTNhMjAzOCwwIDE0cHggMzJweCAjYjg1YzM3NmIsaW5zZXQgMCAxcHggI2ZmZmZmZjUyfS5jaGF0LXVucmVhZC1idWJibGU6aG92ZXIgLmNoYXQtdW5yZWFkLWJ1YmJsZS1pY29ue3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEuNXB4KX0uY2hhdC11bnJlYWQtYnViYmxlOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguOTQpO3RyYW5zaXRpb24tZHVyYXRpb246LjA4c30uY2hhdC11bnJlYWQtYnViYmxlOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lO2JveC1zaGFkb3c6MCAycHggNHB4ICM1OTNhMjAzMywwIDEycHggMjhweCAjYjg1YzM3NTIsaW5zZXQgMCAxcHggI2ZmZmZmZjUyLDAgMCAwIDNweCAjYzU2NTNkNTJ9LmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudHtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE7bGV0dGVyLXNwYWNpbmc6LjAxZW07cG9pbnRlci1ldmVudHM6bm9uZX0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50LnZpc2libGV7ZGlzcGxheTppbmxpbmUtZmxleDthbmltYXRpb246Y2hhdFVucmVhZENvdW50UG9wIC4yMnMgdmFyKC0tZWFzZS1vdXQtYmFjaywgY3ViaWMtYmV6aWVyKC4zNCwgMS41NiwgLjY0LCAxKSl9LmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudDphZnRlcntjb250ZW50OiIgXDY3NjFcNjViMFw2ZDg4XDYwNmYiO21hcmdpbi1sZWZ0OjJweDtmb250LXdlaWdodDo1MDA7b3BhY2l0eTouOTV9QGtleWZyYW1lcyBjaGF0VW5yZWFkQ291bnRQb3B7MCV7dHJhbnNmb3JtOnNjYWxlKC42KTtvcGFjaXR5OjB9dG97dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19LmNoYXQtdW5yZWFkLWRpdmlkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDttYXJnaW46NnB4IDRweCAycHg7cGFkZGluZzowIDJweDtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS1hY2NlbnQpO2xldHRlci1zcGFjaW5nOi4wNGVtO3VzZXItc2VsZWN0Om5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7YW5pbWF0aW9uOmNoYXRVbnJlYWREaXZpZGVySW4gLjMycyB2YXIoLS1lYXNlLW91dC1leHBvKSBmb3J3YXJkc30uY2hhdC11bnJlYWQtZGl2aWRlci1saW5le2ZsZXg6MTtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNjNTY1M2QwZCwjYzU2NTNkNTIsI2M1NjUzZDBkKX0uY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbHtmbGV4LXNocmluazowO3BhZGRpbmc6M3B4IDEwcHg7YmFja2dyb3VuZDojZmZmOGYwZjI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE4KTtib3JkZXItcmFkaXVzOjk5OXB4O2JveC1zaGFkb3c6MCAxcHggM3B4ICNiODVjMzcxYTt3aGl0ZS1zcGFjZTpub3dyYXB9QGtleWZyYW1lcyBjaGF0VW5yZWFkRGl2aWRlckluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LWNvbnRhaW5lci5hY3RpdmV7ZGlzcGxheTpmbGV4fS5jaGF0LWNvbnRhaW5lcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDo0OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHRvcCxyZ2JhKDI1NSwyNTIsMjQ4LC42KSx0cmFuc3BhcmVudCk7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlO3otaW5kZXg6MTJ9LmNoYXQtY29udGFpbmVyLmhhcy1qdW1wLWJ0bjphZnRlcntvcGFjaXR5OjF9LmNoYXQtbWVzc2FnZXN7ZmxleDoxO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7Z2FwOjE2cHg7cGFkZGluZzoyMHB4IDRweCAxMnB4O21pbi1oZWlnaHQ6MDttaW4td2lkdGg6MDtzY3JvbGxiYXItZ3V0dGVyOnN0YWJsZTtvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6Y29udGFpbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt0b3VjaC1hY3Rpb246cGFuLXk7b3ZlcmZsb3ctYW5jaG9yOm5vbmU7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWlufS5jaGF0LWxvYWQtbW9yZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjhweCAwfS5jaGF0LWxvYWQtbW9yZS1idG57YmFja2dyb3VuZDp2YXIoLS1iZy1ob3Zlcik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNzVyZW07cGFkZGluZzo2cHggMTZweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZX0uY2hhdC1sb2FkLW1vcmUtYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfUBtZWRpYShwb2ludGVyOmNvYXJzZSksKG1heC13aWR0aDo3NjhweCl7LmNoYXQtbG9hZC1tb3Jle3BhZGRpbmc6MTJweCAwfS5jaGF0LWxvYWQtbW9yZS1idG57bWluLWhlaWdodDozNnB4O3BhZGRpbmc6OHB4IDE4cHg7Zm9udC1zaXplOi43OHJlbX0uY2hhdC1tZXNzYWdlLmFuaW1hdGUtaW57YW5pbWF0aW9uLWR1cmF0aW9uOi4xOHN9LmNoYXQtbWVzc2FnZS51c2VyLmFuaW1hdGUtaW57YW5pbWF0aW9uLWR1cmF0aW9uOi4xN3N9fUBrZXlmcmFtZXMgbWVzc2FnZVNsaWRlezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpIHNjYWxlKC45ODUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19QGtleWZyYW1lcyBtZXNzYWdlU2xpZGVVc2VyezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKDEwcHgpIHRyYW5zbGF0ZVkoNHB4KSBzY2FsZSguOTg1KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKSB0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1Aa2V5ZnJhbWVzIG1lc3NhZ2VGbG9hdHswJSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX01MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCl9fS5jaGF0LW1lc3NhZ2V7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDttYXJnaW46NHB4IDA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLHRyYW5zZm9ybSAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7LS1jaGF0LWNhcmQtbWF4LXdpZHRoOiA3MjBweH0uY2hhdC1tZXNzYWdlOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfUBtZWRpYShob3Zlcjpub25lKXsuY2hhdC1tZXNzYWdlOmhvdmVye3RyYW5zZm9ybTpub25lfS5jaGF0LW1lc3NhZ2U6aG92ZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc20pfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50OmhvdmVyIC5jaGF0LW1lc3NhZ2UtYnViYmxle2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSl9fS5jaGF0LW1lc3NhZ2UudXNlcnthbGlnbi1zZWxmOmZsZXgtZW5kfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50e2FsaWduLXNlbGY6ZmxleC1zdGFydDttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlfS5jaGF0LW1lc3NhZ2Uuc3lzdGVtLWluZm97YWxpZ24tc2VsZjpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJTttYXJnaW46MTBweCAwO2FuaW1hdGlvbjptZXNzYWdlRmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnN5c3RlbS1pbmZvLWNhcmR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCM2MzY2ZjExNCwjNjM2NmYxMGEpO2JvcmRlcjoxcHggc29saWQgcmdiYSg5OSwxMDIsMjQxLC4yKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7cGFkZGluZzoxMnB4IDE2cHg7Zm9udC1zaXplOi44MTI1cmVtO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKX0uc3lzdGVtLWluZm8taGVhZGVye2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNjM2NmYxZjI7bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC1zaXplOi42ODc1cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDhlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LnN5c3RlbS1pbmZvLWhlYWRlcjpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDo4cHg7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOiM2MzY2ZjE5OTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0uc3lzdGVtLWluZm8tY29udGVudHtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7bWF4LWhlaWdodDoyMDBweDtvdmVyZmxvdy15OmF1dG99LmNoYXQtbWVzc2FnZS5hbmltYXRlLWlue2FuaW1hdGlvbjptZXNzYWdlU2xpZGUgLjIycyB2YXIoLS1lYXNlLW91dC1leHBvKTt3aWxsLWNoYW5nZTpvcGFjaXR5LHRyYW5zZm9ybX0uY2hhdC1tZXNzYWdlLnVzZXIuYW5pbWF0ZS1pbnthbmltYXRpb246bWVzc2FnZVNsaWRlVXNlciAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LmNoYXQtbWVzc2FnZS1hdmF0YXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6MCAycHggNHB4fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLmFzc2lzdGFudHtmbGV4LWRpcmVjdGlvbjpyb3d9LmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlcntmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ucGl4ZWwtYXZhdGFye3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOjZweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Ym94LXNoYWRvdzowIDFweCAzcHggIzAwMDAwMDI2fS5waXhlbC1hdmF0YXItaW1hZ2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXJ9LnBpeGVsLWF2YXRhci1zdmd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2ltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWR9LmF2YXRhci1uYW1le2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07bGluZS1oZWlnaHQ6MX0uY2hhdC1tZXNzYWdlLmFzc2lzdGFudCAuYXZhdGFyLW5hbWV7Y29sb3I6dmFyKC0tYWNjZW50KX0uY2hhdC1tZXNzYWdlLnVzZXIgLmF2YXRhci1uYW1le2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpfS5jaGF0LW1lc3NhZ2UtYnViYmxle3BhZGRpbmc6MTJweCAxNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDp2YXIoLS1saW5lLWhlaWdodC1yZWxheGVkKTt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbjtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSk7dHJhbnNpdGlvbjpib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNoYXQtbWVzc2FnZTpob3ZlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCl9LmNoYXQtbWVzc2FnZS51c2VyIC5jaGF0LW1lc3NhZ2UtYnViYmxle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZykgdmFyKC0tcmFkaXVzLWxnKSB2YXIoLS1yYWRpdXMtc20pIHZhcigtLXJhZGl1cy1sZyk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7Ym94LXNoYWRvdzowIDRweCAxNnB4ICNjNTY1M2Q0ZCxpbnNldCAwIDFweCAjZmZmZmZmMjZ9LmNoYXQtbWVzc2FnZS51c2Vye21heC13aWR0aDoxMDAlfS51c2VyLWF0dGFjaG1lbnRze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjZweDttYXJnaW4tYm90dG9tOjZweH0udXNlci1hdHRhY2htZW50LWltYWdle2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MH0udXNlci1hdHRhY2htZW50LXRodW1ie2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOm1pbigxMDAlLDI0MHB4KTttYXgtaGVpZ2h0OjIwMHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMjUpO29iamVjdC1maXQ6Y29udGFpbjtjdXJzb3I6em9vbS1pbjtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMjQ7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2V9LnVzZXItYXR0YWNobWVudC10aHVtYjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgNHB4IDE0cHggIzAwMDM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnVzZXItYXR0YWNobWVudC1maWxle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzo1cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7YmFja2dyb3VuZDp2YXIoLS1iZy1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2V9LnVzZXItYXR0YWNobWVudC1maWxlOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnVzZXItYXR0YWNobWVudC1maWxlLWljb257ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LXNocmluazowO2NvbG9yOnZhcigtLWFjY2VudCl9LnVzZXItYXR0YWNobWVudC1maWxlLW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS51c2VyLWF0dGFjaG1lbnQtdGV4dHt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0uY2hhdC1tZXNzYWdlLmFzc2lzdGFudCAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtiYWNrZ3JvdW5kOnZhcigtLWJnLXN1cmZhY2UpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7cGFkZGluZzoxNHB4IDE4cHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSl9LmNoYXQtbWVzc2FnZS5hc3Npc3RhbnQ6aG92ZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudC1zb2Z0KTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCl9LmNoYXQtbWVzc2FnZS1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO3dvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym94LXNpemluZzpib3JkZXItYm94fS5jaGF0LW1lc3NhZ2UtY29udGVudD4udGhpbmtpbmctaW5saW5lLC5jaGF0LW1lc3NhZ2UtY29udGVudD4uaW5saW5lLXRvb2wsLmNoYXQtbWVzc2FnZS1jb250ZW50Pi50b29sLXVzZS1jYXJkLC5jaGF0LW1lc3NhZ2UtY29udGVudD4udG9vbC1ncm91cHttYXJnaW46M3B4IDB9LnR1cm4tdXNhZ2Utc3VtbWFyeXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NnB4O3dpZHRoOjEwMCU7bWluLWhlaWdodDoyMHB4O21hcmdpbi10b3A6NnB4O3BhZGRpbmc6MnB4IDJweCAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsbW9ub3NwYWNlO2ZvbnQtc2l6ZTouNjdyZW07bGluZS1oZWlnaHQ6MS40NTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Ym94LXNpemluZzpib3JkZXItYm94fS50dXJuLXVzYWdlLXN1bW1hcnkuaXMtZXN0aW1hdGVke29wYWNpdHk6LjgyfS50dXJuLXVzYWdlLWljb257d2lkdGg6MTNweDtoZWlnaHQ6MTNweDttYXJnaW4tdG9wOjFweDtmbGV4OjAgMCBhdXRvO2ZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxLjM1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZH0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1tZXNzYWdlLnVzZXIubXVsdGktYWdlbnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQuc3ViYWdlbnR7cGFkZGluZy1sZWZ0OjEwcHg7bWFyZ2luLWxlZnQ6NnB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCB2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYm9yZGVyLXN1YnRsZSkpO2JvcmRlci1yYWRpdXM6MCA0cHggNHB4IDA7d2lkdGg6Y2FsYygxMDAlIC0gNnB4KTttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNnB4KX0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50IC5jaGF0LW1lc3NhZ2Utc2VnbWVudC5zdWJhZ2VudCAuY2hhdC1tZXNzYWdlLWNvbnRlbnR7b3BhY2l0eTouOTZ9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQgLmNoYXQtbWVzc2FnZS1hdmF0YXJ7cGFkZGluZy1ib3R0b206NHB4fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnN1YmFnZW50IC5hdmF0YXItbmFtZXtjb2xvcjp2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSl9LnN1YmFnZW50LXJlcGx5e2JhY2tncm91bmQ6I2M1NjUzZDBmO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYlLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMik7Ym9yZGVyOjFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMjAlLHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDE0cHg7bWFyZ2luOjRweCAwO2xpbmUtaGVpZ2h0OjEuNTU7Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbn0uc3ViYWdlbnQtcmVwbHk+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcmVwbHk+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zdWJhZ2VudC1yZXBseS5lcnJvcntiYWNrZ3JvdW5kOiNlMjU3NGMxNDtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci1jb2xvcjojZTI1NzRjNTk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgMzUlLHRyYW5zcGFyZW50KX0uc3ViYWdlbnQtcmVwbHkucGVuZGluZ3tvcGFjaXR5Oi43O3BhZGRpbmc6MTRweCAxNnB4fS5zdWJhZ2VudC1yZXBseTpub3QoLmNvbGxhcHNpYmxlKXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NnB4fS5zdWJhZ2VudC1yZXBseSBwcmUsLnN1YmFnZW50LXJlcGx5IGNvZGV7Zm9udC1zaXplOi44MnJlbX0uc3ViYWdlbnQtcmVwbHkgcHJle2JhY2tncm91bmQ6IzAwMDAwMDBhO3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21hcmdpbjo4cHggMDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MH0uc3ViYWdlbnQtcGFuZWx7bWFyZ2luOjhweCAwO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDI1JSx0cmFuc3BhcmVudCk7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1NSUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMyUsdmFyKC0tYmctc3VyZmFjZSkpO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDAwOH0uc3ViYWdlbnQtcGFuZWwtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjhweCAxMnB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDEwJSx2YXIoLS1iZy1zdXJmYWNlKSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE2JSx0cmFuc3BhcmVudCk7Zm9udC1zaXplOi43OHJlbTtsaW5lLWhlaWdodDoxLjM1fS5zdWJhZ2VudC1wYW5lbC1oZWFkZXI6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNTUlLHRyYW5zcGFyZW50KTtvdXRsaW5lLW9mZnNldDotMnB4fS5zdWJhZ2VudC1wYW5lbC1hdmF0YXJ7ZmxleDowIDAgYXV0bzt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6NXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxOCUsdHJhbnNwYXJlbnQpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN1YmFnZW50LXBhbmVsLWF2YXRhciBzdmcsLnN1YmFnZW50LXBhbmVsLWF2YXRhciBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrfS5zdWJhZ2VudC1wYW5lbC1hcnJvd3tmbGV4OjAgMCBhdXRvO2NvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA2NSUsdmFyKC0tdGV4dC1wcmltYXJ5KSk7b3BhY2l0eTouODtmb250LXdlaWdodDo2MDB9LnN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9ue2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnN1YmFnZW50LXBhbmVsLW5hbWV7Y29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDg4JSx2YXIoLS10ZXh0LXByaW1hcnkpKTtmb250LXdlaWdodDo2MDB9LnN1YmFnZW50LXBhbmVsLXRhZ3tkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCA2cHg7cGFkZGluZzowIDZweDtmb250LXNpemU6LjYycmVtO2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzouMDRlbTtjb2xvcjp2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMTIlLHRyYW5zcGFyZW50KTtib3JkZXI6MXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAzMCUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6NHB4O3ZlcnRpY2FsLWFsaWduOjFweDtsaW5lLWhlaWdodDoxLjQ7d2hpdGUtc3BhY2U6bm93cmFwfS5zdWJhZ2VudC1wYW5lbC10YXNrLWRlc2N7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6NDAwfS5zdWJhZ2VudC1wYW5lbC1jb3VudHtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjk5OXB4O2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDI0JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgOSUsdmFyKC0tYmctc3VyZmFjZSkpO2NvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA3MiUsdmFyKC0tdGV4dC1wcmltYXJ5KSk7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjYwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZXtkaXNwbGF5Om5vbmU7ZmxleDowIDAgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjNweCAxMHB4O2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS4zO2NvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA3OCUsdmFyKC0tdGV4dC1wcmltYXJ5KSk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDMwJSx0cmFuc3BhcmVudCk7Ym9yZGVyLXJhZGl1czo5OTlweDtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSx0cmFuc2Zvcm0gLjFzIGVhc2V9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNDUlLHRyYW5zcGFyZW50KX0uc3ViYWdlbnQtcGFuZWwtdG9nZ2xlOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpfS5zdWJhZ2VudC1wYW5lbC10b2dnbGUtaWNvbnt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbywgY3ViaWMtYmV6aWVyKC4xNiwgMSwgLjMsIDEpKX0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD10cnVlXSAuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWljb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5zdWJhZ2VudC1wYW5lbC1ib2R5e3BhZGRpbmc6MTBweCAxNHB4O2hlaWdodDozMjBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21pbi13aWR0aDowO21heC13aWR0aDoxMDAlO3Njcm9sbGJhci1ndXR0ZXI6c3RhYmxlO292ZXJzY3JvbGwtYmVoYXZpb3I6Y29udGFpbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD1mYWxzZV0gLnN1YmFnZW50LXBhbmVsLWJvZHksLnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9dHJ1ZV0gLnN1YmFnZW50LXBhbmVsLWJvZHl7aGVpZ2h0OjMyMHB4fS5zdWJhZ2VudC1wYW5lbC1ib2R5PjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LnN1YmFnZW50LXBhbmVsLWJvZHk+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zdWJhZ2VudC1wYW5lbC1ib2R5IC50b29sLXVzZS1jYXJkLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC50b29sLWdyb3VwLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC5pbmxpbmUtdG9vbCwuc3ViYWdlbnQtcGFuZWwtYm9keSAuaW5saW5lLXRlcm1pbmFsLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC5pbmxpbmUtZGlmZnttYXJnaW46NHB4IDB9LnN1YmFnZW50LXBhbmVsLWJvZHkgLm1hcmtkb3duLWNvbnRlbnR7Zm9udC1zaXplOi44NzVyZW19LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjdweDtoZWlnaHQ6N3B4fS5zdWJhZ2VudC1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAzMiUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6NHB4fS5zdWJhZ2VudC1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1MCUsdHJhbnNwYXJlbnQpfS5zdWJhZ2VudC1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5zdWJhZ2VudC1wYW5lbC1mb290ZXJ7ZGlzcGxheTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjZweCAxMnB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYlLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXItdG9wOjFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMTQlLHRyYW5zcGFyZW50KTtmb250LXNpemU6LjdyZW19LnN1YmFnZW50LXBhbmVsLWZvb3Rlci1oaW50e2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNztmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2xldHRlci1zcGFjaW5nOi4wNGVtO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uc3ViYWdlbnQtcmVwbHkuY29sbGFwc2libGV7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbn0uc3ViYWdlbnQtcmVwbHkuZmluYWx7bWFyZ2luOjZweCAwIDA7cGFkZGluZzoxMHB4IDEycHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA2MCUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDUlLHZhcigtLWJnLXN1cmZhY2UpKX0uc3ViYWdlbnQtcmVwbHkuZmluYWwuZXJyb3J7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tZGFuZ2VyLCAjZTI1NzRjKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgNSUsdmFyKC0tYmctc3VyZmFjZSkpfS5zdWJhZ2VudC1yZXBseS1tYXJrZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDttYXJnaW4tYm90dG9tOjRweDtmb250LXNpemU6LjY4cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDc4JSx2YXIoLS10ZXh0LXByaW1hcnkpKX0uc3ViYWdlbnQtcmVwbHktbWFya2VyLmVycm9ye2NvbG9yOnZhcigtLWRhbmdlciwgI2UyNTc0Yyl9LnN1YmFnZW50LXJlcGx5LW1hcmtlci5wZW5kaW5ne2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6MDtmb250LXdlaWdodDo1MDB9LnN1YmFnZW50LXJlcGx5LW1hcmtlci1pY29ue2ZvbnQtd2VpZ2h0OjcwMH0uc3ViYWdlbnQtcmVwbHkuZmluYWwgLnN1YmFnZW50LXJlcGx5LWNvbnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcmVwbHkuZmluYWwgLnN1YmFnZW50LXJlcGx5LWNvbnRlbnQ+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5lbXB0eS1tZXNzYWdlIC5lbXB0eS1tZXNzYWdlLWhpbnR7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOi44MTI1cmVtO29wYWNpdHk6Ljd9LnVua25vd24tYmxvY2t7bWFyZ2luOjRweCAwO2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXRleHQtbXV0ZWQpIDYlLHRyYW5zcGFyZW50KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS51bmtub3duLWJsb2NrOmhvdmVye2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tdGV4dC1tdXRlZCkgMTAlLHRyYW5zcGFyZW50KX0udW5rbm93bi1ibG9jay1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6NnB4IDEwcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS51bmtub3duLWJsb2NrLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCk7Y29sb3I6dmFyKC0tYmctc3VyZmFjZSk7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjYwMH0udW5rbm93bi1ibG9jay1sYWJlbHtmbGV4OjE7Zm9udC13ZWlnaHQ6NTAwfS51bmtub3duLWJsb2NrLXRvZ2dsZXtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtmb250LXNpemU6LjdyZW07dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udW5rbm93bi1ibG9jay5jb2xsYXBzZWQgLnVua25vd24tYmxvY2stdG9nZ2xle3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0udW5rbm93bi1ibG9jay1ib2R5e21hcmdpbjowO3BhZGRpbmc6OHB4IDEwcHggMTBweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7d2hpdGUtc3BhY2U6cHJlLXdyYXA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbDttYXgtaGVpZ2h0OjI0MHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztib3JkZXItdG9wOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym94LXNpemluZzpib3JkZXItYm94fS51bmtub3duLWJsb2NrLmNvbGxhcHNlZCAudW5rbm93bi1ibG9jay1ib2R5e2Rpc3BsYXk6bm9uZX0udG9vbC11c2UtY2FyZFtkYXRhLXRydW5jYXRlZD10cnVlXSAudG9vbC11c2UtbmFtZTphZnRlciwuaW5saW5lLXRvb2xbZGF0YS10cnVuY2F0ZWQ9dHJ1ZV0gLmlubGluZS10b29sLXRpdGxlOmFmdGVye2NvbnRlbnQ6Ilw1ZGYyXDYyMmFcNjVhZCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NnB4O3BhZGRpbmc6MXB4IDZweDtmb250LXNpemU6LjZyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSwgI2ZmZik7YmFja2dyb3VuZDp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtib3JkZXItcmFkaXVzOjk5OXB4O2xldHRlci1zcGFjaW5nOi4wMmVtO3ZlcnRpY2FsLWFsaWduOjFweDtvcGFjaXR5Oi44NX0uY2hhdC1tZXNzYWdlLnRoaW5raW5ne2FsaWduLXNlbGY6ZmxleC1zdGFydDttYXgtd2lkdGg6MTAwJTttYXJnaW46NHB4IDB9LmNoYXQtbWVzc2FnZS5wcm9tcHR7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjRweCAwfS5wcm9tcHQtY2FyZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo0cHggOHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5wcm9tcHQtaWNvbntmb250LXNpemU6Ljg3NXJlbX0ucHJvbXB0LWNvbnRlbnR7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30ucHJvbXB0LXRleHR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtjb2xvcjojYzU2NTNkY2M7Zm9udC13ZWlnaHQ6NTAwfS50eXBpbmctaW5kaWNhdG9ye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtwYWRkaW5nOjZweCAwfS50eXBpbmctaW5kaWNhdG9yIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6N3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtc29mdCk7YW5pbWF0aW9uOnR5cGluZ0JvdW5jZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS50eXBpbmctaW5kaWNhdG9yIHNwYW46bnRoLWNoaWxkKDIpe2FuaW1hdGlvbi1kZWxheTouMTVzfS50eXBpbmctaW5kaWNhdG9yIHNwYW46bnRoLWNoaWxkKDMpe2FuaW1hdGlvbi1kZWxheTouM3N9QGtleWZyYW1lcyB0eXBpbmdCb3VuY2V7MCUsNjAlLHRve29wYWNpdHk6LjM1O3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTMwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCl9fS50b29sLXVzZS1jYXJke21hcmdpbjo0cHggMDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmJmNWUwLCNmZmY2ZWFiOCk7Ym94LXNoYWRvdzowIDFweCAycHggIzU5M2EyMDBhO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4yMnMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBlYXNlfS50b29sLXVzZS1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjojNGY3YTU4NGQ7Ym94LXNoYWRvdzowIDNweCAxMnB4ICM0ZjdhNTgxNH0udG9vbC11c2UtY2FyZC5sb2FkaW5ne2JvcmRlci1jb2xvcjojYTk2YTJmNGQ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY0ZTJlMCwjZmZmMWRhYjgpfS50b29sLXVzZS1jYXJkLnN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg1Mn0udG9vbC11c2UtY2FyZC5lcnJvcntib3JkZXItY29sb3I6I2IyNGY0NTUyO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmNmMGVlZTAsI2ZjZWJlOWI4KX0udG9vbC11c2UtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo5cHggMTRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouODEyNXJlbTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlO21pbi1oZWlnaHQ6MzhweDtmbGV4LXdyYXA6bm93cmFwfS50b29sLXVzZS1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMGF9LnRvb2wtdXNlLWhlYWRlcjphY3RpdmV7YmFja2dyb3VuZDojYzU2NTNkMTJ9LnRvb2wtdXNlLWNhcmQubG9hZGluZyAudG9vbC11c2UtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2E5NmEyZjBmfS50b29sLXVzZS1jYXJkLnN1Y2Nlc3MgLnRvb2wtdXNlLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOiM0ZjdhNTgwZn0udG9vbC11c2UtY2FyZC5lcnJvciAudG9vbC11c2UtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTBmfS50b29sLXVzZS1pY29ue2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtd2VpZ2h0OjcwMDtmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjIycHg7aGVpZ2h0OjIycHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKTtsZXR0ZXItc3BhY2luZzotLjAyZW19LnRvb2wtdXNlLWNhcmQubG9hZGluZyAudG9vbC11c2UtaWNvbntiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpfS50b29sLXVzZS1jYXJkLmVycm9yIC50b29sLXVzZS1pY29ue2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS50b29sLXVzZS1zcGlubmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS13YXJuaW5nLW11dGVkKTtib3JkZXItdG9wLWNvbG9yOnZhcigtLXdhcm5pbmcpO2JvcmRlci1yYWRpdXM6NTAlO2FuaW1hdGlvbjp0b29sLXNwaW4gLjhzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHRvb2wtc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS50b29sLXVzZS1uYW1le2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnRvb2wtdXNlLWZpbGV7Zm9udC1zaXplOi43NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO21heC13aWR0aDozMjBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6MH0udG9vbC11c2Utc3VtbWFyeXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmbGV4OjAgMSBhdXRvO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tbGVmdDoycHh9LnRvb2wtdXNlLXRvZ2dsZXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyB2YXIoLS1lYXNlLXNwcmluZyksY29sb3IgLjE4cyBlYXNlO2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvcGFjaXR5Oi42fS50b29sLXVzZS1jYXJkOmhvdmVyIC50b29sLXVzZS10b2dnbGV7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO29wYWNpdHk6MX0udG9vbC11c2UtY2FyZC5jb2xsYXBzZWQgLnRvb2wtdXNlLXRvZ2dsZXt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9LnRvb2wtdXNlLWJvZHl7cGFkZGluZzoxMnB4IDE0cHg7YmFja2dyb3VuZDojZmZmZGY4YTY7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KTttYXgtaGVpZ2h0OjYwMHB4O292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjI0cyB2YXIoLS1lYXNlLW91dC1leHBvKSxwYWRkaW5nIC4yNHMgdmFyKC0tZWFzZS1vdXQtZXhwbyksb3BhY2l0eSAuMThzIGVhc2UsdHJhbnNmb3JtIC4yNHMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7b3BhY2l0eToxO3RyYW5zZm9ybS1vcmlnaW46dG9wfS50b29sLXVzZS1jYXJkLmNvbGxhcHNlZCAudG9vbC11c2UtYm9keXttYXgtaGVpZ2h0OjA7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVZKC45NSk7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX0udG9vbC11c2UtY29udGVudHttYXJnaW46MDtmb250LXNpemU6Ljc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NDAwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTV9LnRvb2wtdXNlLXJlc3VsdHttYXJnaW4tdG9wOjEwcHg7cGFkZGluZy10b3A6MTBweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjE0KX0udG9vbC11c2UtcmVzdWx0LWNvbnRlbnR7bWFyZ2luOjA7Zm9udC1zaXplOi43NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC1oZWlnaHQ6MzIwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTU7YmFja2dyb3VuZDojN2Q1YjM5MDk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO3BhZGRpbmc6OHB4IDEwcHg7Ym94LXNpemluZzpib3JkZXItYm94fS50b29sLXVzZS1yZXN1bHQtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC11c2UtbWV0YXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bWFyZ2luLWJvdHRvbTo4cHg7cGFkZGluZy1ib3R0b206OHB4O2JvcmRlci1ib3R0b206MXB4IGRhc2hlZCByZ2JhKDEyNSw5MSw1NywuMTQpfS50b29sLXVzZS1tZXRhLWxhYmVse2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDB9LnRvb2wtdXNlLWNhcmQuYXNrLXVzZXJ7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0ZDtiYWNrZ3JvdW5kOiNjNTY1M2QwYX0udG9vbC11c2UtY2FyZC5hc2stdXNlciAudG9vbC11c2UtaGVhZGVye2JhY2tncm91bmQ6I2M1NjUzZDE0fS5hc2stdXNlci1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5hc2stdXNlci1xdWVzdGlvbi1ncm91cHttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hc2stdXNlci10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4fS5hc2stdXNlci1vcHRpb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxMnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmxlZnR9LmFzay11c2VyLW9wdGlvbjpob3Zlcjpub3QoOmRpc2FibGVkKXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QwZn0uYXNrLXVzZXItb3B0aW9uOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWR7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMmU7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDU5IGluc2V0fS50b29sLXVzZS1jYXJkLmFzay11c2VyLmFzay11c2VyLWFuc3dlcmVke2JvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXN1Y2Nlc3MsICM0Y2FmNTApfS5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbntiYWNrZ3JvdW5kOiNjNTY1M2QyOTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uYXNrLXVzZXItaW5kaWNhdG9ye3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYXNrLXVzZXItb3B0aW9uc1tkYXRhLW11bHRpLXNlbGVjdD10cnVlXSAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1yYWRpdXM6M3B4fS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LmFzay11c2VyLW9wdGlvbi5zZWxlY3RlZCAuYXNrLXVzZXItaW5kaWNhdG9yOmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6NnB4O2hlaWdodDo2cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlfS5hc2stdXNlci1vcHRpb25zW2RhdGEtbXVsdGktc2VsZWN0PXRydWVdIC5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcjphZnRlcnt3aWR0aDo0cHg7aGVpZ2h0OjhweDtib3JkZXI6c29saWQgd2hpdGU7Ym9yZGVyLXdpZHRoOjAgMnB4IDJweCAwO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOm5vbmU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7bWFyZ2luLWJvdHRvbToycHh9LmFzay11c2VyLW9wdGlvbi1jb250ZW50e2ZsZXg6MTttaW4td2lkdGg6MH0uYXNrLXVzZXItb3B0aW9uLWxhYmVse2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uYXNrLXVzZXItb3B0aW9uLWRlc2N7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLXRvcDoycHg7bGluZS1oZWlnaHQ6MS40fS5hc2stdXNlci1hY3Rpb25ze21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5hc2stdXNlci1zdWJtaXR7cGFkZGluZzo2cHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uYXNrLXVzZXItc3VibWl0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2ZpbHRlcjpicmlnaHRuZXNzKDEuMSl9LmFzay11c2VyLXN1Ym1pdDpkaXNhYmxlZHtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZH0uYXNrLXVzZXItc3VibWl0LmFzay11c2VyLXN1Ym1pdHRlZHtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwb2ludGVyLWV2ZW50czpub25lfS5hc2stdXNlci1hbnN3ZXJlZCAuYXNrLXVzZXItb3B0aW9ue2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNn0uYXNrLXVzZXItYW5zd2VyZWQgLmFzay11c2VyLW9wdGlvbi5hc2stdXNlci1vcHRpb24tY2hvc2Vue29wYWNpdHk6MTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyk7YmFja2dyb3VuZDojNGY3YTU4MGZ9LmFzay11c2VyLWFuc3dlcmVkIC5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbiAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKTtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpfS5hc2stdXNlci1vcHRpb24tcmVhZG9ubHl7cG9pbnRlci1ldmVudHM6bm9uZX0udGhpbmtpbmctaW5saW5le2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtnYXA6NXB4O21hcmdpbjoycHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOiM4YTZjYjIwYTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojOGE2Y2IyOGM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS50aGlua2luZy1pbmxpbmU6aG92ZXJ7YmFja2dyb3VuZDojOGE2Y2IyMTQ7Y29sb3I6IzhhNmNiMmNjfS50aGlua2luZy1pbmxpbmUuZXhwYW5kZWR7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO2xpbmUtaGVpZ2h0OjEuNjttYXgtaGVpZ2h0OjMwMHB4O292ZXJmbG93LXk6YXV0b30udGhpbmtpbmctaW5saW5lLWljb257ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjYyNXJlbX0udGhpbmtpbmctaW5saW5lLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udGhpbmtpbmctaW5saW5lLmV4cGFuZGVkIC50aGlua2luZy1pbmxpbmUtcHJldmlld3t3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0udGhpbmtpbmctaW5saW5lLWFjdGlvbntmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiM4YTZjYjI2NjtwYWRkaW5nOjAgNHB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6IzhhNmNiMjE0O21hcmdpbi1sZWZ0OmF1dG99LnRoaW5raW5nLWlubGluZTpob3ZlciAudGhpbmtpbmctaW5saW5lLWFjdGlvbntjb2xvcjojOGE2Y2IyYjN9LnRoaW5raW5nLWlubGluZS50aGlua2luZy1wdHl7YmFja2dyb3VuZDojOGE2Y2IyMDh9LnRoaW5raW5nLXN0cmVhbWluZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NXB4O21hcmdpbjoycHggMDtwYWRkaW5nOjNweCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDojOGE2Y2IyMGE7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6IzhhNmNiMjhjfS50aGlua2luZy1zdHJlYW1pbmctaW5uZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjVweDt3aWR0aDoxMDAlfS50aGlua2luZy1zdHJlYW1pbmctaWNvbntmb250LXNpemU6LjYyNXJlbTtmbGV4LXNocmluazowO21hcmdpbi10b3A6MXB4fS50aGlua2luZy1zdHJlYW1pbmctdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojOGE2Y2IyY2M7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NC41ZW07b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjpyZ2JhKDEzOCwxMDgsMTc4LC4zKSB0cmFuc3BhcmVudH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjRweH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzhhNmNiMjRkO2JvcmRlci1yYWRpdXM6MnB4fS50b29sLWdyb3Vwe21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmYmY1ZDksI2ZmZjhlZWIzKTtib3gtc2hhZG93OjAgMXB4IDJweCAjNTkzYTIwMDg7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBlYXNlfS50b29sLWdyb3VwOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5MmU7Ym94LXNoYWRvdzowIDJweCA4cHggIzU5M2EyMDBmfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmdde2JvcmRlci1jb2xvcjojYTk2YTJmMzg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY0ZTJkOSwjZmZmMWRhYjMpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPWVycm9yXXtib3JkZXItY29sb3I6I2IyNGY0NTQ3O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmNmMGVlZDksI2ZjZWNlYWIzKX0udG9vbC1ncm91cC1zdW1tYXJ5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjlweDtwYWRkaW5nOjhweCAxMnB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZX0udG9vbC1ncm91cC1zdW1tYXJ5OmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS50b29sLWdyb3VwLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxO2ZsZXgtc2hyaW5rOjA7bGV0dGVyLXNwYWNpbmc6MH0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1kb25lXSAudG9vbC1ncm91cC1zdGF0dXN7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1lcnJvcl0gLnRvb2wtZ3JvdXAtc3RhdHVze2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmddIC50b29sLWdyb3VwLXN0YXR1c3tiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpO2FuaW1hdGlvbjp0b29sLWdyb3VwLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB0b29sLWdyb3VwLXB1bHNlezAlLHRve29wYWNpdHk6MX01MCV7b3BhY2l0eTouNTV9fS50b29sLWdyb3VwLXRleHR7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzotLjAwNWVtfS50b29sLWdyb3VwLWNvdW50e2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtiYWNrZ3JvdW5kOiM3ZDViMzkxMjtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnRvb2wtZ3JvdXAtY2hldnJvbntmbGV4LXNocmluazowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNn0udG9vbC1ncm91cDpob3ZlciAudG9vbC1ncm91cC1jaGV2cm9ue29wYWNpdHk6MX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpub25lO3BhZGRpbmc6NHB4IDhweCA4cHggMThweDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO2JvcmRlci1sZWZ0OjJweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JhY2tncm91bmQ6I2ZmZmRmODhjfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29se21hcmdpbjowfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29sKy5pbmxpbmUtdG9vbHtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjA2KX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvKX1Aa2V5ZnJhbWVzIHRvb2wtZ3JvdXAtcmV2ZWFsezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LWZvbGQtYmFye2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21heC1oZWlnaHQ6MTI0cHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6OHB4IDRweCA3cHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y4ZjUsI2ZmZmFmNGViKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEwcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAtOHB4ICM1OTNhMjAyZX0uY2hhdC1mb2xkLWJhci5oaWRkZW57ZGlzcGxheTpub25lfS5jaGF0LWZvbGQtcm93e3dpZHRoOm1pbigxMDAlLHZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KSk7bWluLWhlaWdodDozMHB4O21hcmdpbjowIGF1dG87cGFkZGluZzo1cHggMTBweDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjU0cHggbWlubWF4KDAsMWZyKTthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQsIDhweCk7YmFja2dyb3VuZDojZmZmZmZmOWU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250OmluaGVyaXQ7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1mb2xkLXJvdzpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JhY2tncm91bmQ6I2ZmZmZmZmQxfS5jaGF0LWZvbGQtcm93Lmhpc3Rvcnl7YmFja2dyb3VuZDojZmZmOGVlYjg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5jaGF0LWZvbGQtcm9sZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjcwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmNoYXQtZm9sZC10ZXh0e21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6Ljc4cmVtO2xpbmUtaGVpZ2h0OjEuMjV9LmNoYXQtY29udGFpbmVyLmF1dG8tZm9sZCAuY2hhdC1tZXNzYWdlc3tmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuY2hhdC1mb2xkLWJhcnttYXgtaGVpZ2h0OjExMnB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9LmNoYXQtZm9sZC1yb3d7bWluLWhlaWdodDoyOHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczo0NHB4IG1pbm1heCgwLDFmcik7cGFkZGluZzo0cHggOHB4fS5jaGF0LWZvbGQtcm9sZXtmb250LXNpemU6LjY4cmVtfS5jaGF0LWZvbGQtdGV4dHtmb250LXNpemU6Ljc0cmVtfX0uY2hhdC1mb2xkLWJhci1zcGFjZXJ7ZGlzcGxheTpub25lfS5jaGF0LWhpc3RvcnktaGlkZGVuLC5jaGF0LWF1dG8tZm9sZC1oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2hhdC1oaXN0b3J5LXN1bW1hcnl7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21hcmdpbjoxMHB4IGF1dG87Ym94LXNpemluZzpib3JkZXItYm94fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1idG57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O3dpZHRoOjEwMCU7cGFkZGluZzo3cHggMTJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCwgOTk5cHgpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlNiwjZmZmN2VjYzcpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQ6aW5oZXJpdDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2UsYmFja2dyb3VuZCAuMThzIGVhc2V9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0bjpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JveC1zaGFkb3c6MCAycHggOHB4ICM1OTNhMjAwZjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmFmM2YyLCNmZmY1ZThkOSl9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc1fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweDtmbGV4OjE7bWluLXdpZHRoOjB9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxle2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbntmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6LjY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuOmhvdmVyIC5jaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9ue29wYWNpdHk6MX0uY2hhdC1oaXN0b3J5LXN1bW1hcnlbZGF0YS1leHBhbmRlZD10cnVlXSAuY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmlubGluZS10b29se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjFweCAwO3dpZHRoOjEwMCU7bWF4LXdpZHRoOnZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2V9LnRvb2wtZ3JvdXAtYm9keT4uaW5saW5lLXRvb2x7bWF4LXdpZHRoOjEwMCV9LmlubGluZS10b29sLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2xpbmUtaGVpZ2h0OjEuNDU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtcm93e2JhY2tncm91bmQ6I2M1NjUzZDBmO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmlubGluZS10b29sLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2xpbmUtaGVpZ2h0OjF9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPXBlbmRpbmddIC5pbmxpbmUtdG9vbC1zdGF0dXN7Y29sb3I6dmFyKC0td2FybmluZyl9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPWVycm9yXSAuaW5saW5lLXRvb2wtc3RhdHVzLC5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXN0YXR1c3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1pY29ue2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3BhY2l0eTouODV9LmlubGluZS10b29sOmhvdmVyIC5pbmxpbmUtdG9vbC1pY29ue2NvbG9yOnZhcigtLWFjY2VudCk7b3BhY2l0eToxfS5pbmxpbmUtdG9vbC10aXRsZXtmbGV4OjE7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtdGl0bGV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uaW5saW5lLXRvb2wtbWV0YXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXgtd2lkdGg6MjIwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsZXR0ZXItc3BhY2luZzotLjAxZW19LmlubGluZS10b29sLWltYWdle3BhZGRpbmc6MnB4IDEwcHggOHB4IDMycHg7Y3Vyc29yOmRlZmF1bHR9LmlubGluZS10b29sLWltYWdlLXRodW1ie2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOm1pbigxMDAlLDM2MHB4KTttYXgtaGVpZ2h0OjI0MHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDEyNSw5MSw1NywuMDUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNzUlLHJnYmEoMTI1LDkxLDU3LC4wNSkgNzUlKSAwIDAgLyAxNnB4IDE2cHgsbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMTI1LDkxLDU3LC4wNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA3NSUscmdiYSgxMjUsOTEsNTcsLjA1KSA3NSUpIDhweCA4cHggLyAxNnB4IDE2cHg7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uaW5saW5lLXRvb2wtaW1hZ2UtdGh1bWI6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDJweCAxMHB4ICMwMDAwMDAxZn0uaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpub25lO3BhZGRpbmc6MCAxMHB4IDhweH0uaW5saW5lLXRvb2wtb3BlbiAuaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE2cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uaW5saW5lLXRvb2wtcmVzdWx0e2JhY2tncm91bmQ6IzdkNWIzOTBhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA3KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7cGFkZGluZzoxMHB4IDEycHg7bWFyZ2luLXRvcDo2cHg7bWF4LWhlaWdodDozMjBweDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnJnYmEoMTI1LDkxLDU3LC4yKSB0cmFuc3BhcmVudH0uaW5saW5lLXRvb2wtcmVzdWx0Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojN2Q1YjM5MzM7Ym9yZGVyLXJhZGl1czozcHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5NTJ9LmlubGluZS10b29sLXJlc3VsdC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjU1O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO21hcmdpbjowfS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmV7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHZhcigtLWRhbmdlcik7cGFkZGluZy1sZWZ0OjJweDttYXJnaW4tbGVmdDotMnB4fS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXJvd3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1yZXN1bHQuaW5saW5lLXRvb2wtZXJyb3J7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNzVyZW07YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1jb2xvcjojYjI0ZjQ1MmV9LmlubGluZS10b29sLWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS13YXJuaW5nKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjZweCAwO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LmlubGluZS10b29sLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXI6MS41cHggc29saWQgdmFyKC0td2FybmluZy1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS13YXJuaW5nKTtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjdzIGxpbmVhciBpbmZpbml0ZX0uaW5saW5lLXRvb2wtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC1jb250ZW50LWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjhweCAwfS50b29sLWNvbnRlbnQtbG9hZGluZzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlcjoycHggc29saWQgdmFyKC0tdGV4dC1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjZzIGxpbmVhciBpbmZpbml0ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweH1Aa2V5ZnJhbWVzIHRvb2wtY29udGVudC1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnRvb2wtY29udGVudC1lcnJvcntmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLWVycm9yKTtwYWRkaW5nOjhweCAwO2N1cnNvcjpwb2ludGVyfS50b29sLWNvbnRlbnQtZXJyb3I6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uaW5saW5lLXRlcm1pbmFse21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgxNSwxMiw5LC42KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7YmFja2dyb3VuZDojMWYxYjE3O2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBhIGluc2V0LDAgMnB4IDEycHggIzBmMGMwOTJlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjIycyBlYXNlLHRyYW5zZm9ybSAuMjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4yMnMgZWFzZX0uaW5saW5lLXRlcm1pbmFsOmhvdmVye2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBkIGluc2V0LDAgNHB4IDE4cHggIzBmMGMwOTNkO2JvcmRlci1jb2xvcjojZmZmZmZmMWF9LnRlcm0taGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZjBhLCNmZmZmZmYwNCksIzAwMDAwMDJlO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA0KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LnRlcm0taGVhZGVyOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmMGYsI2ZmZmZmZjA2KSwjMDAwMDAwMmV9LnRlcm0tc3RhdHVzLWRvdHt3aWR0aDo5cHg7aGVpZ2h0OjlweDtib3JkZXItcmFkaXVzOjUwJTtmbGV4LXNocmluazowO2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldH0udGVybS1zdGF0dXMtZG90LnRlcm0tc3VjY2Vzc3tiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjYjZmMGM0LCM2ZWUwOWEsIzNhYTc2NSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggIzZlZTA5YTU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS1lcnJvcntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjZmZiNWI5LCNmMDcxNzgsI2I1M2I0MSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggI2YwNzE3ODU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS13YXJue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMzAlLCNmZmQwN2EsI2YwYTUwMCwjYWQ3NDAwKTtib3gtc2hhZG93OjAgMCAwIDFweCAjMDAwMDAwNDAgaW5zZXQsMCAwIDZweCAjZjBhNTAwNTl9LnRlcm0tc3RhdHVzLWRvdC50ZXJtLXJ1bm5pbmd7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM1JSAzMCUsI2QxZDVkYiwjOWNhM2FmLCM0YjU1NjMpO2FuaW1hdGlvbjp0ZXJtLXB1bHNlIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGVybS1wdWxzZXswJSx0b3tvcGFjaXR5OjE7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCAjOWNhM2FmMDB9NTAle29wYWNpdHk6LjU1O2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldCwwIDAgOHB4ICM5Y2EzYWY1OX19LnRlcm0tY21kLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtjb2xvcjojZThkY2M4Yzc7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnRlcm0tY21kLXByZXZpZXcgLnRlcm0tcHJvbXB0e2NvbG9yOiM2ZWUwOWE7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1yaWdodDo2cHg7Zm9udC1zaXplOi43NXJlbTtvcGFjaXR5Oi45fS50ZXJtLXRvZ2dsZS1pY29ue2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiNmZmZmZmY1OTt0cmFuc2l0aW9uOmNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowfS50ZXJtLWhlYWRlcjpob3ZlciAudGVybS10b2dnbGUtaWNvbntjb2xvcjojZmZmZmZmYTZ9LnRlcm0tYm9keXtwYWRkaW5nOjEycHggMTRweCAxNHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMDAwMDAwMmUsIzAwMDAgMjRweCksIzFmMWIxN30udGVybS1jb21tYW5ke2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNmNGU5ZDQ7bGluZS1oZWlnaHQ6MS41NTttYXJnaW4tYm90dG9tOjZweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLXByb21wdHtjb2xvcjojNmVlMDlhO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tcmlnaHQ6NnB4O3RleHQtc2hhZG93OjAgMCA2cHggcmdiYSgxMTAsMjI0LDE1NCwuMjUpfS50ZXJtLW91dHB1dHttYXJnaW4tdG9wOjhweDtwYWRkaW5nLXRvcDo4cHg7Ym9yZGVyLXRvcDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsLjA2KTttYXgtaGVpZ2h0OjM2MHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpIHRyYW5zcGFyZW50fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6NnB4fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojZmZmZmZmMjY7Ym9yZGVyLXJhZGl1czozcHh9LnRlcm0tb3V0cHV0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmY0MH0udGVybS1saW5le2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNkNGMyYTM7bGluZS1oZWlnaHQ6MS41NTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLWV4aXR7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmctdG9wOjhweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwuMDYpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42ODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtsZXR0ZXItc3BhY2luZzouMDRlbX0udGVybS1leGl0LXN1Y2Nlc3N7Y29sb3I6IzZlZTA5YWJmfS50ZXJtLWV4aXQtZXJyb3J7Y29sb3I6I2YwNzE3OGM3fS5pbmxpbmUtZGlmZnttYXJnaW46NHB4IDA7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlMCwjZmZmNmVhYjgpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMjJzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2V9LmlubGluZS1kaWZmOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5Mzg7Ym94LXNoYWRvdzowIDNweCAxMnB4ICM1OTNhMjAwZn0uZGlmZi1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxNHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOi44MTI1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2U7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LmRpZmYtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS5kaWZmLXRvZ2dsZXtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1zcHJpbmcpLGNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OmF1dG87b3BhY2l0eTouNn0uaW5saW5lLWRpZmY6aG92ZXIgLmRpZmYtdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtvcGFjaXR5OjF9LmlubGluZS1kaWZmLmNvbGxhcHNlZCAuZGlmZi10b2dnbGV7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5pbmxpbmUtZGlmZi5jb2xsYXBzZWQgLmRpZmYtYm9keXttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4yNXMgZWFzZTt2aXNpYmlsaXR5OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lfS5kaWZmLWZpbGUtbmFtZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi44MTI1cmVtO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LmRpZmYtcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouNjg3NXJlbX0uZGlmZi1zdGF0dXN7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6M3B4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7bGV0dGVyLXNwYWNpbmc6LjAxZW19LmRpZmYtc3RhdHVzLmRpZmYtc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5kaWZmLXN0YXR1cy5kaWZmLWVycm9ye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5kaWZmLXN0YXR1cy5kaWZmLXBlbmRpbmd7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLW11dGVkKTtjb2xvcjp2YXIoLS13YXJuaW5nKX0uZGlmZi1vcGVuLWZpbGV7ZmxleC1zaHJpbms6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xNik7YmFja2dyb3VuZDojZmZmZGY4Yjg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO3BhZGRpbmc6M3B4IDlweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjUwO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2V9LmRpZmYtb3Blbi1maWxlOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDFhO2JvcmRlci1jb2xvcjojYzU2NTNkNDc7Y29sb3I6dmFyKC0tYWNjZW50KX0uZGlmZi1ib2R5e292ZXJmbG93OmhpZGRlbjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JhY2tncm91bmQ6I2ZmZmRmOGE2fS5kaWZmLWNvbHVtbnN7ZGlzcGxheTpmbGV4O2dhcDoxcHg7YmFja2dyb3VuZDojN2Q1YjM5MTQ7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LmRpZmYtY29se2ZsZXg6MSAxIDA7bWluLXdpZHRoOjA7bWF4LXdpZHRoOjEwMCU7YmFja2dyb3VuZDojZmZmZGY4ZDk7b3ZlcmZsb3c6aGlkZGVufS5kaWZmLWNvbC1oYWxme2ZsZXg6MX0uZGlmZi1jb2wtZnVsbHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uZGlmZi1jb2wtbGFiZWx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo3MDA7cGFkZGluZzo0cHggMTJweDtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA4ZW07YmFja2dyb3VuZDojN2Q1YjM5MGQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KX0uZGlmZi1saW5le3BhZGRpbmc6M3B4IDEycHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNTU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmRpZmYtYWRke2JhY2tncm91bmQ6IzRmN2E1ODE0O2NvbG9yOiMyYzU1MzU7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHJnYmEoNzksMTIyLDg4LC41KX0uZGlmZi1yZW1vdmV7YmFja2dyb3VuZDojYjI0ZjQ1MGY7Y29sb3I6IzdjMmEyMztib3JkZXItbGVmdDoycHggc29saWQgcmdiYSgxNzgsNzksNjksLjQ1KX0uZGlmZi1jb250ZXh0e2JhY2tncm91bmQ6I2ZmZmRmOGRiO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXItbGVmdDoycHggc29saWQgdHJhbnNwYXJlbnR9LmRpZmYtaHVua3tiYWNrZ3JvdW5kOiM0YTZmYTUxNztjb2xvcjp2YXIoLS1pbmZvKTtib3JkZXItbGVmdDoycHggc29saWQgcmdiYSg3NCwxMTEsMTY1LC4zNSk7Zm9udC13ZWlnaHQ6NjUwfS5kaWZmLWVtcHR5e3BhZGRpbmc6MTBweCAxMnB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7YmFja2dyb3VuZDojZmZmZGY4ZGJ9Lm1hcmtkb3duLWNvbnRlbnR7Y29sb3I6aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3JtYWw7b3ZlcmZsb3cteDpoaWRkZW47bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtYmxvY2sgcHJle292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS5tYXJrZG93bi1jb250ZW50IHB7bWFyZ2luOjAgMCA4cHg7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgcDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ubWFya2Rvd24tY29udGVudCBzdHJvbmd7Zm9udC13ZWlnaHQ6NjAwfS5tYXJrZG93bi1jb250ZW50IGVte2ZvbnQtc3R5bGU6aXRhbGljfS5tYXJrZG93bi1jb250ZW50IHVsLC5tYXJrZG93bi1jb250ZW50IG9se21hcmdpbjo4cHggMDtwYWRkaW5nLWxlZnQ6MjBweH0ubWFya2Rvd24tY29udGVudCBsaXttYXJnaW46NHB4IDA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgaDEsLm1hcmtkb3duLWNvbnRlbnQgaDIsLm1hcmtkb3duLWNvbnRlbnQgaDN7bWFyZ2luOjE2cHggMCA4cHg7Zm9udC13ZWlnaHQ6NjAwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkfS5tYXJrZG93bi1jb250ZW50IGgxe2ZvbnQtc2l6ZToxLjI1cmVtfS5tYXJrZG93bi1jb250ZW50IGgye2ZvbnQtc2l6ZToxLjFyZW19Lm1hcmtkb3duLWNvbnRlbnQgaDN7Zm9udC1zaXplOjFyZW19Lm1hcmtkb3duLWNvbnRlbnQgYmxvY2txdW90ZXttYXJnaW46OHB4IDA7cGFkZGluZzo4cHggMTJweDtib3JkZXItbGVmdDozcHggc29saWQgdmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QwZjtib3JkZXItcmFkaXVzOjAgdmFyKC0tcmFkaXVzLXNtKSB2YXIoLS1yYWRpdXMtc20pIDA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgYXtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsfS5tYXJrZG93bi1jb250ZW50IGltZ3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30ubWFya2Rvd24tY29udGVudCBjb2RlOm5vdCguY29kZS1ibG9jayk6bm90KC5jb2RlLWlubGluZSl7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07YmFja2dyb3VuZDojOTY3NjU1MWY7cGFkZGluZzoycHggNXB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay1hbGx9Lm1hcmtkb3duLWNvbnRlbnQgY29kZS5jb2RlLWlubGluZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtiYWNrZ3JvdW5kOiM5Njc2NTUxZjtwYWRkaW5nOjJweCA1cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGUtd3JhcHttYXJnaW46MTJweCAwO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofS5tYXJrZG93bi1jb250ZW50IC5tZC10YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJTt0YWJsZS1sYXlvdXQ6Zml4ZWQ7Zm9udC1zaXplOi44MTI1cmVtO3doaXRlLXNwYWNlOm5vcm1hbH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGUgdGgsLm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxlIHRke2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMHB4O3RleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbjp0b3A7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxlIHRoe2JhY2tncm91bmQ6Izk2NzY1NTFhO2ZvbnQtd2VpZ2h0OjYwMH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKXtiYWNrZ3JvdW5kOiM5Njc2NTUwYX0ubWFya2Rvd24tY29udGVudCAuY29kZS1ibG9ja3ttYXJnaW46MTJweCAwO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMWYxYjE3O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjIsOTEsNjQsLjM1KTtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMjZ9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtYmxvY2staGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo2cHggMTJweDtiYWNrZ3JvdW5kOiM3YTViNDAzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyMiw5MSw2NCwuMik7Z2FwOjhweH0ubWFya2Rvd24tY29udGVudCAuY29kZS1sYW5ne2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43cmVtO2NvbG9yOiM4YzczNWY7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubWFya2Rvd24tY29udGVudCAuY29kZS1jb3B5e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi43cmVtO3BhZGRpbmc6NHB4IDEwcHg7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7YmFja2dyb3VuZDojZmZmZmZmMWE7Y29sb3I6I2Q5YzRiMDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4LXNocmluazowfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWNvcHk6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmMmU7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2ZmZmZmZjQwfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWNvcHkuY29waWVke2NvbG9yOiM3ZmEzNmY7Ym9yZGVyLWNvbG9yOiM3ZmEzNmY4MDtiYWNrZ3JvdW5kOiM3ZmEzNmYyNn0ubWFya2Rvd24tY29udGVudCBwcmV7bWFyZ2luOjA7cGFkZGluZzoxMnB4O292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS5tYXJrZG93bi1jb250ZW50IHByZSBjb2Rle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojZjVlYWRjO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cGFkZGluZzowO21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2t9LmlucHV0LXBhbmVse3BhZGRpbmc6NnB4IDEwcHg7cGFkZGluZy1ib3R0b206Y2FsYyg2cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKTtmbGV4LXNocmluazowO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjY7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3RvdWNoLWFjdGlvbjpwYW4teTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdmlzaWJpbGl0eSAwc30uaW5wdXQtY29tcG9zZXJ7YmFja2dyb3VuZDojZmZmZmZmZTA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czoyMnB4O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWlufS5pbnB1dC1jb21wb3Nlcjpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAycHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDAgMTZweCAjYzU2NTNkMTQ7YmFja2dyb3VuZDojZmZmZmZmZmF9LmNvbXBvc2VyLXN0YXR1cy1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwO3BhZGRpbmc6MCAxMHB4O21pbi1oZWlnaHQ6MDt0cmFuc2l0aW9uOnBhZGRpbmcgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY29tcG9zZXItc3RhdHVzLXJvdz4qe2ZsZXgtc2hyaW5rOjB9LmNvbXBvc2VyLXN0YXR1cy1yb3c6aGFzKD4qOm5vdCguaGlkZGVuKSl7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjB9QHN1cHBvcnRzIG5vdCBzZWxlY3Rvcig6aGFzKCopKXsuY29tcG9zZXItc3RhdHVzLXJvdzpub3QoOmVtcHR5KXtwYWRkaW5nLXRvcDo0cHh9fS5jb21wb3Nlci1tYWluLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzo0cHggNnB4O21pbi1oZWlnaHQ6NDRweH0uY29tcG9zZXItYWN0aW9ucy1sZWZ0LC5jb21wb3Nlci1hY3Rpb25zLXJpZ2h0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmbGV4LXNocmluazowfS5jb21wb3Nlci1pbnB1dC13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY29tcG9zZXItaW5saW5lLWNvbmZpZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7Z2FwOjRweH0uY29tcG9zZXItY29uZmlnLWNvbnRyb2xze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7bWluLXdpZHRoOjB9LmNvbXBvc2VyLWNvbmZpZy1jaGlwLC5jb21wb3Nlci1jb25maWctcGFydHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo0cHg7bWluLWhlaWdodDoyOHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dXNlci1zZWxlY3Q6bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbXBvc2VyLWNvbmZpZy1jaGlwe21heC13aWR0aDo3NnB4O3BhZGRpbmc6MCA4cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6I2Y2ZjFlOGI4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNvbXBvc2VyLWNvbmZpZy1jaGlwLW1vZGV7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QxYTtib3JkZXItY29sb3I6I2M1NjUzZDM4fS5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmd7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpzdHJldGNoO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4xOCk7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiNmZmY4ZjJkMTtjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jb21wb3Nlci1jb25maWctY2hpcDpob3ZlciwuY29tcG9zZXItY29uZmlnLWNoaXA6Zm9jdXMtd2l0aGluLC5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmc6aG92ZXIsLmNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZzpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojZmZmOGYyZjV9LmNvbXBvc2VyLWNvbmZpZy1wYXJ0e21pbi13aWR0aDowO3BhZGRpbmc6MCA3cHg7Y3Vyc29yOnBvaW50ZXJ9LmNvbXBvc2VyLWNvbmZpZy1tb2RlbHttYXgtd2lkdGg6OTJweH0uY29tcG9zZXItY29uZmlnLXRoaW5raW5ne21pbi13aWR0aDo0MnB4O2NvbG9yOiNhOTY1MmR9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ1tkYXRhLXRoaW5raW5nPW9mZl17Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ1tkYXRhLXRoaW5raW5nPXN0YW5kYXJkXXtjb2xvcjojNWQ4YTY2fS5jb21wb3Nlci1jb25maWctdGhpbmtpbmdbZGF0YS10aGlua2luZz1kZWVwXXtjb2xvcjojYjE2YTJmfS5jb21wb3Nlci1jb25maWctdGhpbmtpbmdbZGF0YS10aGlua2luZz1tYXhde2NvbG9yOiNjNTUyNDh9LmNvbXBvc2VyLWNvbmZpZy1wYXJ0Ky5jb21wb3Nlci1jb25maWctcGFydHtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4xNCl9LmNvbXBvc2VyLWNvbmZpZy1pY29ue2ZsZXg6MCAwIGF1dG87d2lkdGg6MTNweDtoZWlnaHQ6MTNweH0uY29tcG9zZXItY29uZmlnLWxhYmVse21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjF9LmNvbXBvc2VyLXRleHQtcGlsbHtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjJweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaXppbmc6Ym9yZGVyLWJveDt1c2VyLXNlbGVjdDpub25lO21heC13aWR0aDoxMTBweDtsZXR0ZXItc3BhY2luZzouMDFlbX0uY29tcG9zZXItdGV4dC1waWxsOmhvdmVyLC5jb21wb3Nlci10ZXh0LXBpbGw6Zm9jdXMtd2l0aGlue2NvbG9yOnZhcigtLWFjY2VudCl9LmNvbXBvc2VyLXRleHQtbGFiZWx7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEwMCV9LmNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dHJhbnNwYXJlbnQ7Zm9udDppbmhlcml0O29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcjthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LmNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdDpmb2N1c3tvdXRsaW5lOm5vbmV9LmNvbXBvc2VyLXRleHQtc2Vwe2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnksICNiNWE4OWEpO2ZvbnQtc2l6ZTouN3JlbTtsaW5lLWhlaWdodDoxO3VzZXItc2VsZWN0Om5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5Oi42NX0ucGVybWlzc2lvbi1hY3Rpb25ze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7YW5pbWF0aW9uOnBlcm1pc3Npb24tZmFkZS1pbiAuMnMgZWFzZS1vdXR9LnBlcm1pc3Npb24tYWN0aW9ucy5oaWRkZW57ZGlzcGxheTpub25lfS5wZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWx7Zm9udC1zaXplOi43cmVtO2NvbG9yOiNkMThiMDA7bWF4LXdpZHRoOjE4MHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uYnRuLXBlcm1pc3Npb257Zm9udC1zaXplOi42NXJlbTtwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjQ7Zm9udC13ZWlnaHQ6NTAwO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLGJvcmRlci1jb2xvciAuMTVzfS5idG4tcGVybWlzc2lvbjpkaXNhYmxlZHtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZH0uYnRuLXBlcm1pc3Npb24tYXBwcm92ZXtiYWNrZ3JvdW5kOiNmMGE1MDAyNjtjb2xvcjojZDE4YjAwO2JvcmRlci1jb2xvcjojZjBhNTAwNGR9LmJ0bi1wZXJtaXNzaW9uLWFwcHJvdmU6aG92ZXI6bm90KDpkaXNhYmxlZCl7YmFja2dyb3VuZDojZjBhNTAwNDB9LmJ0bi1wZXJtaXNzaW9uLWRlbnl7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKX0uYnRuLXBlcm1pc3Npb24tZGVueTpob3Zlcjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kOiNkYzMyMzIxNDtjb2xvcjp2YXIoLS1kYW5nZXIpO2JvcmRlci1jb2xvcjojZGMzMjMyNGR9QGtleWZyYW1lcyBwZXJtaXNzaW9uLWZhZGUtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTRweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCl9fS5hdXRvLWFwcHJvdmUtaW5kaWNhdG9yLmFjdGl2ZXtjb2xvcjojMjJjNTVlO2JvcmRlci1jb2xvcjojMjJjNTVlODA7YmFja2dyb3VuZDojMjJjNTVlMWZ9LmF1dG8tYXBwcm92ZS1pbmRpY2F0b3IuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6IzIyYzU1ZTMzO2JvcmRlci1jb2xvcjojMjJjNTVlfS5hcHByb3ZhbC1zdGF0c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZX0uYXBwcm92YWwtc3RhdHMuaGlkZGVue2Rpc3BsYXk6bm9uZX0uYXBwcm92YWwtc3RhdHMtZGl2aWRlcnt3aWR0aDowO2hlaWdodDoxNnB4O21hcmdpbjowIDFweH0uYXBwcm92YWwtc3RhdHMtYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjNweDttaW4taGVpZ2h0OjIycHg7cGFkZGluZzoxcHggOHB4O2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOiMyMmM1NWUxYTtjb2xvcjojMjJjNTVlO2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjdXJzb3I6ZGVmYXVsdDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cztsaW5lLWhlaWdodDoxO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uYXBwcm92YWwtc3RhdHMtYmFkZ2U6aG92ZXJ7YmFja2dyb3VuZDojMjJjNTVlMmV9LmFwcHJvdmFsLXN0YXRzLWljb257c3Ryb2tlOiMyMmM1NWU7ZmxleC1zaHJpbms6MH0uYXBwcm92YWwtc3RhdHMtdG90YWx7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfUBrZXlmcmFtZXMgYXBwcm92YWwtcHVsc2V7MCV7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSl9dG97dHJhbnNmb3JtOnNjYWxlKDEpfX0uYXBwcm92YWwtc3RhdHMtcHVsc2V7YW5pbWF0aW9uOmFwcHJvdmFsLXB1bHNlIC4zcyBlYXNlLW91dH0uYXBwcm92YWwtc3RhdHMtcG9wdXB7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTpjYWxjKDEwMCUgKyA2cHgpO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCwgIzFlMWUyZSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6OHB4IDEwcHg7bWluLXdpZHRoOjE0MHB4O2JveC1zaGFkb3c6MCA0cHggMTZweCAjMDAwMDAwNDA7ei1pbmRleDoxMDA7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHh9LmFwcHJvdmFsLXN0YXRzOmhvdmVyIC5hcHByb3ZhbC1zdGF0cy1wb3B1cHtkaXNwbGF5OmZsZXh9LmFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxle2ZvbnQtc2l6ZTouNjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6NTAwO21hcmdpbi1ib3R0b206MnB4O3doaXRlLXNwYWNlOm5vd3JhcH0uYXBwcm92YWwtc3RhdHMtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnksICNjY2MpO3doaXRlLXNwYWNlOm5vd3JhcH0uYXBwcm92YWwtc3RhdHMtcm93LWljb257d2lkdGg6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNzJyZW19LmFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbHtmbGV4OjF9LmFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudHtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5LCAjZWVlKTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7bWluLXdpZHRoOjIwcHg7dGV4dC1hbGlnbjpyaWdodH0uYXBwcm92YWwtc3RhdHMtcm93LXRvdGFse2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZy10b3A6NHB4O21hcmdpbi10b3A6MnB4O2NvbG9yOiMyMmM1NWV9LmFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCAuYXBwcm92YWwtc3RhdHMtcm93LWNvdW50e2NvbG9yOiMyMmM1NWV9LnF1ZXVlLWJhcnstLXFiLWJnOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xNCk7LS1xYi1iZy1zdHJvbmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjIyKTstLXFiLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMjQpOy0tcWItdGV4dDogdmFyKC0tdGV4dC1wcmltYXJ5LCAjMWYxZDFhKTstLXFiLXRleHQtbXV0ZWQ6IHZhcigtLXRleHQtbXV0ZWQsICM2YjY1NWMpOy0tcWItc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMCwgMCwgMCwgLjEpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAuMDYpOy0tcWItc2hhZG93LWhvdmVyOiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgLjE0KSwgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgLjA2KX1bZGF0YS10aGVtZT1kYXJrXSAucXVldWUtYmFyLC50aGVtZS1kYXJrIC5xdWV1ZS1iYXJ7LS1xYi1iZzogcmdiYSg0MCwgMzgsIDM0LCAuNik7LS1xYi1iZy1zdHJvbmc6IHJnYmEoNjAsIDU2LCA1MCwgLjc0KTstLXFiLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMTIpfS5pbnB1dC1wYW5lbD4ucXVldWUtYmFyLWhvc3R7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDtsZWZ0OmF1dG87Ym90dG9tOmNhbGMoMTAwJSArIDZweCk7ei1pbmRleDozMDttYXgtd2lkdGg6bWluKDQ0MHB4LGNhbGMoMTAwJSAtIDIwcHgpKTtwb2ludGVyLWV2ZW50czpub25lfS5xdWV1ZS1iYXItaG9zdFtoaWRkZW5de2Rpc3BsYXk6bm9uZX0ucXVldWUtYmFye3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6NXB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzpub25lO3BhZGRpbmc6MDttYXJnaW46MH1Aa2V5ZnJhbWVzIHF1ZXVlQmFySXRlbUVudGVyezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpIHNjYWxlKC45Nil9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX0ucXVldWUtYmFyLWhlYWR7cG9pbnRlci1ldmVudHM6YXV0bztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6M3B4IDZweCAzcHggMTBweDtiYWNrZ3JvdW5kOnZhcigtLXFiLWJnKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigyMHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tcWItYm9yZGVyKTtib3JkZXItcmFkaXVzOjEzcHg7Ym94LXNoYWRvdzp2YXIoLS1xYi1zaGFkb3cpLGluc2V0IDAgMXB4ICNmZmYzO2FuaW1hdGlvbjpxdWV1ZUJhckl0ZW1FbnRlciAuMjJzIGN1YmljLWJlemllciguMiwuOCwuMiwxKSBib3RofS5xdWV1ZS1iYXItaGVhZC1jb3VudHtmb250LXNpemU6MTAuNXB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS1xYi10ZXh0LW11dGVkKTtsZXR0ZXItc3BhY2luZzouMDJlbTt1c2VyLXNlbGVjdDpub25lO3doaXRlLXNwYWNlOm5vd3JhcH0ucXVldWUtYmFyLWNsZWFyLWFsbHtmb250LXNpemU6MTFweDtwYWRkaW5nOjJweCA5cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjIpO2NvbG9yOnZhcigtLXFiLXRleHQtbXV0ZWQpO2JvcmRlci1yYWRpdXM6MTBweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZSxib3JkZXItY29sb3IgLjE1cyBlYXNlfS5xdWV1ZS1iYXItY2xlYXItYWxsOmhvdmVye2JhY2tncm91bmQ6I2RjNTA0NjFmO2JvcmRlci1jb2xvcjojZGM1MDQ2NTk7Y29sb3I6I2Q4NDgzY30ucXVldWUtYmFyLWxpc3R7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDo1cHg7d2lkdGg6MTAwJX0ucXVldWUtYmFyLWl0ZW17cG9pbnRlci1ldmVudHM6YXV0bztkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NHB4IDZweCA0cHggNXB4O21heC13aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOnZhcigtLXFiLWJnKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigyMHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tcWItYm9yZGVyKTtib3JkZXItcmFkaXVzOjE1cHg7Ym94LXNoYWRvdzp2YXIoLS1xYi1zaGFkb3cpLGluc2V0IDAgMXB4ICNmZmYzO2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuMzU7Y29sb3I6dmFyKC0tcWItdGV4dCk7Y3Vyc29yOmdyYWI7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGVhc2UsYm94LXNoYWRvdyAuMThzIGVhc2U7YW5pbWF0aW9uOnF1ZXVlQmFySXRlbUVudGVyIC4yMnMgY3ViaWMtYmV6aWVyKC4yLC44LC4yLDEpIGJvdGh9LnF1ZXVlLWJhci1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tcWItYmctc3Ryb25nKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OnZhcigtLXFiLXNoYWRvdy1ob3ZlciksaW5zZXQgMCAxcHggI2ZmZmZmZjQwfS5xdWV1ZS1iYXItaXRlbS5kcmFnZ2luZ3tjdXJzb3I6Z3JhYmJpbmc7dHJhbnNmb3JtOnNjYWxlKDEuMDQpO2JveC1zaGFkb3c6MCA4cHggMjJweCAjMDAwMzt6LWluZGV4OjUwO29wYWNpdHk6Ljk0fS5xdWV1ZS1iYXItaXRlbS1zbGlkaW5ne3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNnMgY3ViaWMtYmV6aWVyKC4yLC43LC4yLDEpfS5xdWV1ZS1iYXItaXRlbS1pbmRleHtmbGV4OjAgMCBhdXRvO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LCAjYzU2NTNkKTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UsICNmZmYpO2JvcmRlci1yYWRpdXM6NTAlO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxfS5xdWV1ZS1iYXItaXRlbS10ZXh0e2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLXFiLXRleHQpO2ZvbnQtd2VpZ2h0OjUwMH0ucXVldWUtYmFyLWl0ZW0tcHJvbW90ZSwucXVldWUtYmFyLWl0ZW0tZGVsZXRle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOiNmZmZmZmYyOTtjb2xvcjp2YXIoLS1xYi10ZXh0KTtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjtmbGV4OjAgMCBhdXRvO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2UsdHJhbnNmb3JtIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2UsZmlsdGVyIC4xNXMgZWFzZTtwYWRkaW5nOjB9LnF1ZXVlLWJhci1pdGVtLXByb21vdGV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQsICNjNTY1M2QpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSwgI2ZmZil9LnF1ZXVlLWJhci1pdGVtLXByb21vdGU6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wOCk7dHJhbnNmb3JtOnNjYWxlKDEuMDYpfS5xdWV1ZS1iYXItaXRlbS1kZWxldGU6aG92ZXJ7YmFja2dyb3VuZDojZGM1MDQ2MmU7Y29sb3I6I2Q4NDgzY30ucXVldWUtYmFyLWl0ZW0tZGVsZXRlOmFjdGl2ZSwucXVldWUtYmFyLWl0ZW0tcHJvbW90ZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LnF1ZXVlLWJhci1pdGVtLXByb21vdGUgc3ZnLC5xdWV1ZS1iYXItaXRlbS1kZWxldGUgc3Zne2ZsZXgtc2hyaW5rOjB9LnF1ZXVlLWJhci5xdWV1ZS1iYXItY2FwYWNpdHkgLnF1ZXVlLWJhci1pdGVtey0tcWItYmc6IHJnYmEoMjIwLCAxMjAsIDYwLCAuMik7LS1xYi1iZy1zdHJvbmc6IHJnYmEoMjIwLCAxMjAsIDYwLCAuMjgpfS5xdWV1ZS1iYXIucXVldWUtYmFyLWluZmxpZ2h0IC5xdWV1ZS1iYXItaXRlbXtib3gtc2hhZG93OnZhcigtLXFiLXNoYWRvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjQwLDAgMCAwIDFweCAjYzU2NTNkMmV9QG1lZGlhKG1heC13aWR0aDo1NjBweCl7LmlucHV0LXBhbmVsPi5xdWV1ZS1iYXItaG9zdHtyaWdodDo4cHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfX0uaW5wdXQtaGludHtmb250LXNpemU6LjVyZW07bGluZS1oZWlnaHQ6MS4yO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3JhcDt1c2VyLXNlbGVjdDpub25lO29wYWNpdHk6Ljc7bWF4LXdpZHRoOjM4Y2g7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmNvbXBvc2VyLXRvcC1yb3d7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21pbi13aWR0aDowfS5jb21wb3Nlci10b3Atcm93Omhhcyg+LnRvZG8tcHJvZ3Jlc3M6bm90KC5oaWRkZW4pKSwuY29tcG9zZXItdG9wLXJvdzpoYXMoPi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIpe21hcmdpbi1ib3R0b206NnB4fS50b2RvLXByb2dyZXNze21hcmdpbi1ib3R0b206NnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvZG8tcHJvZ3Jlc3MuaGlkZGVue2Rpc3BsYXk6bm9uZX0uY29tcG9zZXItdG9wLXJvdz4udG9kby1wcm9ncmVzc3tmbGV4OjE7bWluLXdpZHRoOjA7bWFyZ2luLWJvdHRvbTowfS50b2RvLXByb2dyZXNzLWhlYWRlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6NHB4IDhweDtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lO2dhcDo4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50b2RvLXByb2dyZXNzLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QxNH0udG9kby1wcm9ncmVzcy1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6MDtmbGV4LXNocmluazowO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0udG9kby1wcm9ncmVzcy1yaW5ne3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttaW4td2lkdGg6MTZweDtmbGV4LXNocmluazowfS50b2RvLXByb2dyZXNzLXJpbmcgc3Zne3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS50b2RvLXJpbmctdHJhY2t7c3Ryb2tlOiNjNTY1M2QyZX0udG9kby1yaW5nLWZpbGx7c3Ryb2tlOnZhcigtLWFjY2VudCk7c3Ryb2tlLWRhc2hhcnJheTo5Ny4zOTtzdHJva2UtZGFzaG9mZnNldDpjYWxjKDk3LjM5ICogKDEgLSB2YXIoLS1wcm9ncmVzcywgMCkpKTt0cmFuc2l0aW9uOnN0cm9rZS1kYXNob2Zmc2V0IC4zNXMgZWFzZX0udG9kby1wcm9ncmVzcy1yaW5nOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NHB4O2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO29wYWNpdHk6LjY7YW5pbWF0aW9uOnJpbmdQdWxzZSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgcmluZ1B1bHNlezAlLHRve29wYWNpdHk6LjM1O3RyYW5zZm9ybTpzY2FsZSguODUpfTUwJXtvcGFjaXR5Oi45NTt0cmFuc2Zvcm06c2NhbGUoMS4wNSl9fS50b2RvLXByb2dyZXNzLWNvdW50ZXJ7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfS50b2RvLXByb2dyZXNzLWZpbGx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2JvdHRvbTowO3dpZHRoOmNhbGModmFyKC0tcHJvZ3Jlc3MsIDApICogMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI2M1NjUzZDQ3LCNjNTY1M2QxYSk7Ym9yZGVyLXJhZGl1czoxMHB4IDAgMCAxMHB4O3RyYW5zaXRpb246d2lkdGggLjM1cyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDowfS50b2RvLXByb2dyZXNzLWZpbGw6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NHB4O2JvdHRvbTo0cHg7cmlnaHQ6LTFweDt3aWR0aDoycHg7YmFja2dyb3VuZDojYzU2NTNkOTk7Ym9yZGVyLXJhZGl1czoxcHh9LnRvZG8tcHJvZ3Jlc3MtdGFzay13cmFwe2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtwYWRkaW5nLWxlZnQ6OHB4fS50b2RvLXByb2dyZXNzLXRhc2t7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDoxO21pbi13aWR0aDowO3RleHQtYWxpZ246cmlnaHR9LnRvZG8tcHJvZ3Jlc3MtaGVhZGVyOmhhcygudG9kby1wcm9ncmVzcy10YXNrOm5vdCg6ZW1wdHkpKSAudG9kby1wcm9ncmVzcy10YXNre2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNmZmYwLCNmZmZmZmY4YyAxMiUgODglLCNmZmYwKTtwYWRkaW5nOjFweCA2cHg7Ym9yZGVyLXJhZGl1czo2cHh9LnRvZG8tcHJvZ3Jlc3MtY2hldnJvbntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmbGV4LXNocmluazowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0udG9kby1wcm9ncmVzcy5leHBhbmRlZCAudG9kby1wcm9ncmVzcy1jaGV2cm9ue3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0udG9kby1wcm9ncmVzcy1ib2R5e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTpjYWxjKDEwMCUgKyA2cHgpO2JhY2tncm91bmQ6I2ZmZmJmNmZhO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjhweCAxMHB4O2JveC1zaGFkb3c6MCA4cHggMjRweCAjMDAwMDAwMTQsMCAycHggNnB4ICMwMDAwMDAwYTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTttYXgtaGVpZ2h0OjMyMHB4O292ZXJmbG93LXk6YXV0bzt6LWluZGV4OjMwO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBlYXNlfS50b2RvLXByb2dyZXNzLWJvZHkuaGlkZGVue2Rpc3BsYXk6bm9uZX0udG9kby1wcm9ncmVzcy1ib2R5LmV4cGFuZGVke29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtwb2ludGVyLWV2ZW50czphdXRvfS50b2RvLXByb2dyZXNzLWxpc3R7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxcHh9LnRvZG8tcHJvZ3Jlc3MtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmc6NnB4IDhweDtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2xpbmUtaGVpZ2h0OjEuMzU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvZG8tcHJvZ3Jlc3MtaXRlbSsudG9kby1wcm9ncmVzcy1pdGVte2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MH0udG9kby1wcm9ncmVzcy1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweH0udG9kby1wcm9ncmVzcy1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo4cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4fS50b2RvLXByb2dyZXNzLWl0ZW0uYWN0aXZle2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NTAwO2JhY2tncm91bmQ6I2M1NjUzZDEyfS50b2RvLXByb2dyZXNzLWl0ZW0uZG9uZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO3RleHQtZGVjb3JhdGlvbi1jb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0udG9kby1wcm9ncmVzcy1pdGVtPnNwYW46bGFzdC1jaGlsZHtmbGV4OjE7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50b2RvLWl0ZW0taWNvbnt3aWR0aDoxNnB4O21pbi13aWR0aDoxNnB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTouNzVyZW07ZmxleC1zaHJpbms6MH0udG9kby1pdGVtLWljb24ucGVuZGluZ3tjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0udG9kby1pdGVtLWljb24uYWN0aXZle2NvbG9yOnZhcigtLWFjY2VudCl9LnRvZG8taXRlbS1pY29uLmRvbmV7Y29sb3I6IzRhN2E0Zn0uZm9sZGVyLXBpY2tlci1jb250YWluZXJ7bWFyZ2luLWJvdHRvbTo4cHh9LmZvbGRlci1waWNrZXItcXVpY2stYnRue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjRweCA4cHg7YmFja2dyb3VuZDojZmZmOTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5mb2xkZXItcGlja2VyLXF1aWNrLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmZlNjtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1hY2NlbnQpfS5mb2xkZXItYnJlYWRjcnVtYntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO2dhcDoycHg7cGFkZGluZzo0cHggOHB4O2JhY2tncm91bmQ6I2ZmZjY7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bWFyZ2luLWJvdHRvbTo0cHh9LmZvbGRlci1waWNrZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NnB4IDhweDtiYWNrZ3JvdW5kOiNmZmZmZmY4MDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKX0uZm9sZGVyLXBpY2tlci1pY29ue2ZvbnQtc2l6ZToxcmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjB9LmZvbGRlci1waWNrZXItaW5wdXR7ZmxleDoxO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtvdXRsaW5lOm5vbmU7cGFkZGluZzo0cHh9LmZvbGRlci1waWNrZXItaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDojZmZmYztib3JkZXItcmFkaXVzOjRweH0uZm9sZGVyLXBpY2tlci1kcm9wZG93bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7cmlnaHQ6MDtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWVsZXZhdGVkKTt6LWluZGV4OjUwO21heC1oZWlnaHQ6MjQwcHg7b3ZlcmZsb3cteTphdXRvO21hcmdpbi10b3A6NHB4fS5mb2xkZXItcGlja2VyLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6OHB4IDEwcHg7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi44MTI1cmVtO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5mb2xkZXItcGlja2VyLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LmZvbGRlci1waWNrZXItaXRlbS5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpfS5mb2xkZXItcGlja2VyLWl0ZW0taWNvbntmb250LXNpemU6Ljg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uZm9sZGVyLXBpY2tlci1sb2FkaW5ne3BhZGRpbmc6OHB4IDEwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi43NXJlbX0uZm9sZGVyLXBpY2tlci1lcnJvcntwYWRkaW5nOjhweCAxMHB4O2NvbG9yOnZhcigtLWRhbmdlcik7Zm9udC1zaXplOi43NXJlbTtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Ym9yZGVyLXJhZGl1czo0cHg7bWFyZ2luOjRweCA4cHh9LmZvbGRlci1waWNrZXItY29udGFpbmVyLmRyYWctb3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pfS5mb2xkZXItcGlja2VyLWNvbnRhaW5lci5kcmFnLW92ZXIgLmZvbGRlci1waWNrZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmZvbGRlci1yZWNlbnQtc2VjdGlvbntwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7bWFyZ2luLWJvdHRvbTo0cHh9LmZvbGRlci1yZWNlbnQtdGl0bGV7Zm9udC1zaXplOi42ODc1cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDVlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tYm90dG9tOjRweH0uZm9sZGVyLXJlY2VudC1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjZweCA4cHg7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi43NXJlbTtib3JkZXItcmFkaXVzOjRweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uZm9sZGVyLXJlY2VudC1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS5mb2xkZXItcmVjZW50LWl0ZW0tcGF0aHtmbGV4OjE7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pfS5mb2xkZXItcGlja2VyLWlucHV0LmludmFsaWR7Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcik7YmFja2dyb3VuZDojYjI0ZjQ1MTR9LmZvbGRlci1waWNrZXItaW5wdXQuaW52YWxpZDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDJweCAjYjI0ZjQ1MzN9LmZvbGRlci1waWNrZXItdmFsaWRhdGlvbntmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tZGFuZ2VyKTtwYWRkaW5nOjJweCA0cHg7bWFyZ2luLXRvcDoycHg7ZGlzcGxheTpub25lfS5mb2xkZXItcGlja2VyLXZhbGlkYXRpb24udmlzaWJsZXtkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLWNvbXBhY3R7cG9zaXRpb246c3RpY2t5O21hcmdpbi1ib3R0b206OHB4fS5mb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjZweCAxMHB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItY29tcGFjdC1yb3c6Zm9jdXMtd2l0aGlue2JhY2tncm91bmQ6I2ZmZmM7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmZvbGRlci1waWNrZXItY29tcGFjdC1pY29ue2ZvbnQtc2l6ZTouODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjB9LmZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dHtmbGV4OjE7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO291dGxpbmU6bm9uZTtwYWRkaW5nOjJweCAwO21pbi13aWR0aDowfS5mb2xkZXItcGlja2VyLWNvbXBhY3QtaW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5mb2xkZXItcGlja2VyLXRvZ2dsZXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHggNnB4O2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NHB4O3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItdG9nZ2xlOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uZm9sZGVyLXBpY2tlci1xdWljay1yb3d7ZGlzcGxheTpmbGV4O2dhcDo2cHg7cGFkZGluZzo2cHggOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5mb2xkZXItcGlja2VyLXF1aWNrLXJvdyAuZm9sZGVyLXBpY2tlci1xdWljay1idG57ZmxleDoxO3BhZGRpbmc6NHB4IDhweDtmb250LXNpemU6LjY4NzVyZW19LndvcmtpbmctZGlyLWluZGljYXRvcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEwcHg7Ym90dG9tOjVweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6MnB4IDZweDtiYWNrZ3JvdW5kOiNjNTY1M2QxNDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6LjY1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTttYXgtd2lkdGg6MTgwcHg7ei1pbmRleDoyO3BvaW50ZXItZXZlbnRzOmF1dG99LndvcmtpbmctZGlyLWluZGljYXRvcjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KX0ud29ya2luZy1kaXItaW5kaWNhdG9yLWljb257Zm9udC1zaXplOi43NXJlbTtmbGV4LXNocmluazowfS53b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aHtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbn0ud29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGg6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDozcHh9LndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTU1Mjtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0ud29ya2luZy1kaXItaW5kaWNhdG9yOmhvdmVyIC53b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aHtzY3JvbGxiYXItd2lkdGg6dGhpbn0ud29ya2luZy1kaXItaW5kaWNhdG9yOmhvdmVyIC53b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjRweH0uaW5wdXQtdGV4dGFyZWF7LS1pbnB1dC1tYXgtaGVpZ2h0OiAxMjBweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7cGFkZGluZzo5cHggOHB4O291dGxpbmU6bm9uZTtyZXNpemU6bm9uZTttaW4taGVpZ2h0OjM2cHg7bWF4LWhlaWdodDp2YXIoLS1pbnB1dC1tYXgtaGVpZ2h0KTt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3cteTpoaWRkZW47b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3RyYW5zaXRpb246aGVpZ2h0IC4xNXMgZWFzZS1vdXQ7Ym94LXNpemluZzpib3JkZXItYm94O2xpbmUtaGVpZ2h0OjEuNDt0b3VjaC1hY3Rpb246cGFuLXk7c2Nyb2xsYmFyLWd1dHRlcjpzdGFibGV9QG1lZGlhKHBvaW50ZXI6Y29hcnNlKXsuaW5wdXQtdGV4dGFyZWF7LS1pbnB1dC1tYXgtaGVpZ2h0OiBtaW4oMTYwcHgsIDM1ZHZoKTtvdmVyZmxvdy15OmF1dG99fUBzdXBwb3J0cyBub3QgKGhlaWdodDogMWR2aCl7QG1lZGlhKHBvaW50ZXI6Y29hcnNlKXsuaW5wdXQtdGV4dGFyZWF7LS1pbnB1dC1tYXgtaGVpZ2h0OiBtaW4oMTYwcHgsIDM1dmgpfX19LmlucHV0LXRleHRhcmVhOmZvY3Vze291dGxpbmU6bm9uZX0uaW5wdXQtdGV4dGFyZWE6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC13ZWlnaHQ6NTAwO2xldHRlci1zcGFjaW5nOjA7b3BhY2l0eTouNjJ9LmlucHV0LXRleHRhcmVhLmlzLXRlcm1pbmFsLXBhc3N0aHJvdWdoe29wYWNpdHk6Ljc7Y3Vyc29yOmRlZmF1bHR9LmlucHV0LXRleHRhcmVhLmlzLXRlcm1pbmFsLXBhc3N0aHJvdWdoOjpwbGFjZWhvbGRlcntmb250LXN0eWxlOml0YWxpY30uY29tcG9zZXItcGlsbHthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTttaW4taGVpZ2h0OjIycHg7cGFkZGluZzoxcHggOHB4O2JvcmRlci1yYWRpdXM6MTBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6I2Y2ZjFlOGIzO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjRweDt3aGl0ZS1zcGFjZTpub3dyYXA7Ym94LXNpemluZzpib3JkZXItYm94O3VzZXItc2VsZWN0Om5vbmV9LmNvbXBvc2VyLXBpbGw6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZC1jb2xvcjojZjZmMWU4fS5jb21wb3Nlci1waWxsOmZvY3VzLC5jb21wb3Nlci1waWxsOmZvY3VzLXZpc2libGV7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAycHggdmFyKC0tYWNjZW50LW11dGVkKTtvdXRsaW5lOm5vbmV9LmNvbXBvc2VyLXBpbGwuZGlzYWJsZWQsLmNvbXBvc2VyLXBpbGxbZGlzYWJsZWRde29wYWNpdHk6LjU1O2N1cnNvcjpub3QtYWxsb3dlZH0uY29tcG9zZXItcGlsbC1jaGlwe3BhZGRpbmc6MXB4IDhweDtmb250LXNpemU6LjYyNXJlbX0uY29tcG9zZXItcGlsbC1jaGlwLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCwgcmdiYSgxOTcsIDEwMSwgNjEsIC4xMikpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmNvbXBvc2VyLXBpbGwtY2hpcC5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMmV9LmlzLXdhbmQtYXBwIC5pbnB1dC1jb21wb3Nlcjpub3QoOmZvY3VzLXdpdGhpbik6bm90KC5oYXMtdGV4dCkgLmF1dG8tYXBwcm92ZS1pbmRpY2F0b3J7d2lkdGg6MjRweDttaW4td2lkdGg6MjRweDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7Z2FwOjB9LmlzLXdhbmQtYXBwIC5pbnB1dC1jb21wb3Nlcjpub3QoOmZvY3VzLXdpdGhpbik6bm90KC5oYXMtdGV4dCkgLmF1dG8tYXBwcm92ZS1pbmRpY2F0b3IgLmNvbXBvc2VyLXBpbGwtbGFiZWx7ZGlzcGxheTpub25lfS5jaGF0LW1vZGUtc2VsZWN0e21heC13aWR0aDo3OHB4fS5idG4tY2lyY2xle3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7bWluLXdpZHRoOjI4cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOm5vbmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2ZsZXgtc2hyaW5rOjA7cGFkZGluZzowfS5idG4tY2lyY2xlLXNlbmR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudCkgMCUsI2E4NTIyZiAxMDAlKTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCAxcHggNnB4ICNjNTY1M2Q0MH0uYnRuLWNpcmNsZS1zZW5kOmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjA4KTtib3gtc2hhZG93OjAgM3B4IDEwcHggI2M1NjUzZDU5fS5idG4tY2lyY2xlLXNlbmQ6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS5idG4tY2lyY2xlLXN0b3B7YmFja2dyb3VuZDojYjI0ZjQ1MWY7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uYnRuLWNpcmNsZS1zdG9wOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKTtjb2xvcjojZmZmO3RyYW5zZm9ybTpzY2FsZSgxLjA4KX0uYnRuLWNpcmNsZS1zdG9wOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk1KX0uYnRuLWNpcmNsZS1zZW5kLnF1ZXVlLW1vZGV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNjNTY1M2Q4YywjYTg1MjJmOGMpO2JveC1zaGFkb3c6MCAxcHggNHB4ICNjNTY1M2QyNn0uYnRuLWNpcmNsZS1zZW5kLnF1ZXVlLW1vZGU6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudCkgMCUsI2E4NTIyZiAxMDAlKTtib3gtc2hhZG93OjAgM3B4IDEwcHggI2M1NjUzZDU5fS5wcm9tcHQtb3B0aW1pemUtYnRue3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1cHg7cmlnaHQ6NnB4O3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjIyKTtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2ZmZmFmMmYyLCNlOGM1YWU1OSk7Y29sb3I6dmFyKC0tYWNjZW50KTt6LWluZGV4OjQ7Ym94LXNoYWRvdzowIDFweCA0cHggI2M1NjUzZDFhO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5wcm9tcHQtb3B0aW1pemUtYnRuOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmZmYWYyLCNlOGM1YWU4Yyk7Y29sb3I6dmFyKC0tYWNjZW50LWhvdmVyKTt0cmFuc2Zvcm06c2NhbGUoMS4xMik7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q1OTtib3gtc2hhZG93OjAgMnB4IDEwcHggI2M1NjUzZDM4LDAgMCAwIDNweCAjYzU2NTNkMGZ9LnByb21wdC1vcHRpbWl6ZS1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTIpO2JveC1zaGFkb3c6MCAxcHggM3B4ICNjNTY1M2QyNn0ucHJvbXB0LW9wdGltaXplLWJ0bjpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNn0ucHJvbXB0LW9wdGltaXplLWJ0bjpkaXNhYmxlZDpob3Zlcnt0cmFuc2Zvcm06bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2ZmZmFmMmYyLCNlOGM1YWU1OSk7Ym94LXNoYWRvdzowIDFweCA0cHggI2M1NjUzZDFhO2JvcmRlci1jb2xvcjojYzU2NTNkMzh9LnByb21wdC1vcHRpbWl6ZS1pY29ue3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgZWFzZSxvcGFjaXR5IC4ycyBlYXNlO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMTk3LDEwMSw2MSwuMykpfS5wcm9tcHQtb3B0aW1pemUtYnRuOmhvdmVyIC5wcm9tcHQtb3B0aW1pemUtaWNvbnthbmltYXRpb246cHJvbXB0LW9wdGltaXplLXR3aW5rbGUgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDNweCByZ2JhKDE5NywxMDEsNjEsLjQpKX1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS10d2lua2xlezAlLHRve3RyYW5zZm9ybTpyb3RhdGUoMCkgc2NhbGUoMSl9NTAle3RyYW5zZm9ybTpyb3RhdGUoMTJkZWcpIHNjYWxlKDEuMTIpfX0ucHJvbXB0LW9wdGltaXplLXNwaW5uZXJ7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDtiYWNrZ3JvdW5kOmNvbmljLWdyYWRpZW50KGZyb20gMGRlZyx0cmFuc3BhcmVudCAwZGVnLHZhcigtLWFjY2VudCkgMjcwZGVnLHRyYW5zcGFyZW50IDM2MGRlZyk7bWFzazpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLHRyYW5zcGFyZW50IDEwcHgsYmxhY2sgMTFweCk7LXdlYmtpdC1tYXNrOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsdHJhbnNwYXJlbnQgMTBweCxibGFjayAxMXB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBlYXNlfS5wcm9tcHQtb3B0aW1pemUtYnRuLmlzLWxvYWRpbmd7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2ZmZmFmMiwjZThjNWFlODApO2JvcmRlci1jb2xvcjojYzU2NTNkNjY7Ym94LXNoYWRvdzowIDJweCAxMnB4ICNjNTY1M2Q0MCwwIDAgMCAzcHggI2M1NjUzZDE0fS5wcm9tcHQtb3B0aW1pemUtYnRuLmlzLWxvYWRpbmcgLnByb21wdC1vcHRpbWl6ZS1pY29ue2FuaW1hdGlvbjpwcm9tcHQtb3B0aW1pemUtcHVsc2UgMS4xcyBlYXNlLWluLW91dCBpbmZpbml0ZX0ucHJvbXB0LW9wdGltaXplLWJ0bi5pcy1sb2FkaW5nIC5wcm9tcHQtb3B0aW1pemUtc3Bpbm5lcntvcGFjaXR5OjE7YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS1zcGluIC45cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBwcm9tcHQtb3B0aW1pemUtc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgcHJvbXB0LW9wdGltaXplLXB1bHNlezAlLHRve3RyYW5zZm9ybTpzY2FsZSguODgpO29wYWNpdHk6Ljh9NTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KTtvcGFjaXR5OjF9fS5pbnB1dC1jb21wb3Nlci5pcy1vcHRpbWl6aW5ne2JvcmRlci1jb2xvcjojYzU2NTNkNmI7Ym94LXNoYWRvdzowIDAgMCAycHggI2M1NjUzZDFhLDAgMCAxOHB4ICNjNTY1M2QyNH0uaW5wdXQtY29tcG9zZXIuaXMtb3B0aW1pemluZyAuY29tcG9zZXItaW5wdXQtd3JhcDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTAwZGVnLHRyYW5zcGFyZW50IDAlLHRyYW5zcGFyZW50IDM4JSxyZ2JhKDIxNCwxMjMsODIsLjE2KSA1MCUsdHJhbnNwYXJlbnQgNjIlLHRyYW5zcGFyZW50IDEwMCUpO2JhY2tncm91bmQtc2l6ZToyMjAlIDEwMCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246MjIwJSAwO2FuaW1hdGlvbjpwcm9tcHQtb3B0aW1pemUtZmxvdyAxLjZzIGxpbmVhciBpbmZpbml0ZTt6LWluZGV4OjB9QGtleWZyYW1lcyBwcm9tcHQtb3B0aW1pemUtZmxvd3swJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjIyMCUgMH10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjAlIDB9fS5wcm9tcHQtb3B0aW1pemUtYnRuLmlzLXNoYWtle2FuaW1hdGlvbjpwcm9tcHQtb3B0aW1pemUtc2hha2UgLjRzIGVhc2Utb3V0O2NvbG9yOnZhcigtLWRhbmdlcil9QGtleWZyYW1lcyBwcm9tcHQtb3B0aW1pemUtc2hha2V7MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0yMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtM3B4KX00MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgzcHgpfTYwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgpfTgwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDJweCl9fUBtZWRpYShtYXgtd2lkdGg6NzIwcHgpey5wcm9tcHQtb3B0aW1pemUtYnRue3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHh9LnByb21wdC1vcHRpbWl6ZS1pY29ue3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHh9fS5idG4tY2lyY2xlLWFjdGlvbntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOm5vbmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2ZsZXgtc2hyaW5rOjA7cGFkZGluZzowfS5idG4tY2lyY2xlLWFjdGlvbjpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QxYTtjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zZm9ybTpzY2FsZSgxLjA4KX0uYnRuLWNpcmNsZS1hY3Rpb246YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTQpfS5idG4tY2lyY2xlLWFjdGlvbi5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQsIHJnYmEoMTk3LCAxMDEsIDYxLCAuMTQpKTtjb2xvcjp2YXIoLS1hY2NlbnQpfS5idG4tY2lyY2xlLWFjdGlvbi5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMzh9LmNoYXQtbW9kZS10cmlve2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC13cmFwOndyYXB9LmNoYXQtbW9kZS10cmlvLXBpbGx7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZX0uY2hhdC1tb2RlLXRyaW8tdGFne2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5LCAjYjVhODlhKTtsZXR0ZXItc3BhY2luZzouMDRlbTttYXJnaW4tcmlnaHQ6NHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtvcGFjaXR5Oi43NX0uZW1wdHktc3RhdGUtdHJpby13cmFwe21hcmdpbi10b3A6MTRweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2FuaW1hdGlvbjplbXB0eVN0YXRlVHJpb0ZhZGVJbiAuNHMgZWFzZS1vdXR9LmVtcHR5LXN0YXRlLXRyaW8taGludHtmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xldHRlci1zcGFjaW5nOi4wMmVtfS5jaGF0LW1vZGUtdHJpby1kcm9wZG93bntnYXA6NHB4O3BhZGRpbmc6NnB4IDEycHg7YmFja2dyb3VuZDojZjZmMWU4OTk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDFweCAzcHggIzAwMDAwMDBhfS5jaGF0LW1vZGUtdHJpby1kcm9wZG93biAuY2hhdC1tb2RlLXRyaW8tcGlsbHtmb250LXNpemU6Ljc4cmVtO3BhZGRpbmc6M3B4IDZweDtib3JkZXItcmFkaXVzOjhweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY2hhdC1tb2RlLXRyaW8tZHJvcGRvd24gLmNoYXQtbW9kZS10cmlvLXBpbGw6aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMGZ9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jaGF0LW1vZGUtdHJpby1waWxsOmZvY3VzLXdpdGhpbntiYWNrZ3JvdW5kOiNjNTY1M2QxNH0uY2hhdC1tb2RlLXRyaW8tZHJvcGRvd24gLmNvbXBvc2VyLXRleHQtbGFiZWx7Zm9udC1zaXplOi44cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO21heC13aWR0aDoxNDBweH1Aa2V5ZnJhbWVzIGVtcHR5U3RhdGVUcmlvRmFkZUluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg0cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19LmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlciAuY2hhdC1tb2RlLXRyaW8tY29tcGFjdHttYXJnaW4tcmlnaHQ6NHB4O2dhcDozcHg7b3BhY2l0eTouNTU7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlcjpob3ZlciAuY2hhdC1tb2RlLXRyaW8tY29tcGFjdCwuY2hhdC1tZXNzYWdlLWF2YXRhci51c2VyIC5jaGF0LW1vZGUtdHJpby1jb21wYWN0OmZvY3VzLXdpdGhpbiwuY2hhdC1tZXNzYWdlLWF2YXRhci51c2VyIC5jaGF0LW1vZGUtdHJpby1jb21wYWN0OmhvdmVye29wYWNpdHk6MX0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY2hhdC1tb2RlLXRyaW8tcGlsbHtmb250LXNpemU6LjY4NzVyZW07cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOiNmNmYxZTg4Yztib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2xpbmUtaGVpZ2h0OjF9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNoYXQtbW9kZS10cmlvLXBpbGw6aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMWE7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY29tcG9zZXItdGV4dC1sYWJlbHtmb250LXNpemU6LjY4NzVyZW07bWF4LXdpZHRoOjg4cHg7bGV0dGVyLXNwYWNpbmc6LjAxZW19LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNvbXBvc2VyLXRleHQtc2Vwe2Rpc3BsYXk6bm9uZX1AbWVkaWEobWF4LXdpZHRoOjcyMHB4KXsuY2hhdC1tb2RlLXRyaW8tZHJvcGRvd257cGFkZGluZzo2cHggMTBweDtnYXA6MnB4fS5jaGF0LW1vZGUtdHJpby1kcm9wZG93biAuY29tcG9zZXItdGV4dC1sYWJlbHttYXgtd2lkdGg6MTAwcHh9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNoYXQtbW9kZS10cmlvLXBpbGx7Zm9udC1zaXplOi42MjVyZW07cGFkZGluZzoycHggNXB4fS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC5jb21wb3Nlci10ZXh0LWxhYmVse21heC13aWR0aDo2NHB4fX0uY29tcG9zZXItcGx1cy1wb3BvdmVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTRweDtib3R0b206Y2FsYyh2YXIoLS1zYWZlLWJvdHRvbSwgMHB4KSArIDU2cHgpO3otaW5kZXg6Mjg7bWluLXdpZHRoOjI0MHB4O21heC13aWR0aDpjYWxjKDEwMCUgLSAyOHB4KTtiYWNrZ3JvdW5kOiNmZmZmZmZmYTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjE2cHg7Ym94LXNoYWRvdzowIDEycHggMjhweCAjMDAwMDAwMmUsMCAycHggNnB4ICMwMDAwMDAxNDtwYWRkaW5nOjZweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7YW5pbWF0aW9uOnBsdXNQb3BvdmVySW4gLjE4cyBlYXNlLW91dDt0cmFuc2Zvcm0tb3JpZ2luOjE2cHggY2FsYygxMDAlICsgOHB4KX0uY29tcG9zZXItcGx1cy1wb3BvdmVyLmhpZGRlbntkaXNwbGF5Om5vbmV9QGtleWZyYW1lcyBwbHVzUG9wb3ZlckluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg2cHgpIHNjYWxlKC45Nil9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX0ucGx1cy1wb3BvdmVyLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxMHB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxMHB4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOi44MnJlbTtmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwMCV9LnBsdXMtcG9wb3Zlci1pdGVtOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDE0fS5wbHVzLXBvcG92ZXItaXRlbTphY3RpdmV7YmFja2dyb3VuZDojYzU2NTNkMjR9LnBsdXMtcG9wb3Zlci1pY29ue2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmbGV4LXNocmluazowfS5wbHVzLXBvcG92ZXItbGFiZWx7ZmxleDoxO2xpbmUtaGVpZ2h0OjEuMn0ucGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZXtmb250LXNpemU6LjY4cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiMwMDAwMDAwZDtsaW5lLWhlaWdodDoxLjI7bGV0dGVyLXNwYWNpbmc6LjAyZW19LnBsdXMtcG9wb3Zlci1pdGVtLmlzLW9uLC5wbHVzLXBvcG92ZXItaXRlbS5pcy1vbiAucGx1cy1wb3BvdmVyLWljb257Y29sb3I6dmFyKC0tYWNjZW50KX0ucGx1cy1wb3BvdmVyLWl0ZW0uaXMtb24gLnBsdXMtcG9wb3Zlci10b2dnbGUtc3RhdGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LnBsdXMtcG9wb3Zlci1zZXB7aGVpZ2h0OjFweDttYXJnaW46NHB4IDZweDtiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1zdWJ0bGUpfS5wbHVzLXBvcG92ZXItdHJpby13cmFwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweH0ucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLWNvbnRyb2xze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6NnB4fS5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctY2hpcCwucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5ne3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7bWluLWhlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MTJweH0ucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLWNoaXB7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzowIDEwcHh9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy1tb2RlbCwucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLXRoaW5raW5ne2ZsZXg6MSAxIDA7bWF4LXdpZHRoOm5vbmU7bWluLWhlaWdodDozNnB4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MCAxMHB4fS5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctdGhpbmtpbmd7ZmxleDowIDAgODZweH0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjJweH0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY29tcG9zZXItdGV4dC1zZXB7ZGlzcGxheTpub25lfS5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC5jaGF0LW1vZGUtdHJpby1waWxse2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjdweCAxMHB4O2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6LjgycmVtO21heC13aWR0aDpub25lO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNoYXQtbW9kZS10cmlvLXBvcG92ZXIgLmNoYXQtbW9kZS10cmlvLXBpbGw6aG92ZXIsLmNoYXQtbW9kZS10cmlvLXBvcG92ZXIgLmNoYXQtbW9kZS10cmlvLXBpbGw6Zm9jdXMtd2l0aGlue2JhY2tncm91bmQ6I2M1NjUzZDE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmNoYXQtbW9kZS10cmlvLXBvcG92ZXIgLmNoYXQtbW9kZS10cmlvLXRhZ3tmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LXRyYW5zZm9ybTpub25lO29wYWNpdHk6MTttYXJnaW4tcmlnaHQ6MDtmbGV4LXNocmluazowO3dpZHRoOjM2cHh9LmNoYXQtbW9kZS10cmlvLXBvcG92ZXIgLmNvbXBvc2VyLXRleHQtbGFiZWx7ZmxleDoxO2ZvbnQtc2l6ZTouODJyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0ZXh0LWFsaWduOnJpZ2h0O21heC13aWR0aDoxMDAlO2ZvbnQtd2VpZ2h0OjUwMH1AbWVkaWEobWF4LXdpZHRoOjcyMHB4KXsuY29tcG9zZXItcGx1cy1wb3BvdmVye21pbi13aWR0aDoyMjBweDtsZWZ0OjEwcHg7Ym90dG9tOmNhbGModmFyKC0tc2FmZS1ib3R0b20sIDBweCkgKyA2MHB4KX0uY29tcG9zZXItbWFpbi1yb3d7Z2FwOjNweDtwYWRkaW5nLWxlZnQ6NXB4O3BhZGRpbmctcmlnaHQ6NXB4fS5jb21wb3Nlci1pbmxpbmUtY29uZmlne2dhcDozcHh9LmNvbXBvc2VyLWNvbmZpZy1jaGlwLC5jb21wb3Nlci1jb25maWctcGFydHttaW4taGVpZ2h0OjI2cHh9LmNvbXBvc2VyLWNvbmZpZy1jaGlwe3BhZGRpbmc6MCA3cHg7bWF4LXdpZHRoOjY0cHh9LmNvbXBvc2VyLWNvbmZpZy1tb2RlbHttYXgtd2lkdGg6NzZweH0uY29tcG9zZXItY29uZmlnLXRoaW5raW5ne21pbi13aWR0aDozOHB4fS5jb21wb3Nlci1jb25maWctbGFiZWx7Zm9udC1zaXplOi42OHJlbX19QG1lZGlhKG1heC13aWR0aDo0MzBweCl7LmNvbXBvc2VyLWNvbmZpZy1jaGlwLW1vZGV7d2lkdGg6MjhweDttYXgtd2lkdGg6MjhweDtwYWRkaW5nOjB9LmNvbXBvc2VyLWNvbmZpZy1jaGlwLW1vZGUgLmNvbXBvc2VyLWNvbmZpZy1sYWJlbHtkaXNwbGF5Om5vbmV9fUBtZWRpYShtYXgtd2lkdGg6MzgwcHgpey5jb21wb3Nlci1jb25maWctbW9kZWx7d2lkdGg6MzBweDttYXgtd2lkdGg6MzBweDtwYWRkaW5nOjB9LmNvbXBvc2VyLWNvbmZpZy1tb2RlbCAuY29tcG9zZXItY29uZmlnLWxhYmVse2Rpc3BsYXk6bm9uZX0uY29tcG9zZXItY29uZmlnLXRoaW5raW5ne21pbi13aWR0aDozNHB4O3BhZGRpbmc6MCA1cHh9fS5wcm9tcHQtb3B0aW1pemUtYnRue2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDphdXRvIDRweCA0cHggYXV0bzt0cmFuc2Zvcm06bm9uZTt3aWR0aDoyNnB4O2hlaWdodDoyNnB4O3otaW5kZXg6NH0uaW5wdXQtY29tcG9zZXIuaGFzLXRleHQgLnByb21wdC1vcHRpbWl6ZS1idG57ZGlzcGxheTppbmxpbmUtZmxleH0uaW5wdXQtY29tcG9zZXIuaGFzLXRleHQgLnByb21wdC1vcHRpbWl6ZS1idG46aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMTIpfS5pbnB1dC1jb21wb3Nlci5oYXMtdGV4dCAucHJvbXB0LW9wdGltaXplLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Mil9LmlucHV0LWNvbXBvc2VyLmhhcy10ZXh0IC5pbnB1dC10ZXh0YXJlYXtwYWRkaW5nLXJpZ2h0OjM2cHh9LnZvaWNlLWlucHV0LW1vZGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzowIDRweH0udm9pY2UtaW5wdXQtbW9kZS5oaWRkZW57ZGlzcGxheTpub25lfS52b2ljZS1yZWNvcmQtYnRue2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo5OTlweDtib3JkZXI6MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7YmFja2dyb3VuZDojZjZmMWU4ODA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo4cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufS52b2ljZS1yZWNvcmQtYnRuOmhvdmVye2JhY2tncm91bmQ6I2Y2ZjFlOGU2O2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCl9LnZvaWNlLXJlY29yZC1idG46YWN0aXZlLC52b2ljZS1yZWNvcmQtYnRuLmlzLXJlY29yZGluZ3tiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCwgcmdiYSgxOTcsIDEwMSwgNjEsIC4xNCkpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLXN0eWxlOnNvbGlkfS52b2ljZS1yZWNvcmQtcHVsc2V7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7b3BhY2l0eTouNTV9LnZvaWNlLXJlY29yZC1idG4uaXMtcmVjb3JkaW5nIC52b2ljZS1yZWNvcmQtcHVsc2V7b3BhY2l0eToxO2FuaW1hdGlvbjp2b2ljZS1wdWxzZSAxLjFzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdm9pY2UtcHVsc2V7MCUsdG97dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX01MCV7dHJhbnNmb3JtOnNjYWxlKDEuNDUpO29wYWNpdHk6LjQ1fX0udm9pY2UtY2FuY2VsLWJ0bnt3aWR0aDoyNnB4O2hlaWdodDoyNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnZvaWNlLWNhbmNlbC1idG46aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MWE7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uaW5wdXQtY29tcG9zZXIudm9pY2UtbW9kZSAuaW5wdXQtdGV4dGFyZWF7dmlzaWJpbGl0eTpoaWRkZW59LmlucHV0LWNvbXBvc2VyLnZvaWNlLW1vZGUgLnByb21wdC1vcHRpbWl6ZS1idG57ZGlzcGxheTpub25lfS5pbnB1dC1jb21wb3Nlci52b2ljZS1tb2RlIC52b2ljZS1pbnB1dC1tb2Rle2Rpc3BsYXk6ZmxleH0jdm9pY2UtYnRue2Rpc3BsYXk6bm9uZX0uaW5wdXQtY29tcG9zZXIudm9pY2UtbW9kZSAjdm9pY2UtYnRue2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkLCByZ2JhKDE5NywgMTAxLCA2MSwgLjE4KSk7Y29sb3I6dmFyKC0tYWNjZW50KX0udm9pY2UtdHJhbnNjcmlwdC1idWJibGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMnB4O3JpZ2h0OjEycHg7Ym90dG9tOmNhbGMoMTAwJSArIDhweCk7ei1pbmRleDo0MDtwYWRkaW5nOjEycHggMTZweCAxMHB4O2JvcmRlci1yYWRpdXM6MTZweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCwgI2M1NjUzZCk7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgNnB4IDI0cHggIzAwMDAwMDJlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybS1vcmlnaW46Ym90dG9tIGNlbnRlcjthbmltYXRpb246dm9pY2UtYnViYmxlLWluIC4xOHMgZWFzZX0udm9pY2UtdHJhbnNjcmlwdC1idWJibGUuaGlkZGVue2Rpc3BsYXk6bm9uZX1Aa2V5ZnJhbWVzIHZvaWNlLWJ1YmJsZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoOHB4KSBzY2FsZSguOTYpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19LnZvaWNlLXRyYW5zY3JpcHQtdGV4dHtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouOTVyZW07bGluZS1oZWlnaHQ6MS41O2ZvbnQtd2VpZ2h0OjUwMDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7bWluLWhlaWdodDoxLjRlbTtjb2xvcjojZmZmfS52b2ljZS10cmFuc2NyaXB0LWJ1YmJsZTpub3QoLmhhcy10ZXh0KSAudm9pY2UtdHJhbnNjcmlwdC10ZXh0OmJlZm9yZXtjb250ZW50OiJcOGJmN1w1ZjAwXDU5Y2JcOGJmNFw4YmRkXDIwMjYiO29wYWNpdHk6LjZ9LnZvaWNlLXRyYW5zY3JpcHQtaGludHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOi43MnJlbTtvcGFjaXR5Oi44NX0udm9pY2UtdHJhbnNjcmlwdC1zdGF0dXN7bGV0dGVyLXNwYWNpbmc6LjAyZW19LnZvaWNlLXdhdmV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6MnB4O2hlaWdodDoxMnB4fS52b2ljZS13YXZlPml7d2lkdGg6Mi41cHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7YW5pbWF0aW9uOnZvaWNlLXdhdmUtYm91bmNlIC45cyBlYXNlLWluLW91dCBpbmZpbml0ZX0udm9pY2Utd2F2ZT5pOm50aC1jaGlsZCgxKXtoZWlnaHQ6NXB4O2FuaW1hdGlvbi1kZWxheTowc30udm9pY2Utd2F2ZT5pOm50aC1jaGlsZCgyKXtoZWlnaHQ6MTJweDthbmltYXRpb24tZGVsYXk6LjE1c30udm9pY2Utd2F2ZT5pOm50aC1jaGlsZCgzKXtoZWlnaHQ6OHB4O2FuaW1hdGlvbi1kZWxheTouM3N9LnZvaWNlLXdhdmU+aTpudGgtY2hpbGQoNCl7aGVpZ2h0OjExcHg7YW5pbWF0aW9uLWRlbGF5Oi40NXN9QGtleWZyYW1lcyB2b2ljZS13YXZlLWJvdW5jZXswJSx0b3t0cmFuc2Zvcm06c2NhbGVZKC40KTtvcGFjaXR5Oi42fTUwJXt0cmFuc2Zvcm06c2NhbGVZKDEpO29wYWNpdHk6MX19LnZvaWNlLWJ1YmJsZS1hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjI4cHg7d2lkdGg6MDtoZWlnaHQ6MDtib3JkZXItbGVmdDo3cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OjdweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOjhweCBzb2xpZCB2YXIoLS1hY2NlbnQsICNjNTY1M2QpfS52b2ljZS10cmFuc2NyaXB0LWJ1YmJsZS5pcy1jYW5jZWxpbmd7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXIsICNiMjRmNDUpfS52b2ljZS10cmFuc2NyaXB0LWJ1YmJsZS5pcy1jYW5jZWxpbmcgLnZvaWNlLWJ1YmJsZS1hcnJvd3tib3JkZXItdG9wLWNvbG9yOnZhcigtLWRhbmdlciwgI2IyNGY0NSl9QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LmJ0bi1jaXJjbGUtYWN0aW9ue3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWluLXdpZHRoOjMwcHh9LmNvbXBvc2VyLW1haW4tcm93e3BhZGRpbmc6M3B4IDRweDttaW4taGVpZ2h0OjQycHg7Z2FwOjJweH19LmF0dGFjaG1lbnQtcHJldmlld3tkaXNwbGF5OmZsZXg7Z2FwOjZweDtwYWRkaW5nOjZweCAxMHB4O2ZsZXgtd3JhcDp3cmFwO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5hdHRhY2htZW50LXByZXZpZXcuaGlkZGVue2Rpc3BsYXk6bm9uZX0uYXR0YWNobWVudC1waWxse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzozcHggOHB4O2JhY2tncm91bmQ6I2M1NjUzZDBmO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4xOCk7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1zaXplOi43MnJlbTttYXgtd2lkdGg6MjAwcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2FuaW1hdGlvbjpwZXJtaXNzaW9uLWZhZGUtaW4gLjJzIGVhc2Utb3V0fS5hdHRhY2htZW50LXBpbGwgaW1ne3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7b2JqZWN0LWZpdDpjb3Zlcjtib3JkZXItcmFkaXVzOjRweDtmbGV4LXNocmluazowfS5hdHRhY2htZW50LXBpbGwgLmF0dC1pY29ue3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOi44NXJlbX0uYXR0YWNobWVudC1waWxsIC5hdHQtbmFtZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDoxO21pbi13aWR0aDowfS5hdHRhY2htZW50LXBpbGwgLmF0dC1zaXple2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNjVyZW07ZmxleC1zaHJpbms6MH0uYXR0YWNobWVudC1waWxsIC5hdHQtcmVtb3Zle2N1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouOHJlbTtsaW5lLWhlaWdodDoxO3BhZGRpbmc6MCAycHg7ZmxleC1zaHJpbms6MDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmV9LmF0dGFjaG1lbnQtcGlsbCAuYXR0LXJlbW92ZTpob3Zlcntjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbnB1dC1jb21wb3Nlci5kcmFnLW92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCkhaW1wb3J0YW50O2JhY2tncm91bmQ6I2M1NjUzZDBhIWltcG9ydGFudDtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLGluc2V0IDAgMCAyMHB4ICNjNTY1M2QwOH0uZm9sZGVyLXBpY2tlci1tb2RhbHttYXgtd2lkdGg6NDgwcHh9LmZvbGRlci1waWNrZXItbW9kYWwgLm1vZGFsLWJvZHl7cGFkZGluZzoxNnB4fS5sb2dpbi1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6MTAwdmg7bWluLWhlaWdodDoxMDBkdmg7cGFkZGluZzoyNHB4fS5sb2dpbi1jYXJke3dpZHRoOjEwMCU7bWF4LXdpZHRoOjM4MHB4O2JhY2tncm91bmQ6I2ZmZmJmNWViO2JvcmRlcjoxcHggc29saWQgcmdiYSgxNTAsMTE4LDg1LC4xNik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO292ZXJmbG93OmhpZGRlbjtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zb2Z0KX0ubG9naW4taGVhZGVye3BhZGRpbmc6MjhweCAyNHB4IDIycHg7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IHRvcCxyZ2JhKDIxNCwxNDQsMTAwLC4yNiksdHJhbnNwYXJlbnQgNDUlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY2ZWJkOSwjZmZmYmY1ZDkpfS5ib290LWxvYWRpbmd7bWluLWhlaWdodDoxMDB2aDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoyNHB4fS5ib290LWxvYWRpbmctY2FyZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTZweCAxOHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxNnB4O2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZS1lbGV2YXRlZCk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc20pO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uYm9vdC1sb2FkaW5nLXNwaW5uZXJ7d2lkdGg6MThweDtoZWlnaHQ6MThweDtmbGV4LXNocmluazowO2JvcmRlcjoycHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4xNik7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1yYWRpdXM6OTk5cHg7YW5pbWF0aW9uOmxvZ2luU3BpbiAuOHMgbGluZWFyIGluZmluaXRlfS5ib290LWxvYWRpbmctdGV4dHtmb250LXNpemU6LjkzNzVyZW07Zm9udC13ZWlnaHQ6NTAwfS5sb2dpbi1sb2dve2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MTBweDttYXJnaW4tYm90dG9tOjhweH0ubG9naW4tbG9nby1pY29ue3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNkNjdiNTIsI2FiNTIyZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmY1OTtmb250LXNpemU6MThweDtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMH0ubG9naW4tbG9nby10ZXh0e2ZvbnQtc2l6ZToxLjZyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi0uMDJlbX0ubG9naW4tc3VidGl0bGV7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44NzVyZW19LmxvZ2luLWJvZHl7cGFkZGluZzoyMnB4IDI0cHggMjRweH0ubG9naW4tY2FyZC1sb2FkaW5nIC5sb2dpbi1ib2R5e3BhZGRpbmctdG9wOjE4cHg7cGFkZGluZy1ib3R0b206MjRweH0ubG9naW4taGludHtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO21hcmdpbi1ib3R0b206MTZweDtsaW5lLWhlaWdodDoxLjV9LmxvZ2luLW11dGVke21hcmdpbjo0cHggMCAwO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS40NX0ubG9naW4tc3RhdHVze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxNHB4O3BhZGRpbmc6MnB4IDB9LmxvZ2luLXNwaW5uZXJ7d2lkdGg6MThweDtoZWlnaHQ6MThweDtmbGV4LXNocmluazowO21hcmdpbi10b3A6MnB4O2JvcmRlcjoycHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4xNik7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1yYWRpdXM6OTk5cHg7YW5pbWF0aW9uOmxvZ2luU3BpbiAuOHMgbGluZWFyIGluZmluaXRlfS5wYXNzd29yZC1maWVsZHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5wYXNzd29yZC1pbnB1dHtwYWRkaW5nLXJpZ2h0Ojc4cHg7bWluLWhlaWdodDo0NnB4fS5wYXNzd29yZC10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6OHB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo2MDA7cGFkZGluZzo2cHggOHB4O2JvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnBhc3N3b3JkLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5wYXNzd29yZC10b2dnbGU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH1Aa2V5ZnJhbWVzIGxvZ2luU3BpbnswJXt0cmFuc2Zvcm06cm90YXRlKDApfXRve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmJ0bjpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNzI7dHJhbnNmb3JtOm5vbmU7Ym94LXNoYWRvdzpub25lfS5sb2dpbi1ib2R5IC5maWVsZHttYXJnaW4tYm90dG9tOjIwcHh9LmxvZ2luLWJvZHkgLmhpbnR7bWFyZ2luLXRvcDoxMHB4fS5sb2dpbi1ib2R5IC5lcnJvci1tZXNzYWdle21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjB9LmxvZ2luLWNlcnQtaGludHttYXJnaW4tdG9wOjE0cHg7cGFkZGluZzoxNHB4IDE2cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTAsMTIwLDQwLC4zMik7YmFja2dyb3VuZDojZGM5NjNjMWE7dGV4dC1hbGlnbjpsZWZ0fS5sb2dpbi1jZXJ0LWhpbnQtdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWFyZ2luLWJvdHRvbTo2cHh9LmxvZ2luLWNlcnQtaGludC1ib2R5e2ZvbnQtc2l6ZTouODEyNXJlbTtsaW5lLWhlaWdodDoxLjY7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO21hcmdpbjowIDAgMTJweH0ubG9naW4tY2VydC1oaW50IC5idG57bWFyZ2luLXRvcDowfS5tb2RhbC1zdWJ0aXRsZXttYXJnaW4tdG9wOjRweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtYm9keXtwYWRkaW5nLXRvcDoxNnB4O3BhZGRpbmctYm90dG9tOjhweH0uc2Vzc2lvbi1tb2RhbCAuZmllbGQ6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206NnB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjEycHggMjJweCAxOHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXIgLmVycm9yLW1lc3NhZ2V7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLWJvdHRvbTowfS5tb2RlLWNhcmRze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6NnB4fS5tb2RlLWNhcmR7ZmxleDoxIDEgMDttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6M3B4O3BhZGRpbmc6MTBweCA4cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yKTtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojZmZmOTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7dGV4dC1hbGlnbjpjZW50ZXI7b3V0bGluZTpub25lfS5tb2RlLWNhcmQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q1OTtiYWNrZ3JvdW5kOiNmZmZjfS5tb2RlLWNhcmQuYWN0aXZle2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6I2ZmZjdlZmYyO2JveC1zaGFkb3c6MCAwIDAgMS41cHggdmFyKC0tYWNjZW50LW11dGVkKX0ubW9kZS1jYXJkOmZvY3VzLXZpc2libGV7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAxLjVweCB2YXIoLS1hY2NlbnQtbXV0ZWQpfS5tb2RlLWNhcmQtbGFiZWx7Zm9udC1zaXplOi44cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xpbmUtaGVpZ2h0OjEuM30ubW9kZS1jYXJkLWRlc2N7Zm9udC1zaXplOi42OHJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjN9Lm1vZGUtY2FyZC5hY3RpdmUgLm1vZGUtY2FyZC1sYWJlbHtjb2xvcjp2YXIoLS1hY2NlbnQpfS5tb2RlLWNhcmQuZGlzYWJsZWR7b3BhY2l0eTouNDU7Y3Vyc29yOm5vdC1hbGxvd2VkO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1vZGUtY2FyZC5kaXNhYmxlZDpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JhY2tncm91bmQ6I2ZmZjl9Lm1vZGUtY2FyZC5kaXNhYmxlZCAubW9kZS1jYXJkLWxhYmVsLC5tb2RlLWNhcmQuZGlzYWJsZWQgLm1vZGUtY2FyZC1kZXNje2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5tb2RlLWNhcmQuYWN0aXZlLmRpc2FibGVke2JveC1zaGFkb3c6bm9uZX0ucGFzc3dvcmQtaW5wdXRbZGF0YS1lcnJvcj10cnVlXSwucGFzc3dvcmQtaW5wdXRbYXJpYS1pbnZhbGlkPXRydWVde2JvcmRlci1jb2xvcjp2YXIoLS1kYW5nZXIpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWRhbmdlci1tdXRlZCl9LnBhc3N3b3JkLWlucHV0W2RhdGEtZXJyb3I9dHJ1ZV0rLnBhc3N3b3JkLXRvZ2dsZSwucGFzc3dvcmQtaW5wdXRbYXJpYS1pbnZhbGlkPXRydWVdKy5wYXNzd29yZC10b2dnbGV7Y29sb3I6dmFyKC0tZGFuZ2VyKX0ucGFzc3dvcmQtaW5wdXQ6Zm9jdXMrLnBhc3N3b3JkLXRvZ2dsZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5wYXNzd29yZC10b2dnbGU6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpIHNjYWxlKC45OCl9LnBhc3N3b3JkLWlucHV0OjotbXMtcmV2ZWFsLC5wYXNzd29yZC1pbnB1dDo6LW1zLWNsZWFye2Rpc3BsYXk6bm9uZX0ucGFzc3dvcmQtaW5wdXQ6Oi13ZWJraXQtY3JlZGVudGlhbHMtYXV0by1maWxsLWJ1dHRvbiwucGFzc3dvcmQtaW5wdXQ6Oi13ZWJraXQtY29udGFjdHMtYXV0by1maWxsLWJ1dHRvbnt2aXNpYmlsaXR5OmhpZGRlbjtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MH0ucGFzc3dvcmQtaW5wdXRbdHlwZT10ZXh0XXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pfS5maWVsZHttYXJnaW4tYm90dG9tOjE4cHh9LmZpZWxkLWxhYmVse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLWJvdHRvbTo4cHh9LmZpZWxkLWlucHV0e3dpZHRoOjEwMCU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljg3NXJlbTtiYWNrZ3JvdW5kOiNmZmZmZmZiZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yMik7Ym9yZGVyLXJhZGl1czoxMnB4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7cGFkZGluZzoxMnB4IDE0cHg7b3V0bGluZTpub25lO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTttaW4taGVpZ2h0OjQ0cHh9LmZpZWxkLWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWFjY2VudC1tdXRlZCksMCAwIDIwcHggI2M1NjUzZDE0O2JhY2tncm91bmQ6I2ZmZmZmZmU2fS5maWVsZC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lm1vZGFsLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDo1MDA7YmFja2dyb3VuZDojMTQwZTA4NTc7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy10b3A6bWF4KDMycHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpO3BhZGRpbmctYm90dG9tOm1heCgzMnB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKTtwYWRkaW5nLWxlZnQ6bWF4KDMycHgsdmFyKC0td2FuZC1zYWZlLWxlZnQpKTtwYWRkaW5nLXJpZ2h0Om1heCgzMnB4LHZhcigtLXdhbmQtc2FmZS1yaWdodCkpO2FuaW1hdGlvbjpsaXF1aWRCYWNrZHJvcEluIC4yOHMgdmFyKC0tZWFzZS1vdXQtZXhwbywgY3ViaWMtYmV6aWVyKC4xNiwgMSwgLjMsIDEpKSBib3RofS5tb2RhbC1iYWNrZHJvcC5jbG9zaW5ne2FuaW1hdGlvbjpsaXF1aWRCYWNrZHJvcE91dCAuMThzIHZhcigtLWVhc2UtaW4tb3V0LXNtb290aCwgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSkpIGJvdGg7cG9pbnRlci1ldmVudHM6bm9uZX1Aa2V5ZnJhbWVzIGxpcXVpZEJhY2tkcm9wSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyBsaXF1aWRCYWNrZHJvcE91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ubW9kYWx7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTttYXgtd2lkdGg6NTYwcHg7bWF4LWhlaWdodDo4OHZoO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZDojZmZmY2Y3YmQ7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNik7Ym9yZGVyLXJhZGl1czoyNnB4O292ZXJmbG93OmhpZGRlbjtiYWNrZHJvcC1maWx0ZXI6Ymx1cig0MHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDQwcHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAzMnB4IDgwcHggLTE2cHggIzE0MGUwODU3LDAgOHB4IDI0cHggLThweCAjMTQwZTA4MmUsMCAwIDAgLjVweCAjN2Q1YjM5MTQsaW5zZXQgMCAxcHggI2ZmZmZmZmIzO2FuaW1hdGlvbjpsaXF1aWRNb2RhbEluIC4zMnMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpIGJvdGh9Lm1vZGFsLWJhY2tkcm9wLmNsb3NpbmcgLm1vZGFse2FuaW1hdGlvbjpsaXF1aWRNb2RhbE91dCAuMThzIHZhcigtLWVhc2UtaW4tb3V0LXNtb290aCwgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSkpIGJvdGh9QGtleWZyYW1lcyBsaXF1aWRNb2RhbEluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjk0KSB0cmFuc2xhdGVZKDEycHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyBsaXF1aWRNb2RhbE91dHswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTcpIHRyYW5zbGF0ZVkoNHB4KX19QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsubW9kYWwtYmFja2Ryb3AsLm1vZGFsLWJhY2tkcm9wLmNsb3NpbmcsLm1vZGFsLC5tb2RhbC1iYWNrZHJvcC5jbG9zaW5nIC5tb2RhbHthbmltYXRpb246bm9uZSFpbXBvcnRhbnR9fUBzdXBwb3J0cyBub3QgKChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpKXsubW9kYWwtYmFja2Ryb3B7YmFja2dyb3VuZDojMTQwZTA4OTl9Lm1vZGFse2JhY2tncm91bmQ6I2ZmZmFmMjtib3JkZXItY29sb3I6IzdkNWIzOTJlfX1AbWVkaWEocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Lm1vZGFsLWJhY2tkcm9we2JhY2tncm91bmQ6IzA4MDUwMjgwfUBzdXBwb3J0cyBub3QgKChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpKXsubW9kYWwtYmFja2Ryb3B7YmFja2dyb3VuZDojMDgwNTAyYzd9fX0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVye3BhZGRpbmc6MjRweCAyOHB4IDE4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KTthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxNnB4O21pbi1oZWlnaHQ6MH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtdGl0bGUsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC10aXRsZS1ncm91cCAubW9kYWwtdGl0bGV7Zm9udC1zaXplOjEuMzEyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMjJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xpbmUtaGVpZ2h0OjEuMn0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtc3VidGl0bGUsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZXttYXJnaW4tdG9wOjVweDtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNTttYXgtd2lkdGg6NDRjaH0ubW9kYWwtY2xvc2UtYnRuLC5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdCwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0e3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7bWluLWhlaWdodDozMnB4O3BhZGRpbmc6MDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiM3ZDViMzkxMjtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZSxjb2xvciAuMThzIGVhc2UsdHJhbnNmb3JtIC4yOHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpLGJveC1zaGFkb3cgLjE4cyBlYXNlfS5tb2RhbC1jbG9zZS1idG4gc3Zne2Rpc3BsYXk6YmxvY2s7cG9pbnRlci1ldmVudHM6bm9uZX0ubW9kYWwtY2xvc2UtYnRuOmhvdmVyLC5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDpob3Zlciwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTFmO2NvbG9yOnZhcigtLWRhbmdlcik7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7Ym94LXNoYWRvdzowIDJweCA4cHggI2IyNGY0NTJlfS5tb2RhbC1jbG9zZS1idG46YWN0aXZlLC5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDphY3RpdmUsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDphY3RpdmV7YmFja2dyb3VuZDojYjI0ZjQ1MzM7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZykgc2NhbGUoLjkyKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9Lm1vZGFsLWNsb3NlLWJ0bjpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6M3B4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1ib2R5LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtYm9keXtwYWRkaW5nOjIwcHggMjhweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MTZweCAyOHB4IDIycHg7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KX0uc2Vzc2lvbi1tb2RhbCAuZmllbGQtaW5wdXQsLnNldHRpbmdzLW1vZGFsIC5maWVsZC1pbnB1dCwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNhcmQgLmZpZWxkLWlucHV0LC5zZXNzaW9uLW1vZGFsIHNlbGVjdC5maWVsZC1pbnB1dCwuc2V0dGluZ3MtbW9kYWwgc2VsZWN0LmZpZWxkLWlucHV0e2JhY2tncm91bmQ6I2ZmZmZmZmM3O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzoxMXB4IDE0cHg7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxLjVweCAjN2Q1YjM5MGE7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLGJveC1zaGFkb3cgLjE1cyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNlc3Npb24tbW9kYWwgLmZpZWxkLWlucHV0OmhvdmVyLC5zZXR0aW5ncy1tb2RhbCAuZmllbGQtaW5wdXQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzZDtiYWNrZ3JvdW5kOiNmZmZmZmZlYn0uc2Vzc2lvbi1tb2RhbCAuZmllbGQtaW5wdXQ6Zm9jdXMsLnNldHRpbmdzLW1vZGFsIC5maWVsZC1pbnB1dDpmb2N1cywuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNhcmQgLmZpZWxkLWlucHV0OmZvY3VzLC5zZXNzaW9uLW1vZGFsIHNlbGVjdC5maWVsZC1pbnB1dDpmb2N1cywuc2V0dGluZ3MtbW9kYWwgc2VsZWN0LmZpZWxkLWlucHV0OmZvY3Vze2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDEuNXB4ICM3ZDViMzkwYSwwIDAgMCAzcHggdmFyKC0tYWNjZW50LW11dGVkKX0uc2Vzc2lvbi1tb2RhbCAubW9kZS1jYXJkc3tnYXA6OHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RlLWNhcmR7cGFkZGluZzoxMnB4IDEwcHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMSk7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6I2ZmZjk7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE2cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNlc3Npb24tbW9kYWwgLm1vZGUtY2FyZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmZlYjtib3JkZXItY29sb3I6IzdkNWIzOTMzO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAjN2Q1YjM5MTR9LnNlc3Npb24tbW9kYWwgLm1vZGUtY2FyZC5hY3RpdmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdmMiwjZmZmMGUwZDEpO2JvcmRlcjouNXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDUyLDAgMCAwIDRweCAjYzU2NTNkMjQsMCA4cHggMjJweCAtNHB4ICNjNTY1M2Q0ZCxpbnNldCAwIDFweCAjZmZmZmZmZjIsaW5zZXQgMCAtMXB4ICNjNTY1M2QxNDt0cmFuc2Zvcm06bm9uZX0uc2Vzc2lvbi1tb2RhbCAubW9kZS1jYXJkLmFjdGl2ZSAubW9kZS1jYXJkLWxhYmVse2NvbG9yOnZhcigtLWFjY2VudCl9LnNlc3Npb24tbW9kYWwgLnRvb2wtY2FyZHtiYWNrZ3JvdW5kOiNmZmZmZmZiMztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czoxNHB4O3BhZGRpbmc6MTRweCAxNnB4O2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwODt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgZWFzZTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXNzaW9uLW1vZGFsIC50b29sLWNhcmQ6aG92ZXJ7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojN2Q1YjM5Mzg7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7Ym94LXNoYWRvdzowIDhweCAyMHB4ICM3ZDViMzkxYX0uc2Vzc2lvbi1tb2RhbCAudG9vbC1jYXJkLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2YyLCNmZmYwZTBkMSk7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuOCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMCAwIDFweCAjYzU2NTNkNGQsMCAwIDAgNHB4ICNjNTY1M2QyNCwwIDEwcHggMjhweCAtNnB4ICNjNTY1M2Q0ZCxpbnNldCAwIDFweCAjZmZmZmZmZjIsaW5zZXQgMCAtMXB4ICNjNTY1M2QxNDt0cmFuc2Zvcm06bm9uZX0uc2Vzc2lvbi1tb2RhbCAucmVjZW50LXBhdGgtYnViYmxle2JhY2tncm91bmQ6I2ZmZmZmZjhjO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKTtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE2cyBlYXNlfS5zZXNzaW9uLW1vZGFsIC5yZWNlbnQtcGF0aC1idWJibGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmN2VmO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6NnB4IDhweCA2cHggMTJweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6IzdkNWIzOTBkO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsYm9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4xOHMgZWFzZSxjb2xvciAuMThzIGVhc2U7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MTc7Ym9yZGVyLWNvbG9yOiM3ZDViMzkyOX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlOmhhcyguc3dpdGNoLXRvZ2dsZTpjaGVja2VkKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjdlZiwjZmZlZWQ4KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWFjY2VudC1tdXRlZCksMCA0cHggMTJweCAjYzU2NTNkMWZ9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZS1pY29ue2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dHJhbnNpdGlvbjpjb2xvciAuMThzIGVhc2UsdHJhbnNmb3JtIC4yOHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGU6aGFzKC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQpIC5zZXNzaW9uLWlubGluZS10b2dnbGUtaWNvbntjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zZm9ybTpyb3RhdGUoOGRlZyl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZS1sYWJlbHtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDA1ZW07Y29sb3I6aW5oZXJpdDt0cmFuc2l0aW9uOmNvbG9yIC4xOHMgZWFzZX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIC5zd2l0Y2gtdG9nZ2xle3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDt3aWR0aDowO2hlaWdodDowO3BvaW50ZXItZXZlbnRzOm5vbmV9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZSAuc3dpdGNoLXNsaWRlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDozMnB4O2hlaWdodDoyMHB4O21pbi13aWR0aDozMnB4O2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOiM3ZDViMzkzODtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCAjN2Q1YjM5MmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4yMnMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIC5zd2l0Y2gtc2xpZGVyOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtsZWZ0OjJweDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMS41cHggM3B4ICMxNDBlMDgzOCwwIDAgMCAuNXB4ICM3ZDViMzkwZjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjRzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQrLnN3aXRjaC1zbGlkZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4ICMwMDAwMDAxYX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQrLnN3aXRjaC1zbGlkZXI6YWZ0ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMnB4KX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIC5zd2l0Y2gtdG9nZ2xlOmZvY3VzLXZpc2libGUrLnN3aXRjaC1zbGlkZXJ7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24ta2luZC1oaW50LXJvd3thbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE0cHh9LnNlc3Npb24tbW9kYWwgLnN1Z2dlc3Rpb25ze2JhY2tncm91bmQ6I2ZmZmNmN2Y1O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDAgMCAuNXB4ICM3ZDViMzkwZCwwIDEycHggMjhweCAtOHB4ICMxNDBlMDgyZTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigyMHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpO292ZXJmbG93OmhpZGRlbn0uc2Vzc2lvbi1tb2RhbCAuc3VnZ2VzdGlvbi1pdGVtOmhvdmVye2JhY2tncm91bmQ6I2U4YzVhZTUyfS5zZXNzaW9uLW1vZGFsIC5lcnJvci1tZXNzYWdlLC5zZXR0aW5ncy1tb2RhbCAuZXJyb3ItbWVzc2FnZXtiYWNrZ3JvdW5kOiNiMjRmNDUxYTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTc4LDc5LDY5LC4yKTtjb2xvcjp2YXIoLS1kYW5nZXIpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjEwcHggMTJweDtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXNzaW9uLW1vZGFsIC5maWVsZC1sYWJlbCwuc2V0dGluZ3MtbW9kYWwgLmZpZWxkLWxhYmVse2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTI1cmVtO21hcmdpbi1ib3R0b206OHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXIgLmJ0bi1wcmltYXJ5LC5zZXR0aW5ncy1tb2RhbCAuYnRuLXByaW1hcnl7Ym94LXNoYWRvdzowIDZweCAxNnB4IC00cHggI2M1NjUzZDY2LDAgMnB4IDZweCAtMnB4ICNjNTY1M2Q0ZCxpbnNldCAwIDFweCAjZmZmMztib3JkZXItcmFkaXVzOjEycHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLXByaW1hcnk6aG92ZXIsLnNldHRpbmdzLW1vZGFsIC5idG4tcHJpbWFyeTpob3Zlcntib3gtc2hhZG93OjAgMTBweCAyNHB4IC00cHggI2M1NjUzZDc1LDAgNHB4IDEwcHggLTJweCAjYzU2NTNkNTcsaW5zZXQgMCAxcHggI2ZmZmZmZjQwfS5zZXNzaW9uLW1vZGFsIC5idG4tc2Vjb25kYXJ5LC5zZXR0aW5ncy1tb2RhbCAuYnRuLXNlY29uZGFyeXtiYWNrZ3JvdW5kOiNmZmZmZmZjNztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xNCk7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTBhO2JvcmRlci1yYWRpdXM6MTJweH0uc2Vzc2lvbi1tb2RhbCAuYnRuLXNlY29uZGFyeTpob3Zlciwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1zZWNvbmRhcnk6aG92ZXJ7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojN2Q1YjM5M2Q7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkxNH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXNpZGViYXJ7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO3BhZGRpbmctcmlnaHQ6MTJweH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXNpZGViYXItdGl0bGV7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA4ZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWJze2dhcDoycHh9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWJ7cGFkZGluZzoxMXB4IDE0cHg7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE0cyBlYXNlLGNvbG9yIC4xNHMgZWFzZSx0cmFuc2Zvcm0gLjE0cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWI6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYjpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkwZjtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RyYW5zZm9ybTpub25lO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi5hY3RpdmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdmMiwjZmZmNGU4YzcpO2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjYzU2NTNkNDAsaW5zZXQgMCAxcHggI2ZmZmZmZmU2LGluc2V0IDAgLTFweCAjYzU2NTNkMTQsMCA0cHggMTRweCAtNHB4ICNjNTY1M2QzOCwwIDFweCAzcHggIzdkNWIzOTBmfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLmFjdGl2ZSAuc2V0dGluZ3MtdGFiLW1ldGF7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLW1haW57Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWItbWV0YXtmb250LXNpemU6LjcxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1wYW5lbC1oZWFkZXJ7bWFyZ2luOjAgMCAxNnB4O3BhZGRpbmctYm90dG9tOjE0cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZToxLjE4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi0uMDJlbX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLWRlc2N7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY2FyZCwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24sLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hYm91dC1pbmZvLC5zZXR0aW5ncy1tb2RhbCAucHJlc2V0LWl0ZW17YmFja2dyb3VuZDojZmZmZmZmYTY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMSk7Ym9yZGVyLXJhZGl1czoxNnB4O2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwODtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYWJvdXQtcm93e2JvcmRlci1ib3R0b20tY29sb3I6IzdkNWIzOTE0fS5zZXR0aW5ncy1tb2RhbCAuc3dpdGNoLWNhcmQtbGlzdHtnYXA6OHB4fS5zZXR0aW5ncy1tb2RhbCAuc3dpdGNoLWNhcmR7YmFja2dyb3VuZDojZmZmOTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zd2l0Y2gtY2FyZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmZkOTtib3JkZXItY29sb3I6IzdkNWIzOTJlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAjN2Q1YjM5MGZ9LnNldHRpbmdzLW1vZGFsIC5zd2l0Y2gtY2FyZDpoYXMoLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY3ZWYsI2ZmZjFkZSk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAxcHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDRweCAxMnB4ICNjNTY1M2QxYX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRvZ2dsZS1yb3csLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1yYW5nZS1yb3d7YmFja2dyb3VuZDojZmZmZmZmOGM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMXB4IDFweCAjN2Q1YjM5MDU7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNhcmQtaWNvbiwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXNlY3Rpb24taWNvbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2M1NjUzZDI5LCNjNTY1M2QwZik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE4KTtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmY5O2NvbG9yOnZhcigtLWFjY2VudCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb257YmFja2dyb3VuZDojZmZmZmZmYTY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMSk7Ym9yZGVyLXJhZGl1czoxNHB4O2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwODt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uOmhvdmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6IzdkNWIzOTMzO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAjN2Q1YjM5MTR9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24uc2VsZWN0ZWQsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb25bYXJpYS1wcmVzc2VkPXRydWVde2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmN2VmLCNmZmYxZGUpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWFjY2VudC1tdXRlZCksMCA0cHggMTJweCAjYzU2NTNkMWZ9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jb25uZWN0LXVybC1ib3h7YmFja2dyb3VuZDojN2Q1YjM5MGQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpO2JvcmRlci1yYWRpdXM6MTJweH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFjdGlvbnMtc3RpY2t5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3MDAsI2ZmZmNmN2Q5IDI4cHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2VjdGlvbi10aXRsZXtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi4wMDVlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfUBtZWRpYShtYXgtd2lkdGg6NjQwcHgpey5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXIsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXJ7cGFkZGluZzoxNnB4IDE4cHggMTRweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtYm9keSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWJvZHl7cGFkZGluZzoxNHB4IDE4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlcntwYWRkaW5nOjEycHggMThweCAxOHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC10aXRsZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLXRpdGxlLWdyb3VwIC5tb2RhbC10aXRsZXtmb250LXNpemU6MS4xMjVyZW19LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1wYW5lbC10aXRsZXtmb250LXNpemU6MS4wNjI1cmVtfX0uc2lkZWJhcntiYWNrZ3JvdW5kOiNmZmZjZjdiODtib3JkZXItcmlnaHQ6LjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC41NSk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMzZweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigzNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTBmLDRweCAwIDMycHggLThweCAjMTQwZTA4MmV9LnNpZGViYXIub3Blbntib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTBmLDEycHggMCA0OHB4IC0xMnB4ICMxNDBlMDg0N30uc2lkZWJhci5waW5uZWR7Ym94LXNoYWRvdzowIDAgMCAuNXB4ICM3ZDViMzkwZiwycHggMCAxMnB4IC04cHggIzE0MGUwODFmfS5kcmF3ZXItYmFja2Ryb3B7YmFja2dyb3VuZDojMTQwZTA4NTI7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KX0uZHJhd2VyLWJhY2tkcm9wLm9wZW57YmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKX0uc2lkZWJhci1oZWFkZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO3BhZGRpbmc6MTRweCAxNnB4fS5zaWRlYmFyLXRpdGxle2ZvbnQtc2l6ZTouOTM3NXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMTJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5zZXNzaW9uLWNvdW50e2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtwYWRkaW5nOjJweCA5cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsaW5lLWhlaWdodDoxLjV9LnNpZGViYXItaGVhZGVyLWFjdGlvbnMgLmJ0bi1naG9zdC5idG4tc20sLmRyYXdlci1jbG9zZS1idG57d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDttaW4taGVpZ2h0OjMycHg7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtib3JkZXI6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSl9LnNpZGViYXItaGVhZGVyLWFjdGlvbnMgLmJ0bi1naG9zdC5idG4tc206aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MTQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZHJhd2VyLWNsb3NlLWJ0bntiYWNrZ3JvdW5kOiM3ZDViMzkxMn0uZHJhd2VyLWNsb3NlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUxZjtjb2xvcjp2YXIoLS1kYW5nZXIpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5kcmF3ZXItY2xvc2UtYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kOiNiMjRmNDUzMzt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKSBzY2FsZSguOTIpO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uZHJhd2VyLWNsb3NlLWJ0bjpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6M3B4fS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvd3tiYWNrZ3JvdW5kOiNmZmZjZjdkYjtib3JkZXI6LjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC41NSk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjRweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigyNHB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTE0LDAgMTJweCAyOHB4IC04cHggIzE0MGUwODM4O2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjZweH0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cgLm92ZXJmbG93LWl0ZW17Ym9yZGVyLXJhZGl1czo5cHg7cGFkZGluZzo5cHggMTBweDtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NTAwO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbTpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZmU2LCNmZmZjZjc5OSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTE0LGluc2V0IDAgMXB4ICNmZmZmZmZkOX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cgLm92ZXJmbG93LWl0ZW06YWN0aXZle2JhY2tncm91bmQ6I2M1NjUzZDFmO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnNjYWxlKC45OCl9LnNlc3Npb24tbWFuYWdlLWJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHg7cGFkZGluZzo0cHggNHB4IDRweCAxMHB4O2JvcmRlci1yYWRpdXM6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlfS5zZXNzaW9uLW1hbmFnZS1iYXI6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MGR9LnNlc3Npb24tbWFuYWdlLWJhciAuc2lkZWJhci1pbnRyb3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xldHRlci1zcGFjaW5nOi4wMDVlbX0uc2Vzc2lvbi1tYW5hZ2UtYmFyLmFjdGl2ZXtwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDo2O21hcmdpbjotMTBweCAtMTBweCA4cHg7cGFkZGluZzo5cHggMTBweCA5cHggNnB4O2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOiNmZmZiZjVmMDstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpzYXR1cmF0ZSgxLjIpIGJsdXIoOHB4KTtiYWNrZHJvcC1maWx0ZXI6c2F0dXJhdGUoMS4yKSBibHVyKDhweCk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym94LXNoYWRvdzpub25lfS5zZXNzaW9uLW1hbmFnZS1iYXIuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6I2ZmZmJmNWYwfS5zZXNzaW9uLW1hbmFnZS1leGl0e2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoyNnB4O2hlaWdodDoyNnB4O3BhZGRpbmc6MDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTRzIGVhc2UsY29sb3IgLjE0cyBlYXNlOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uc2Vzc2lvbi1tYW5hZ2UtZXhpdDpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxYTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5zZXNzaW9uLW1hbmFnZS1zdW1tYXJ5e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7bWluLXdpZHRoOjA7ZmxleDoxO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjUwMH0uc2Vzc2lvbi1tYW5hZ2UtY291bnR7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6MjBweDtoZWlnaHQ6MThweDtwYWRkaW5nOjAgNnB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UpO2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7Ym9yZGVyLXJhZGl1czo5OTlweDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWx7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMH0uc2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeS1sYWJlbC5tdXRlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo1MDB9LnNlc3Npb24tbWFuYWdlLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24tbWFuYWdlLXRvZ2dsZXtnYXA6NXB4fS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktY2xlYXItYnRue21hcmdpbi1sZWZ0OmF1dG99LnNlc3Npb24tZ3JvdXAtdGl0bGV7cGFkZGluZzoxMHB4IDZweCA4cHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouMWVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXNzaW9uLWdyb3VwLXRpdGxlOmJlZm9yZXt3aWR0aDozcHg7aGVpZ2h0OjEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSxyZ2JhKDE5NywxMDEsNjEsLjQpKTtvcGFjaXR5OjF9LnNlc3Npb24taXRlbXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxMXB4O3BhZGRpbmc6OXB4IDEycHg7bWFyZ2luLWJvdHRvbToycHg7Ym94LXNoYWRvdzpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZX0uc2Vzc2lvbi1pdGVtOmJlZm9yZXtsZWZ0OjRweDt0b3A6OXB4O2JvdHRvbTo5cHg7d2lkdGg6M3B4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQpLHJnYmEoMTk3LDEwMSw2MSwuNSkpfS5zZXNzaW9uLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MGY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5zZXNzaW9uLWl0ZW06aG92ZXI6YmVmb3Jle29wYWNpdHk6MH0uc2Vzc2lvbi1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2ViLCNmZmY0ZThiZCk7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0Nztib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmY4Y30uc2Vzc2lvbi1pdGVtLmFjdGl2ZTpiZWZvcmV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZVkoMSl9LnNlc3Npb24taXRlbS5zZWxlY3RlZHtiYWNrZ3JvdW5kOiNjNTY1M2QxNztib3JkZXItY29sb3I6I2M1NjUzZDJlfS5zZXNzaW9uLWl0ZW0uc2VsZWN0ZWQ6YmVmb3Jle29wYWNpdHk6Ljc7dHJhbnNmb3JtOnNjYWxlWSgxKX0uc2Vzc2lvbi1pdGVtOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk5Mik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDhzfS5zZXNzaW9uLXRpdGxlLC5zZXNzaW9uLWNvbW1hbmR7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzotLjAwNWVtfS5zZXNzaW9uLXRpdGxlLXJvd3tnYXA6MTBweH0uc2Vzc2lvbi10aW1le2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnNlc3Npb24tYWN0aXZpdHl7b3BhY2l0eToxO2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC13ZWlnaHQ6NTAwfS5zZXNzaW9uLXN0YXR1c3twYWRkaW5nOjJweCA4cHg7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi4wMmVtfS5zZXNzaW9uLWlke2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZvbnQtc2l6ZTouNjI1cmVtO3BhZGRpbmc6MS41cHggNnB4O2JvcmRlci1yYWRpdXM6NHB4fS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MjhweDtoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweDttaW4taGVpZ2h0OjI4cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojN2Q1YjM5MGY7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Ym9yZGVyOm5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xOHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpfS5zZXNzaW9uLWFjdGlvbi1idG46aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MjQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0uc2Vzc2lvbi1hY3Rpb24tYnRuLmRlbGV0ZS1idG46aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MjQ7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1hY3Rpb24tYnRuLm1lcmdlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiM0ZjdhNTgyOTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uc2Vzc2lvbi1hY3Rpb24tYnRuOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkpO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uc2Vzc2lvbi1hY3Rpb24tYnRuOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9LnNlc3Npb24tbWFuYWdlLWNoZWNrIHNwYW57d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MS41cHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIyKTtiYWNrZ3JvdW5kOiNmZmY5O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4ICM3ZDViMzkwYTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2V9LnNlc3Npb24tbWFuYWdlLWNoZWNrIGlucHV0OmNoZWNrZWQrc3BhbntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDFweCAzcHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmYzfS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dDpjaGVja2VkK3NwYW46YWZ0ZXJ7Y29udGVudDoiIjt3aWR0aDo2cHg7aGVpZ2h0OjEwcHg7Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCAjZmZmO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNmZmY7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKC0xcHgsLTFweCl9LnNpZGViYXItZm9vdGVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA2KTtwYWRkaW5nOjE0cHh9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bntiYWNrZ3JvdW5kOiNmZmZmZmY3Mztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wNik7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6OHB4IDRweDtnYXA6NHB4O2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDFlbTtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2V9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmZkOTtib3JkZXItY29sb3I6IzdkNWIzOTI5O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDJweCA4cHggIzdkNWIzOTBmfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTYpO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2YyLCNmZmYyZTRjNyk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjI4KTtjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDNweCAxMHB4IC0zcHggI2M1NjUzZDM4LGluc2V0IDAgMXB4ICNmZmZmZmZiM30uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuLnNpZGViYXItbG9nb3V0OmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTE0O2JvcmRlci1jb2xvcjojYjI0ZjQ1MzM7Y29sb3I6dmFyKC0tZGFuZ2VyKTtvcGFjaXR5OjF9LnNpZGViYXItZm9vdGVyIC5idG4tcHJpbWFyeXtib3gtc2hhZG93OjAgNnB4IDE2cHggLTRweCAjYzU2NTNkNjYsMCAycHggNnB4IC0ycHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmYzO2JvcmRlci1yYWRpdXM6MTJweH0uc2lkZWJhci1mb290ZXIgLmJ0bi1wcmltYXJ5OmhvdmVye2JveC1zaGFkb3c6MCAxMHB4IDI0cHggLTRweCAjYzU2NTNkNzUsMCA0cHggMTBweCAtMnB4ICNjNTY1M2Q1NyxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnNlc3Npb25zLWxpc3Q6ZW1wdHk6YmVmb3Jle2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbTtsZXR0ZXItc3BhY2luZzouMDFlbX1Ac3VwcG9ydHMgbm90ICgoYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSl7LnNpZGViYXJ7YmFja2dyb3VuZDojZmZmYmY1ZmF9LmRyYXdlci1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMxNDBlMDg4Y30uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3d7YmFja2dyb3VuZDojZmZmYWYyfX0ubW9kYWwtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxOHB4IDIycHggMTZweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtmbGV4LXNocmluazowO21pbi1oZWlnaHQ6NTZweH0ubW9kYWwtdGl0bGV7Zm9udC1zaXplOjEuMDYyNXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzotLjAxZW19Lm1vZGFsLWJvZHl7cGFkZGluZzoyMnB4O292ZXJmbG93LXk6YXV0bztmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MH0ubW9kYWwtYm9keSAuZmllbGR7bWFyZ2luLWJvdHRvbToxNHB4fS5tb2RhbC1ib2R5IC5maWVsZDpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbToxNnB4fS5zZXNzaW9uLWtpbmQtaGludC1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweH0uc2Vzc2lvbi1raW5kLWhpbnQtcm93ICNzZXNzaW9uLWtpbmQtZGVzY3JpcHRpb257ZmxleDoxIDEgYXV0b30uc2Vzc2lvbi1pbmxpbmUtdG9nZ2xle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lfS5zZXNzaW9uLWlubGluZS10b2dnbGUtbGFiZWx7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5maWVsZC1oaW50e21hcmdpbi10b3A6NnB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41fS50b29sLWNhcmR7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMik7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6I2ZmZmZmZmE2O3BhZGRpbmc6MTRweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvb2wtY2FyZDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50LXNvZnQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JveC1zaGFkb3c6MCA4cHggMjRweCAjNTkzYTIwMWE7YmFja2dyb3VuZDojZmZmZmZmZDl9LnRvb2wtY2FyZC5hY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojZmZmN2VmZmE7Ym94LXNoYWRvdzowIDAgMCAycHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDZweCAyMHB4ICM1OTNhMjAxNH1zZWxlY3QuZmllbGQtaW5wdXR7YXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzOGM3MzVmJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NwYXRoIGQ9J002IDlsNiA2IDYtNicvJTNFJTNDL3N2ZyUzRSIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDE0cHggY2VudGVyO3BhZGRpbmctcmlnaHQ6NDBweDtjdXJzb3I6cG9pbnRlcn0uc3VnZ2VzdGlvbnMtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZX0uc3VnZ2VzdGlvbnN7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDRweCk7bGVmdDowO3JpZ2h0OjA7ei1pbmRleDo1MDtiYWNrZ3JvdW5kOiNmZmZhZjRmYTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7bWF4LWhlaWdodDoyMDBweDtvdmVyZmxvdy15OmF1dG99LnN1Z2dlc3Rpb24taXRlbXt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdDtwYWRkaW5nOjEwcHggMTJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnN1Z2dlc3Rpb24taXRlbTpob3ZlcntiYWNrZ3JvdW5kOiNlOGM1YWU1N30uc3VnZ2VzdGlvbi1pdGVtIHNtYWxse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6MnB4fS5zdWdnZXN0aW9uLWl0ZW0tcGF0aHtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyl9LnJlY2VudC1wYXRocy1idWJibGVze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6NXB4O21hcmdpbi10b3A6NnB4fS5yZWNlbnQtcGF0aHMtYnViYmxlczplbXB0eXtkaXNwbGF5Om5vbmV9LnJlY2VudC1wYXRoLWJ1YmJsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjJweCAxMHB4O2JhY2tncm91bmQ6I2U4YzVhZTJlO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6OTk5cHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42ODc1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3doaXRlLXNwYWNlOm5vd3JhcDttYXgtd2lkdGg6MTgwcHg7b3ZlcmZsb3c6aGlkZGVufS5yZWNlbnQtcGF0aC1idWJibGUtcGF0aHttaW4td2lkdGg6MDttYXgtd2lkdGg6MTAwJX0ucmVjZW50LXBhdGgtYnViYmxlOmhvdmVye2JhY2tncm91bmQ6I2U4YzVhZTY2O2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItaG92ZXIsIHZhcigtLWJvcmRlci1kZWZhdWx0KSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZXJyb3ItbWVzc2FnZXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLWRhbmdlcik7cGFkZGluZzoxMHB4IDEycHg7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTttYXJnaW4tdG9wOjEycHg7YW5pbWF0aW9uOnNoYWtlIC4zcyBlYXNlfUBrZXlmcmFtZXMgc2hha2V7MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0yNSV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4KX03NSV7dHJhbnNmb3JtOnRyYW5zbGF0ZSg0cHgpfX0uZmllbGQtaW5wdXRbZGF0YS1lcnJvcj10cnVlXXtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKTtib3gtc2hhZG93OjAgMCAwIDNweCB2YXIoLS1kYW5nZXItbXV0ZWQpfS5oaW50e2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjEycHh9LmVtcHR5LXN0YXRle3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NDBweCAyMHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbX0uZW1wdHktc3RhdGUgc3Ryb25ne2Rpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouOTVyZW07bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC13ZWlnaHQ6NjAwfS5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0ub2ZmbGluZS1iYW5uZXJ7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjgwcHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmcpO2NvbG9yOiNmZmY7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDt6LWluZGV4OjEwMDtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1lbGV2YXRlZCk7YW5pbWF0aW9uOnNsaWRlVXAgLjNzIGVhc2V9QGtleWZyYW1lcyBzbGlkZVVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMjBweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgwKX19Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHg7aGVpZ2h0OjZweH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTU0ZDtib3JkZXItcmFkaXVzOjNweH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTgwfS5zZXNzaW9ucy1saXN0Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo0cHh9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTQwO2JvcmRlci1yYWRpdXM6MnB4fS5zZXNzaW9ucy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2Nn06Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH1idXR0b246Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDowfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zaWRlYmFyLnBpbm5lZDpub3QoLmNvbGxhcHNlZCk6bm90KC5vcGVuKXt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MH0ubWFpbi1sYXlvdXQuc2lkZWJhci1waW5uZWQ6bm90KC5zaWRlYmFyLWNvbGxhcHNlZCl7cGFkZGluZy1sZWZ0OjB9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiAwcHh9LnNpZGViYXJ7d2lkdGg6bWluKDMwMHB4LGNhbGMoMTAwdncgLSAyMHB4KSk7dG9wOjB9LnRlcm1pbmFsLWNvbnRhaW5lcnttYXJnaW46MCA2cHggNnB4O21pbi1oZWlnaHQ6MH0uYnRue21pbi1oZWlnaHQ6NDBweH0uYnRuLXNte21pbi1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTBweDtmb250LXNpemU6Ljc1cmVtO2hlaWdodDozNnB4fS5idG4taWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4O21pbi1oZWlnaHQ6MzZweH0uY2hhdC1jb250YWluZXJ7cGFkZGluZzowIDEycHggMTJweH0uY2hhdC1tZXNzYWdle21heC13aWR0aDoxMDAlfS5zZXNzaW9uLWl0ZW17bWluLWhlaWdodDo1MnB4O3BhZGRpbmc6MTJweH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWluLXdpZHRoOjM2cHg7bWluLWhlaWdodDozNnB4fS5zZXNzaW9uLW1hbmFnZS1iYXIgLmJ0bnttaW4taGVpZ2h0OjMycHh9LmNsYXVkZS1oaXN0b3J5LXRvZ2dsZXttaW4taGVpZ2h0OjQwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue21pbi1oZWlnaHQ6NDRweH0udHJlZS1pdGVte21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjhweCAxMnB4fS5mb2xkZXItcGlja2VyLWl0ZW17bWluLWhlaWdodDo0NHB4fX1AbWVkaWEobWluLXdpZHRoOjc2OXB4KXsuZHJhd2VyLWJhY2tkcm9we2Rpc3BsYXk6bm9uZX19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7OnJvb3R7LS1zaWRlYmFyLXdpZHRoOiAyODBweDstLWZpbGUtcGFuZWwtd2lkdGg6IDEwMCV9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiAwcHh9aHRtbCxib2R5e21pbi1oZWlnaHQ6MTAwZHZoO2hlaWdodDoxMDBkdmh9Ym9keXtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LmFwcC1jb250YWluZXJ7b3ZlcmZsb3c6aGlkZGVufS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NnB4fS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSAuaGFtYnVyZ2VyLWljb257d2lkdGg6MTNweDtoZWlnaHQ6OXB4fS5zaWRlYmFye3RvcDowfS5zaWRlYmFyLWhlYWRlcntwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjQ4cHg7Z2FwOjhweH0uc2lkZWJhci1oZWFkZXItYWN0aW9uc3tnYXA6NHB4fS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dhcDo0cHh9LnNpZGViYXItZm9vdGVyLWFjdGlvbnM6aGFzKC5zaWRlYmFyLWJhY2stdG8tbmF0aXZlKTpoYXMoLnNpZGViYXItc3dpdGNoLXNlcnZlcil7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg1LDFmcil9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bnttaW4taGVpZ2h0OjQwcHg7cGFkZGluZzo2cHggNHB4fS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4gc3BhbntkaXNwbGF5Om5vbmV9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0biBzdmd7d2lkdGg6MThweDtoZWlnaHQ6MThweH0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3d7bWluLXdpZHRoOjE4MHB4O21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMjRweCl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVte3BhZGRpbmc6MTFweCAxNHB4O2ZvbnQtc2l6ZTouODc1cmVtfS50ZXJtaW5hbC1oZWFkZXJ7cGFkZGluZzo1cHggOHB4O21pbi1oZWlnaHQ6MzJweH0udGVybWluYWwtdGl0bGV7Z2FwOjRweDtmb250LXNpemU6LjY4NzVyZW19LnRlcm1pbmFsLWluZm97Zm9udC1zaXplOi41NjI1cmVtfS5jdXJyZW50LXRhc2t7Zm9udC1zaXplOi41NjI1cmVtO3BhZGRpbmc6MXB4IDZweCAxcHggNHB4O2dhcDozcHh9Lm1haW4taGVhZGVyLXJvd3twYWRkaW5nOjJweCA2cHg7Z2FwOjRweH0udG9wYmFyLWJyYW5kLC50b3BiYXItY3dke2Rpc3BsYXk6bm9uZX0udG9wYmFyLXNlc3Npb24tdGl0bGV7bWF4LXdpZHRoOjE0MHB4O2ZvbnQtc2l6ZTouNzhyZW19LnNlc3Npb24tc3RhdHVzLXBpbGx7Zm9udC1zaXplOi42MjVyZW07cGFkZGluZzoxcHggN3B4IDFweCA1cHg7bWF4LXdpZHRoOjExMHB4fS5zZXNzaW9uLXN0YXR1cy1waWxsIC5zZXNzaW9uLXN0YXR1cy1kb3R7d2lkdGg6NXB4O2hlaWdodDo1cHh9LnRvcGJhci1tb3JlLW1lbnV7bWluLXdpZHRoOjE1NnB4fS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5e3RvcDo2cHg7cmlnaHQ6NnB4O3BhZGRpbmc6MnB4O2dhcDoxcHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRue21pbi13aWR0aDoyNnB4O2hlaWdodDoyNnB4O2ZvbnQtc2l6ZTouNzVyZW19LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWx7bWluLXdpZHRoOjI4cHg7Zm9udC1zaXplOi41NjI1cmVtO3BhZGRpbmc6MCAycHh9Lm1haW4tbGF5b3V0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjE7bWluLWhlaWdodDowO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLWxlZnQ6MH0uc2lkZWJhcnt0b3A6MDt3aWR0aDptaW4oMjYwcHgsY2FsYygxMDB2dyAtIDEycHgpKTttYXgtaGVpZ2h0Om5vbmU7Ym9yZGVyLWJvdHRvbTpub25lfS5tYWluLWNvbnRlbnR7ZmxleDoxO21pbi1oZWlnaHQ6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO292ZXJmbG93OmhpZGRlbn0udGVybWluYWwtY29udGFpbmVye2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO21heC1oZWlnaHQ6bm9uZX0uc2Vzc2lvbnMtbGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAwIGF1dG87bWluLWhlaWdodDowO292ZXJmbG93OnZpc2libGU7cGFkZGluZzo0cHh9LnNlc3Npb24taXRlbXt3aWR0aDoxMDAlO21heC13aWR0aDpub25lO21hcmdpbi1ib3R0b206NHB4O3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NnB4fS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4taGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7Ym9yZGVyLXJhZGl1czo2cHh9LmlucHV0LXBhbmVse3otaW5kZXg6MzA7cGFkZGluZzo0cHggNnB4O3BhZGRpbmctYm90dG9tOmNhbGMoNnB4ICsgdmFyKC0taW5wdXQtc2FmZS1ib3R0b20sIHZhcigtLXNhZmUtYm90dG9tLCAwcHgpKSArIHZhcigtLWtleWJvYXJkLW9mZnNldCwgMHB4KSk7ZmxleDowIDAgYXV0bzttYXJnaW4tdG9wOmF1dG87YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmNmYxZTg4MCwjZjZmMWU4ZTAgMzAlLCNmNmYxZTgpLCNmNmYxZTg7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCl9LmlucHV0LXRleHRhcmVhe3BhZGRpbmctYm90dG9tOjRweH0uaW5wdXQtY29tcG9zZXJ7Ym9yZGVyLXJhZGl1czoxNHB4O2JveC1zaGFkb3c6MCAzcHggMTRweCAjNTkzYTIwMTJ9LmJ0bi1jaXJjbGV7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtib3JkZXItcmFkaXVzOjUwJX0uYnRuLWNpcmNsZS1zZW5kIHN2ZywuYnRuLWNpcmNsZS1zdG9wIHN2Z3t3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5pbnB1dC10ZXh0YXJlYSwuZmllbGQtaW5wdXR7Zm9udC1zaXplOjE2cHh9LmlucHV0LXRleHRhcmVhe21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjdweCAzMHB4IDVweCA4cHg7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS4zNX0uaW5wdXQtdGV4dGFyZWE6OnBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNXB4fS5jaGF0LW1vZGUtc2VsZWN0e21heC13aWR0aDo2NXB4O2ZvbnQtc2l6ZTouNTYyNXJlbTtoZWlnaHQ6MjJweDttaW4taGVpZ2h0OjIycHg7cGFkZGluZzowIDE0cHggMCA0cHg7Ym9yZGVyLXJhZGl1czo1cHh9LmlucHV0LWhpbnR7Zm9udC1zaXplOi40NXJlbTttYXgtd2lkdGg6MThjaDtvcGFjaXR5Oi42fS50ZXJtaW5hbC1qdW1wLWJvdHRvbXt3aWR0aDozMnB4O2hlaWdodDozMnB4O3BhZGRpbmc6MDtyaWdodDoxMHB4O2JvdHRvbToxMnB4fS5jaGF0LXVucmVhZC1idWJibGV7aGVpZ2h0OjMwcHg7bWluLXdpZHRoOjMwcHg7cmlnaHQ6MTBweDtib3R0b206OHB4O3BhZGRpbmc6MCA5cHg7Zm9udC1zaXplOi43MnJlbX0uY2hhdC11bnJlYWQtYnViYmxlLmhhcy11bnJlYWR7cGFkZGluZzowIDExcHggMCA5cHh9LmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudHtmb250LXNpemU6LjcycmVtfS5taW5pLWtleWJvYXJkLWZhYnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvdHRvbTo1MHB4O3JpZ2h0OjEwcHg7Zm9udC1zaXplOjFyZW19Lm1pbmkta2V5Ym9hcmR7Ym90dG9tOjUwcHg7cmlnaHQ6OHB4O2xlZnQ6OHB4O21pbi13aWR0aDowO2JvcmRlci1yYWRpdXM6MTBweH0uY2hhdC1jb250YWluZXJ7bWluLWhlaWdodDowO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6bm9uZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNoYXQtY29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmZsZXh9LmZvbGRlci1waWNrZXItY29udGFpbmVye21hcmdpbi1ib3R0b206NHB4fS5mb2xkZXItcGlja2VyLXF1aWNrLWJ0bnttaW4taGVpZ2h0OjMycHg7cGFkZGluZzo2cHggMTBweDtmb250LXNpemU6LjY4NzVyZW07Ym9yZGVyLXJhZGl1czo2cHh9LmZvbGRlci1icmVhZGNydW1ie3BhZGRpbmc6NHB4IDZweDtmb250LXNpemU6LjU2MjVyZW07bWFyZ2luLWJvdHRvbTozcHg7b3ZlcmZsb3cteDphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwfS5mb2xkZXItcGlja2Vye3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5mb2xkZXItcGlja2VyLWlucHV0e2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6NnB4fS5mb2xkZXItcGlja2VyLWRyb3Bkb3due21heC1oZWlnaHQ6MTgwcHh9LmZvbGRlci1waWNrZXItaXRlbXtwYWRkaW5nOjhweCAxMHB4O21pbi1oZWlnaHQ6MzZweH0uZm9sZGVyLXJlY2VudC1pdGVte3BhZGRpbmc6NnB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5mb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93e3BhZGRpbmc6NnB4fS5mb2xkZXItcGlja2VyLWNvbXBhY3QtaW5wdXR7Zm9udC1zaXplOi42MjVyZW19LndvcmtpbmctZGlyLWluZGljYXRvcntmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzoxcHggNHB4O21heC13aWR0aDoxMjBweH0udG9kby1wcm9ncmVzcy1oZWFkZXJ7cGFkZGluZzozcHggNnB4O2dhcDo0cHh9LnRvZG8tcHJvZ3Jlc3MtY291bnRlciwudG9kby1wcm9ncmVzcy10YXNre2ZvbnQtc2l6ZTouNTYyNXJlbX0udG9kby1wcm9ncmVzcy1jaGV2cm9ue3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LnRvZG8tcHJvZ3Jlc3MtYm9keXtwYWRkaW5nOjRweCA2cHh9LmxvZ2luLWNvbnRhaW5lcnttaW4taGVpZ2h0OjEwMGR2aDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmc6OHB4IDhweCBjYWxjKDhweCArIHZhcigtLXNhZmUtYm90dG9tLCAwcHgpKX0ubG9naW4tY2FyZHttYXJnaW4tdG9wOm1heCg2cHgsZW52KHNhZmUtYXJlYS1pbnNldC10b3AsMHB4KSl9LmxvZ2luLWhlYWRlcntwYWRkaW5nOjE0cHggMTJweCAxMHB4fS5sb2dpbi1ib2R5e3BhZGRpbmc6MTJweH0uYnRue21pbi1oZWlnaHQ6NDBweH0uYnRuLXNte21pbi1oZWlnaHQ6MzJweH0uY2hhdC1tZXNzYWdlLWJ1YmJsZXtwYWRkaW5nOjhweCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW19LmNoYXQtbWVzc2FnZS1hdmF0YXJ7Zm9udC1zaXplOi42ODc1cmVtfS5tb2RhbC1iYWNrZHJvcHtwYWRkaW5nOjhweDtwYWRkaW5nLXRvcDptYXgoOHB4LHZhcigtLXdhbmQtc2FmZS10b3ApKTtwYWRkaW5nLWxlZnQ6bWF4KDhweCx2YXIoLS13YW5kLXNhZmUtbGVmdCkpO3BhZGRpbmctcmlnaHQ6bWF4KDhweCx2YXIoLS13YW5kLXNhZmUtcmlnaHQpKTthbGlnbi1pdGVtczpmbGV4LWVuZH0ubW9kYWx7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDo4NXZoO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKSB2YXIoLS1yYWRpdXMtbWQpIDAgMDttYXJnaW4tYm90dG9tOnZhcigtLXNhZmUtYm90dG9tLCAwcHgpfS5tb2RhbC1oZWFkZXJ7cGFkZGluZzoxMHB4IDEycHg7bWluLWhlaWdodDo0MHB4fS5tb2RhbC1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5tb2RhbC1mb290ZXJ7cGFkZGluZzo4cHggMTJweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MTBweCAxMnB4IDE0cHh9LnRvb2wtY2FyZHtwYWRkaW5nOjEwcHg7bWluLWhlaWdodDozNnB4fS5tYWluLWNvbnRlbnQuZmlsZS1wYW5lbC1vcGVue21hcmdpbi1yaWdodDowfS5maWxlLXNpZGUtcGFuZWx7d2lkdGg6MTAwJX0uZmlsZS1zaWRlLXBhbmVsLWhlYWRlcntwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjQ4cHh9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRue3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHh9LmZpbGUtZXhwbG9yZXItaGVhZGVye3BhZGRpbmc6NnB4IDEwcHggNHB4O2dhcDo2cHh9LmZpbGUtZXhwbG9yZXItdXB7d2lkdGg6MzJweDtoZWlnaHQ6MzJweH0uZmlsZS1zZWFyY2gtYm94e3BhZGRpbmc6NnB4IDEwcHggOHB4fS5maWxlLXNlYXJjaC1pY29ue2xlZnQ6MjBweH0uZmlsZS1zZWFyY2gtY2xlYXJ7cmlnaHQ6MTZweH0uZmlsZS1zZWFyY2gtaW5wdXR7bWluLWhlaWdodDozNHB4O2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6N3B4IDMycHggN3B4IDMwcHh9LmJsYW5rLWNoYXR7cGFkZGluZzoxNnB4IDEycHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uYmxhbmstY2hhdC1pbm5lcnttYXgtd2lkdGg6MTAwJX0uYmxhbmstY2hhdC1sb2dve3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjI0cHg7Ym9yZGVyLXJhZGl1czoxMnB4O21hcmdpbi1ib3R0b206MTBweH0uYmxhbmstY2hhdC10aXRsZXtmb250LXNpemU6MS4xMjVyZW19LmJsYW5rLWNoYXQtc3VidGl0bGV7Zm9udC1zaXplOi43NXJlbTttYXJnaW4tYm90dG9tOjE2cHh9LmJsYW5rLWNoYXQtdG9vbHN7Z2FwOjRweDttYXJnaW4tYm90dG9tOjhweH0uYmxhbmstY2hhdC10b29sLWJ0bntwYWRkaW5nOjZweCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07bWluLWhlaWdodDo0NHB4fS5ub3RpZmljYXRpb24tYnViYmxle21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMjRweCl9LmJsYW5rLWNoYXQtY3dkLWRyb3Bkb3due21pbi13aWR0aDowO3dpZHRoOmNhbGMoMTAwdncgLSAzMnB4KTttYXgtd2lkdGg6MzIwcHh9LnRvYXN0LW1lc3NhZ2V7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAzMnB4KX19QG1lZGlhKG1pbi13aWR0aDozOTFweClhbmQgKG1heC13aWR0aDo0MjBweCl7LnRlcm1pbmFsLWNvbnRhaW5lcnttYXJnaW46MCA2cHggNnB4O3BhZGRpbmc6NnB4fS5pbnB1dC1wYW5lbHtwYWRkaW5nOjZweCAxMHB4O3BhZGRpbmctYm90dG9tOmNhbGMoOHB4ICsgdmFyKC0taW5wdXQtc2FmZS1ib3R0b20sIHZhcigtLXNhZmUtYm90dG9tLCAwcHgpKSl9fUBtZWRpYShtYXgtd2lkdGg6MzkwcHgpey5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4fS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSAuaGFtYnVyZ2VyLWljb257d2lkdGg6MTFweDtoZWlnaHQ6OHB4fS50ZXJtaW5hbC1oZWFkZXJ7cGFkZGluZzo0cHggNnB4O21pbi1oZWlnaHQ6MjhweH0udGVybWluYWwtaW5mb3tkaXNwbGF5Om5vbmV9LnRlcm1pbmFsLWNvbnRhaW5lcnttYXJnaW46MCA0cHggNHB4O3BhZGRpbmc6NHB4fS5pbnB1dC1wYW5lbHtwYWRkaW5nOjVweCA2cHg7cGFkZGluZy1ib3R0b206Y2FsYyg2cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKX0uaW5wdXQtY29tcG9zZXJ7Ym9yZGVyLXJhZGl1czo4cHh9LmlucHV0LXRleHRhcmVhe21pbi1oZWlnaHQ6MjhweDtwYWRkaW5nOjVweCAyOHB4IDJweCA2cHg7Zm9udC1zaXplOjE2cHh9LmJ0bi1jaXJjbGV7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweH0uc2Vzc2lvbi1pdGVte3BhZGRpbmc6NnB4IDhweDttaW4taGVpZ2h0OjQwcHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDozMHB4O2hlaWdodDozMHB4O21pbi13aWR0aDozMHB4O21pbi1oZWlnaHQ6MzBweH0uc2lkZWJhcnt0b3A6MDt3aWR0aDptaW4oMjQwcHgsY2FsYygxMDB2dyAtIDEwcHgpKX0uc2lkZWJhci1mb290ZXItYWN0aW9uc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKX0uc2lkZWJhci1mb290ZXItYWN0aW9uczpoYXMoLnNpZGViYXItYmFjay10by1uYXRpdmUpOmhhcyguc2lkZWJhci1zd2l0Y2gtc2VydmVyKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDUsMWZyKX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuIHNwYW57ZGlzcGxheTpub25lfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG57bWluLWhlaWdodDozNnB4O3BhZGRpbmc6NnB4fS5tb2RhbHttYXgtaGVpZ2h0Ojgwdmh9Lm1vZGFsLWhlYWRlcntwYWRkaW5nOjhweCAxMHB4O21pbi1oZWlnaHQ6MzZweH0ubW9kYWwtYm9keXtwYWRkaW5nOjhweCAxMHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7cGFkZGluZzo4cHggMTBweCAxMnB4fS5maWVsZC1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6MH0uYnRue21pbi1oZWlnaHQ6MzZweDtwYWRkaW5nOjhweCAxMnB4fS5idG4tc217bWluLWhlaWdodDoyOHB4O3BhZGRpbmc6NHB4IDhweH19QG1lZGlhKG1pbi13aWR0aDo2NDFweClhbmQgKG1heC13aWR0aDo3NjhweCl7LnNpZGViYXJ7dG9wOjA7d2lkdGg6bWluKDMyMHB4LGNhbGMoMTAwdncgLSA0MHB4KSl9LnNlc3Npb24taXRlbXttaW4taGVpZ2h0OjUycHg7cGFkZGluZzoxMXB4IDEycHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDozNHB4O2hlaWdodDozNHB4O21pbi13aWR0aDozNHB4O21pbi1oZWlnaHQ6MzRweH0uYnRue21pbi1oZWlnaHQ6NDJweH0uYnRuLXNte21pbi1oZWlnaHQ6MzZweH0uZmxvYXRpbmctdG9nZ2xle21pbi13aWR0aDo0OHB4O21pbi1oZWlnaHQ6NDhweH19QG1lZGlhKG1heC1oZWlnaHQ6NDIwcHgpYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4fS5zaWRlYmFye3RvcDowfS50ZXJtaW5hbC1jb250YWluZXJ7bWluLWhlaWdodDo1NXZoO21hcmdpbjo2cHg7cGFkZGluZzo4cHh9LmNoYXQtY29udGFpbmVye3BhZGRpbmc6MCAxMHB4IDhweH0uaW5wdXQtcGFuZWx7cGFkZGluZzo4cHg7cGFkZGluZy1ib3R0b206Y2FsYyg4cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKX19QG1lZGlhKG1heC13aWR0aDo0ODBweCl7LmNoYXQtY29udGFpbmVye3BhZGRpbmc6MCA2cHggOHB4fS5jaGF0LW1lc3NhZ2Vze3BhZGRpbmctbGVmdDoycHg7cGFkZGluZy1yaWdodDoycHg7Z2FwOjEycHh9LmNoYXQtbWVzc2FnZXstLWNoYXQtY2FyZC1tYXgtd2lkdGg6IDEwMCV9LnRvb2wtdXNlLWhlYWRlcntmbGV4LXdyYXA6d3JhcDtyb3ctZ2FwOjRweDtwYWRkaW5nOjhweCAxMnB4fS50b29sLXVzZS1maWxle21heC13aWR0aDoxMDAlfS50b29sLXVzZS1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5zdWJhZ2VudC1yZXBseXtwYWRkaW5nOjlweCAxMnB4fS5zdWJhZ2VudC1yZXBseS5jb2xsYXBzaWJsZXtwYWRkaW5nOjB9LnN1YmFnZW50LXJlcGx5LmZpbmFse3BhZGRpbmc6OXB4IDExcHh9LnN1YmFnZW50LXBhbmVse21hcmdpbjo2cHggMH0uc3ViYWdlbnQtcGFuZWwtaGVhZGVye3BhZGRpbmc6N3B4IDEwcHg7Z2FwOjZweDtmb250LXNpemU6Ljc0cmVtO2ZsZXgtd3JhcDp3cmFwfS5zdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbnt3aGl0ZS1zcGFjZTpub3JtYWw7bGluZS1oZWlnaHQ6MS40fS5zdWJhZ2VudC1wYW5lbC1jb3VudHttYXJnaW4tbGVmdDphdXRvfS5zdWJhZ2VudC1wYW5lbC10YWd7bWFyZ2luOjAgNHB4O3BhZGRpbmc6MCA0cHh9LnN1YmFnZW50LXBhbmVsLWJvZHl7aGVpZ2h0OjI2MHB4O3BhZGRpbmc6OXB4IDExcHh9LnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9ZmFsc2VdIC5zdWJhZ2VudC1wYW5lbC1ib2R5LC5zdWJhZ2VudC1wYW5lbFtkYXRhLWV4cGFuZGVkPXRydWVdIC5zdWJhZ2VudC1wYW5lbC1ib2R5e2hlaWdodDoyNjBweDttYXgtaGVpZ2h0Om5vbmV9LnN1YmFnZW50LXBhbmVsLWZvb3RlcntwYWRkaW5nOjVweCAxMHB4fS5zdWJhZ2VudC1wYW5lbC1mb290ZXItaGludHtkaXNwbGF5Om5vbmV9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtYmxvY2t7bWFyZ2luOjhweCAwfS5tYXJrZG93bi1jb250ZW50IHByZSwubWFya2Rvd24tY29udGVudCAuY29kZS1ibG9jayBwcmUsLnN1YmFnZW50LXJlcGx5IHByZXtwYWRkaW5nOjEwcHh9LmRpZmYtY29sdW1uc3tmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmRpZmYtY29sLC5kaWZmLWNvbC1oYWxmLC5kaWZmLWNvbC1mdWxse2ZsZXg6MSAxIGF1dG87d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJX0udGVybS1oZWFkZXIsLmRpZmYtaGVhZGVye2ZsZXgtd3JhcDp3cmFwO3Jvdy1nYXA6NHB4fS5kaWZmLXBhdGh7ZmxleC1iYXNpczoxMDAlO29yZGVyOjk5fS5pbmxpbmUtdG9vbC1yb3d7ZmxleC13cmFwOndyYXA7cm93LWdhcDoycHh9LmlubGluZS10b29sLW1ldGF7bWF4LXdpZHRoOjEwMCU7ZmxleC1iYXNpczoxMDAlO3BhZGRpbmctbGVmdDoyMnB4fX0uc2Vzc2lvbi1raW5kLWJhZGdle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoxOHB4O3BhZGRpbmc6MCA2cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMWVtO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1raW5kLWJhZGdlLnB0eXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDojNzg4MDhjMWY7Ym9yZGVyLWNvbG9yOiM3ODgwOGMyZX0uc2Vzc2lvbi1raW5kLWJhZGdlLnN0cnVjdHVyZWR7Y29sb3I6I2QxOGI1MjtiYWNrZ3JvdW5kOiNkNzdhNTIxYTtib3JkZXItY29sb3I6I2Q3N2E1MjM4fS5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWV7Y29sb3I6IzJmNmY1NDtiYWNrZ3JvdW5kOiM0ZjdhNTgxZjtib3JkZXItY29sb3I6IzRmN2E1ODM4fS5zZXNzaW9uLWtpbmQtZGlzcGxheXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjFweCA2cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiM4YTRiMjQ7YmFja2dyb3VuZDojZDc3YTUyMWY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIxNSwxMjIsODIsLjIpfS5zdHJ1Y3R1cmVkLXRvb2wtaGludHttYXJnaW46NHB4IDAgOHB4O3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDojZDc3YTUyMTQ7Ym9yZGVyOjFweCBkYXNoZWQgcmdiYSgyMTUsMTIyLDgyLC4xOCl9LmJsYW5rLWNoYXR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXg6MTtwYWRkaW5nOjIwcHggMTZweDttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6YXV0b30uYmxhbmstY2hhdC1pbm5lcnt3aWR0aDoxMDAlO21heC13aWR0aDo1NjBweDt0ZXh0LWFsaWduOmNlbnRlcn0uYmxhbmstY2hhdC1sb2dve3dpZHRoOjU2cHg7aGVpZ2h0OjU2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNkNzdhNTIsI2E5NTEzMCk7Ym9yZGVyLXJhZGl1czoxNnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MjhweDtmb250LXdlaWdodDo3MDA7Y29sb3I6I2ZmZjttYXJnaW46MCBhdXRvIDE0cHg7Ym94LXNoYWRvdzowIDRweCAxNnB4ICNjNTY1M2QzOH0uYmxhbmstY2hhdC10aXRsZXtmb250LXNpemU6MS4zNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWFyZ2luOjAgMCA2cHh9LmJsYW5rLWNoYXQtc3VidGl0bGV7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbjowIDAgMjBweH0uYmxhbmstY2hhdC10b29sc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ib3R0b206MTJweDtmbGV4LXdyYXA6d3JhcH0uYmxhbmstY2hhdC10b29sLWJ0bntwYWRkaW5nOjhweCAxNHB4O2JvcmRlcjoxLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6I2ZmZmZmZmIzO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC1mYW1pbHk6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttaW4taGVpZ2h0OjQwcHh9LmJsYW5rLWNoYXQtdG9vbC1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM1OTNhMjAxNH0uYmxhbmstY2hhdC10b29sLWJ0biAudG9vbC1pY29ue2ZvbnQtc2l6ZToxLjEyNXJlbX0uYmxhbmstY2hhdC1jd2Qtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW4tdG9wOjhweH0uYmxhbmstY2hhdC1jd2R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BhZGRpbmc6NHB4IDhweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7dHJhbnNpdGlvbjpjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt1c2VyLXNlbGVjdDpub25lfS5ibGFuay1jaGF0LWN3ZDpob3Zlcntjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKX0uYmxhbmstY2hhdC1jd2QtaWNvbntmb250LXNpemU6LjgxMjVyZW19LmJsYW5rLWNoYXQtY3dkLXBhdGh7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTttYXgtd2lkdGg6MjgwcHg7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uYmxhbmstY2hhdC1jd2QtcGF0aDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjNweH0uYmxhbmstY2hhdC1jd2QtcGF0aDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NTI7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCl9LmJsYW5rLWNoYXQtY3dkOmhvdmVyIC5ibGFuay1jaGF0LWN3ZC1wYXRoe3Njcm9sbGJhci13aWR0aDp0aGlufS5ibGFuay1jaGF0LWN3ZDpob3ZlciAuYmxhbmstY2hhdC1jd2QtcGF0aDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjRweH0uYmxhbmstY2hhdC1jd2QtYXJyb3d7Zm9udC1zaXplOi42MjVyZW07b3BhY2l0eTouNjt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5ibGFuay1jaGF0LWN3ZC1kcm9wZG93bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO21pbi13aWR0aDoyNjBweDttYXgtd2lkdGg6NDAwcHg7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdy15OmF1dG87YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Ym94LXNoYWRvdzowIDRweCAxNnB4ICMwMDAwMDAxYTt6LWluZGV4OjUwO21hcmdpbi10b3A6NHB4O3BhZGRpbmc6NHB4fS5ibGFuay1jaGF0LWN3ZC1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjZweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uYmxhbmstY2hhdC1jd2QtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KX0uYmxhbmstY2hhdC1jd2QtaXRlbS5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC13ZWlnaHQ6NTAwfS5ibGFuay1jaGF0LWN3ZC1pdGVtLWxhYmVse2ZvbnQtc2l6ZTouNjI1cmVtO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO3BhZGRpbmc6MXB4IDVweDtib3JkZXItcmFkaXVzOjNweDtmb250LXdlaWdodDo1MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5ibGFuay1jaGF0LWN3ZC1pdGVtLXBhdGh7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LmJsYW5rLWNoYXQtY3dkLWxvYWRpbmd7cGFkZGluZzo4cHggMTBweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtYWxpZ246Y2VudGVyfS5jaGF0LW1vZGUtc2VsZWN0e2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lfS5jaGF0LW1vZGUtc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS50b2FzdC1tZXNzYWdle3Bvc2l0aW9uOmZpeGVkO3RvcDoyNHB4O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7cGFkZGluZzoxMHB4IDIwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2ZvbnQtc2l6ZTouODc1cmVtO3otaW5kZXg6OTk5OTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1sZyk7YW5pbWF0aW9uOnRvYXN0LWluIC4yMnMgY3ViaWMtYmV6aWVyKC4zNCwxLjU2LC42NCwxKX0udG9hc3QtZXJyb3J7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXIpO2NvbG9yOiNmZmZ9QGtleWZyYW1lcyB0b2FzdC1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKC0xMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKDApfX0ubm90aWZpY2F0aW9uLWJ1YmJsZXtwb3NpdGlvbjpmaXhlZDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO3otaW5kZXg6MTAwMDA7bWluLXdpZHRoOjIyMHB4O21heC13aWR0aDozMjBweDtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cyk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbGcpO3BhZGRpbmc6OHB4IDEycHg7YW5pbWF0aW9uOm5vdGlmaWNhdGlvbi1zbGlkZS1pbiAuM3MgY3ViaWMtYmV6aWVyKC4zNCwxLjU2LC42NCwxKTt0cmFuc2l0aW9uOnRvcCAuMjVzIGVhc2Usb3BhY2l0eSAuMjVzIGVhc2V9Lm5vdGlmaWNhdGlvbi1idWJibGUuc2xpZGUtb3V0e2FuaW1hdGlvbjpub3RpZmljYXRpb24tc2xpZGUtb3V0IC4yNXMgZWFzZSBmb3J3YXJkczt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpfS5ub3RpZmljYXRpb24tYnViYmxlLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7bWFyZ2luLWJvdHRvbToycHh9Lm5vdGlmaWNhdGlvbi1idWJibGUtaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtmb250LXNpemU6MTBweH0ubm90aWZpY2F0aW9uLWJ1YmJsZS1pY29uLmluZm97YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmZ9Lm5vdGlmaWNhdGlvbi1idWJibGUtaWNvbi53YXJuaW5ne2JhY2tncm91bmQ6dmFyKC0td2FybmluZyk7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLWJ1YmJsZS1pY29uLnN1Y2Nlc3N7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24tYnViYmxlLXRpdGxle2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLWZnLXByaW1hcnkpO2ZsZXg6MTttaW4td2lkdGg6MH0ubm90aWZpY2F0aW9uLWJ1YmJsZS1jbG9zZXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tZmctbXV0ZWQpO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE7cGFkZGluZzoxcHggM3B4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtmbGV4LXNocmluazowfS5ub3RpZmljYXRpb24tYnViYmxlLWNsb3NlOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctaG92ZXIpO2NvbG9yOnZhcigtLWZnLXByaW1hcnkpfS5ub3RpZmljYXRpb24tYnViYmxlLWJvZHl7Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLWZnLXNlY29uZGFyeSk7bGluZS1oZWlnaHQ6MS40O21hcmdpbi1ib3R0b206MDttYXgtaGVpZ2h0OjQuMmVtO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25ze21hcmdpbi10b3A6NnB4O2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbntmb250LXNpemU6LjdyZW07cGFkZGluZzoycHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtjb2xvcjp2YXIoLS1mZy1wcmltYXJ5KTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1c30ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLWhvdmVyKX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbi5wcmltYXJ5e2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uLnByaW1hcnk6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4xKX1Aa2V5ZnJhbWVzIG5vdGlmaWNhdGlvbi1zbGlkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKC0yMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIG5vdGlmaWNhdGlvbi1zbGlkZS1vdXR7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgwKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKC0yMHB4KX19Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b246ZGlzYWJsZWR7b3BhY2l0eTouNjtjdXJzb3I6bm90LWFsbG93ZWQ7ZmlsdGVyOm5vbmV9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24uc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uLnN1Y2Nlc3M6aG92ZXI6bm90KDpkaXNhYmxlZCl7ZmlsdGVyOmJyaWdodG5lc3MoMS4xKX0ubm90aWZpY2F0aW9uLWJ1YmJsZS51cGRhdGUtY2FyZHt3aWR0aDptaW4oMzYwcHgsY2FsYygxMDB2dyAtIDI0cHgpKTttYXgtd2lkdGg6bWluKDM2MHB4LGNhbGMoMTAwdncgLSAyNHB4KSk7bWluLXdpZHRoOjA7cGFkZGluZzoxNHB4IDE0cHggMTJweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDAlIDAlLHZhcigtLWFjY2VudC1tdXRlZCkgMCUsdHJhbnNwYXJlbnQgNTUlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWJnLWVsZXZhdGVkKSAwJSx2YXIoLS1iZy1wcmltYXJ5KSAxMDAlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhsKSwwIDAgMCAxcHggI2ZmZjYgaW5zZXQ7b3ZlcmZsb3c6aGlkZGVuO2lzb2xhdGlvbjppc29sYXRlfS51cGRhdGUtY2FyZC1zaGluZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTE1ZGVnLHRyYW5zcGFyZW50IDAlLHJnYmEoMjU1LDI1NSwyNTUsLjE4KSA0NSUscmdiYSgyNTUsMjU1LDI1NSwuMzIpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xOCkgNTUlLHRyYW5zcGFyZW50IDEwMCUpO2JhY2tncm91bmQtc2l6ZToyMjAlIDEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjoxMjAlIDA7bWl4LWJsZW5kLW1vZGU6b3ZlcmxheTtvcGFjaXR5Oi42NTthbmltYXRpb246dXBkYXRlLWNhcmQtc2hpbmUgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7ei1pbmRleDowfUBrZXlmcmFtZXMgdXBkYXRlLWNhcmQtc2hpbmV7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjoxMjAlIDB9NTUle2JhY2tncm91bmQtcG9zaXRpb246LTIwJSAwfXRve2JhY2tncm91bmQtcG9zaXRpb246LTIwJSAwfX0udXBkYXRlLWNhcmQuaXMtc3VjY2Vzc3tiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgxMjAlIDEyMCUgYXQgMCUgMCUsdmFyKC0tc3VjY2Vzcy1tdXRlZCkgMCUsdHJhbnNwYXJlbnQgNTUlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWJnLWVsZXZhdGVkKSAwJSx2YXIoLS1iZy1wcmltYXJ5KSAxMDAlKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteGwpLDAgMCAwIDFweCAjZmZmNiBpbnNldCx2YXIoLS1zaGFkb3ctZ2xvdy1zdWNjZXNzKX0udXBkYXRlLWNhcmQtaGVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTBweH0udXBkYXRlLWNhcmQtaWNvbnt3aWR0aDozMnB4O2hlaWdodDozMnB4O2ZsZXgtc2hyaW5rOjA7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjojZmZmO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Ym94LXNoYWRvdzowIDRweCAxMnB4IHZhcigtLWFjY2VudC1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNTl9LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3MgLnVwZGF0ZS1jYXJkLWljb257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLXN1Y2Nlc3MpIDAlLHZhcigtLXN1Y2Nlc3MtaG92ZXIpIDEwMCUpO2JveC1zaGFkb3c6MCA0cHggMTJweCB2YXIoLS1zdWNjZXNzLWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY1OX0udXBkYXRlLWNhcmQtaGVhZGluZ3tmbGV4OjE7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4fS51cGRhdGUtY2FyZC10aXRsZXtmb250LXNpemU6Ljg4cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMWVtO2xpbmUtaGVpZ2h0OjEuMjV9LnVwZGF0ZS1jYXJkLXN1YnRpdGxle2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7bGluZS1oZWlnaHQ6MS4zNX0udXBkYXRlLWNhcmQtY2xvc2V7ZmxleC1zaHJpbms6MDt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsY29sb3IgLjE1c30udXBkYXRlLWNhcmQtY2xvc2U6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0udXBkYXRlLWNhcmQtdmVyc2lvbntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7bWFyZ2luOjEycHggMCAxMHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmbGV4LXdyYXA6bm93cmFwfS51cGRhdGUtY2FyZC12ZXJzaW9uLWNoaXB7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCB1aS1tb25vc3BhY2UsICJTRiBNb25vIiwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouNzRyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6M3B4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTt3aGl0ZS1zcGFjZTpub3dyYXB9LnVwZGF0ZS1jYXJkLXZlcnNpb24tY3VycmVudHtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0udXBkYXRlLWNhcmQtdmVyc2lvbi1sYXRlc3R7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDFweCA2cHggdmFyKC0tYWNjZW50LWdsb3cpfS51cGRhdGUtY2FyZC5pcy1zdWNjZXNzIC51cGRhdGUtY2FyZC12ZXJzaW9uLWxhdGVzdHtjb2xvcjp2YXIoLS1zdWNjZXNzKTtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKTtib3gtc2hhZG93OjAgMXB4IDZweCB2YXIoLS1zdWNjZXNzLWdsb3cpfS51cGRhdGUtY2FyZC12ZXJzaW9uLWFycm93e2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjB9LnVwZGF0ZS1jYXJkLXByb2dyZXNze3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjA7dHJhbnNpdGlvbjpoZWlnaHQgLjI1cyBlYXNlLG1hcmdpbiAuMjVzIGVhc2V9LnVwZGF0ZS1jYXJkLXByb2dyZXNzLmFjdGl2ZXtoZWlnaHQ6NnB4O21hcmdpbjowIDAgMTBweH0udXBkYXRlLWNhcmQtcHJvZ3Jlc3MtdHJhY2t7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtvdmVyZmxvdzpoaWRkZW59LnVwZGF0ZS1jYXJkLXByb2dyZXNzLWZpbGx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDotNDAlO3dpZHRoOjQwJTtoZWlnaHQ6MTAwJTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Ym94LXNoYWRvdzowIDAgMTBweCB2YXIoLS1hY2NlbnQtZ2xvdyk7YW5pbWF0aW9uOnVwZGF0ZS1jYXJkLXByb2dyZXNzLXN3ZWVwIDEuNHMgY3ViaWMtYmV6aWVyKC42NSwuMDUsLjM1LDEpIGluZmluaXRlfUBrZXlmcmFtZXMgdXBkYXRlLWNhcmQtcHJvZ3Jlc3Mtc3dlZXB7MCV7bGVmdDotNDUlO3dpZHRoOjQwJX01MCV7bGVmdDoyNSU7d2lkdGg6NTUlfXRve2xlZnQ6MTA1JTt3aWR0aDo0MCV9fS51cGRhdGUtY2FyZC1zdGF0dXN7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2ZvbnQtc2l6ZTouNzJyZW07bGluZS1oZWlnaHQ6MS40O3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO21hcmdpbi1ib3R0b206MTBweDtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0udXBkYXRlLWNhcmQtc3RhdHVzLmVycm9ye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpO2JvcmRlci1jb2xvcjp2YXIoLS1kYW5nZXIpfS51cGRhdGUtY2FyZC1zdGF0dXMuc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKX0udXBkYXRlLWNhcmQtYWN0aW9uc3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6OHB4fS51cGRhdGUtY2FyZC1hY3Rpb257Zm9udC1zaXplOi43OHJlbTtmb250LXdlaWdodDo2MDA7cGFkZGluZzo3cHggMTZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4xMnMgZWFzZSxmaWx0ZXIgLjE1cyBlYXNlLGJveC1zaGFkb3cgLjE1cyBlYXNlfS51cGRhdGUtY2FyZC1hY3Rpb24tcHJpbWFyeXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYWNjZW50KSAwJSx2YXIoLS1hY2NlbnQtaG92ZXIpIDEwMCUpO2NvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDRweCAxMnB4IHZhcigtLWFjY2VudC1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2ZpbHRlcjpicmlnaHRuZXNzKDEuMDUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTZweCB2YXIoLS1hY2NlbnQtZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjRkfS51cGRhdGUtY2FyZC1hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KDpkaXNhYmxlZCl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7ZmlsdGVyOmJyaWdodG5lc3MoLjk2KX0udXBkYXRlLWNhcmQtYWN0aW9uOmRpc2FibGVke29wYWNpdHk6Ljc7Y3Vyc29yOnByb2dyZXNzO2ZpbHRlcjpub25lO3RyYW5zZm9ybTpub25lfS51cGRhdGUtY2FyZC5pcy1zdWNjZXNzIC51cGRhdGUtY2FyZC1hY3Rpb24tcHJpbWFyeXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tc3VjY2VzcykgMCUsdmFyKC0tc3VjY2Vzcy1ob3ZlcikgMTAwJSk7Ym94LXNoYWRvdzowIDRweCAxMnB4IHZhcigtLXN1Y2Nlc3MtZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjQwfS51cGRhdGUtY2FyZC5pcy1zdWNjZXNzIC51cGRhdGUtY2FyZC1hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoOmRpc2FibGVkKXtib3gtc2hhZG93OjAgNnB4IDE2cHggdmFyKC0tc3VjY2Vzcy1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNGR9LnJlc3RhcnQtb3ZlcmxheXtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6OTk5OTk7YmFja2dyb3VuZDojMDAwMDAwYTY7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tkcm9wLWZpbHRlcjpibHVyKDRweCk7YW5pbWF0aW9uOnJlc3RhcnQtZmFkZS1pbiAuM3MgZWFzZX0ucmVzdGFydC1vdmVybGF5LWNvbnRlbnR7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZn0ucmVzdGFydC10aXRsZXtmb250LXNpemU6MS4yNXJlbTtmb250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo4cHh9LnJlc3RhcnQtc3VidGl0bGV7Zm9udC1zaXplOi45cmVtO29wYWNpdHk6Ljh9LnJlc3RhcnQtc3Bpbm5lcnt3aWR0aDozNnB4O2hlaWdodDozNnB4O21hcmdpbjowIGF1dG8gMTZweDtib3JkZXI6M3B4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjI1KTtib3JkZXItdG9wLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo1MCU7YW5pbWF0aW9uOnJlc3RhcnQtc3BpbiAuOHMgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgcmVzdGFydC1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyByZXN0YXJ0LWZhZGUtaW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19LmZpbGUtcHJldmlldy1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDojMDAwMDAwODA7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbmltYXRpb246ZmFkZS1pbiAuMTVzIGVhc2V9QGtleWZyYW1lcyBmYWRlLWluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS5zZXR0aW5ncy1tb2RhbHt3aWR0aDptaW4oMTA4MHB4LDEwMCUpO21heC13aWR0aDoxMDgwcHg7aGVpZ2h0Om1pbig4OHZoLDkyMHB4KTttYXgtaGVpZ2h0Om1pbig4OHZoLDkyMHB4KTttaW4taGVpZ2h0Om1pbig4OHZoLDkyMHB4KTtvdmVyZmxvdzpoaWRkZW59LnNldHRpbmdzLW1vZGFsLWhlYWRlcnthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxNnB4O3BhZGRpbmctYm90dG9tOjE0cHh9LnNldHRpbmdzLW1vZGFsLXRpdGxlLWdyb3Vwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjRweDttaW4td2lkdGg6MH0uc2V0dGluZ3MtbW9kYWwtc3VidGl0bGV7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjV9LnNldHRpbmdzLW1vZGFsLWJvZHl7cGFkZGluZy10b3A6MThweDtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc2V0dGluZ3MtbGF5b3V0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjYwcHggbWlubWF4KDAsMWZyKTtnYXA6MjJweDttaW4taGVpZ2h0OjA7ZmxleDoxIDEgYXV0bzthbGlnbi1pdGVtczpzdHJldGNofS5zZXR0aW5ncy1sYXlvdXQ+KnttaW4taGVpZ2h0OjB9LnNldHRpbmdzLXNpZGViYXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTRweDttaW4td2lkdGg6MDttaW4taGVpZ2h0OjA7cGFkZGluZy1yaWdodDo2cHg7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtvdmVyZmxvdzpoaWRkZW59LnNldHRpbmdzLXNpZGViYXItaGVhZGVyLC5zZXR0aW5ncy1zaWRlYmFyLXRpdGxlLC5zZXR0aW5ncy1zaWRlYmFyLWhpbnR7ZmxleC1zaHJpbms6MH0uc2V0dGluZ3Mtc2lkZWJhci1oZWFkZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O3BhZGRpbmc6MnB4IDRweCAwfS5zZXR0aW5ncy1zaWRlYmFyLXRpdGxle2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMWVtfS5zZXR0aW5ncy1zaWRlYmFyLWhpbnR7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjV9LnNldHRpbmdzLXRhYnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O21hcmdpbjowO3BhZGRpbmc6MCAxMHB4IDAgMDttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uc2V0dGluZ3MtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6NnB4O2hlaWdodDo2cHh9LnNldHRpbmdzLXRhYnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTM4O2JvcmRlci1yYWRpdXM6OTk5cHh9LnNldHRpbmdzLXRhYnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTVjfS5zZXR0aW5ncy10YWJze3Njcm9sbGJhci13aWR0aDp0aGlufS5zZXR0aW5ncy10YWJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDo0cHg7d2lkdGg6MTAwJTtwYWRkaW5nOjEycHggMTRweCAxMnB4IDE2cHg7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDojZmZmZmZmOGM7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjE2cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciAuMTVzLGJvcmRlci1jb2xvciAuMTVzLGJhY2tncm91bmQgLjE1cyxib3gtc2hhZG93IC4xNXMsdHJhbnNmb3JtIC4xNXM7dGV4dC1hbGlnbjpsZWZ0fS5zZXR0aW5ncy10YWI6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDoxMHB4O2JvdHRvbToxMHB4O3dpZHRoOjNweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZX0uc2V0dGluZ3MtdGFiOmhvdmVye2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7YmFja2dyb3VuZDojYzU2NTNkMTQ7Ym9yZGVyLWNvbG9yOiNjNTY1M2QxZjt0cmFuc2Zvcm06dHJhbnNsYXRlKDJweCl9LnNldHRpbmdzLXRhYjpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fS5zZXR0aW5ncy10YWIuYWN0aXZle2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOiNmZmZmZmZiMztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2ViLCNmZmY0ZThiOCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjYzU2NTNkMzgsaW5zZXQgMCAxcHggI2ZmZmZmZmU2LGluc2V0IDAgLTFweCAjYzU2NTNkMGYsMCA0cHggMTRweCAtNHB4ICNjNTY1M2QzOCwwIDFweCAzcHggIzdkNWIzOTBhfS5zZXR0aW5ncy10YWIuYWN0aXZlOmJlZm9yZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LnNldHRpbmdzLXRhYi1tYWlue2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjppbmhlcml0O2xpbmUtaGVpZ2h0OjEuM30uc2V0dGluZ3MtdGFiLW1ldGF7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS40NX0uc2V0dGluZ3MtdGFiLmFjdGl2ZSAuc2V0dGluZ3MtdGFiLW1ldGF7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5zZXR0aW5ncy1jb250ZW50e21pbi13aWR0aDowO21pbi1oZWlnaHQ6MDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvO3BhZGRpbmctcmlnaHQ6NHB4fS5zZXR0aW5ncy1wYW5lbHtkaXNwbGF5Om5vbmU7bWluLWhlaWdodDoxMDAlO3BhZGRpbmc6MnB4IDJweCA4cHh9LnNldHRpbmdzLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweH0uc2V0dGluZ3MtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1M2Q7Ym9yZGVyLXJhZGl1czo5OTlweH0uc2V0dGluZ3MtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojOTY3NjU1NjF9LnNldHRpbmdzLWNvbnRlbnR7c2Nyb2xsYmFyLXdpZHRoOnRoaW59LnNldHRpbmdzLXBhbmVsLmFjdGl2ZXtkaXNwbGF5OmJsb2NrO2FuaW1hdGlvbjpmYWRlLWluIC4xOHMgZWFzZX0uc2V0dGluZ3MtcGFuZWwtaGVhZGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweDttYXJnaW46MCAwIDE0cHg7cGFkZGluZy1ib3R0b206MTJweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpfS5zZXR0aW5ncy1wYW5lbC10aXRsZXtmb250LXNpemU6MS4wNjI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzotLjAxZW19LnNldHRpbmdzLXBhbmVsLWRlc2N7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtsaW5lLWhlaWdodDoxLjU1fS5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3Mtc2VjdGlvbi10aXRsZXttYXJnaW4tdG9wOjE4cHh9LnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1zZWN0aW9uLXRpdGxlOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDowfS5zZXR0aW5ncy1wYW5lbD4uZmllbGQtcm93LC5zZXR0aW5ncy1wYW5lbD4uZmllbGQsLnNldHRpbmdzLXBhbmVsPi5maWVsZC1oaW50e21heC13aWR0aDo3NjBweH0uc2V0dGluZ3MtcGFuZWw+LnN3aXRjaC1jYXJkLWxpc3QsLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1jYXJkLC5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiwuc2V0dGluZ3MtcGFuZWw+I3ByZXNldHMtbGlzdHttYXgtd2lkdGg6ODYwcHh9LnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1jYXJkKy5zZXR0aW5ncy1jYXJkLC5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24rLnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uLC5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24rLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9ue21hcmdpbi10b3A6MTRweH0uc2V0dGluZ3MtcGFuZWxbaGlkZGVuXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYShtYXgtd2lkdGg6OTAwcHgpey5zZXR0aW5ncy1sYXlvdXR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjIyMHB4IG1pbm1heCgwLDFmcik7Z2FwOjE4cHh9fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zZXR0aW5ncy1tb2RhbHt3aWR0aDptaW4oMTAwJSw3MjBweCk7aGVpZ2h0Om1pbig5MnZoLDkyMHB4KTttYXgtaGVpZ2h0Om1pbig5MnZoLDkyMHB4KTttaW4taGVpZ2h0Om1pbig5MnZoLDkyMHB4KX0uc2V0dGluZ3MtbW9kYWwtYm9keXtvdmVyZmxvdy15OmF1dG99LnNldHRpbmdzLWxheW91dHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKTtnYXA6MTRweDtmbGV4OjAgMCBhdXRvfS5zZXR0aW5ncy1zaWRlYmFye3BhZGRpbmctcmlnaHQ6MDtib3JkZXItcmlnaHQ6bm9uZX0uc2V0dGluZ3MtdGFic3tmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOm5vd3JhcDtvdmVyZmxvdy14OmF1dG87c2Nyb2xsYmFyLXdpZHRoOm5vbmU7cGFkZGluZy1yaWdodDowO3BhZGRpbmctYm90dG9tOjRweH0uc2V0dGluZ3MtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS5zZXR0aW5ncy10YWJ7ZmxleDowIDAgMjAwcHg7bWluLWhlaWdodDo3MnB4fS5zZXR0aW5ncy10YWI6aG92ZXJ7dHJhbnNmb3JtOm5vbmV9LnNldHRpbmdzLWNvbnRlbnR7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nLXJpZ2h0OjB9fUBtZWRpYShtYXgtd2lkdGg6NDgwcHgpey5zZXR0aW5ncy10YWJ7ZmxleC1iYXNpczoxODBweDtwYWRkaW5nOjEwcHggMTJweCAxMHB4IDE0cHh9LnNldHRpbmdzLXRhYi1tYWlue2ZvbnQtc2l6ZTouODEyNXJlbX0uc2V0dGluZ3MtdGFiLW1ldGF7Zm9udC1zaXplOi42ODc1cmVtfX0uc2V0dGluZ3MtYWJvdXQtaW5mb3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDowO21hcmdpbi1ib3R0b206MThweDtiYWNrZ3JvdW5kOiNmZmZmZmY4MDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKTtwYWRkaW5nOjRweCAxNnB4O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKX0uc2V0dGluZ3MtYWJvdXQtcm93e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE0cHg7Zm9udC1zaXplOi44MTI1cmVtO3BhZGRpbmc6MTJweCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5zZXR0aW5ncy1hYm91dC1yb3c6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmV9LnNldHRpbmdzLWxhYmVse2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDA7ZmxleDowIDAgMTEycHh9LnNldHRpbmdzLXZhbHVle2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjhyZW07bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpyaWdodDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LnNldHRpbmdzLXZhbHVlIGF7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246bm9uZX0uc2V0dGluZ3MtdmFsdWUgYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24sLnNldHRpbmdzLWNhcmQsLnN3aXRjaC1jYXJkLC5wcmVzZXQtaXRlbXtib3gtc2hhZG93OnZhcigtLXNoYWRvdy14cyl9LnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uLC5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbnttYXJnaW4tdG9wOjE0cHg7cGFkZGluZzoxNnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO2JhY2tncm91bmQ6I2ZmZmZmZjdhfS5zZXR0aW5ncy1zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO21hcmdpbjowIDAgMTJweDtsZXR0ZXItc3BhY2luZzouMDFlbX0uc2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMsLnNldHRpbmdzLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MTJweH0uc2V0dGluZ3MtYWN0aW9ucy1zdGlja3l7cG9zaXRpb246c3RpY2t5O2JvdHRvbTowO3BhZGRpbmctdG9wOjE2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjUwMCwjZmZmYmY1ZmEgMjhweCk7ei1pbmRleDoxO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uc2V0dGluZ3Mtc3RhdHVzLW1lc3NhZ2V7bWFyZ2luLXRvcDoxMHB4fS5zZXR0aW5ncy1pbmxpbmUtaGludHttYXJnaW4tdG9wOi00cHg7bWFyZ2luLWJvdHRvbToxMnB4fS5zZXR0aW5ncy1jb25uZWN0LXVybC1ib3h7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtiYWNrZ3JvdW5kOiNmZmZmZmZiODtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjEwcHggMTJweDttYXJnaW4tdG9wOjZweH0uc2V0dGluZ3MtY29ubmVjdC11cmwtdGV4dHtmbGV4OjE7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7d29yZC1icmVhazpicmVhay1hbGw7dXNlci1zZWxlY3Q6YWxsOy13ZWJraXQtdXNlci1zZWxlY3Q6YWxsfS5zZXR0aW5ncy1jb25uZWN0LXFyLWJveHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjE0cHh9LnNldHRpbmdzLWNvbm5lY3QtcXItd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyMDBweDtoZWlnaHQ6MjAwcHg7cGFkZGluZzoxMHB4O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2hhZG93OjAgNHB4IDEycHggIzdkNWIzOTE0O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnNldHRpbmdzLWNvbm5lY3QtcXItd3JhcDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNnB4IDE2cHggIzdkNWIzOTFmfS5zZXR0aW5ncy1jb25uZWN0LXFyLXdyYXAgY2FudmFze2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlfS5zZXR0aW5ncy1jb25uZWN0LXFyLWVtcHR5e3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtwb2ludGVyLWV2ZW50czpub25lfS5zZXR0aW5ncy1jb25uZWN0LXFyLWhpbnR7bWFyZ2luOjA7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RleHQtYWxpZ246Y2VudGVyO21heC13aWR0aDoyODBweH0uY29ubmVjdC1xci1tb2RhbC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDojMTQwZTA4OGM7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNnB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDZweCk7ei1pbmRleDo5OTk5O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjI0cHh9LmNvbm5lY3QtcXItbW9kYWwtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MjRweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRweDtib3gtc2hhZG93OjAgMjBweCA2MHB4ICMwMDAwMDA1OX0uY29ubmVjdC1xci1tb2RhbC1jYXJkIGNhbnZhc3tkaXNwbGF5OmJsb2NrO2JvcmRlci1yYWRpdXM6OHB4fS5jb25uZWN0LXFyLW1vZGFsLWhpbnR7bWFyZ2luOjA7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RleHQtYWxpZ246Y2VudGVyfS5maWVsZC1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKTtnYXA6MTRweDttYXJnaW4tYm90dG9tOjE0cHh9LmZpZWxkLXJvdyAuZmllbGR7bWFyZ2luLWJvdHRvbTowfS5zZXR0aW5ncy1jYXJke2JhY2tncm91bmQ6I2ZmZmZmZjg1O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO3BhZGRpbmc6MThweDttYXJnaW4tYm90dG9tOjE0cHh9LnNldHRpbmdzLWNhcmQgLmZpZWxkOmxhc3Qtb2YtdHlwZXttYXJnaW4tYm90dG9tOjEycHh9LnNldHRpbmdzLWNhcmQgLnNldHRpbmdzLXNlY3Rpb24tdGl0bGV7bWFyZ2luLXRvcDowfS5zZXR0aW5ncy1jYXJkIC5maWVsZC1pbnB1dHtiYWNrZ3JvdW5kOiNmZmZmZmZiOH0uc2V0dGluZ3MtY2FyZCAuYnRuLWJsb2Nre21hcmdpbi1ib3R0b206MH0uc2V0dGluZ3MtcGFuZWwgLmJ0bi1ibG9ja3ttaW4taGVpZ2h0OjQ0cHh9LnNldHRpbmdzLXBhbmVsIC5oaW50LC5zZXR0aW5ncy1wYW5lbCAuZmllbGQtaGludHtsaW5lLWhlaWdodDoxLjU1fS5zZXR0aW5ncy1wYW5lbCBpbnB1dFt0eXBlPXJhbmdlXXt3aWR0aDoxMDAlfS5zZXR0aW5ncy1wYW5lbCBjb2Rle21heC13aWR0aDoxMDAlfS5zZXR0aW5ncy1wYW5lbCAuaGlkZGVuKy5oaW50e21hcmdpbi10b3A6MH0uc2V0dGluZ3MtcGFuZWwgLmZpZWxkLWlucHV0LC5zZXR0aW5ncy1wYW5lbCAuZmllbGQtc2VsZWN0e3dpZHRoOjEwMCV9LnNldHRpbmdzLXBhbmVsIC5idG4tc217bWluLWhlaWdodDozNHB4fS5zZXR0aW5ncy1wYW5lbCAuZXJyb3ItbWVzc2FnZSwuc2V0dGluZ3MtcGFuZWwgLmhpbnQuaGlkZGVuLC5zZXR0aW5ncy1wYW5lbCAuZXJyb3ItbWVzc2FnZS5oaWRkZW57bWFyZ2luLXRvcDoxMHB4fS5zZXR0aW5ncy1wYW5lbCAjcHJlc2V0cy1saXN0OmVtcHR5OmJlZm9yZXtjb250ZW50OiJcNTJhMFw4ZjdkXDRlMmQuLi4iO2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxOHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTouODEyNXJlbX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuc2V0dGluZ3MtYWJvdXQtcm93e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zLC5zZXR0aW5ncy1hY3Rpb25ze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMgLmJ0biwuc2V0dGluZ3MtYWN0aW9ucyAuYnRue3dpZHRoOjEwMCV9LnNldHRpbmdzLWNvbm5lY3QtdXJsLWJveHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaH19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnNldHRpbmdzLW1vZGFsLWhlYWRlcntnYXA6MTBweH0uc2V0dGluZ3MtbW9kYWwtc3VidGl0bGV7Zm9udC1zaXplOi42ODc1cmVtfS5zZXR0aW5ncy1wYW5lbHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LnNldHRpbmdzLWFib3V0LWluZm8sLnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uLC5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiwuc2V0dGluZ3MtY2FyZHtwYWRkaW5nLWxlZnQ6MTRweDtwYWRkaW5nLXJpZ2h0OjE0cHh9LnNldHRpbmdzLWFib3V0LXJvd3tmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6NHB4fS5zZXR0aW5ncy1sYWJlbCwuc2V0dGluZ3MtdmFsdWV7ZmxleDpub25lO3RleHQtYWxpZ246bGVmdH0uc2V0dGluZ3MtcGFuZWwgLmJ0bi1pY29ue21pbi13aWR0aDozNHB4O21pbi1oZWlnaHQ6MzRweH19QG1lZGlhKG1pbi13aWR0aDo3NjlweCl7LnNldHRpbmdzLXBhbmVsIC5idG4tYmxvY2t7d2lkdGg6YXV0bzttaW4td2lkdGg6MTgwcHh9fUBzdXBwb3J0cyBub3QgKHBvc2l0aW9uOiBzdGlja3kpey5zZXR0aW5ncy10YWJzLC5zZXR0aW5ncy1hY3Rpb25zLXN0aWNreXtwb3NpdGlvbjpzdGF0aWN9fS5lbXB0eS1zdGF0ZS1jb21wYWN0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzozMnB4IDE2cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44MTI1cmVtfS5lbXB0eS1zdGF0ZS1jb21wYWN0IC5lbXB0eS1pY29ue2ZvbnQtc2l6ZToxLjVyZW07b3BhY2l0eTouNX0uc3dpdGNoLWNhcmQtbGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4fS5zd2l0Y2gtY2FyZHtkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQ6I2ZmZmZmZjgwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoxNHB4IDE2cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjJzLGJhY2tncm91bmQgLjJzLHRyYW5zZm9ybSAuMnM7dXNlci1zZWxlY3Q6bm9uZX0uc3dpdGNoLWNhcmQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfS5zd2l0Y2gtY2FyZC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH0uc3dpdGNoLWNhcmQtdGl0bGV7ZmxleDoxO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uc3dpdGNoLWNhcmQtZGVzY3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6MDttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjI1cyBlYXNlLG9wYWNpdHkgLjJzIGVhc2UsbWFyZ2luLXRvcCAuMjVzIGVhc2V9LnN3aXRjaC1jYXJkOmhhcyguc3dpdGNoLXRvZ2dsZTpjaGVja2VkKSAuc3dpdGNoLWNhcmQtZGVzY3ttYXgtaGVpZ2h0OjQwcHg7b3BhY2l0eToxO21hcmdpbi10b3A6OHB4fS5zd2l0Y2gtY2FyZDpoYXMoLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCl7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDYlLHZhcigtLWJnLXNlY29uZGFyeSkpfS5zd2l0Y2gtdG9nZ2xle3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDt3aWR0aDowO2hlaWdodDowO3BvaW50ZXItZXZlbnRzOm5vbmV9LnN3aXRjaC1zbGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6NDRweDtoZWlnaHQ6MjZweDttaW4td2lkdGg6NDRweDtib3JkZXItcmFkaXVzOjEzcHg7YmFja2dyb3VuZDojN2Q1YjM5Mzg7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggIzdkNWIzOTJlO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMjJzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2U7Y3Vyc29yOnBvaW50ZXJ9LnN3aXRjaC1zbGlkZXI6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4O3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlO2JveC1zaGFkb3c6MCAycHggNHB4ICMxNDBlMDgyZSwwIDAgMCAuNXB4ICM3ZDViMzkwZjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjRzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKX0uc3dpdGNoLXRvZ2dsZTpjaGVja2VkKy5zd2l0Y2gtc2xpZGVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCAjMDAwMDAwMWF9LnN3aXRjaC10b2dnbGU6Y2hlY2tlZCsuc3dpdGNoLXNsaWRlcjphZnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlKDE4cHgpfS5zd2l0Y2gtdG9nZ2xlOmZvY3VzLXZpc2libGUrLnN3aXRjaC1zbGlkZXJ7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9LnByZXNldC1pdGVte2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMnB4IDE0cHg7YmFja2dyb3VuZDojZmZmZmZmODU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEycHg7bWFyZ2luLWJvdHRvbToxMHB4O2ZvbnQtc2l6ZTouODEyNXJlbX0ucHJlc2V0LWxhYmVse2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5wcmVzZXQtZGV0YWlse21pbi13aWR0aDowO3RleHQtYWxpZ246cmlnaHQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnByZXNldC1pdGVte2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5wcmVzZXQtZGV0YWlse3RleHQtYWxpZ246bGVmdH19LmZpbGUtcHJldmlldy1tb2RhbHt3aWR0aDptaW4oOTB2dyxtYXgoNjQwcHgsY2FsYygxMDB2dyAtIDM4MHB4KSkpO21heC13aWR0aDoxMDAwcHg7aGVpZ2h0Ojgwdmg7bWF4LWhlaWdodDo4NXZoO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3gtc2hhZG93OjAgMjBweCA2MHB4ICMwMDAwMDA0ZDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO292ZXJmbG93OmhpZGRlbjthbmltYXRpb246bW9kYWwtc2xpZGUtaW4gLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpfUBrZXlmcmFtZXMgbW9kYWwtc2xpZGUtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMHB4KSBzY2FsZSguOTgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LmZpbGUtcHJldmlldy1vdmVybGF5e3BhZGRpbmc6MDthbGlnbi1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNoO3RvcDp2YXIoLS1hcHAtdmlld3BvcnQtdG9wLCAwcHgpO2hlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpfS5maWxlLXByZXZpZXctbW9kYWx7d2lkdGg6MTAwdnc7bWF4LXdpZHRoOjEwMHZ3O2hlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpO21heC1oZWlnaHQ6dmFyKC0tYXBwLXZpZXdwb3J0LWhlaWdodCwgMTAwZHZoKTtib3JkZXItcmFkaXVzOjA7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzpub25lO2FuaW1hdGlvbjpmYWRlLWluIC4xOHMgZWFzZX0uZmlsZS1wcmV2aWV3LWhlYWRlcntwYWRkaW5nOjEwcHggMTJweDtnYXA6OHB4O3BhZGRpbmctdG9wOm1heCgxMHB4LGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSk7cGFkZGluZy1sZWZ0Om1heCgxMnB4LGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO3BhZGRpbmctcmlnaHQ6bWF4KDEycHgsZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpfS5maWxlLXByZXZpZXctdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Z2FwOjZweDttaW4td2lkdGg6MDtmbGV4OjF9LmZpbGUtcHJldmlldy1maWxlbmFtZXttYXgtd2lkdGg6MTAwJX0uZmlsZS1wcmV2aWV3LXBhdGh7ZGlzcGxheTpub25lfS5maWxlLXByZXZpZXctdG9vbGJhcntnYXA6NHB4O2ZsZXgtc2hyaW5rOjB9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bntwYWRkaW5nOjAgNnB4O2ZvbnQtc2l6ZTouNzVyZW19LmZpbGUtcHJldmlldy1jbG9zZXt3aWR0aDozNHB4O2hlaWdodDozNHB4O3BhZGRpbmc6MH0uZmlsZS1wcmV2aWV3LWljb257Zm9udC1zaXplOjEuMTI1cmVtfS5maWxlLXByZXZpZXctYm9keXtwYWRkaW5nLWJvdHRvbTplbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSl9fS5maWxlLXByZXZpZXctaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMnB4IDE4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2ZsZXgtc2hyaW5rOjB9LmZpbGUtcHJldmlldy10aXRsZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZvbnQtc2l6ZTouOTM3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmbGV4OjE7bWluLXdpZHRoOjB9LmZpbGUtcHJldmlldy1pY29ue2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjE7ZmxleC1zaHJpbms6MH0uZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2t7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4O21pbi13aWR0aDowO2ZsZXg6MX0uZmlsZS1wcmV2aWV3LW5hbWUtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtnYXA6OHB4O21pbi13aWR0aDowfS5maWxlLXByZXZpZXctZmlsZW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouOTM3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDFlbTttaW4td2lkdGg6MH0uZmlsZS1wcmV2aWV3LXBhdGh7Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDttaW4td2lkdGg6MDtvcGFjaXR5Oi44fS5maWxlLXByZXZpZXctZGlydHl7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOiNjNjZhMWE7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMmVtO2ZsZXgtc2hyaW5rOjA7cGFkZGluZzoxcHggOHB4O2JhY2tncm91bmQ6I2M2NmExYTFhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTgsMTA2LDI2LC4yNSk7Ym9yZGVyLXJhZGl1czo5OTlweDthbmltYXRpb246ZGlydHktcHVsc2UgMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIGRpcnR5LXB1bHNlezAlLHRve29wYWNpdHk6LjY1fTUwJXtvcGFjaXR5OjF9fS5maWxlLXByZXZpZXctbGFuZ3tmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlcjoxcHggc29saWQgcmdiYSgyMTIsMTUyLDk5LC4zKTtsZXR0ZXItc3BhY2luZzouMDRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7ZmxleC1zaHJpbms6MDthbGlnbi1zZWxmOmNlbnRlcn0uZmlsZS1wcmV2aWV3LWNsb3Nle2JhY2tncm91bmQ6bm9uZTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6OHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsY29sb3IgLjE1cyxib3JkZXItY29sb3IgLjE1cyx0cmFuc2Zvcm0gLjE1cztsaW5lLWhlaWdodDoxO2ZsZXgtc2hyaW5rOjB9LmZpbGUtcHJldmlldy1jbG9zZTpob3ZlcntiYWNrZ3JvdW5kOiNkYzQ2NDYxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JvcmRlci1jb2xvcjojZGM0NjQ2NDB9LmZpbGUtcHJldmlldy1jbG9zZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LmZpbGUtcHJldmlldy1ib2R5e2ZsZXg6MTtvdmVyZmxvdzphdXRvO21pbi1oZWlnaHQ6MDtzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6dmFyKC0tYm9yZGVyLWRlZmF1bHQpIHRyYW5zcGFyZW50fS5maWxlLXByZXZpZXctYm9keTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6OHB4O2hlaWdodDo4cHh9LmZpbGUtcHJldmlldy1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5maWxlLXByZXZpZXctYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czo0cHh9LmZpbGUtcHJldmlldy1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5maWxlLXByZXZpZXctYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNvZGUtcHJldmlldy13cmFwcGVye2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KSB0cmFuc3BhcmVudH0uY29kZS1wcmV2aWV3LXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fS5jb2RlLXByZXZpZXctd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY29kZS1wcmV2aWV3LXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6NHB4fS5jb2RlLXByZXZpZXctd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS10ZXh0LW11dGVkKX0uY29kZS1wcmV2aWV3LWxpbmVze3BhZGRpbmc6MTZweCAxMnB4IDE2cHggMTZweDt0ZXh0LWFsaWduOnJpZ2h0O3VzZXItc2VsZWN0Om5vbmU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLXNtKTtsaW5lLWhlaWdodDp2YXIoLS1saW5lLWhlaWdodCk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTt3aWR0aDo1MnB4O21heC13aWR0aDo1MnB4O2ZsZXgtc2hyaW5rOjA7b3ZlcmZsb3c6aGlkZGVufS5jb2RlLXByZXZpZXctY29udGVudHtmbGV4OjE7bWluLXdpZHRoOjA7d2lkdGg6MTAwJTtwYWRkaW5nOjE2cHggMjBweDtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTphdXRvfS5jb2RlLXByZXZpZXctY29udGVudCBwcmV7bWFyZ2luOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLXNtKTtsaW5lLWhlaWdodDp2YXIoLS1saW5lLWhlaWdodCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3aGl0ZS1zcGFjZTpwcmU7d29yZC1icmVhazpub3JtYWw7b3ZlcmZsb3ctd3JhcDpub3JtYWx9LnN5bnRheC1rZXl3b3Jke2NvbG9yOiNjNjc4ZGR9LnN5bnRheC1zdHJpbmd7Y29sb3I6Izk4YzM3OX0uc3ludGF4LW51bWJlcntjb2xvcjojZDE5YTY2fS5zeW50YXgtY29tbWVudHtjb2xvcjojNWM2MzcwO2ZvbnQtc3R5bGU6aXRhbGljfS5zeW50YXgtZnVuY3Rpb257Y29sb3I6IzYxYWZlZn0uc3ludGF4LW9wZXJhdG9ye2NvbG9yOiM1NmI2YzJ9LnN5bnRheC10eXBle2NvbG9yOiNlNWMwN2J9LnN5bnRheC1wdW5jdHVhdGlvbntjb2xvcjojYWJiMmJmfS5tYXJrZG93bi1wcmV2aWV3e3BhZGRpbmc6MjBweCAyOHB4O2xpbmUtaGVpZ2h0OjEuNztmb250LXNpemU6LjkzNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ubWFya2Rvd24tcHJldmlldyBoMSwubWFya2Rvd24tcHJldmlldyBoMiwubWFya2Rvd24tcHJldmlldyBoMywubWFya2Rvd24tcHJldmlldyBoNCwubWFya2Rvd24tcHJldmlldyBoNSwubWFya2Rvd24tcHJldmlldyBoNnttYXJnaW4tdG9wOjEuNWVtO21hcmdpbi1ib3R0b206LjVlbTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MS4zO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9Lm1hcmtkb3duLXByZXZpZXcgaDF7Zm9udC1zaXplOjEuNzVyZW07Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nLWJvdHRvbTouM2VtfS5tYXJrZG93bi1wcmV2aWV3IGgye2ZvbnQtc2l6ZToxLjM3NXJlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmctYm90dG9tOi4zZW19Lm1hcmtkb3duLXByZXZpZXcgaDN7Zm9udC1zaXplOjEuMTI1cmVtfS5tYXJrZG93bi1wcmV2aWV3IGg0e2ZvbnQtc2l6ZToxcmVtfS5tYXJrZG93bi1wcmV2aWV3IHB7bWFyZ2luOi43NWVtIDB9Lm1hcmtkb3duLXByZXZpZXcgYXtjb2xvcjp2YXIoLS1hY2NlbnQpO3RleHQtZGVjb3JhdGlvbjpub25lfS5tYXJrZG93bi1wcmV2aWV3IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ubWFya2Rvd24tcHJldmlldyBjb2Rle2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO3BhZGRpbmc6MnB4IDZweDtib3JkZXItcmFkaXVzOjNweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODc1ZW07Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpfS5tYXJrZG93bi1wcmV2aWV3IHByZXtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtwYWRkaW5nOjE2cHg7b3ZlcmZsb3cteDphdXRvO21hcmdpbjoxZW0gMH0ubWFya2Rvd24tcHJldmlldyBwcmUgY29kZXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtc20pfS5tYXJrZG93bi1wcmV2aWV3IGJsb2NrcXVvdGV7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHZhcigtLWFjY2VudCk7bWFyZ2luOjFlbSAwO3BhZGRpbmc6LjVlbSAxZW07YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXItcmFkaXVzOjAgdmFyKC0tcmFkaXVzLXNtKSB2YXIoLS1yYWRpdXMtc20pIDB9Lm1hcmtkb3duLXByZXZpZXcgdWwsLm1hcmtkb3duLXByZXZpZXcgb2x7cGFkZGluZy1sZWZ0OjEuNWVtO21hcmdpbjouNzVlbSAwfS5tYXJrZG93bi1wcmV2aWV3IGxpe21hcmdpbjouMjVlbSAwfS5tYXJrZG93bi1wcmV2aWV3IHRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aWR0aDoxMDAlO21hcmdpbjoxZW0gMDtmb250LXNpemU6Ljg3NXJlbX0ubWFya2Rvd24tcHJldmlldyB0aCwubWFya2Rvd24tcHJldmlldyB0ZHtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZzo4cHggMTJweDt0ZXh0LWFsaWduOmxlZnR9Lm1hcmtkb3duLXByZXZpZXcgdGh7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMH0ubWFya2Rvd24tcHJldmlldyB0cjpudGgtY2hpbGQoMm4pe2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KX0ubWFya2Rvd24tcHJldmlldyBocntib3JkZXI6bm9uZTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO21hcmdpbjoxLjVlbSAwfS5tYXJrZG93bi1wcmV2aWV3IGltZ3ttYXgtd2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSl9LmZpbGUtcHJldmlldy1sb2FkaW5ne2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MTAwJTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljg3NXJlbTtnYXA6MTBweH0uZmlsZS1wcmV2aWV3LWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItdG9wLWNvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czo1MCU7YW5pbWF0aW9uOnByZXZpZXctc3BpbiAuN3MgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgcHJldmlldy1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmZpbGUtcHJldmlldy1lcnJvcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDoxMDAlO2dhcDo4cHg7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LXNpemU6Ljg3NXJlbTt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjIwcHh9LmZpbGUtcHJldmlldy1lcnJvciAucHJldmlldy1lcnJvci1pY29ue2ZvbnQtc2l6ZToycmVtO29wYWNpdHk6LjV9LnRyZWUtaXRlbVtkYXRhLXR5cGU9ZmlsZV17Y3Vyc29yOnBvaW50ZXJ9LnRyZWUtaXRlbVtkYXRhLXR5cGU9ZmlsZV06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy1ob3Zlcil9LnRyZWUtaXRlbVtkYXRhLXR5cGU9ZmlsZV06aG92ZXIgLnRyZWUtbmFtZXtjb2xvcjp2YXIoLS1hY2NlbnQpfS5maWxlLWV4cGxvcmVyLXVwe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjhweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZmxleC1zaHJpbms6MH0uZmlsZS1leHBsb3Jlci11cDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKX0uZmlsZS1leHBsb3Jlci11cDphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnRyZWUtbWV0YXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7bWFyZ2luLWxlZnQ6NnB4O3BhZGRpbmctbGVmdDo2cHg7bWF4LXdpZHRoOjcwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO29wYWNpdHk6Ljg1fS50cmVlLWl0ZW06aG92ZXIgLnRyZWUtbWV0YXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnRyZWUtdHJ1bmNhdGVke3BhZGRpbmc6OHB4IDE0cHg7bWFyZ2luOjRweCA2cHggOHB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjZweDt0ZXh0LWFsaWduOmNlbnRlcn0uZmlsZS1jb250ZXh0LW1lbnV7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMTAwO21pbi13aWR0aDoyMDBweDtwYWRkaW5nOjRweDtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjEwcHg7Ym94LXNoYWRvdzowIDEycHggMzZweCAjMDAwMDAwMmU7YW5pbWF0aW9uOmN0eC1mYWRlLWluIC4xMnMgZWFzZX1Aa2V5ZnJhbWVzIGN0eC1mYWRlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNHB4KSBzY2FsZSguOTgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19LmZpbGUtY29udGV4dC1tZW51LWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDt3aWR0aDoxMDAlO3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZTouODEyNXJlbTt0ZXh0LWFsaWduOmxlZnQ7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo2cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnN9LmZpbGUtY29udGV4dC1tZW51LWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LmZpbGUtY29udGV4dC1tZW51LWl0ZW0gLmN0eC1pY29ue3dpZHRoOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7b3BhY2l0eTouODV9LndhbmQtbWluaS10b2FzdHtwb3NpdGlvbjpmaXhlZDt0b3A6MzBweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTE0cHgpO3otaW5kZXg6MTIwMDtwYWRkaW5nOjhweCAxNnB4O2JhY2tncm91bmQ6IzE0MTQxNGViO2NvbG9yOiNmZmY7Zm9udC1zaXplOi44MTI1cmVtO2JvcmRlci1yYWRpdXM6OTk5cHg7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgZWFzZTtwb2ludGVyLWV2ZW50czpub25lfS53YW5kLW1pbmktdG9hc3Quc2hvd3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKX0uZmlsZS1wcmV2aWV3LXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6OHB4fS5maWxlLXByZXZpZXctdG9vbGJhci1idG57YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MCA4cHg7bWluLXdpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Z2FwOjZweDtib3JkZXItcmFkaXVzOjhweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi43NXJlbTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLGNvbG9yIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXMsYm94LXNoYWRvdyAuMTVzLHRyYW5zZm9ybSAuMXN9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpO2JveC1zaGFkb3c6MCAxcHggM3B4ICMwMDAwMDAwYX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk1KX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO3RyYW5zZm9ybTpub25lfS5maWxlLXByZXZpZXctdG9vbGJhci1idG4gLnRvb2xiYXItaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5maWxlLXByZXZpZXctdG9vbGJhci1idG4gLnRvb2xiYXItdGV4dHtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAxZW19LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi50b29sYmFyLWFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6I2Q0OTg2MzY2fS5maWxlLXByZXZpZXctdG9vbGJhci1idG4ucHJpbWFyeXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMXB4IDJweCAjNTkzYTIwMjZ9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi5wcmltYXJ5OmhvdmVye2JhY2tncm91bmQ6I2I4N2E0Nztib3JkZXItY29sb3I6I2I4N2E0Nztjb2xvcjojZmZmO2JveC1zaGFkb3c6MCAycHggNnB4ICM1OTNhMjAzM30uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLmRhbmdlcntjb2xvcjojYzAzOTJifS5maWxlLXByZXZpZXctdG9vbGJhci1idG4uZGFuZ2VyOmhvdmVye2JhY2tncm91bmQ6I2RjNDY0NjE0O2JvcmRlci1jb2xvcjojZGM0NjQ2NGQ7Y29sb3I6I2EwMjgxOH0uZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXB7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpzdHJldGNoO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czo4cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSl9LmZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwIC5maWxlLXByZXZpZXctdG9vbGJhci1idG57Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7bWluLXdpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7Ym94LXNoYWRvdzpub25lfS5maWxlLXByZXZpZXctdG9vbGJhci1ncm91cCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS5maWxlLXByZXZpZXctdG9vbGJhci1ncm91cGxhYmVse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowIDZweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9LmZpbGUtcHJldmlldy10b29sYmFyLmVkaXRpbmd7Z2FwOjZweH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue2hlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4O3BhZGRpbmc6MCA2cHh9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0biAudG9vbGJhci10ZXh0e2Rpc3BsYXk6bm9uZX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLnByaW1hcnkgLnRvb2xiYXItdGV4dHtkaXNwbGF5OmlubGluZS1mbGV4fX0ud2FuZC1pY29ue2ZsZXgtc2hyaW5rOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5jb2RlLXByZXZpZXctY29udGVudCBwcmUud3JhcHt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9LmZpbGUtcHJldmlldy1ib2R5LmVkaXRpbmd7cGFkZGluZzowO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSl9LmNvZGUtZWRpdG9yLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDowO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSl9LmNvZGUtZWRpdG9yLXRleHRhcmVhe2ZsZXg6MTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoxNnB4IDIwcHg7bWFyZ2luOjA7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lO3Jlc2l6ZTpub25lO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTt0YWItc2l6ZToyOy1tb3otdGFiLXNpemU6Mjt3aGl0ZS1zcGFjZTpwcmU7b3ZlcmZsb3c6YXV0bztjYXJldC1jb2xvcjp2YXIoLS1hY2NlbnQpO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjp2YXIoLS1ib3JkZXItZGVmYXVsdCkgdHJhbnNwYXJlbnR9LmNvZGUtZWRpdG9yLXRleHRhcmVhOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo4cHg7aGVpZ2h0OjhweH0uY29kZS1lZGl0b3ItdGV4dGFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNvZGUtZWRpdG9yLXRleHRhcmVhOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjRweH0uY29kZS1lZGl0b3ItdGV4dGFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCl9LmNvZGUtZWRpdG9yLXRleHRhcmVhOmZvY3Vze2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4ICNkNDk4NjMyNn0uZmlsZS1wcmV2aWV3LWJvZHkua2luZC1pbWFnZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgwLDAsMCwuMDQpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNzUlLHJnYmEoMCwwLDAsLjA0KSA3NSUpLGxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDAsMCwwLC4wNCkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA3NSUscmdiYSgwLDAsMCwuMDQpIDc1JSksdmFyKC0tYmctcHJpbWFyeSk7YmFja2dyb3VuZC1zaXplOjE2cHggMTZweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMCw4cHggOHB4fS5pbWFnZS1wcmV2aWV3LXdyYXBwZXJ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjE2cHh9LmltYWdlLXByZXZpZXctaW1ne21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvbnRhaW47Y3Vyc29yOnpvb20taW47dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2U7Ym94LXNoYWRvdzowIDZweCAyMHB4ICMwMDAwMDAxZjtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOiNmZmZ9LmltYWdlLXByZXZpZXctaW1nLnpvb21lZHttYXgtd2lkdGg6bm9uZTttYXgtaGVpZ2h0Om5vbmU7Y3Vyc29yOnpvb20tb3V0O3RyYW5zZm9ybTpzY2FsZSgxKX0uZmlsZS1wcmV2aWV3LWJvZHkua2luZC1wZGZ7cGFkZGluZzowO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KX0ucGRmLXByZXZpZXctZnJhbWV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtdmlkZW8sLmZpbGUtcHJldmlldy1ib2R5LmtpbmQtYXVkaW97ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6IzBkMGQwZH0uZmlsZS1wcmV2aWV3LWJvZHkua2luZC1hdWRpb3tiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9Lm1lZGlhLXByZXZpZXctd3JhcHBlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCU7cGFkZGluZzoyNHB4fS5tZWRpYS1wcmV2aWV3LXZpZGVve21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gNDBweCk7YmFja2dyb3VuZDojMDAwO2JvcmRlci1yYWRpdXM6NHB4fS5tZWRpYS1wcmV2aWV3LWF1ZGlve3dpZHRoOm1pbig0MjBweCw5MCUpfS5tZWRpYS1wcmV2aWV3LWljb257Zm9udC1zaXplOjMuNXJlbTtvcGFjaXR5Oi43fS5tZWRpYS1wcmV2aWV3LW5hbWV7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjFyZW07bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5tZWRpYS1wcmV2aWV3LW1ldGF7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi43NXJlbTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtdmlkZW8gLm1lZGlhLXByZXZpZXctbWV0YXtjb2xvcjojZmZmZmZmYjN9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtYmluYXJ5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYmluYXJ5LXByZXZpZXctY2FyZHttYXgtd2lkdGg6NDgwcHg7cGFkZGluZzozMnB4IDI4cHg7dGV4dC1hbGlnbjpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHh9LmJpbmFyeS1wcmV2aWV3LWljb257Zm9udC1zaXplOjNyZW07b3BhY2l0eTouNn0uYmluYXJ5LXByZXZpZXctbmFtZXtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6MXJlbTt3b3JkLWJyZWFrOmJyZWFrLWFsbH0uYmluYXJ5LXByZXZpZXctbWV0YXtkaXNwbGF5OmZsZXg7Z2FwOjZweDthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi43NXJlbX0uYmluYXJ5LXByZXZpZXctcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uYmluYXJ5LXByZXZpZXctYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDttYXJnaW4tdG9wOjhweDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5iaW5hcnktcHJldmlldy1idG57cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZTouODEyNXJlbTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxib3JkZXItY29sb3IgLjE1cyxjb2xvciAuMTVzfS5iaW5hcnktcHJldmlldy1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCl9LnRyZWUtaXRlbXt0cmFuc2l0aW9uOmFsbCAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnRyZWUtaXRlbTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlKDRweCl9LnRyZWUtaXRlbTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgycHgpIHNjYWxlKC45OSl9LmZpbGUtc2lkZS1wYW5lbHt0cmFuc2l0aW9uOnJpZ2h0IC4zNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyksYm94LXNoYWRvdyAuMzVzIGVhc2V9LmZpbGUtc2lkZS1wYW5lbC5vcGVue2JveC1zaGFkb3c6LThweCAwIDMycHggIzU5M2EyMDFmfS5zcGlubmVye2FuaW1hdGlvbjpzcGluIDFzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGZsb2F0ezAlLHRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtOHB4KX19LmZsb2F0e2FuaW1hdGlvbjpmbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZX0uY2hhdC1tZXNzYWdlLWJ1YmJsZXstd2Via2l0LXVzZXItc2VsZWN0OnRleHQ7dXNlci1zZWxlY3Q6dGV4dH0ubXNnLWNvcHktYnRue2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTMycHg7cmlnaHQ6NHB4O3BhZGRpbmc6NHB4IDEwcHg7Zm9udC1zaXplOi43NXJlbTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt6LWluZGV4OjEwO3doaXRlLXNwYWNlOm5vd3JhcDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn0ubXNnLWNvcHktYnRuLnZpc2libGV7ZGlzcGxheTpibG9ja30ubXNnLWNvcHktYnRuLmNvcGllZHtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKX0uY2hhdC1tZXNzYWdle3Bvc2l0aW9uOnJlbGF0aXZlfS50ZXJtaW5hbC1qdW1wLWJvdHRvbXt6LWluZGV4OjIwfS5pbnB1dC1jb21wb3Nlci5pbi1mbGlnaHR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5pbnB1dC1jb21wb3Nlci5pbi1mbGlnaHQ6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7bGVmdDotNjAlO3dpZHRoOjIyMCU7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjE0cHggMTRweCAwIDA7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAyODBweCA0cHgscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC40NSkgMCUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC4xMikgMzUlLHRyYW5zcGFyZW50IDYwJSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToyODBweCA0cHg7YW5pbWF0aW9uOmNvbXBvc2VyV2F2ZVNsaWRlIDdzIGN1YmljLWJlemllciguMzUsMCwuNjUsMSkgaW5maW5pdGU7ei1pbmRleDoyO3BvaW50ZXItZXZlbnRzOm5vbmV9LmlucHV0LWNvbXBvc2VyLmluLWZsaWdodDphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMnB4O2xlZnQ6LTYwJTt3aWR0aDoyMjAlO2hlaWdodDozcHg7Ym9yZGVyLXJhZGl1czoxNHB4IDE0cHggMCAwO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgMjIwcHggM3B4LHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuMjUpIDAlLHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuMDYpIDM1JSx0cmFuc3BhcmVudCA2MCUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MjIwcHggM3B4O2FuaW1hdGlvbjpjb21wb3NlcldhdmVTbGlkZSA5cyBjdWJpYy1iZXppZXIoLjM1LDAsLjY1LDEpIGluZmluaXRlIHJldmVyc2U7ei1pbmRleDoyO3BvaW50ZXItZXZlbnRzOm5vbmV9QGtleWZyYW1lcyBjb21wb3NlcldhdmVTbGlkZXswJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAlIGNlbnRlcn10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgY2VudGVyfX0uc3RydWN0dXJlZC1zdGF0dXMtYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo1cHg7bWFyZ2luOjAgMCAwIGF1dG87cGFkZGluZzo0cHggOHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZSxjb2xvciAuM3MgZWFzZTtvdmVyZmxvdzpoaWRkZW47ZmxleC1zaHJpbms6MH0uc3RydWN0dXJlZC1zdGF0dXMtYmFyIC5zdGF0dXMtYmFyLWRvdHt3aWR0aDo1cHg7aGVpZ2h0OjVweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuOCk7YW5pbWF0aW9uOnN0YXR1c0RvdFB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7ZmxleC1zaHJpbms6MH1Aa2V5ZnJhbWVzIHN0YXR1c0RvdFB1bHNlezAlLHRve29wYWNpdHk6LjQ7dHJhbnNmb3JtOnNjYWxlKC45KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxLjEpfX0uc3RydWN0dXJlZC1zdGF0dXMtYmFyIC5zdGF0dXMtYmFyLWxhYmVse2ZsZXgtc2hyaW5rOjA7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNjI1cmVtfS5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIgLnN0YXR1cy1iYXItdGltZXJ7ZmxleC1zaHJpbms6MDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc3RydWN0dXJlZC1zdGF0dXMtYmFyLmNvbXBsZXRlZHthbmltYXRpb246c3RhdHVzQmFyRmFkZU91dCAycyBlYXNlLW91dCAxcyBmb3J3YXJkc30uc3RydWN0dXJlZC1zdGF0dXMtYmFyLmNvbXBsZXRlZCAuc3RhdHVzLWJhci1sYWJlbHtjb2xvcjp2YXIoLS1zdWNjZXNzKX1Aa2V5ZnJhbWVzIHN0YXR1c0JhckZhZGVPdXR7MCV7b3BhY2l0eToxO21heC1oZWlnaHQ6MjBweH03MCV7b3BhY2l0eTowO21heC1oZWlnaHQ6MjBweH10b3tvcGFjaXR5OjA7bWF4LWhlaWdodDowO21hcmdpbjowfX0uY3Jvc3Mtc2Vzc2lvbi1xdWV1ZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7bWFyZ2luOjAgOHB4IDRweH0ucXVldWUtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtwYWRkaW5nOjAgNHB4O2ZvbnQtc2l6ZTouNnJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ucXVldWUtaGVhZGVyLWxhYmVse2ZsZXg6MTtvcGFjaXR5Oi42fS5xdWV1ZS1oZWFkZXItY2xlYXJ7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzoxcHggNHB4O2JvcmRlci1yYWRpdXM6M3B4O29wYWNpdHk6LjU7dHJhbnNpdGlvbjpjb2xvciAuMTVzLGJhY2tncm91bmQgLjE1cyxvcGFjaXR5IC4xNXN9LnF1ZXVlLWhlYWRlci1jbGVhcjpob3Zlcntjb2xvcjp2YXIoLS1lcnJvciwgI2U1NSk7YmFja2dyb3VuZDojZTU1NTU1MWY7b3BhY2l0eToxfS5xdWV1ZS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjRweCA4cHg7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZX0ucXVldWUtaXRlbTpob3ZlcntvcGFjaXR5OjF9LnF1ZXVlLWl0ZW0tZG90e2ZsZXgtc2hyaW5rOjA7d2lkdGg6NHB4O2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjYpO2FuaW1hdGlvbjpzdGF0dXNEb3RQdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5xdWV1ZS1pdGVtLXRleHR7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnF1ZXVlLWl0ZW0tYWdle2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi41NjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztvcGFjaXR5Oi41fS5xdWV1ZS1pdGVtLXNlbmQtbm93e2ZsZXgtc2hyaW5rOjA7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tYWNjZW50LCAjYzU2NTNkKTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOi42cmVtO2xpbmUtaGVpZ2h0OjEuNDt0cmFuc2l0aW9uOmNvbG9yIC4xNXMsYmFja2dyb3VuZCAuMTVzLGJvcmRlci1jb2xvciAuMTVzfS5xdWV1ZS1pdGVtLXNlbmQtbm93OmhvdmVye2NvbG9yOnZhcigtLWFjY2VudCwgI2M1NjUzZCk7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjEyKTtib3JkZXItY29sb3I6cmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC41KX0ucXVldWUtaXRlbS1jYW5jZWx7ZmxleC1zaHJpbms6MDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6LjY4NzVyZW07bGluZS1oZWlnaHQ6MTtvcGFjaXR5Oi40O3RyYW5zaXRpb246Y29sb3IgLjE1cyxiYWNrZ3JvdW5kIC4xNXMsb3BhY2l0eSAuMTVzfS5xdWV1ZS1pdGVtLWNhbmNlbDpob3Zlcntjb2xvcjp2YXIoLS1lcnJvciwgI2U1NSk7YmFja2dyb3VuZDojZTU1NTU1MWY7b3BhY2l0eToxfS5zZXR0aW5ncy1jYXJkLWhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEycHg7bWFyZ2luLWJvdHRvbToxNHB4fS5zZXR0aW5ncy1jYXJkLWljb257ZmxleDowIDAgYXV0bzt3aWR0aDozNnB4O2hlaWdodDozNnB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjYzU2NTNkMmUsI2M1NjUzZDBmKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtc2l6ZToxOHB4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNjNTY1M2QyZX0uc2V0dGluZ3MtY2FyZC1oZWFkLXRleHR7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweH0uc2V0dGluZ3MtY2FyZC10aXRsZXtmb250LXNpemU6LjkzNzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAwNWVtO2xpbmUtaGVpZ2h0OjEuMzttYXJnaW46MH0uc2V0dGluZ3MtY2FyZC1kZXNje2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41O21hcmdpbjowfS5zZXR0aW5ncy1jYXJkLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luLXRvcDo2cHh9LnNldHRpbmdzLWNhcmQtYWN0aW9ucyAuYnRue21pbi13aWR0aDoxMjBweH0uc2V0dGluZ3Mtc3VjY2Vzcy1tZXNzYWdle2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5zZXR0aW5ncy1zZWN0aW9uLWhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEwcHg7bWFyZ2luLWJvdHRvbToxMnB4fS5zZXR0aW5ncy1zZWN0aW9uLWljb257ZmxleDowIDAgYXV0bzt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojYzU2NTNkMWE7Zm9udC1zaXplOjE0cHh9LnNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0e2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnNldHRpbmdzLXNlY3Rpb24taGVhZGluZ3tmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDA1ZW07bGluZS1oZWlnaHQ6MS4zO21hcmdpbjowfS5zZXR0aW5ncy1zZWN0aW9uLXN1Yntmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW46MH0uc2V0dGluZ3MtdG9nZ2xlLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNHB4O3BhZGRpbmc6MTJweCAxNHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTttYXJnaW4tdG9wOjEwcHh9LnNldHRpbmdzLXRvZ2dsZS1yb3crLnNldHRpbmdzLXRvZ2dsZS1yb3csLnNldHRpbmdzLXRvZ2dsZS1yb3crLnNldHRpbmdzLXJhbmdlLXJvdywuc2V0dGluZ3MtcmFuZ2Utcm93Ky5zZXR0aW5ncy10b2dnbGUtcm93e21hcmdpbi10b3A6OHB4fS5zZXR0aW5ncy10b2dnbGUtdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6M3B4fS5zZXR0aW5ncy10b2dnbGUtdGl0bGV7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2N1cnNvcjpwb2ludGVyfS5zZXR0aW5ncy10b2dnbGUtZGVzY3tmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0uc2V0dGluZ3Mtc3dpdGNoe3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnNldHRpbmdzLXRvZ2dsZS1hc2lkZXtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHh9LmVudi1wcmV2aWV3LW1vZGFse21heC13aWR0aDo3MjBweH0uZW52LXByZXZpZXctYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMnB4O3BhZGRpbmc6MThweCAyNHB4IDhweDttaW4taGVpZ2h0OjB9LmVudi1wcmV2aWV3LXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcH0uZW52LXByZXZpZXctbWV0YXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZvbnQtc2l6ZTouNzhyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5lbnYtcHJldmlldy1waWxse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW07Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uZW52LXByZXZpZXctcGlsbC5pcy1pbmhlcml0e2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5lbnYtcHJldmlldy1waWxsLmlzLW1pbmltYWx7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyl9LmVudi1wcmV2aWV3LWNvdW50e2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmVudi1wcmV2aWV3LWNvbnRyb2xze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXB9LmVudi1wcmV2aWV3LXNlYXJjaHt3aWR0aDoyMDBweDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjZweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Zm9udC1zaXplOi43OHJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5lbnYtcHJldmlldy1zZWFyY2g6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItZm9jdXMpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWFjY2VudC1nbG93KX0uZW52LXByZXZpZXctcmV2ZWFse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOi43NHJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZX0uZW52LXByZXZpZXctcmV2ZWFsIGlucHV0e2FjY2VudC1jb2xvcjp2YXIoLS1hY2NlbnQpO2N1cnNvcjpwb2ludGVyfS5lbnYtcHJldmlldy1saXN0e21heC1oZWlnaHQ6bWluKDU2dmgsNDYwcHgpO292ZXJmbG93LXk6YXV0bztib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtwYWRkaW5nOjRweH0uZW52LXByZXZpZXctbGlzdDpmb2N1c3tvdXRsaW5lOm5vbmV9LmVudi1wcmV2aWV3LXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDIyMHB4KSBtaW5tYXgoMCwxZnIpIGF1dG87Z2FwOjEycHg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgdWktbW9ub3NwYWNlLCAiU0YgTW9ubyIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlKTtmb250LXNpemU6Ljc0cmVtO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTJzfS5lbnYtcHJldmlldy1yb3c6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LmVudi1wcmV2aWV3LXJvdysuZW52LXByZXZpZXctcm93e2JvcmRlci10b3A6MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uZW52LXByZXZpZXctbmFtZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjYwMDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LmVudi1wcmV2aWV3LXJvdy5pcy1zZW5zaXRpdmUgLmVudi1wcmV2aWV3LW5hbWV7Y29sb3I6dmFyKC0td2FybmluZyl9LmVudi1wcmV2aWV3LWJhZGdle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTouNjJyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wNGVtO2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1tdXRlZCk7Y29sb3I6dmFyKC0td2FybmluZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS13YXJuaW5nKX0uZW52LXByZXZpZXctYmFkZ2UtcnVudGltZXtiYWNrZ3JvdW5kOnZhcigtLWluZm8tbXV0ZWQpO2NvbG9yOnZhcigtLWluZm8pO2JvcmRlci1jb2xvcjp2YXIoLS1pbmZvKX0uZW52LXByZXZpZXctdmFsdWV7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDttaW4td2lkdGg6MH0uZW52LXByZXZpZXctdmFsdWUuaXMtcnVudGltZXtmb250LXN0eWxlOml0YWxpYztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uZW52LXByZXZpZXctbGVue2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNjhyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5lbnYtcHJldmlldy1sb2FkaW5nLC5lbnYtcHJldmlldy1lbXB0eXtwYWRkaW5nOjI0cHggOHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzhyZW19LmVudi1wcmV2aWV3LWZvb3RlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4O3BhZGRpbmc6MTRweCAyNHB4IDE4cHh9LmVudi1wcmV2aWV3LWhpbnR7Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXg6MTttaW4td2lkdGg6MH1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuZW52LXByZXZpZXctbW9kYWx7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyNHB4KX0uZW52LXByZXZpZXctcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjRweH0uZW52LXByZXZpZXctbGVue2p1c3RpZnktc2VsZjplbmR9LmVudi1wcmV2aWV3LXNlYXJjaCwuZW52LXByZXZpZXctY29udHJvbHN7d2lkdGg6MTAwJX19LnNldHRpbmdzLXJhbmdlLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTJweCAxNHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTttYXJnaW4tdG9wOjhweH0uc2V0dGluZ3MtcmFuZ2UtbGFiZWx7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXg6MCAwIGF1dG87bWFyZ2luLWJvdHRvbTowfS5zZXR0aW5ncy1yYW5nZXtmbGV4OjE7bWluLXdpZHRoOjA7YWNjZW50LWNvbG9yOnZhcigtLWFjY2VudCl9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2V7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2hlaWdodDoyMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowO21hcmdpbjowOy0tcmFuZ2UtZmlsbDogNTAlfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3toZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50KSB2YXIoLS1yYW5nZS1maWxsLCA1MCUpLHJnYmEoMTI1LDkxLDU3LC4yKSB2YXIoLS1yYW5nZS1maWxsLCA1MCUpLHJnYmEoMTI1LDkxLDU3LC4yKSAxMDAlKTtib3JkZXI6bm9uZX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmO2JvcmRlcjpub25lO2JveC1zaGFkb3c6MCAycHggNnB4ICMxNDBlMDgzOCwwIDAgMCAuNXB4ICM3ZDViMzkxYTttYXJnaW4tdG9wOi04cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmhvdmVyOjotd2Via2l0LXNsaWRlci10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4wOCl9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4xNik7Ym94LXNoYWRvdzowIDRweCAxMHB4ICMxNDBlMDg0NywwIDAgMCA4cHggI2M1NjUzZDFmLDAgMCAwIC41cHggIzdkNWIzOTFhfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmZvY3VzLXZpc2libGU6Oi13ZWJraXQtc2xpZGVyLXRodW1ie2JveC1zaGFkb3c6MCAycHggNnB4ICMxNDBlMDgzOCwwIDAgMCA0cHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDAgMCAuNXB4ICM3ZDViMzkxYX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTo6LW1vei1yYW5nZS10cmFja3toZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6IzdkNWIzOTMzO2JvcmRlcjpub25lfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotbW96LXJhbmdlLXByb2dyZXNze2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JvcmRlcjpub25lfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotbW96LXJhbmdlLXRodW1ie3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmO2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAycHggNnB4ICMxNDBlMDgzOCwwIDAgMCAuNXB4ICM3ZDViMzkxYTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTZzIGVhc2V9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6aG92ZXI6Oi1tb3otcmFuZ2UtdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMDgpfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4xNil9LnNldHRpbmdzLXJhbmdlLXZhbHVle2ZsZXg6MCAwIDQ0cHg7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbntkaXNwbGF5OmZsZXg7Z2FwOjhweDthbGlnbi1pdGVtczpzdHJldGNofS5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+LmZpZWxkLWlucHV0LC5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+LmZpZWxkLXNlbGVjdCwuc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uPnNlbGVjdHtmbGV4OjE7bWluLXdpZHRoOjB9LnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbj4uYnRue2ZsZXgtc2hyaW5rOjB9LnNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb257ZmxleC13cmFwOm5vd3JhcH0uc2V0dGluZ3MtdmFsdWUtZmxleHtmbGV4OjE7dGV4dC1hbGlnbjpyaWdodH0uZmlsZS1waWNrZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjZweCAxMnB4IDZweCA2cHg7YmFja2dyb3VuZDojZmZmZmZmYjg7Ym9yZGVyOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjI1KTtib3JkZXItcmFkaXVzOjEycHg7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE4cyxiYWNrZ3JvdW5kIC4xOHN9LmZpbGUtcGlja2VyOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQtc29mdCwgcmdiYSgxOTcsIDEwMSwgNjEsIC40NSkpO2JhY2tncm91bmQ6I2ZmZmZmZmU2fS5maWxlLXBpY2tlci5maWxlLXBpY2tlci1oYXMtZmlsZXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q1OTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2M1NjUzZDE0LCNmZmZmZmZkOSl9LmZpbGUtcGlja2VyLWlucHV0e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfS5maWxlLXBpY2tlci10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYWNjZW50KSxjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDgwJSwjMDAwIDAlKSk7Y29sb3I6I2ZmZjtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2JvcmRlci1yYWRpdXM6OXB4O2N1cnNvcjpwb2ludGVyO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpmaWx0ZXIgLjE1cyx0cmFuc2Zvcm0gLjE1cyxib3gtc2hhZG93IC4xNXM7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpO3VzZXItc2VsZWN0Om5vbmV9LmZpbGUtcGlja2VyLXRyaWdnZXI6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc20pfS5maWxlLXBpY2tlci10cmlnZ2VyOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uZmlsZS1waWNrZXItaW5wdXQ6Zm9jdXMtdmlzaWJsZSsuZmlsZS1waWNrZXItdHJpZ2dlcntvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uZmlsZS1waWNrZXItaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2ZsZXgtc2hyaW5rOjB9LmZpbGUtcGlja2VyLWxhYmVse3doaXRlLXNwYWNlOm5vd3JhcH0uZmlsZS1waWNrZXItbmFtZXtmbGV4OjE7bWluLXdpZHRoOjA7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pfS5maWxlLXBpY2tlci5maWxlLXBpY2tlci1oYXMtZmlsZSAuZmlsZS1waWNrZXItbmFtZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjUwMH0uc2V0dGluZ3MtYXBwLWljb24tYmxvY2t7bWFyZ2luLWJvdHRvbToxOHB4fS5zZXR0aW5ncy1hcHAtaWNvbi1waWNrZXJ7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwfS5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb257ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6I2ZmZmZmZjhjO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzLGJhY2tncm91bmQgLjE4cyx0cmFuc2Zvcm0gLjE4cyxib3gtc2hhZG93IC4xOHM7bWluLXdpZHRoOjg0cHh9LnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3JkZXItY29sb3I6I2M1NjUzZDRkO2JhY2tncm91bmQ6I2ZmZmZmZmM3O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKX0uc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uLnNlbGVjdGVkLC5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb25bYXJpYS1wcmVzc2VkPXRydWVde2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjYzU2NTNkMjQsI2M1NjUzZDBhKTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjYzU2NTNkMzN9LnNldHRpbmdzLWFwcC1pY29uLXByZXZpZXd7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2V0dGluZ3MtYXBwLWljb24tbGFiZWx7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NTAwfS5zZXR0aW5ncy1jb25uZWN0LXVybC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3dvcmQtYnJlYWs6YnJlYWstYWxsO3VzZXItc2VsZWN0OmFsbDstd2Via2l0LXVzZXItc2VsZWN0OmFsbH1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuc2V0dGluZ3MtdG9nZ2xlLXJvdywuc2V0dGluZ3MtcmFuZ2Utcm93e3BhZGRpbmc6MTBweCAxMnB4fS5zZXR0aW5ncy10b2dnbGUtcm93e2ZsZXgtd3JhcDp3cmFwfS5zZXR0aW5ncy1jYXJkLWFjdGlvbnN7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9LnNldHRpbmdzLWNhcmQtYWN0aW9ucyAuYnRue2ZsZXg6MTttaW4td2lkdGg6MH0uZmlsZS1waWNrZXJ7ZmxleC13cmFwOndyYXA7cGFkZGluZzo4cHh9LmZpbGUtcGlja2VyLXRyaWdnZXJ7ZmxleDoxIDEgYXV0bztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5maWxlLXBpY2tlci1uYW1le2ZsZXg6MSAxIDEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDRweH0uc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9ue2ZsZXgtd3JhcDp3cmFwfS5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+LmJ0bntmbGV4OjF9fS50b3BiYXItZ2l0LXNsb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnRvcGJhci1naXQtc2xvdDplbXB0eXtkaXNwbGF5Om5vbmV9LnRvcGJhci1naXQtYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtoZWlnaHQ6MzJweDtwYWRkaW5nOjAgMTBweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2N1cnNvcjpwb2ludGVyO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDoxfS50b3BiYXItZ2l0LWJhZGdlOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZjgwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnRvcGJhci1naXQtYmFkZ2U6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTYpfS50b3BiYXItZ2l0LWljb257ZmxleC1zaHJpbms6MDtvcGFjaXR5Oi44NX0udG9wYmFyLWdpdC1icmFuY2h7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtd2VpZ2h0OjYwMDttYXgtd2lkdGg6MTJlbTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30udG9wYmFyLWdpdC1jb3VudHtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSl9LnRvcGJhci1naXQtY2xlYW57Y29sb3I6IzNjYTA1YWQ5O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6Ljc4cmVtfS5xdWljay1jb21taXQtbW9kYWx7bWF4LXdpZHRoOjU0MHB4fS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTJweH0ucWMtZW1wdHl7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzo2cHggMDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXN0eWxlOml0YWxpY30ucWMtZmlsZS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O2xpbmUtaGVpZ2h0OjEuNjtwYWRkaW5nOjFweCAycHg7Ym9yZGVyLXJhZGl1czo1cHh9LnFjLWZpbGUtcm93OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTBmfS5xYy1maWxlLWJhZGdle2ZsZXgtc2hyaW5rOjA7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZTouNjZyZW07Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOjA7bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpfS5xYy1iYWRnZS1hZGR7Y29sb3I6IzIyODA0MmZhO2JhY2tncm91bmQ6IzNjYTA1YTI5fS5xYy1iYWRnZS1tb2R7Y29sb3I6I2FhNmUwZWZhO2JhY2tncm91bmQ6I2RjOTYxZTI5fS5xYy1iYWRnZS1kZWx7Y29sb3I6I2JlMzgzOGZhO2JhY2tncm91bmQ6I2M4NDY0NjI2fS5xYy1iYWRnZS1yZW57Y29sb3I6IzRlNjRiY2ZhO2JhY2tncm91bmQ6IzZlODJjODI5fS5xYy1iYWRnZS11bnRyYWNrZWR7Y29sb3I6IzIyODA0MmYyO2JhY2tncm91bmQ6IzNjYTA1YTFmfS5xYy1iYWRnZS1pZ25vcmVkLC5xYy1iYWRnZS1vdGhlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiM3ODc4NzgxZn0ucWMtZmlsZS1wYXRoe292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowfS5xYy1maWxlLWRpcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ucWMtZmlsZS1uYW1le2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NTAwfS5xYy1zdWJtb2R1bGUtYmFkZ2V7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjFweCA2cHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojOGM2NGM4Mjk7Y29sb3I6IzZlNDZiNGYyO2ZvbnQtc2l6ZTouNjhyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMmVtO3doaXRlLXNwYWNlOm5vd3JhcH0ucWMtbWVzc2FnZS1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6OHB4fS5xYy1haS1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtjb2xvcjp2YXIoLS1hY2NlbnQpfS5xYy1haS1idG4gc3Zne2NvbG9yOnZhcigtLWFjY2VudCk7ZmxleC1zaHJpbms6MH0ucWMtYWktYnRuOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5xYy1haS1idG46ZGlzYWJsZWQgc3Zne2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5xYy1tZXNzYWdlLWlucHV0e3Jlc2l6ZTp2ZXJ0aWNhbDttaW4taGVpZ2h0OjY4cHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouODRyZW07bGluZS1oZWlnaHQ6MS41NX0ucWMtdGFnLWZpZWxkLWlucHV0e2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouODJyZW19LnFjLXRhZy1maWVsZC1pbnB1dDpkaXNhYmxlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiM3ZDViMzkwYTtib3JkZXItY29sb3I6IzdkNWIzOTE0O2N1cnNvcjpkZWZhdWx0O2JveC1zaGFkb3c6bm9uZX0ucXVpY2stY29tbWl0LW1vZGFsIC53b3JrdHJlZS1tZXJnZS1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjhweDttYXJnaW4tdG9wOjRweH0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjE0cHh9LnFjLXNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo3MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wN2VtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ucXVpY2stY29tbWl0LW1vZGFse21heC13aWR0aDo2MjBweH0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1ib2R5e2dhcDowfS5xYy1yZWxlYXNlLXBhbmVsLC5xYy1yZXN1bHQtcGFuZWx7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTRweH0ucWMtcGFpcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjcycHggbWlubWF4KDAsMWZyKTtnYXA6MTJweDthbGlnbi1pdGVtczpzdGFydH0ucWMtcGFpci1sYWJlbHtwYWRkaW5nLXRvcDo5cHg7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjA2ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5xYy1wYWlyLWZsb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwuOWZyKSAyNHB4IG1pbm1heCgwLDEuMWZyKTtnYXA6OHB4O2FsaWduLWl0ZW1zOmNlbnRlcjttaW4td2lkdGg6MH0ucWMtcGFpci12YWx1ZXttaW4td2lkdGg6MDttaW4taGVpZ2h0OjM4cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpO2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2ZmZmZmZjg1O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtvdmVyZmxvdzpoaWRkZW59LnFjLXBhaXItdmFsdWUtLXRve2JhY2tncm91bmQ6I2ZmZmZmZmQ2O2JvcmRlci1jb2xvcjojYzU2NTNkMzg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ucWMtcGFpci12YWx1ZSBjb2Rle2ZsZXgtc2hyaW5rOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMTc7Ym9yZGVyLXJhZGl1czo1cHg7cGFkZGluZzoycHggNnB4fS5xYy1wYWlyLXZhbHVlIHNwYW57bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouODJyZW19LnFjLXBhaXItLWNvbW1pdCAucWMtcGFpci1mbG93e2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnFjLXBhaXItLWNvbW1pdCAucWMtcGFpci12YWx1ZXttaW4taGVpZ2h0Ojc2cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ucWMtcGFpci0tY29tbWl0IC5xYy1wYWlyLXZhbHVlLS10b3twYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ucWMtcGFpci0tY29tbWl0IC5xYy1tZXNzYWdlLWlucHV0e21pbi1oZWlnaHQ6NzZweDt3aWR0aDoxMDAlO3Jlc2l6ZTp2ZXJ0aWNhbH0ucWMtcGFpci0tdGFnIC5xYy1wYWlyLXZhbHVlLS10b3twYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ucWMtcGFpci0tdGFnIC5xYy10YWctZmllbGQtaW5wdXR7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjM4cHh9LnFjLXBhaXItYXJyb3d7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo4MDA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpfS5xYy1tdXRlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30ucWMtbW9kYWwtYWN0aW9ucywucWMtcmVzdWx0LWFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6OHB4fS5xYy1yZXN1bHQtcGFuZWx7cGFkZGluZy10b3A6MnB4fS5xYy1yZXN1bHQtcHVzaGVke2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6MzBweDtwYWRkaW5nOjAgMTBweDtib3JkZXItcmFkaXVzOjk5OXB4O2NvbG9yOiMyODgyNDZmMjtiYWNrZ3JvdW5kOiMzY2EwNWExZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNjAsMTYwLDkwLC4yNCk7Zm9udC1zaXplOi43OHJlbTtmb250LXdlaWdodDo3MDB9LnFjLWRvY2std3JhcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7cGFkZGluZy10b3A6MnB4fS5xYy1kb2NrLXdyYXBbZGF0YS1kaXNhYmxlZD0iMSJde29wYWNpdHk6LjU1O3BvaW50ZXItZXZlbnRzOm5vbmV9LnFjLWRvY2stYnVzeXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2FsaWduLXNlbGY6ZmxleC1zdGFydDtwYWRkaW5nOjEwcHggMTRweDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojYzU2NTNkMWE7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjIpO2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC1zaXplOi44MnJlbTtmb250LXdlaWdodDo3MDB9LnFjLWRvY2stYnVzeS1kb3R7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2FuaW1hdGlvbjpxYy1kb2NrLWJ1c3ktcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHFjLWRvY2stYnVzeS1wdWxzZXswJSx0b3tvcGFjaXR5Oi40O3RyYW5zZm9ybTpzY2FsZSguODUpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEuMTUpfX0ucWMtZG9jay1zdGFnZXstLXFjLXRvbmU6IHZhcigtLWFjY2VudCk7LS1xYy10b25lLXNvZnQ6IHJnYmEoMTk3LCAxMDEsIDYxLCAuMik7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIDk2cHg7Z2FwOjEwcHg7aGVpZ2h0OjE2OHB4O3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6MTZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xNik7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDMwJSAzMCUsI2ZmZmZmZjhjLCNmZmY1ZWIyOSksbGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmNzUsI2ZmZjVlYjM4KTtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmZiMywwIDFweCAzcHggIzU5M2EyMDBkO3VzZXItc2VsZWN0Om5vbmV9LnFjLWRvY2stc3RhZ2VbZGF0YS1hY3Rpb249Y29tbWl0LXRhZ117LS1xYy10b25lOiAjNGE2ZmE1Oy0tcWMtdG9uZS1zb2Z0OiByZ2JhKDc0LCAxMTEsIDE2NSwgLjIyKX0ucWMtZG9jay1zdGFnZVtkYXRhLWFjdGlvbj1jb21taXQtcHVzaF17LS1xYy10b25lOiAjNGY3YTU4Oy0tcWMtdG9uZS1zb2Z0OiByZ2JhKDc5LCAxMjIsIDg4LCAuMjIpfS5xYy1kb2NrLXN0YWdlW2RhdGEtYWN0aW9uPWNvbW1pdC10YWctcHVzaF17LS1xYy10b25lOiAjN2M1YWE4Oy0tcWMtdG9uZS1zb2Z0OiByZ2JhKDEyNCwgOTAsIDE2OCwgLjI0KX0ucWMtZG9jay1maWVsZHtwb3NpdGlvbjpyZWxhdGl2ZTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMTI1LDkxLDU3LC4wMzUpIDAgOHB4LHRyYW5zcGFyZW50IDhweCAxNnB4KTt0b3VjaC1hY3Rpb246bm9uZTtvdmVyZmxvdzpoaWRkZW59LnFjLWRvY2stY2x1c3Rlcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tcWMtdG9uZSkgMTAlLHRyYW5zcGFyZW50KTtib3JkZXI6MS41cHggZGFzaGVkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLXFjLXRvbmUpIDM4JSx0cmFuc3BhcmVudCk7Ym94LXNoYWRvdzowIDRweCAxNHB4IHZhcigtLXFjLXRvbmUtc29mdCk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjA7b3BhY2l0eTowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yMnMgY3ViaWMtYmV6aWVyKC4yMiwxLC4zNiwxKSx3aWR0aCAuMjJzIGN1YmljLWJlemllciguMjIsMSwuMzYsMSksaGVpZ2h0IC4yMnMgY3ViaWMtYmV6aWVyKC4yMiwxLC4zNiwxKSxvcGFjaXR5IC4xOHMgZWFzZSxiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlci1jb2xvciAuMnMgZWFzZX0ucWMtZG9jay1jbHVzdGVyLmlzLWFjdGl2ZXtvcGFjaXR5OjF9LnFjLWNoaXB7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo3cHg7aGVpZ2h0OjM4cHg7cGFkZGluZzowIDE0cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMjIpO2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojZmZmZmZmZWI7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44MnJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjAxZW07d2hpdGUtc3BhY2U6bm93cmFwO2N1cnNvcjpncmFiO3RvdWNoLWFjdGlvbjpub25lO2JveC1zaGFkb3c6MCAycHggNnB4ICM1OTNhMjAxNDt6LWluZGV4OjI7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZX0ucWMtY2hpcC5xYy1jaGlwLS1hbmlte3RyYW5zaXRpb246dHJhbnNmb3JtIC4yOHMgY3ViaWMtYmV6aWVyKC4yMiwxLC4zNiwxKSxib3gtc2hhZG93IC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZX0ucWMtY2hpcC5pcy1ncmFiYmluZ3tjdXJzb3I6Z3JhYmJpbmc7ei1pbmRleDo1O2JveC1zaGFkb3c6MCAxMnB4IDI2cHggIzU5M2EyMDM4fS5xYy1jaGlwOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0ucWMtY2hpcDpub3QoOmRpc2FibGVkKTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tcWMtdG9uZSl9LnFjLWNoaXAtZG90e3dpZHRoOjlweDtoZWlnaHQ6OXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzdkNWIzOTRkO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4ICNmZmY5O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgZWFzZX0ucWMtY2hpcC0tY29tbWl0IC5xYy1jaGlwLWRvdHtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LnFjLWNoaXAtLXRhZyAucWMtY2hpcC1kb3R7YmFja2dyb3VuZDojNGE2ZmE1fS5xYy1jaGlwLS1wdXNoIC5xYy1jaGlwLWRvdHtiYWNrZ3JvdW5kOiM0ZjdhNTh9LnFjLWNoaXAtLXN1YiAucWMtY2hpcC1kb3R7YmFja2dyb3VuZDojM2E4YThmfS5xYy1jaGlwLS1jb21taXR7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgMzAlLHJnYmEoMTI1LDkxLDU3LC4yKSl9LnFjLWNoaXAtLXRhZ3tib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzRhNmZhNSAzMCUscmdiYSgxMjUsOTEsNTcsLjIpKX0ucWMtY2hpcC0tcHVzaHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzRmN2E1OCAzMCUscmdiYSgxMjUsOTEsNTcsLjIpKX0ucWMtY2hpcC0tc3Vie2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjM2E4YThmIDMwJSxyZ2JhKDEyNSw5MSw1NywuMikpfS5xYy1jaGlwLmlzLWdyYWJiaW5nLC5xYy1jaGlwLmlzLWF0dGFjaGVke2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym94LXNoYWRvdzowIDEycHggMjZweCB2YXIoLS1xYy10b25lLXNvZnQpO3otaW5kZXg6NX0ucWMtY2hpcC5pcy1ncmFiYmluZyAucWMtY2hpcC1kb3QsLnFjLWNoaXAuaXMtYXR0YWNoZWQgLnFjLWNoaXAtZG90e3RyYW5zZm9ybTpzY2FsZSgxLjEpfS5xYy1jaGlwLS1jb21taXQuaXMtZ3JhYmJpbmcsLnFjLWNoaXAtLWNvbW1pdC5pcy1hdHRhY2hlZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZixjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDE2JSwjZmZmKSk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgNDYlLHRyYW5zcGFyZW50KX0ucWMtY2hpcC0tdGFnLmlzLWdyYWJiaW5nLC5xYy1jaGlwLS10YWcuaXMtYXR0YWNoZWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmYsY29sb3ItbWl4KGluIHNyZ2IsIzRhNmZhNSAxNiUsI2ZmZikpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjNGE2ZmE1IDQ2JSx0cmFuc3BhcmVudCl9LnFjLWNoaXAtLXB1c2guaXMtZ3JhYmJpbmcsLnFjLWNoaXAtLXB1c2guaXMtYXR0YWNoZWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmYsY29sb3ItbWl4KGluIHNyZ2IsIzRmN2E1OCAxNiUsI2ZmZikpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjNGY3YTU4IDQ2JSx0cmFuc3BhcmVudCl9LnFjLWNoaXAtLXN1Yi5pcy1ncmFiYmluZywucWMtY2hpcC0tc3ViLmlzLWF0dGFjaGVke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmLGNvbG9yLW1peChpbiBzcmdiLCMzYThhOGYgMTYlLCNmZmYpKTtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzNhOGE4ZiA0NiUsdHJhbnNwYXJlbnQpfS5xYy1kb2NrLWxhdW5jaHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo0cHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JvcmRlcjoxLjVweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjMyKTtiYWNrZ3JvdW5kOiNmZmY2O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO3RvdWNoLWFjdGlvbjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMgZWFzZSxib3JkZXItY29sb3IgLjJzIGVhc2UsY29sb3IgLjJzIGVhc2UsdHJhbnNmb3JtIC4ycyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2V9LnFjLWRvY2stbGF1bmNoOm5vdCg6ZGlzYWJsZWQpOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1xYy10b25lKTtjb2xvcjp2YXIoLS1xYy10b25lKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXFjLXRvbmUpIDglLHJnYmEoMjU1LDI1NSwyNTUsLjUpKX0ucWMtZG9jay1sYXVuY2g6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5xYy1kb2NrLWxhdW5jaC1hcnJvd3tkaXNwbGF5OmlubGluZS1mbGV4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlfS5xYy1kb2NrLWxhdW5jaC1sYWJlbHtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzouMDRlbX0ucWMtZG9jay1zdGFnZVtkYXRhLWhvdD0iMSJdIC5xYy1kb2NrLWxhdW5jaHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXFjLXRvbmUpO2JhY2tncm91bmQ6dmFyKC0tcWMtdG9uZSk7Y29sb3I6I2ZmZjt0cmFuc2Zvcm06c2NhbGUoMS4wNCk7Ym94LXNoYWRvdzowIDhweCAyMnB4IHZhcigtLXFjLXRvbmUtc29mdCksMCAwIDAgNXB4IGNvbG9yLW1peChpbiBzcmdiLHZhcigtLXFjLXRvbmUpIDE4JSx0cmFuc3BhcmVudCl9LnFjLWRvY2stc3RhZ2VbZGF0YS1ob3Q9IjEiXSAucWMtZG9jay1sYXVuY2gtYXJyb3d7dHJhbnNmb3JtOnRyYW5zbGF0ZSgzcHgpfS5xYy1kb2NrLWhpbnR7bWluLWhlaWdodDoxZW07Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtYWxpZ246Y2VudGVyO2xldHRlci1zcGFjaW5nOi4wMmVtO29wYWNpdHk6Ljh9QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsucWMtY2hpcCwucWMtY2hpcC0tYW5pbSwucWMtZG9jay1jbHVzdGVyLC5xYy1kb2NrLWxhdW5jaCwucWMtZG9jay1idXN5LWRvdHthbmltYXRpb246bm9uZSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudH19QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LnRvcGJhci1naXQtYnJhbmNoe21heC13aWR0aDo4ZW19LnRvcGJhci1naXQtYmFkZ2V7cGFkZGluZzowIDhweDtmb250LXNpemU6LjdyZW19LnF1aWNrLWNvbW1pdC1tb2RhbHt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6Y2FsYygxMDBkdmggLSBtYXgoMTZweCx2YXIoLS13YW5kLXNhZmUtdG9wKSkgLSBtYXgoMTJweCx2YXIoLS13YW5kLXNhZmUtYm90dG9tKSkpfS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLWhlYWRlcntwYWRkaW5nOjE0cHggMTZweCAxMnB4fS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLXRpdGxle2ZvbnQtc2l6ZToxLjA1cmVtfS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZTouNzhyZW07bGluZS1oZWlnaHQ6MS4zNX0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmc6MTRweCAxNnB4IGNhbGMoMTZweCArIHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKX0ucWMtcmVsZWFzZS1wYW5lbCwucWMtcmVzdWx0LXBhbmVse2dhcDoxMnB4fS5xYy1wYWlye2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjVweH0ucWMtcGFpci1sYWJlbHtwYWRkaW5nLXRvcDowO2ZvbnQtc2l6ZTouNjhyZW19LnFjLXBhaXItZmxvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDo3cHg7cG9zaXRpb246cmVsYXRpdmV9LnFjLXBhaXItYXJyb3d7d2lkdGg6MjhweDtoZWlnaHQ6MjBweDtqdXN0aWZ5LXNlbGY6Y2VudGVyO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjF9LnFjLXBhaXItdmFsdWV7bWluLWhlaWdodDozNnB4O3BhZGRpbmc6OHB4IDEwcHh9LnFjLXBhaXItdmFsdWUgY29kZXtmb250LXNpemU6Ljc2cmVtfS5xYy1wYWlyLXZhbHVlIHNwYW57Zm9udC1zaXplOi44cmVtfS5xYy1wYWlyLS1jb21taXQgLnFjLXBhaXItdmFsdWV7bWluLWhlaWdodDphdXRvfS5xYy1wYWlyLS1jb21taXQgLnFjLW1lc3NhZ2UtaW5wdXR7bWluLWhlaWdodDo5MnB4O2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuNDV9LnFjLXBhaXItLXRhZyAucWMtdGFnLWZpZWxkLWlucHV0e21pbi1oZWlnaHQ6NDRweDtmb250LXNpemU6MTZweH0ucWMtZG9jay1zdGFnZXtoZWlnaHQ6MjM2cHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtncmlkLXRlbXBsYXRlLXJvd3M6bWlubWF4KDAsMWZyKSA1OHB4O2dhcDo4cHg7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czoxNHB4fS5xYy1kb2NrLWZpZWxke21pbi1oZWlnaHQ6MTYwcHh9LnFjLWNoaXB7aGVpZ2h0OjM2cHg7cGFkZGluZzowIDEycHg7Zm9udC1zaXplOi44cmVtfS5xYy1kb2NrLWxhdW5jaHttaW4taGVpZ2h0OjU4cHg7ZmxleC1kaXJlY3Rpb246cm93O2dhcDo4cHg7Ym9yZGVyLXJhZGl1czoxM3B4fS5xYy1kb2NrLWxhdW5jaC1sYWJlbHtmb250LXNpemU6Ljc4cmVtfS5xYy1kb2NrLXN0YWdlW2RhdGEtaG90PSIxIl0gLnFjLWRvY2stbGF1bmNoLWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVZKDJweCl9fS53YW5kLWRpYWxvZy1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6OTAwMDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy10b3A6bWF4KDI0cHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpO3BhZGRpbmctYm90dG9tOm1heCgyNHB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKTtwYWRkaW5nLWxlZnQ6bWF4KDI0cHgsdmFyKC0td2FuZC1zYWZlLWxlZnQpKTtwYWRkaW5nLXJpZ2h0Om1heCgyNHB4LHZhcigtLXdhbmQtc2FmZS1yaWdodCkpO2JhY2tncm91bmQ6IzE0MGUwODU3O2JhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7YW5pbWF0aW9uOndhbmREaWFsb2dCYWNrZHJvcEluIC4yMnMgY3ViaWMtYmV6aWVyKC4xNiwxLC4zLDEpIGJvdGh9LndhbmQtZGlhbG9nLWJhY2tkcm9wLmNsb3Npbmd7YW5pbWF0aW9uOndhbmREaWFsb2dCYWNrZHJvcE91dCAuMTZzIGN1YmljLWJlemllciguNCwwLC4yLDEpIGJvdGg7cG9pbnRlci1ldmVudHM6bm9uZX1Aa2V5ZnJhbWVzIHdhbmREaWFsb2dCYWNrZHJvcEluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgd2FuZERpYWxvZ0JhY2tkcm9wT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fS53YW5kLWRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO21heC13aWR0aDo0MjBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSx2YXIoLS1hY2NlbnQtbXV0ZWQpIDAlLHRyYW5zcGFyZW50IDU1JSksbGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1iZy1lbGV2YXRlZCkgMCUsdmFyKC0tYmctc2Vjb25kYXJ5KSAxMDAlKTtib3JkZXI6LjVweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjIycHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tkcm9wLWZpbHRlcjpibHVyKDQwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNDBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDI0cHggNjRweCAtMTJweCAjNTkzYTIwNDcsMCA2cHggMjBweCAtNnB4ICM1OTNhMjAyOSwwIDAgMCAuNXB4ICM3ZDViMzkxNCxpbnNldCAwIDFweCAjZmZmZmZmYjM7YW5pbWF0aW9uOndhbmREaWFsb2dJbiAuMjhzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKSBib3RofS53YW5kLWRpYWxvZy1iYWNrZHJvcC5jbG9zaW5nIC53YW5kLWRpYWxvZ3thbmltYXRpb246d2FuZERpYWxvZ091dCAuMTZzIGN1YmljLWJlemllciguNCwwLC4yLDEpIGJvdGh9QGtleWZyYW1lcyB3YW5kRGlhbG9nSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTIpIHRyYW5zbGF0ZVkoMTBweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIHdhbmREaWFsb2dPdXR7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45NikgdHJhbnNsYXRlWSg0cHgpfX0ud2FuZC1kaWFsb2ctaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxNHB4O3BhZGRpbmc6MjJweCAyNHB4IDEycHh9LndhbmQtZGlhbG9nLWljb257ZmxleC1zaHJpbms6MDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmODB9LndhbmQtZGlhbG9nLWljb24uaW5mb3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50LXNvZnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Y29sb3I6I2ZmZn0ud2FuZC1kaWFsb2ctaWNvbi53YXJuaW5ne2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZjBjODkxIDAlLHZhcigtLXdhcm5pbmcpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLWljb24uZGFuZ2Vye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZDk4MTc4IDAlLHZhcigtLWRhbmdlcikgMTAwJSk7Y29sb3I6I2ZmZn0ud2FuZC1kaWFsb2ctaWNvbi5zdWNjZXNze2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjOGNhZjk0IDAlLHZhcigtLXN1Y2Nlc3MpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLWljb24ucXVlc3Rpb257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudC1zb2Z0KSAwJSx2YXIoLS1hY2NlbnQpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLXRleHR3cmFwe2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4O3BhZGRpbmctdG9wOjRweH0ud2FuZC1kaWFsb2ctdGl0bGV7Zm9udC1zaXplOjEuMDYyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4zO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ud2FuZC1kaWFsb2ctbWVzc2FnZXtmb250LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtsaW5lLWhlaWdodDoxLjU1O3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ud2FuZC1kaWFsb2ctYm9keXtwYWRkaW5nOjRweCAyNHB4IDE0cHh9LndhbmQtZGlhbG9nLWlucHV0e3dpZHRoOjEwMCU7YmFja2dyb3VuZDp2YXIoLS1iZy1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjExcHggMTRweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouOXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMS41cHggIzdkNWIzOTBhO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZSxiYWNrZ3JvdW5kIC4xNXMgZWFzZTtib3gtc2l6aW5nOmJvcmRlci1ib3h9LndhbmQtZGlhbG9nLWlucHV0OmZvY3Vze291dGxpbmU6bm9uZTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDEuNXB4ICM3ZDViMzkwYSwwIDAgMCAzcHggdmFyKC0tYWNjZW50LWdsb3cpfS53YW5kLWRpYWxvZy1mb290ZXJ7ZGlzcGxheTpmbGV4O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MTRweCAyMHB4IDIwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7bWFyZ2luLXRvcDo2cHh9LndhbmQtZGlhbG9nLWZvb3RlciAuYnRue21pbi13aWR0aDo4NHB4fS53YW5kLWRpYWxvZyAuYnRuLWRhbmdlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tZGFuZ2VyLWhvdmVyKSAwJSx2YXIoLS1kYW5nZXIpIDEwMCUpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6MCAxcHggMnB4IHZhcigtLWRhbmdlci1tdXRlZCksMCA0cHggMTBweCAtMnB4IHZhcigtLWRhbmdlci1tdXRlZCksaW5zZXQgMCAxcHggI2ZmZmZmZjM4LGluc2V0IDAgLTFweCAjNjAxZTE4MmV9LndhbmQtZGlhbG9nIC5idG4tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjYzk2MDU1LCNiMjRmNDUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWRhbmdlci1tdXRlZCksMCA4cHggMjBweCAtNHB4IHZhcigtLWRhbmdlci1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNDcsaW5zZXQgMCAtMXB4ICM2MDFlMTgyZX0ud2FuZC1kaWFsb2cgLmJ0bi1kYW5nZXI6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1kYW5nZXIpIDAlLCM5MzM5MmYgMTAwJSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LndhbmQtZGlhbG9nLWJhY2tkcm9wLC53YW5kLWRpYWxvZy1iYWNrZHJvcC5jbG9zaW5nLC53YW5kLWRpYWxvZywud2FuZC1kaWFsb2ctYmFja2Ryb3AuY2xvc2luZyAud2FuZC1kaWFsb2d7YW5pbWF0aW9uOm5vbmUhaW1wb3J0YW50fX1Ac3VwcG9ydHMgbm90ICgoYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSl7LndhbmQtZGlhbG9nLWJhY2tkcm9we2JhY2tncm91bmQ6IzE0MGUwODk5fS53YW5kLWRpYWxvZ3tiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLXN1YnRsZSl9fUBtZWRpYShtYXgtd2lkdGg6NDgwcHgpey53YW5kLWRpYWxvZy1iYWNrZHJvcHtwYWRkaW5nOjE2cHg7YWxpZ24taXRlbXM6Y2VudGVyfS53YW5kLWRpYWxvZ3ttYXgtd2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjIwcHh9LndhbmQtZGlhbG9nLWZvb3RlcntmbGV4LXdyYXA6d3JhcH0ud2FuZC1kaWFsb2ctZm9vdGVyIC5idG57ZmxleDoxIDEgYXV0b319LmJ0bi13aXRoLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH0uYnRuLXdpdGgtaWNvbj5zdmd7ZmxleC1zaHJpbms6MH0uY29tcG9zZXItcGlsbC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOi0ycHh9LmNvbXBvc2VyLXBpbGwtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGV0dGVyLXNwYWNpbmc6LjAyZW19LnNldHRpbmdzLXNlY3Rpb24taWNvbntmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5zZXR0aW5ncy1zZWN0aW9uLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmJsYW5rLWNoYXQtdG9vbC1idG4gLnRvb2wtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Zm9udC1zaXplOjEuMTI1cmVtfS5ibGFuay1jaGF0LXRvb2wtYnRuIC50b29sLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmJsYW5rLWNoYXQtdG9vbC1idG4gLnRvb2wtaWNvbi10ZXh0e3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxfS5ibGFuay1jaGF0LWN3ZC1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0uYmxhbmstY2hhdC1jd2QtaWNvbj5zdmd7ZGlzcGxheTpibG9ja30uYmxhbmstY2hhdC1jd2QtYXJyb3d7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmJsYW5rLWNoYXQtY3dkLWFycm93PnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5mb2xkZXItcGlja2VyLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItcXVpY2stYnRuLmJ0bi13aXRoLWljb257Z2FwOjVweH0uYXBwcm92YWwtc3RhdHMtcm93LWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmFwcHJvdmFsLXN0YXRzLXJvdy1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5hdHRhY2htZW50LXBpbGwgLmF0dC1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLWNvbXBhY3QtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmZvbGRlci1waWNrZXItY29tcGFjdC1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLXRvZ2dsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmZvbGRlci1waWNrZXItdG9nZ2xlPnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLXRvZ2dsZS5vcGVue3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0ud29ya2luZy1kaXItaW5kaWNhdG9yLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS53b3JraW5nLWRpci1pbmRpY2F0b3ItaWNvbj5zdmd7ZGlzcGxheTpibG9ja30ud2FuZC1qb3lzdGljay1yb290e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6NDA7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlfS53YW5kLWpveXN0aWNrLXJvb3QudmlzaWJsZXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS53YW5kLWpveXN0aWNrLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lO3Zpc2liaWxpdHk6aGlkZGVufS53YW5kLWpveXN0aWNrLWJhY2tkcm9wLmFjdGl2ZXt2aXNpYmlsaXR5OnZpc2libGU7cG9pbnRlci1ldmVudHM6YXV0b30ud2FuZC1qb3lzdGljay1iYWxse3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjE4cHg7Ym90dG9tOjk2cHg7d2lkdGg6NTRweDtoZWlnaHQ6NTRweDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2Y1ZWJlMWYwO2JhY2tncm91bmQ6IzIzMWMxOGRiO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDUsMjM1LDIyNSwuMTgpO2JveC1zaGFkb3c6MCA4cHggMjJweCAjMDAwMDAwNGQsaW5zZXQgMCAxcHggI2ZmZmZmZjE0O2JhY2tkcm9wLWZpbHRlcjpibHVyKDEwcHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTBweCk7cG9pbnRlci1ldmVudHM6YXV0bzt0b3VjaC1hY3Rpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7ei1pbmRleDo0MztjdXJzb3I6Z3JhYjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2Utc3ByaW5nKSxiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlci1jb2xvciAuMnMgZWFzZSxib3gtc2hhZG93IC4ycyBlYXNlfS53YW5kLWpveXN0aWNrLWxvZ297cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS53YW5kLWpveXN0aWNrLWJhbGw6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym9yZGVyLWNvbG9yOiNmNWViZTE0ZDtiYWNrZ3JvdW5kOiMyYjIyMWRlNjtib3gtc2hhZG93OjAgMTBweCAyNnB4ICMwMDAwMDA1NyxpbnNldCAwIDFweCAjZmZmZmZmMWF9LndhbmQtam95c3RpY2stYmFsbDphY3RpdmUsLndhbmQtam95c3RpY2stYmFsbC5wYW5lbC1vcGVue2JhY2tncm91bmQ6IzFkMTcxNGYwfS53YW5kLWpveXN0aWNrLWJhbGwuZHJhZ2dpbmd7dHJhbnNmb3JtOnNjYWxlKDEuMTIpO2N1cnNvcjpncmFiYmluZztib3gtc2hhZG93OjAgMTBweCAyOHB4ICMwMDAwMDA1Y30ud2FuZC1qb3lzdGljay1wYW5lbHtwb3NpdGlvbjpmaXhlZDtyaWdodDoxOHB4O2JvdHRvbToxNjBweDt6LWluZGV4OjQ0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6IzFkMTcxNGY1O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDUsMjM1LDIyNSwuMTIpO2JveC1zaGFkb3c6MCAxNHB4IDM0cHggIzAwMDAwMDU3LGluc2V0IDAgMXB4ICNmZmZmZmYwZjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCkgc2NhbGUoLjk2KTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSByaWdodDt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjIycyB2YXIoLS1lYXNlLXNwcmluZyksdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjE4czt3aWR0aDptaW4oMjI0cHgsY2FsYygxMDB2dyAtIDM2cHgpKTttYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDM2cHgpfS53YW5kLWpveXN0aWNrLXBhbmVsLmFjdGl2ZXtwb2ludGVyLWV2ZW50czphdXRvO29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7dHJhbnNpdGlvbi1kZWxheTowc30ud2pwLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMHB4O21pbi1oZWlnaHQ6MjRweH0ud2pwLXRpdGxle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOi43NnJlbTtsZXR0ZXItc3BhY2luZzowO2NvbG9yOiNmNWViZTFjNztmb250LXdlaWdodDo2MDB9LndqcC10aXRsZS1pY29ue2NvbG9yOiNmNWViZTFiOH0ud2pwLWNsb3Nle3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI0NSwyMzUsMjI1LC4xMik7YmFja2dyb3VuZDojZmZmZmZmMGQ7Y29sb3I6I2Y1ZWJlMWI4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTRzIGVhc2UsY29sb3IgLjE0cyBlYXNlLHRyYW5zZm9ybSAuMTRzIGVhc2V9LndqcC1jbG9zZTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmYxYTtjb2xvcjojZjVlYmUxZjJ9LndqcC1jbG9zZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LndqcC1kcGFke2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHh9LndqcC1kcGFkLXJvd3tkaXNwbGF5OmZsZXg7Z2FwOjVweH0ud2pwLWdyaWR7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ud2pwLWZua2V5c3ttYXgtd2lkdGg6MjAwcHh9LndqcC1rZXl7bWluLXdpZHRoOjQ0cHg7aGVpZ2h0OjM4cHg7cGFkZGluZzowIDhweDtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6Ljc2cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojZjVlYmUxZDY7YmFja2dyb3VuZDojZmZmZmZmMGI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI0NSwyMzUsMjI1LC4xMSk7Y3Vyc29yOnBvaW50ZXI7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgZWFzZSxiYWNrZ3JvdW5kIC4xNXMgZWFzZSxib3JkZXItY29sb3IgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZX0ud2pwLWtleTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmYxNDtib3JkZXItY29sb3I6I2Y1ZWJlMTMzO2NvbG9yOiNmNWViZTFmMn0ud2pwLWtleTphY3RpdmV7YmFja2dyb3VuZDojZmZmZmZmMWY7dHJhbnNmb3JtOnNjYWxlKC45Nil9LndqcC1rZXkud2pwLW1vZC5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LnNlc3Npb24taXRlbS1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6OHB4O21pbi1oZWlnaHQ6NDBweDt3aWR0aDoxMDAlfS5zZXNzaW9uLWl0ZW0tcm93Omhhcyg+LnNlc3Npb24tbWFuYWdlLWNoZWNrKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjRweCBtaW5tYXgoMCwxZnIpIGF1dG99LnNlc3Npb24taXRlbS1yb3c+LnNlc3Npb24tbWFuYWdlLWNoZWNre2dyaWQtY29sdW1uOjE7anVzdGlmeS1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDowfS5zZXNzaW9uLWl0ZW0tcm93Pi5zZXNzaW9uLW1haW57Z3JpZC1jb2x1bW46MTttaW4td2lkdGg6MDtwYWRkaW5nLXJpZ2h0OjB9LnNlc3Npb24taXRlbS1yb3c6aGFzKD4uc2Vzc2lvbi1tYW5hZ2UtY2hlY2spPi5zZXNzaW9uLW1haW57Z3JpZC1jb2x1bW46Mn0uc2Vzc2lvbi1pdGVtLXJvdz4uc2Vzc2lvbi1hY3Rpb25ze2dyaWQtY29sdW1uOjI7cG9zaXRpb246c3RhdGljO3RyYW5zZm9ybTpub25lO2p1c3RpZnktc2VsZjplbmQ7YWxpZ24tc2VsZjpjZW50ZXI7bWluLXdpZHRoOm1heC1jb250ZW50O21pbi1oZWlnaHQ6MzJweH0uc2Vzc2lvbi1pdGVtLXJvdzpoYXMoPi5zZXNzaW9uLW1hbmFnZS1jaGVjayk+LnNlc3Npb24tYWN0aW9uc3tncmlkLWNvbHVtbjozfS5zZXNzaW9uLWFjdGlvbnM6ZW1wdHl7ZGlzcGxheTpub25lfS5zZXNzaW9uLXRpdGxlLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpiYXNlbGluZTtjb2x1bW4tZ2FwOjhweDttaW4td2lkdGg6MH0uc2Vzc2lvbi1tYWlue2dhcDo0cHh9LnNlc3Npb24tY29tbWFuZCwuc2Vzc2lvbi10aXRsZSwuY2xhdWRlLWhpc3RvcnktcHJldmlld3tsaW5lLWhlaWdodDoxLjM1fS5zZXNzaW9uLW1ldGF7bWluLXdpZHRoOjA7Z2FwOjZweDtmbGV4LXdyYXA6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uc2Vzc2lvbi1tZXRhPnNwYW57bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zZXNzaW9uLXN0YXR1cywuc2Vzc2lvbi1pZCwuc2Vzc2lvbi1raW5kLWJhZGdlLC5zZXNzaW9uLXJlY292ZXJ5LWhpbnR7ZmxleDowIDAgYXV0b30uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7bWluLWhlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6OXB4fS5zZXNzaW9uLW1hbmFnZS1iYXJ7bWluLWhlaWdodDozOHB4fS5zZXNzaW9uLW1hbmFnZS1hY3Rpb25zIC5idG4sLnNlc3Npb24tbWFuYWdlLXRvZ2dsZXttaW4taGVpZ2h0OjMycHg7d2hpdGUtc3BhY2U6bm93cmFwfS5maWxlLXRyZWV7LS10cmVlLW1ldGEtd2lkdGg6IDU2cHg7LS10cmVlLXN0YXR1cy13aWR0aDogMjJweH0udHJlZS1pdGVte2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MThweCAyMHB4IG1pbm1heCgwLDFmcikgbWlubWF4KDAsdmFyKC0tdHJlZS1tZXRhLXdpZHRoKSkgdmFyKC0tdHJlZS1zdGF0dXMtd2lkdGgpO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjZweDttaW4taGVpZ2h0OjMycHg7cGFkZGluZzo0cHggMTBweDt3aGl0ZS1zcGFjZTpub3dyYXA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRyZWUtaXRlbTpob3ZlciwudHJlZS1pdGVtOmFjdGl2ZXt0cmFuc2Zvcm06bm9uZX0udHJlZS10b2dnbGV7Z3JpZC1jb2x1bW46MTt3aWR0aDoxOHB4O2hlaWdodDoxOHB4fS50cmVlLWljb257Z3JpZC1jb2x1bW46Mjt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O21hcmdpbi1yaWdodDowO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MX0udHJlZS1uYW1le2dyaWQtY29sdW1uOjM7bWluLXdpZHRoOjB9LnRyZWUtbWV0YXtncmlkLWNvbHVtbjo0O2p1c3RpZnktc2VsZjplbmQ7bWF4LXdpZHRoOm5vbmU7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MDt0ZXh0LWFsaWduOnJpZ2h0fS5naXQtc3RhdHVzLWJhZGdle2dyaWQtY29sdW1uOjU7anVzdGlmeS1zZWxmOmVuZDt3aWR0aDoyMHB4O21pbi13aWR0aDoyMHB4O2hlaWdodDoyMHB4O3BhZGRpbmc6MDtsaW5lLWhlaWdodDoyMHB4O2JvcmRlci1yYWRpdXM6NnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveH0udHJlZS1jaGlsZHJlbi5vcGVue21hcmdpbi1sZWZ0OjEzcHg7cGFkZGluZy1sZWZ0OjVweDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA5KX0udG9vbC11c2UtaGVhZGVye2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjRweCBtaW5tYXgoN2NoLG1heC1jb250ZW50KSBtaW5tYXgoMCwxZnIpIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6MTBweDttaW4taGVpZ2h0OjQycHh9LnRvb2wtdXNlLWljb257Z3JpZC1jb2x1bW46MTt3aWR0aDoyMnB4O21pbi13aWR0aDoyMnB4fS50b29sLXVzZS1uYW1le2dyaWQtY29sdW1uOjI7bWF4LXdpZHRoOjE4MHB4fS50b29sLXVzZS1maWxlLC50b29sLXVzZS1zdW1tYXJ5e2dyaWQtY29sdW1uOjM7bWF4LXdpZHRoOm5vbmU7bWluLXdpZHRoOjB9LnRvb2wtdXNlLXRvZ2dsZXtncmlkLWNvbHVtbjo0O2p1c3RpZnktc2VsZjplbmQ7bWFyZ2luLWxlZnQ6MH0uZGlmZi1oZWFkZXJ7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoN2NoLG1heC1jb250ZW50KSBtaW5tYXgoMCwxZnIpIGF1dG8gYXV0byBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjEwcHg7bWluLWhlaWdodDo0MnB4fS5kaWZmLWZpbGUtaWNvbntkaXNwbGF5Om5vbmV9LmRpZmYtZmlsZS1uYW1le2dyaWQtY29sdW1uOjE7bWF4LXdpZHRoOjE4MHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZGlmZi1wYXRoe2dyaWQtY29sdW1uOjI7bWluLXdpZHRoOjA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uZGlmZi1zdGF0dXN7Z3JpZC1jb2x1bW46Mzt3aGl0ZS1zcGFjZTpub3dyYXB9LmRpZmYtb3Blbi1maWxle2dyaWQtY29sdW1uOjQ7bWluLWhlaWdodDoyOHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfS5kaWZmLXRvZ2dsZXtncmlkLWNvbHVtbjo1O2p1c3RpZnktc2VsZjplbmQ7bWFyZ2luLWxlZnQ6MH0uZmlsZS1wcmV2aWV3LWhlYWRlcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0byBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH0uZmlsZS1wcmV2aWV3LXRpdGxle21pbi13aWR0aDowfS5maWxlLXByZXZpZXctdG9vbGJhcnttaW4td2lkdGg6MDttYXgtd2lkdGg6bWluKDUydncsNDYwcHgpO2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtyb3ctZ2FwOjZweDttYXJnaW4tbGVmdDowfS5maWxlLXByZXZpZXctdG9vbGJhci1idG4sLmZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwIC5maWxlLXByZXZpZXctdG9vbGJhci1idG57bWluLWhlaWdodDozMnB4fS5maWxlLXByZXZpZXctY2xvc2V7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjEwcHh9Lm1hcmtkb3duLXByZXZpZXd7bWF4LXdpZHRoOjc4Y2g7bWFyZ2luOjAgYXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3h9LnNldHRpbmdzLXBhbmVsLWhlYWRlciwuc2V0dGluZ3MtcGFuZWw+LmZpZWxkLXJvdywuc2V0dGluZ3MtcGFuZWw+LmZpZWxkLC5zZXR0aW5ncy1wYW5lbD4uc2V0dGluZ3MtY2FyZCwuc2V0dGluZ3MtcGFuZWw+LnN3aXRjaC1jYXJkLWxpc3QsLnNldHRpbmdzLXBhbmVsPiNwcmVzZXRzLWxpc3R7bWluLXdpZHRoOjB9LnNldHRpbmdzLXBhbmVsLWRlc2N7bWF4LXdpZHRoOjcyY2h9LnN3aXRjaC1jYXJkLWhlYWRlciwuc2V0dGluZ3MtdG9nZ2xlLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDoxNHB4fS5zd2l0Y2gtY2FyZC10aXRsZSwuc3dpdGNoLWNhcmQtZGVzYywuc2V0dGluZ3MtdG9nZ2xlLXRleHQsLnNldHRpbmdzLXRvZ2dsZS10aXRsZSwuc2V0dGluZ3MtdG9nZ2xlLWRlc2N7bWluLXdpZHRoOjB9LnNldHRpbmdzLXRvZ2dsZS1hc2lkZSwuc2V0dGluZ3Mtc3dpdGNoLC5zd2l0Y2gtc2xpZGVye2p1c3RpZnktc2VsZjplbmR9LnNldHRpbmdzLXJhbmdlLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCg5Y2gsbWF4LWNvbnRlbnQpIG1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDoxMnB4fS5zZXR0aW5ncy1yYW5nZS1sYWJlbHttaW4td2lkdGg6MH0uc2V0dGluZ3MtcmFuZ2Utcm93IGlucHV0W3R5cGU9cmFuZ2VdLC5zZXR0aW5ncy1yYW5nZXttaW4td2lkdGg6MDt3aWR0aDoxMDAlfS5wcmVzZXQtaXRlbXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgxMGNoLG1heC1jb250ZW50KSBtaW5tYXgoMCwxZnIpO2FsaWduLWl0ZW1zOnN0YXJ0O2NvbHVtbi1nYXA6MTRweH0ucHJlc2V0LWRldGFpbHttaW4td2lkdGg6MDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3RleHQtYWxpZ246cmlnaHR9LmVudi1wcmV2aWV3LXRvb2xiYXJ7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fS5lbnYtcHJldmlldy1jb250cm9sc3ttaW4td2lkdGg6MDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmVudi1wcmV2aWV3LXJvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDEwcmVtLC40MmZyKSBtaW5tYXgoMCwxZnIpIG1heC1jb250ZW50O2FsaWduLWl0ZW1zOmNlbnRlcn0uZW52LXByZXZpZXctbmFtZXttaW4td2lkdGg6MH0uZW52LXByZXZpZXctbGVue2p1c3RpZnktc2VsZjplbmR9LnF1ZXVlLWl0ZW17ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczo4cHggbWlubWF4KDAsMWZyKSBtYXgtY29udGVudCBtYXgtY29udGVudCBtYXgtY29udGVudDthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDo2cHg7bWluLWhlaWdodDoyOHB4fS5xdWV1ZS1pdGVtLWRvdCwucXVldWUtaXRlbS1hZ2UsLnF1ZXVlLWl0ZW0tc2VuZC1ub3csLnF1ZXVlLWl0ZW0tY2FuY2Vse2p1c3RpZnktc2VsZjplbmR9LnFjLWZpbGUtcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjBweCBtaW5tYXgoMCwxZnIpIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6OHB4O21pbi1oZWlnaHQ6MjhweH0ucWMtZmlsZS1wYXRoe21pbi13aWR0aDowfUBtZWRpYShwb2ludGVyOmNvYXJzZSksKG1heC13aWR0aDo3NjhweCl7LnNlc3Npb24taXRlbS1yb3d7bWluLWhlaWdodDo0NHB4fS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6NDRweDtoZWlnaHQ6NDRweDttaW4td2lkdGg6NDRweDttaW4taGVpZ2h0OjQ0cHh9LnRyZWUtaXRlbXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjBweCAyMnB4IG1pbm1heCgwLDFmcikgbWlubWF4KDAsNTZweCkgMjRweDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzo4cHggMTJweH0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLC5maWxlLXByZXZpZXctdG9vbGJhci1ncm91cCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue21pbi1oZWlnaHQ6MzZweDttaW4td2lkdGg6MzZweH0uZmlsZS1leHBsb3Jlci11cCwuZmlsZS1zaWRlLXBhbmVsLWljb25idG4sLmZpbGUtcHJldmlldy1jbG9zZSwuZGlmZi1vcGVuLWZpbGUsLnF1ZXVlLWl0ZW0tc2VuZC1ub3csLnF1ZXVlLWl0ZW0tY2FuY2Vse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnNlc3Npb24tdGl0bGUtcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpO3Jvdy1nYXA6MnB4fS5zZXNzaW9uLXRpbWV7anVzdGlmeS1zZWxmOnN0YXJ0fS50b29sLXVzZS1oZWFkZXJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjI0cHggbWlubWF4KDAsMWZyKSBhdXRvfS50b29sLXVzZS1uYW1le2dyaWQtY29sdW1uOjI7bWF4LXdpZHRoOm5vbmV9LnRvb2wtdXNlLWZpbGUsLnRvb2wtdXNlLXN1bW1hcnl7Z3JpZC1jb2x1bW46MiAvIDR9LnRvb2wtdXNlLXRvZ2dsZXtncmlkLWNvbHVtbjozO2dyaWQtcm93OjF9LmRpZmYtaGVhZGVye2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIGF1dG8gYXV0bztyb3ctZ2FwOjRweH0uZGlmZi1maWxlLW5hbWV7Z3JpZC1jb2x1bW46MTttYXgtd2lkdGg6bm9uZX0uZGlmZi1wYXRoe2dyaWQtY29sdW1uOjEgLyA0O2dyaWQtcm93OjJ9LmRpZmYtc3RhdHVze2dyaWQtY29sdW1uOjI7Z3JpZC1yb3c6MX0uZGlmZi1vcGVuLWZpbGV7Z3JpZC1jb2x1bW46MztncmlkLXJvdzoxfS5kaWZmLXRvZ2dsZXtkaXNwbGF5Om5vbmV9LmZpbGUtcHJldmlldy1oZWFkZXJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpzdGFydH0uZmlsZS1wcmV2aWV3LXRvb2xiYXJ7Z3JpZC1jb2x1bW46MSAvIDM7Z3JpZC1yb3c6MjttYXgtd2lkdGg6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uZmlsZS1wcmV2aWV3LWNsb3Nle2dyaWQtY29sdW1uOjI7Z3JpZC1yb3c6MX0ubWFya2Rvd24tcHJldmlld3ttYXgtd2lkdGg6bm9uZTtwYWRkaW5nOjE2cHh9LnN3aXRjaC1jYXJkLWhlYWRlciwuc2V0dGluZ3MtdG9nZ2xlLXJvdywuc2V0dGluZ3MtcmFuZ2Utcm93LC5wcmVzZXQtaXRlbSwuZW52LXByZXZpZXctdG9vbGJhciwuZW52LXByZXZpZXctcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpO3Jvdy1nYXA6OHB4fS5zZXR0aW5ncy10b2dnbGUtYXNpZGUsLnNldHRpbmdzLXN3aXRjaCwuc3dpdGNoLXNsaWRlciwucHJlc2V0LWRldGFpbCwuZW52LXByZXZpZXctY29udHJvbHMsLmVudi1wcmV2aWV3LWxlbntqdXN0aWZ5LXNlbGY6c3RhcnQ7dGV4dC1hbGlnbjpsZWZ0fS5lbnYtcHJldmlldy1jb250cm9sc3t3aWR0aDoxMDAlfS5xdWV1ZS1pdGVte2dyaWQtdGVtcGxhdGUtY29sdW1uczo4cHggbWlubWF4KDAsMWZyKSBhdXRvO3Jvdy1nYXA6NnB4fS5xdWV1ZS1pdGVtLXNlbmQtbm93LC5xdWV1ZS1pdGVtLWNhbmNlbHtncmlkLXJvdzoyfS5xdWV1ZS1pdGVtLXNlbmQtbm93e2dyaWQtY29sdW1uOjI7anVzdGlmeS1zZWxmOnN0YXJ0fS5xdWV1ZS1pdGVtLWNhbmNlbHtncmlkLWNvbHVtbjozfX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KSwocG9pbnRlcjpjb2Fyc2Upe2h0bWwuaXMtd2FuZC1hbmRyb2lkIC5maWxlLWV4cGxvcmVyLXVwLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bixodG1sLmlzLXdhbmQtYW5kcm9pZCAuZmlsZS1wcmV2aWV3LWNsb3NlLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5kaWZmLW9wZW4tZmlsZSxodG1sLmlzLXdhbmQtYW5kcm9pZCAucXVldWUtaXRlbS1zZW5kLW5vdyxodG1sLmlzLXdhbmQtYW5kcm9pZCAucXVldWUtaXRlbS1jYW5jZWwsaHRtbC5pcy13YW5kLWFuZHJvaWQgLnF1ZXVlLWhlYWRlci1jbGVhcnttaW4td2lkdGg6NDRweDttaW4taGVpZ2h0OjQ0cHh9aHRtbC5pcy13YW5kLWFuZHJvaWQgLmZpbGUtZXhwbG9yZXItdXAsaHRtbC5pcy13YW5kLWFuZHJvaWQgLmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5maWxlLXByZXZpZXctY2xvc2V7d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtib3JkZXItcmFkaXVzOjEycHh9aHRtbC5pcy13YW5kLWFuZHJvaWQgLmZpbGUtcHJldmlldy10b29sYmFyLWJ0bixodG1sLmlzLXdhbmQtYW5kcm9pZCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXAgLmZpbGUtcHJldmlldy10b29sYmFyLWJ0bnttaW4td2lkdGg6NDRweDttaW4taGVpZ2h0OjQ0cHg7aGVpZ2h0OjQ0cHg7cGFkZGluZzowIDEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259aHRtbC5pcy13YW5kLWFuZHJvaWQgLmZpbGUtcHJldmlldy10b29sYmFyLWdyb3Vwe2JvcmRlci1yYWRpdXM6MTBweH1odG1sLmlzLXdhbmQtYW5kcm9pZCAuZGlmZi1vcGVuLWZpbGV7aGVpZ2h0OjQ0cHg7cGFkZGluZzowIDEycHg7Ym9yZGVyLXJhZGl1czoxMnB4fWh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1pdGVte2dyaWQtdGVtcGxhdGUtY29sdW1uczo4cHggbWlubWF4KDAsMWZyKSBtYXgtY29udGVudCBtYXgtY29udGVudCBtYXgtY29udGVudDtyb3ctZ2FwOjA7bWluLWhlaWdodDo0NHB4O3BhZGRpbmc6NnB4IDhweDtvcGFjaXR5Oi44Nn1odG1sLmlzLXdhbmQtYW5kcm9pZCAucXVldWUtaXRlbS1hZ2V7Z3JpZC1jb2x1bW46MztncmlkLXJvdzoxfWh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1pdGVtLXNlbmQtbm93e2dyaWQtY29sdW1uOjQ7Z3JpZC1yb3c6MTtoZWlnaHQ6NDRweDtwYWRkaW5nOjAgMTJweDtib3JkZXItcmFkaXVzOjEycHg7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxfWh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1pdGVtLWNhbmNlbCxodG1sLmlzLXdhbmQtYW5kcm9pZCAucXVldWUtaGVhZGVyLWNsZWFye3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6MTJweDtmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxfWh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1pdGVtLWNhbmNlbHtncmlkLWNvbHVtbjo1O2dyaWQtcm93OjF9aHRtbC5pcy13YW5kLWFuZHJvaWQgLnN3aXRjaC1jYXJkLWhlYWRlcixodG1sLmlzLXdhbmQtYW5kcm9pZCAuc2V0dGluZ3MtdG9nZ2xlLXJvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKSBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcn1odG1sLmlzLXdhbmQtYW5kcm9pZCAuc2V0dGluZ3MtdG9nZ2xlLWFzaWRlLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5zZXR0aW5ncy1zd2l0Y2gsaHRtbC5pcy13YW5kLWFuZHJvaWQgLnN3aXRjaC1zbGlkZXJ7anVzdGlmeS1zZWxmOmVuZH19QGtleWZyYW1lcyB3YW5kLXN1cmZhY2UtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCkgc2NhbGUoLjk4NSl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1Aa2V5ZnJhbWVzIHdhbmQtc3VyZmFjZS1vdXR7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg0cHgpIHNjYWxlKC45OSl9fUBrZXlmcmFtZXMgd2FuZC1iYWNrZHJvcC1pbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0ubW9kYWwtYmFja2Ryb3B7YmFja2dyb3VuZDojMTgxNDExODU7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNXB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDVweCk7YW5pbWF0aW9uOndhbmQtYmFja2Ryb3AtaW4gLjE2cyBlYXNlLW91dCBib3RofS5tb2RhbHtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjIwcHg7Ym94LXNoYWRvdzowIDI0cHggNjRweCAjMmExZjE2MzMsMCA0cHggMTZweCAjMmExZjE2MTQ7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZTthbmltYXRpb246d2FuZC1zdXJmYWNlLWluIC4xOHMgZWFzZS1vdXQgYm90aH0ubW9kYWwtYmFja2Ryb3AuY2xvc2luZyAubW9kYWx7YW5pbWF0aW9uOndhbmQtc3VyZmFjZS1vdXQgLjEzcyBlYXNlLWluIGJvdGh9Lm1vZGFsLWNsb3NlLWJ0biwuc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3QsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdHt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O21pbi13aWR0aDo0NHB4O21pbi1oZWlnaHQ6NDRweDtib3JkZXItcmFkaXVzOjEycHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2V9Lm1vZGFsLWNsb3NlLWJ0bjpob3Zlciwuc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6aG92ZXIsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDpob3ZlciwubW9kYWwtY2xvc2UtYnRuOmFjdGl2ZSwuc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6YWN0aXZlLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6YWN0aXZle3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZX0uc2V0dGluZ3MtbW9kYWx7d2lkdGg6bWluKDk4MHB4LGNhbGMoMTAwdncgLSAzMnB4KSk7bWF4LXdpZHRoOjk4MHB4O2hlaWdodDptaW4oODQwcHgsY2FsYygxMDBkdmggLSAzMnB4IC0gdmFyKC0td2FuZC1zYWZlLXRvcCkgLSB2YXIoLS13YW5kLXNhZmUtYm90dG9tKSkpO21pbi1oZWlnaHQ6MDttYXgtaGVpZ2h0OmNhbGMoMTAwZHZoIC0gMzJweCAtIHZhcigtLXdhbmQtc2FmZS10b3ApIC0gdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVye21pbi1oZWlnaHQ6NjhweDtwYWRkaW5nOjE0cHggMThweCAxNHB4IDIycHg7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAgLm1vZGFsLXRpdGxle2ZvbnQtc2l6ZToxLjEyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtc3VidGl0bGV7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWJvZHl7cGFkZGluZzoxOHB4IDIycHggMjJweH0uc2V0dGluZ3MtbGF5b3V0e2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMDhweCBtaW5tYXgoMCwxZnIpO2dhcDoyNHB4fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2lkZWJhcntnYXA6MTJweDtwYWRkaW5nLXJpZ2h0OjE4cHh9LnNldHRpbmdzLXNpZGViYXItaGludHtsaW5lLWhlaWdodDoxLjQ1fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFic3tnYXA6NHB4O3BhZGRpbmctcmlnaHQ6MH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYnttaW4taGVpZ2h0OjUycHg7cGFkZGluZzo5cHggMTFweDtnYXA6MnB4O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmU7dHJhbnNmb3JtOm5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSxib3JkZXItY29sb3IgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O3RyYW5zZm9ybTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLmFjdGl2ZXtjb2xvcjp2YXIoLS1hY2NlbnQtYWN0aXZlKTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjojYzU2NTNkMzM7Ym94LXNoYWRvdzpub25lO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWIuYWN0aXZlOmJlZm9yZXtkaXNwbGF5OmJsb2NrO2xlZnQ6LTFweDt0b3A6MTFweDtib3R0b206MTFweDt3aWR0aDozcHh9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWItbWFpbntmb250LXNpemU6Ljg3NXJlbX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi1tZXRhe2ZvbnQtc2l6ZTouNjg3NXJlbX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLWhlYWRlcnttYXJnaW4tYm90dG9tOjE4cHg7cGFkZGluZy1ib3R0b206MTRweDtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLXN1YnRsZSl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1wYW5lbC10aXRsZXtmb250LXNpemU6MS4yNXJlbTtsZXR0ZXItc3BhY2luZzotLjAyNWVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtZGVzY3tmb250LXNpemU6Ljg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jYXJkLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFib3V0LWluZm8sLnNldHRpbmdzLW1vZGFsIC5wcmVzZXQtaXRlbSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRvZ2dsZS1yb3csLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1yYW5nZS1yb3d7YmFja2dyb3VuZDp2YXIoLS1iZy1zdXJmYWNlKTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym94LXNoYWRvdzpub25lO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jYXJkLWljb257Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JveC1zaGFkb3c6bm9uZTtmb250LXNpemU6MH0uc2V0dGluZ3MtbW9kZWwtY2FyZHttYXgtd2lkdGg6ODYwcHg7bWFyZ2luOjRweCAwIDE2cHg7cGFkZGluZzoxOHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxOHB4O2JhY2tncm91bmQ6dmFyKC0tYmctc3VyZmFjZSl9LnNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGVyLC5zZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRpbmcsLnNldHRpbmdzLW1vZGVsLWxhYmVsLXJvdywuc2V0dGluZ3MtbW9kZWwtbWV0YXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5zZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRlcntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTZweDtwYWRkaW5nLWJvdHRvbToxNnB4O21hcmdpbi1ib3R0b206MTZweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uc2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkaW5ne21pbi13aWR0aDowO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEwcHh9LnNldHRpbmdzLW1vZGVsLWNhcmQtaWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4O2ZsZXg6MCAwIDM2cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItcmFkaXVzOjExcHh9LnNldHRpbmdzLW1vZGVsLWNhcmQtdGl0bGV7bWFyZ2luOjA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6LjkzNzVyZW07Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjEuMzV9LnNldHRpbmdzLW1vZGVsLWNhcmQtZGVzY3ttYXJnaW46M3B4IDAgMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjV9LnNldHRpbmdzLW1vZGVsLXJlZnJlc2h7bWluLXdpZHRoOjEwOHB4O21pbi1oZWlnaHQ6NDJweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo3cHg7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn0uc2V0dGluZ3MtbW9kZWwtcmVmcmVzaC5pcy1sb2FkaW5nIHN2Z3thbmltYXRpb246c2V0dGluZ3MtbW9kZWwtcmVmcmVzaC1zcGluIC44cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBzZXR0aW5ncy1tb2RlbC1yZWZyZXNoLXNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uc2V0dGluZ3MtbW9kZWwtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpO2dhcDoxOHB4fS5zZXR0aW5ncy1tb2RlbC1maWVsZHttaW4td2lkdGg6MDttYXJnaW46MCFpbXBvcnRhbnR9LnNldHRpbmdzLW1vZGVsLWxhYmVsLXJvd3tqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTBweDttYXJnaW4tYm90dG9tOjdweH0uc2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93IC5maWVsZC1sYWJlbHttYXJnaW46MDtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NzAwfS5zZXR0aW5ncy1tb2RlbC1wcm92aWRlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwfS5tb2RlbC1jb21ib2JveHtwb3NpdGlvbjpyZWxhdGl2ZTttaW4td2lkdGg6MH0ubW9kZWwtY29tYm9ib3gtY29udHJvbHtwb3NpdGlvbjpyZWxhdGl2ZX0uc2V0dGluZ3MtbW9kYWwgLm1vZGVsLWNvbWJvYm94LWlucHV0e21pbi1oZWlnaHQ6NDhweDtwYWRkaW5nOjEwcHggNDhweCAxMHB4IDEzcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07bGluZS1oZWlnaHQ6MS40O2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JvcmRlci1yYWRpdXM6MTJweH0ubW9kZWwtY29tYm9ib3gtdG9nZ2xle3Bvc2l0aW9uOmFic29sdXRlO3RvcDoycHg7cmlnaHQ6MnB4O3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjA7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjEwcHg7Y3Vyc29yOnBvaW50ZXI7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZSxiYWNrZ3JvdW5kIC4xNXMgZWFzZX0ubW9kZWwtY29tYm9ib3gtdG9nZ2xlOmhvdmVye2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpfS5tb2RlbC1jb21ib2JveC10b2dnbGU6Zm9jdXMtdmlzaWJsZSwubW9kZWwtY29tYm9ib3gtb3B0aW9uOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9Lm1vZGVsLWNvbWJvYm94LXRvZ2dsZSBzdmd7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE2cyBlYXNlfS5tb2RlbC1jb21ib2JveC5pcy1vcGVuIC5tb2RlbC1jb21ib2JveC10b2dnbGUgc3Zne3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0ubW9kZWwtY29tYm9ib3gtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgNnB4KTtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjgwO21heC1oZWlnaHQ6MjgwcHg7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6NXB4O2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6MTNweDtib3gtc2hhZG93OjAgMTZweCAzNnB4ICMyYTFmMTYyOSwwIDJweCA4cHggIzJhMWYxNjE0O292ZXJzY3JvbGwtYmVoYXZpb3I6Y29udGFpbn0ubW9kZWwtY29tYm9ib3gtb3B0aW9ue3dpZHRoOjEwMCU7bWluLWhlaWdodDo1MnB4O2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjBweCBtaW5tYXgoMCwxZnIpO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6OHB4IDEwcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjlweDtjdXJzb3I6cG9pbnRlcjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufS5tb2RlbC1jb21ib2JveC1vcHRpb246aG92ZXIsLm1vZGVsLWNvbWJvYm94LW9wdGlvbi5pcy1hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpfS5tb2RlbC1jb21ib2JveC1vcHRpb24tY2hlY2ssLm1vZGVsLWNvbWJvYm94LW9wdGlvbi1jdXN0b20taWNvbnt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6dHJhbnNwYXJlbnR9Lm1vZGVsLWNvbWJvYm94LW9wdGlvbi5pcy1zZWxlY3RlZCAubW9kZWwtY29tYm9ib3gtb3B0aW9uLWNoZWNrLC5tb2RlbC1jb21ib2JveC1vcHRpb24tY3VzdG9tLWljb257Y29sb3I6dmFyKC0tYWNjZW50KX0ubW9kZWwtY29tYm9ib3gtb3B0aW9uLWNvcHl7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4fS5tb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWwsLm1vZGVsLWNvbWJvYm94LW9wdGlvbi1tZXRhe21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ubW9kZWwtY29tYm9ib3gtb3B0aW9uLWxhYmVse2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDB9Lm1vZGVsLWNvbWJvYm94LW9wdGlvbi1tZXRhe2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42ODc1cmVtfS5tb2RlbC1jb21ib2JveC1vcHRpb24tY3VzdG9te21hcmdpbi10b3A6NHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MCAwIDlweCA5cHh9Lm1vZGVsLWNvbWJvYm94LWVtcHR5e3BhZGRpbmc6MTRweCAxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzVyZW07bGluZS1oZWlnaHQ6MS41O3RleHQtYWxpZ246Y2VudGVyfS5zZXR0aW5ncy1tb2RlbC1tZXRhe2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHg7bWFyZ2luLXRvcDo3cHh9LnNldHRpbmdzLW1vZGVsLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3doaXRlLXNwYWNlOm5vd3JhcH0uc2V0dGluZ3MtbW9kZWwtc3RhdHVzOmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjZweDtoZWlnaHQ6NnB4O2ZsZXg6MCAwIDZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5zZXR0aW5ncy1tb2RlbC1zdGF0dXMuaXMta25vd246YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcyl9LnNldHRpbmdzLW1vZGVsLXN0YXR1cy5pcy1jdXN0b206YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KX0uc2V0dGluZ3MtbW9kZWwtaGVscHttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi42ODc1cmVtO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zZXR0aW5ncy1tb2RlbC1oZWxwIGNvZGV7Zm9udC1zaXplOmluaGVyaXR9LnNldHRpbmdzLW1vZGVsLXZlcnNpb257bWFyZ2luOjE1cHggMCAwO3BhZGRpbmctdG9wOjEzcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LndhbmQtZGlhbG9nLWJhY2tkcm9we3BhZGRpbmctdG9wOm1heCgyMHB4LHZhcigtLXdhbmQtc2FmZS10b3ApKTtwYWRkaW5nLWJvdHRvbTptYXgoMjBweCx2YXIoLS13YW5kLXNhZmUtYm90dG9tKSk7cGFkZGluZy1sZWZ0Om1heCgyMHB4LHZhcigtLXdhbmQtc2FmZS1sZWZ0KSk7cGFkZGluZy1yaWdodDptYXgoMjBweCx2YXIoLS13YW5kLXNhZmUtcmlnaHQpKTtiYWNrZ3JvdW5kOiMxODE0MTE4ZjtiYWNrZHJvcC1maWx0ZXI6Ymx1cig1cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNXB4KTthbmltYXRpb246d2FuZC1iYWNrZHJvcC1pbiAuMTZzIGVhc2Utb3V0IGJvdGh9LndhbmQtZGlhbG9nLWJhY2tkcm9wLmNsb3Npbmd7YW5pbWF0aW9uOndhbmREaWFsb2dCYWNrZHJvcE91dCAuMTNzIGVhc2UtaW4gYm90aH0ud2FuZC1kaWFsb2d7bWF4LXdpZHRoOjQwMHB4O2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MThweDtib3gtc2hhZG93OjAgMjRweCA2NHB4ICMyYTFmMTYzOCwwIDRweCAxNnB4ICMyYTFmMTYxNDtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lO2FuaW1hdGlvbjp3YW5kLXN1cmZhY2UtaW4gLjE4cyBlYXNlLW91dCBib3RofS53YW5kLWRpYWxvZy1iYWNrZHJvcC5jbG9zaW5nIC53YW5kLWRpYWxvZ3thbmltYXRpb246d2FuZC1zdXJmYWNlLW91dCAuMTNzIGVhc2UtaW4gYm90aH0ud2FuZC1kaWFsb2ctaGVhZGVye2dhcDoxMnB4O3BhZGRpbmc6MjBweCAyMHB4IDEycHh9LndhbmQtZGlhbG9nLWljb257d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjExcHg7Ym94LXNoYWRvdzpub25lfS53YW5kLWRpYWxvZy1pY29uLmluZm8sLndhbmQtZGlhbG9nLWljb24ucXVlc3Rpb257Y29sb3I6dmFyKC0tYWNjZW50LWFjdGl2ZSk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpfS53YW5kLWRpYWxvZy1pY29uLndhcm5pbmd7Y29sb3I6dmFyKC0td2FybmluZyk7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLW11dGVkKX0ud2FuZC1kaWFsb2ctaWNvbi5kYW5nZXJ7Y29sb3I6dmFyKC0tZGFuZ2VyKTtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCl9LndhbmQtZGlhbG9nLWljb24uc3VjY2Vzc3tjb2xvcjp2YXIoLS1zdWNjZXNzKTtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpfS53YW5kLWRpYWxvZy10aXRsZXtmb250LXNpemU6MXJlbTtsZXR0ZXItc3BhY2luZzotLjAxNWVtfS53YW5kLWRpYWxvZy1tZXNzYWdle2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNn0ud2FuZC1kaWFsb2ctYm9keXtwYWRkaW5nOjRweCAyMHB4IDE0cHh9LndhbmQtZGlhbG9nLWlucHV0e21pbi1oZWlnaHQ6NDhweDtmb250LXNpemU6MXJlbTtiYWNrZ3JvdW5kOnZhcigtLWJnLXN1cmZhY2UpfS53YW5kLWRpYWxvZy1mb290ZXJ7Z2FwOjEwcHg7cGFkZGluZzoxNHB4IDIwcHggMThweDttYXJnaW4tdG9wOjRweDtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9LndhbmQtZGlhbG9nLWZvb3RlciAuYnRue21pbi13aWR0aDo4OHB4O21pbi1oZWlnaHQ6NDRweH0ud2FuZC1kaWFsb2cgLmJ0bi1kYW5nZXIsLndhbmQtZGlhbG9nIC5idG4tZGFuZ2VyOmhvdmVyLC53YW5kLWRpYWxvZyAuYnRuLWRhbmdlcjphY3RpdmV7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcik7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1kYW5nZXIpO2JveC1zaGFkb3c6bm9uZTt0cmFuc2Zvcm06bm9uZX0ud2FuZC1kaWFsb2cgLmJ0bi1kYW5nZXI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItaG92ZXIpfUBtZWRpYShtYXgtd2lkdGg6NzYwcHgpey5tb2RhbC1iYWNrZHJvcHtwYWRkaW5nOnZhcigtLXdhbmQtc2FmZS10b3ApIHZhcigtLXdhbmQtc2FmZS1yaWdodCkgdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkgdmFyKC0td2FuZC1zYWZlLWxlZnQpO2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnNldHRpbmdzLW1vZGFse3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDowO21heC1oZWlnaHQ6bm9uZTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6NTttaW4taGVpZ2h0OjY0cHg7cGFkZGluZzoxMHB4IDEycHggMTBweCAxNnB4fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtc3VidGl0bGV7ZGlzcGxheTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtYm9keXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MCAxNHB4IG1heCgxOHB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKTtvdmVyZmxvdy15OmF1dG87b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWlufS5zZXR0aW5ncy1sYXlvdXR7ZGlzcGxheTpibG9ja30uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXNpZGViYXJ7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6NDtkaXNwbGF5OmJsb2NrO21hcmdpbjowIC0xNHB4IDE2cHg7cGFkZGluZzo4cHggMTRweDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCl9LnNldHRpbmdzLXNpZGViYXItaGVhZGVye2Rpc3BsYXk6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztnYXA6NnB4O3BhZGRpbmc6MDtvdmVyZmxvdy14OmF1dG87c2Nyb2xsLXNuYXAtdHlwZTp4IHByb3hpbWl0eTtzY3JvbGxiYXItd2lkdGg6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYnM6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYntmbGV4OjAgMCBhdXRvO21pbi13aWR0aDowO21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjlweCAxM3B4O3Njcm9sbC1zbmFwLWFsaWduOnN0YXJ0fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiOmJlZm9yZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi5hY3RpdmU6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi1tZXRhe2Rpc3BsYXk6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNvbnRlbnR7aGVpZ2h0OmF1dG87b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjB9LnNldHRpbmdzLXBhbmVse21pbi1oZWlnaHQ6MH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZToxLjEyNXJlbX0uZmllbGQtcm93LC5zZXR0aW5ncy1tb2RlbC1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpfS5maWVsZC1yb3d7Z2FwOjB9LnNldHRpbmdzLW1vZGVsLWNhcmR7cGFkZGluZzoxNHB4O2JvcmRlci1yYWRpdXM6MTZweH0uc2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkZXJ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uc2V0dGluZ3MtbW9kZWwtY2FyZC1kZXNje21heC13aWR0aDo0NGNofS5zZXR0aW5ncy1tb2RlbC1yZWZyZXNoe21pbi13aWR0aDo0NHB4O3dpZHRoOjQ0cHg7bWluLWhlaWdodDo0NHB4O3BhZGRpbmc6MH0uc2V0dGluZ3MtbW9kZWwtcmVmcmVzaCBzcGFue3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCAwIDAgMCk7d2hpdGUtc3BhY2U6bm93cmFwfS5zZXR0aW5ncy1tb2RlbC1ncmlke2dhcDoxNnB4fS5zZXR0aW5ncy1tb2RhbCAuZmllbGQtaW5wdXQsLnNldHRpbmdzLW1vZGFsIC5tb2RlbC1jb21ib2JveC1pbnB1dCwuc2V0dGluZ3MtbW9kYWwgc2VsZWN0LmZpZWxkLWlucHV0e21pbi1oZWlnaHQ6NDhweDtmb250LXNpemU6MTZweH0uc2V0dGluZ3MtbW9kYWwgLmJ0bi1zbSwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1pY29ue21pbi1oZWlnaHQ6NDRweH0ubW9kZWwtY29tYm9ib3gtbWVudXtwb3NpdGlvbjpzdGF0aWM7bWF4LWhlaWdodDoyNDBweDttYXJnaW4tdG9wOjZweDtib3gtc2hhZG93Om5vbmV9Lm1vZGVsLWNvbWJvYm94LW9wdGlvbnttaW4taGVpZ2h0OjUycHh9LnNldHRpbmdzLWFjdGlvbnMtc3RpY2t5e2JvdHRvbTpjYWxjKC0xKm1heCgxOHB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKSk7bWFyZ2luOjZweCAtMTRweCAwO3BhZGRpbmc6MTZweCAxNHB4IG1heCgxOHB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX19QG1lZGlhKG1heC13aWR0aDo3NjBweCksKHBvaW50ZXI6Y29hcnNlKXsuc2V0dGluZ3MtbW9kYWwgLmJ0biwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1zbSwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1pY29uLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLC5zZXR0aW5ncy1tb2RhbCAubW9kZWwtY29tYm9ib3gtdG9nZ2xle21pbi1oZWlnaHQ6NDRweDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufS5zZXR0aW5ncy1tb2RhbCAuYnRuLWljb24sLnNldHRpbmdzLW1vZGFsIC5tb2RlbC1jb21ib2JveC10b2dnbGV7bWluLXdpZHRoOjQ0cHh9fUBtZWRpYShtYXgtd2lkdGg6NTYwcHgpey53YW5kLWRpYWxvZy1iYWNrZHJvcHthbGlnbi1pdGVtczpmbGV4LWVuZDtwYWRkaW5nOm1heCgxNnB4LHZhcigtLXdhbmQtc2FmZS10b3ApKSB2YXIoLS13YW5kLXNhZmUtcmlnaHQpIDAgdmFyKC0td2FuZC1zYWZlLWxlZnQpfS53YW5kLWRpYWxvZ3ttYXgtd2lkdGg6bm9uZTtib3JkZXItcmFkaXVzOjIwcHggMjBweCAwIDA7Ym9yZGVyLWJvdHRvbTowfS53YW5kLWRpYWxvZy1oZWFkZXJ7cGFkZGluZzoxOHB4IDE4cHggMTBweH0ud2FuZC1kaWFsb2ctYm9keXtwYWRkaW5nLWxlZnQ6MThweDtwYWRkaW5nLXJpZ2h0OjE4cHh9LndhbmQtZGlhbG9nLWZvb3RlcntwYWRkaW5nOjEycHggMThweCBtYXgoMThweCx2YXIoLS13YW5kLXNhZmUtYm90dG9tKSl9LndhbmQtZGlhbG9nLWZvb3RlciAuYnRue2ZsZXg6MSAxIDB9fUBtZWRpYShtYXgtd2lkdGg6MzkwcHgpey5zZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRpbmd7Z2FwOjhweH0uc2V0dGluZ3MtbW9kZWwtY2FyZC1pY29ue3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7ZmxleC1iYXNpczozMnB4fS5zZXR0aW5ncy1tb2RlbC1oZWxwe2Rpc3BsYXk6bm9uZX0ud2FuZC1kaWFsb2ctZm9vdGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfS53YW5kLWRpYWxvZy1mb290ZXIgLmJ0bnt3aWR0aDoxMDAlfX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5zZXR0aW5ncy1tb2RlbC1yZWZyZXNoLmlzLWxvYWRpbmcgc3Zne2FuaW1hdGlvbjpub25lfX0K"),
|
|
10
10
|
vendor: {
|
|
11
11
|
"/vendor/wterm/wterm.bundle.js": {
|