mberr · data · 2.7c767379.chunk.js_45
{
"2.7c767379.chunk.js_45": "base64:Lm5hbWU9IiIpLGUuZGVmYXVsdENoZWNrZWQ9IWUuZGVmYXVsdENoZWNrZWQsZS5kZWZhdWx0Q2hlY2tlZD0hIWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCwiIiE9PXImJihlLm5hbWU9cil9ZnVuY3Rpb24gVHQoZSx0LHIpeyJudW1iZXIiPT09dCYmZS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lfHwobnVsbD09cj9lLmRlZmF1bHRWYWx1ZT0iIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmUuZGVmYXVsdFZhbHVlIT09IiIrciYmKGUuZGVmYXVsdFZhbHVlPSIiK3IpKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoeXQsZ3QpO2R0W3RdPW5ldyBwdCh0LDEsITEsZSxudWxsKX0pLCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6aHJlZiB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh5dCxndCk7ZHRbdF09bmV3IHB0KHQsMSwhMSxlLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIil9KSxbInhtbDpiYXNlIiwieG1sOmxhbmciLCJ4bWw6c3BhY2UiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh5dCxndCk7ZHRbdF09bmV3IHB0KHQsMSwhMSxlLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiKX0pLFsidGFiSW5kZXgiLCJjcm9zc09yaWdpbiJdLmZvckVhY2goZnVuY3Rpb24oZSl7ZHRbZV09bmV3IHB0KGUsMSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCl9KTt2YXIgQXQ9e2NoYW5nZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6Im9uQ2hhbmdlIixjYXB0dXJlZDoib25DaGFuZ2VDYXB0dXJlIn0sZGVwZW5kZW5jaWVzOiJibHVyIGNoYW5nZSBjbGljayBmb2N1cyBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKX19O2Z1bmN0aW9uIEN0KGUsdCxyKXtyZXR1cm4oZT11ZS5nZXRQb29sZWQoQXQuY2hhbmdlLGUsdCxyKSkudHlwZT0iY2hhbmdlIixPZShyKSx6KGUpLGV9dmFyIHh0PW51bGwsSXQ9bnVsbDtmdW5jdGlvbiBrdChlKXtOKGUpfWZ1bmN0aW9uIE90KGUpe2lmKEtlKEQoZSkpKXJldHVybiBlfWZ1bmN0aW9uIE50KGUsdCl7aWYoImNoYW5nZSI9PT1lKXJldHVybiB0fXZhciBQdD0hMTtmdW5jdGlvbiBSdCgpe3h0JiYoeHQuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLEJ0KSxJdD14dD1udWxsKX1mdW5jdGlvbiBCdChlKXsidmFsdWUiPT09ZS5wcm9wZXJ0eU5hbWUmJk90KEl0KSYmTGUoa3QsZT1DdChJdCxlLFVlKGUpKSl9ZnVuY3Rpb24gTXQoZSx0LHIpeyJmb2N1cyI9PT1lPyhSdCgpLEl0PXIsKHh0PXQpLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixCdCkpOiJibHVyIj09PWUmJlJ0KCl9ZnVuY3Rpb24gTHQoZSl7aWYoInNlbGVjdGlvbmNoYW5nZSI9PT1lfHwia2V5dXAiPT09ZXx8ImtleWRvd24iPT09ZSlyZXR1cm4gT3QoSXQpfWZ1bmN0aW9uIER0KGUsdCl7aWYoImNsaWNrIj09PWUpcmV0dXJuIE90KHQpfWZ1bmN0aW9uIGp0KGUsdCl7aWYoImlucHV0Ij09PWV8fCJjaGFuZ2UiPT09ZSlyZXR1cm4gT3QodCl9RyYmKFB0PUZlKCJpbnB1dCIpJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpKTt2YXIgVXQ9e2V2ZW50VHlwZXM6QXQsX2lzSW5wdXRFdmVudFN1cHBvcnRlZDpQdCxleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGUsdCxyLG4pe3ZhciBpPXQ/RCh0KTp3aW5kb3csbz12b2lkIDAsYT12b2lkIDAscz1pLm5vZGVOYW1lJiZpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoInNlbGVjdCI9PT1zfHwiaW5wdXQiPT09cyYmImZpbGUiPT09aS50eXBlP289TnQ6amUoaSk/UHQ/bz1qdDoobz1MdCxhPU10KToocz1pLm5vZGVOYW1lKSYmImlucHV0Ij09PXMudG9Mb3dlckNhc2UoKSYmKCJjaGVja2JveCI9PT1pLnR5cGV8fCJyYWRpbyI9PT1pLnR5cGUpJiYobz1EdCksbyYmKG89byhlLHQpKSlyZXR1cm4gQ3QobyxyLG4pO2EmJmEoZSxpLHQpLCJibHVyIj09PWUmJihlPWkuX3dyYXBwZXJTdGF0ZSkmJmUuY29udHJvbGxlZCYmIm51bWJlciI9PT1pLnR5cGUmJlR0KGksIm51bWJlciIsaS52YWx1ZSl9fSxGdD11ZS5leHRlbmQoe3ZpZXc6bnVsbCxkZXRhaWw6bnVsbH0pLFZ0PXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gcXQoZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPVZ0W2VdKSYmISF0W2VdfWZ1bmN0aW9uIEt0KCl7cmV0dXJuIHF0fXZhciB6dD0wLEd0PTAsSHQ9ITEsV3Q9ITEsWXQ9RnQuZXh0ZW5kKHtzY3JlZW5YOm51bGwsc2NyZWVuWTpudWxsLGNsaWVudFg6bnVsbCxjbGllbnRZOm51bGwscGFnZVg6bnVsbCxwYWdlWTpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxnZXRNb2RpZmllclN0YXRlOkt0LGJ1dHRvbjpudWxsLGJ1dHRvbnM6bnVsbCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlbGF0ZWRUYXJnZXR8fChlLmZyb21FbGVtZW50PT09ZS5zcmNFbGVtZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQpfSxtb3ZlbWVudFg6ZnVuY3Rpb24oZSl7aWYoIm1vdmVtZW50WCJpbiBlKXJldHVybiBlLm1vdmVtZW50WDt2YXIgdD16dDtyZXR1cm4genQ9ZS5zY3JlZW5YLEh0PyJtb3VzZW1vdmUiPT09ZS50eXBlP2Uuc2NyZWVuWC10OjA6KEh0PSEwLDApfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7aWYoIm1vdmVtZW50WSJpbiBlKXJldHVybiBlLm1vdmVtZW50WTt2YXIgdD1HdDtyZXR1cm4gR3Q9ZS5zY3JlZW5ZLFd0PyJtb3VzZW1vdmUiPT09ZS50eXBlP2Uuc2NyZWVuWS10OjA6KFd0PSEwLDApfX0pLFh0PVl0LmV4dGVuZCh7cG9pbnRlcklkOm51bGwsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxwcmVzc3VyZTpudWxsLHRhbmdlbnRpYWxQcmVzc3VyZTpudWxsLHRpbHRYOm51bGwsdGlsdFk6bnVsbCx0d2lzdDpudWxsLHBvaW50ZXJUeXBlOm51bGwsaXNQcmltYXJ5Om51bGx9KSxRdD17bW91c2VFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZToib25Nb3VzZUVudGVyIixkZXBlbmRlbmNpZXM6WyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdfSxtb3VzZUxlYXZlOntyZWdpc3RyYXRpb25OYW1lOiJvbk1vdXNlTGVhdmUiLGRlcGVuZGVuY2llczpbIm1vdXNlb3V0IiwibW91c2VvdmVyIl19LHBvaW50ZXJFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZToib25Qb2ludGVyRW50ZXIiLGRlcGVuZGVuY2llczpbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdfSxwb2ludGVyTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6Im9uUG9pbnRlckxlYXZlIixkZXBlbmRlbmNpZXM6WyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXX19LCR0PXtldmVudFR5cGVzOlF0LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9Im1vdXNlb3ZlciI9PT1lfHwicG9pbnRlcm92ZXIiPT09ZSxvPSJtb3VzZW91dCI9PT1lfHwicG9pbnRlcm91dCI9PT1lO2lmKGkmJihyLnJlbGF0ZWRUYXJnZXR8fHIuZnJvbUVsZW1lbnQpfHwhbyYmIWkpcmV0dXJuIG51bGw7aWYoaT1uLndpbmRvdz09PW4/bjooaT1uLm93bmVyRG9jdW1lbnQpP2kuZGVmYXVsdFZpZXd8fGkucGFyZW50V2luZG93OndpbmRvdyxvPyhvPXQsdD0odD1yLnJlbGF0ZWRUYXJnZXR8fHIudG9FbGVtZW50KT9NKHQpOm51bGwpOm89bnVsbCxvPT09dClyZXR1cm4gbnVsbDt2YXIgYT12b2lkIDAscz12b2lkIDAsdT12b2lkIDAsYz12b2lkIDA7Im1vdXNlb3V0Ij09PWV8fCJtb3VzZW92ZXIiPT09ZT8oYT1ZdCxzPVF0Lm1vdXNlTGVhdmUsdT1RdC5tb3VzZUVudGVyLGM9Im1vdXNlIik6InBvaW50ZXJvdXQiIT09ZSYmInBvaW50ZXJvdmVyIiE9PWV8fChhPVh0LHM9UXQucG9pbnRlckxlYXZlLHU9UXQucG9pbnRlckVudGVyLGM9InBvaW50ZXIiKTt2YXIgZj1udWxsPT1vP2k6RChvKTtpZihpPW51bGw9PXQ/aTpEKHQpLChlPWEuZ2V0UG9vbGVkKHMsbyxyLG4pKS50eXBlPWMrImxlYXZlIixlLnRhcmdldD1mLGUucmVsYXRlZFRhcmdldD1pLChyPWEuZ2V0UG9vbGVkKHUsdCxyLG4pKS50eXBlPWMrImVudGVyIixyLnRhcmdldD1pLHIucmVsYXRlZFRhcmdldD1mLG49dCxvJiZuKWU6e2ZvcihpPW4sYz0wLGE9dD1vO2E7YT1VKGEpKWMrKztmb3IoYT0wLHU9aTt1O3U9VSh1KSlhKys7Zm9yKDswPGMtYTspdD1VKHQpLGMtLTtmb3IoOzA8YS1jOylpPVUoaSksYS0tO2Zvcig7Yy0tOyl7aWYodD09PWl8fHQ9PT1pLmFsdGVybmF0ZSlicmVhayBlO3Q9VSh0KSxpPVUoaSl9dD1udWxsfWVsc2UgdD1udWxsO2ZvcihpPXQsdD1bXTtvJiZvIT09aSYmKG51bGw9PT0oYz1vLmFsdGVybmF0ZSl8fGMhPT1pKTspdC5wdXNoKG8pLG89VShvKTtmb3Iobz1bXTtuJiZuIT09aSYmKG51bGw9PT0oYz1uLmFsdGVybmF0ZSl8fGMhPT1pKTspby5wdXNoKG4pLG49VShuKTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXEodFtuXSwiYnViYmxlZCIsZSk7Zm9yKG49by5sZW5ndGg7MDxuLS07KXEob1tuXSwiY2FwdHVyZWQiLHIpO3JldHVybltlLHJdfX07ZnVuY3Rpb24gWnQoZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT09MS90KXx8ZSE9PWUmJnQhPT10fXZhciBKdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGVyKGUsdCl7aWYoWnQoZSx0KSlyZXR1cm4hMDtpZigib2JqZWN0IiE9PXR5cGVvZiBlfHxudWxsPT09ZXx8Im9iamVjdCIhPT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7dmFyIHI9T2JqZWN0LmtleXMoZSksbj1PYmplY3Qua2V5cyh0KTtpZihyLmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybiExO2ZvcihuPTA7bjxyLmxlbmd0aDtuKyspaWYoIUp0LmNhbGwodCxyW25dKXx8IVp0KGVbcltuXV0sdFtyW25dXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gdHIoZSl7dmFyIHQ9ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7aWYoMCE9PSgyJnQuZWZmZWN0VGFnKSlyZXR1cm4gMTtmb3IoO3QucmV0dXJuOylpZigwIT09KDImKHQ9dC5yZXR1cm4pLmVmZmVjdFRhZykpcmV0dXJuIDF9cmV0dXJuIDM9PT10LnRhZz8yOjN9ZnVuY3Rpb24gcnIoZSl7MiE9PXRyKGUpJiZhKCIxODgiKX1mdW5jdGlvbiBucihlKXtpZighKGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpcmV0dXJuIDM9PT0odD10cihlKSkmJmEoIjE4OCIpLDE9PT10P251bGw6ZTtmb3IodmFyIHI9ZSxuPXQ7Oyl7dmFyIGk9ci5yZXR1cm4sbz1pP2kuYWx0ZXJuYXRlOm51bGw7aWYoIWl8fCFvKWJyZWFrO2lmKGkuY2hpbGQ9PT1vLmNoaWxkKXtmb3IodmFyIHM9aS5jaGlsZDtzOyl7aWYocz09PXIpcmV0dXJuIHJyKGkpLGU7aWYocz09PW4pcmV0dXJuIHJyKGkpLHQ7cz1zLnNpYmxpbmd9YSgiMTg4Iil9aWYoci5yZXR1cm4hPT1uLnJldHVybilyPWksbj1vO2Vsc2V7cz0hMTtmb3IodmFyIHU9aS5jaGlsZDt1Oyl7aWYodT09PXIpe3M9ITAscj1pLG49bzticmVha31pZih1PT09bil7cz0hMCxuPWkscj1vO2JyZWFrfXU9dS5zaWJsaW5nfWlmKCFzKXtmb3IodT1vLmNoaWxkO3U7KXtpZih1PT09cil7cz0hMCxyPW8sbj1pO2JyZWFrfWlmKHU9PT1uKXtzPSEwLG49byxyPWk7YnJlYWt9dT11LnNpYmxpbmd9c3x8YSgiMTg5Iil9fXIuYWx0ZXJuYXRlIT09biYmYSgiMTkwIil9cmV0dXJuIDMhPT1yLnRhZyYmYSgiMTg4Iiksci5zdGF0ZU5vZGUuY3VycmVudD09PXI/ZTp0fShlKSkpcmV0dXJuIG51bGw7Zm9yKHZhciB0PWU7Oyl7aWYoNT09PXQudGFnfHw2PT09dC50YWcpcmV0dXJuIHQ7aWYodC5jaGlsZCl0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtlbHNle2lmKHQ9PT1lKWJyZWFrO2Zvcig7IXQuc2libGluZzspe2lmKCF0LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ319cmV0dXJuIG51bGx9dmFyIGlyPXVlLmV4dGVuZCh7YW5pbWF0aW9uTmFtZTpudWxsLGVsYXBzZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfSksb3I9dWUuZXh0ZW5kKHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGUpe3JldHVybiJjbGlwYm9hcmREYXRhImluIGU/ZS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLGFyPUZ0LmV4dGVuZCh7cmVsYXRlZFRhcmdldDpudWxsfSk7ZnVuY3Rpb24gc3IoZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBlPzA9PT0oZT1lLmNoYXJDb2RlKSYmMTM9PT10JiYoZT0xMyk6ZT10LDEwPT09ZSYmKGU9MTMpLDMyPD1lfHwxMz09PWU/ZTowfXZhciB1cj17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sY3I9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxmcj1GdC5leHRlbmQoe2tleTpmdW5jdGlvbihlKXtpZihlLmtleSl7dmFyIHQ9dXJbZS5rZXldfHxlLmtleTtpZigiVW5pZGVudGlmaWVkIiE9PXQpcmV0dXJuIHR9cmV0dXJuImtleXByZXNzIj09PWUudHlwZT8xMz09PShlPXNyKGUpKT8iRW50ZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2NyW2Uua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxsb2NhdGlvbjpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxyZXBlYXQ6bnVsbCxsb2NhbGU6bnVsbCxnZXRNb2RpZmllclN0YXRlOkt0LGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/c3IoZSk6MH0sa2V5Q29kZTpmdW5jdGlvbihlKXtyZXR1cm4ia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/c3IoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfX0pLGxyPVl0LmV4dGVuZCh7ZGF0YVRyYW5zZmVyOm51bGx9KSxocj1GdC5leHRlbmQoe3RvdWNoZXM6bnVsbCx0YXJnZXRUb3VjaGVzOm51bGwsY2hhbmdlZFRvdWNoZXM6bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsZ2V0TW9kaWZpZXJTdGF0ZTpLdH0pLHByPXVlLmV4dGVuZCh7cHJvcGVydHlOYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSxkcj1ZdC5leHRlbmQoe2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1cm4iZGVsdGFYImluIGU/ZS5kZWx0YVg6IndoZWVsRGVsdGFYImluIGU/LWUud2hlZWxEZWx0YVg6MH0sZGVsdGFZOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVkiaW4gZT9lLmRlbHRhWToid2hlZWxEZWx0YVkiaW4gZT8tZS53aGVlbERlbHRhWToid2hlZWxEZWx0YSJpbiBlPy1lLndoZWVsRGVsdGE6MH0sZGVsdGFaOm51bGwsZGVsdGFNb2RlOm51bGx9KSx5cj1bWyJhYm9ydCIsImFib3J0Il0sWyQsImFuaW1hdGlvbkVuZCJdLFtaLCJhbmltYXRpb25JdGVyYXRpb24iXSxbSiwiYW5pbWF0aW9uU3RhcnQiXSxbImNhbnBsYXkiLCJjYW5QbGF5Il0sWyJjYW5wbGF5dGhyb3VnaCIsImNhblBsYXlUaHJvdWdoIl0sWyJkcmFnIiwiZHJhZyJdLFsiZHJhZ2VudGVyIiwiZHJhZ0VudGVyIl0sWyJkcmFnZXhpdCIsImRyYWdFeGl0Il0sWyJkcmFnbGVhdmUiLCJkcmFnTGVhdmUiXSxbImRyYWdvdmVyIiwiZHJhZ092ZXIiXSxbImR1cmF0aW9uY2hhbmdlIiwiZHVyYXRpb25DaGFuZ2UiXSxbImVtcHRpZWQiLCJlbXB0aWVkIl0sWyJlbmNyeXB0ZWQiLCJlbmNyeXB0ZWQiXSxbImVuZGVkIiwiZW5kZWQiXSxbImVycm9yIiwiZXJyb3IiXSxbImdvdHBvaW50ZXJjYXB0dXJlIiwiZ290UG9pbnRlckNhcHR1cmUiXSxbImxvYWQiLCJsb2FkIl0sWyJsb2FkZWRkYXRhIiwibG9hZGVkRGF0YSJdLFsibG9hZGVkbWV0YWRhdGEiLCJsb2FkZWRNZXRhZGF0YSJdLFsibG9hZHN0YXJ0IiwibG9hZFN0YXJ0Il0sWyJsb3N0cG9pbnRlcmNhcHR1cmUiLCJsb3N0UG9pbnRlckNhcHR1cmUiXSxbIm1vdXNlbW92ZSIsIm1vdXNlTW92ZSJdLFsibW91c2VvdXQiLCJtb3VzZU91dCJdLFsibW91c2VvdmVyIiwibW91c2VPdmVyIl0sWyJwbGF5aW5nIiwicGxheWluZyJdLFsicG9pbnRlcm1vdmUiLCJwb2ludGVyTW92ZSJdLFsicG9pbnRlcm91dCIsInBvaW50ZXJPdXQiXSxbInBvaW50ZXJvdmVyIiwicG9pbnRlck92ZXIiXSxbInByb2dyZXNzIiwicHJvZ3Jlc3MiXSxbInNjcm9sbCIsInNjcm9sbCJdLFsic2Vla2luZyIsInNlZWtpbmciXSxbInN0YWxsZWQiLCJzdGFsbGVkIl0sWyJzdXNwZW5kIiwic3VzcGVuZCJdLFsidGltZXVwZGF0ZSIsInRpbWVVcGRhdGUiXSxbInRvZ2dsZSIsInRvZ2dsZSJdLFsidG91Y2htb3ZlIiwidG91Y2hNb3ZlIl0sW2VlLCJ0cmFuc2l0aW9uRW5kIl0sWyJ3YWl0aW5nIiwid2FpdGluZyJdLFsid2hlZWwiLCJ3aGVlbCJdXSxncj17fSx2cj17fTtmdW5jdGlvbiBtcihlLHQpe3ZhciByPWVbMF0sbj0ib24iKygoZT1lWzFdKVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSkpO3Q9e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOm4sY2FwdHVyZWQ6bisiQ2FwdHVyZSJ9LGRlcGVuZGVuY2llczpbcl0saXNJbnRlcmFjdGl2ZTp0fSxncltlXT10LHZyW3JdPXR9W1siYmx1ciIsImJsdXIiXSxbImNhbmNlbCIsImNhbmNlbCJdLFsiY2xpY2siLCJjbGljayJdLFsiY2xvc2UiLCJjbG9zZSJdLFsiY29udGV4dG1lbnUiLCJjb250ZXh0TWVudSJdLFsiY29weSIsImNvcHkiXSxbImN1dCIsImN1dCJdLFsiYXV4Y2xpY2siLCJhdXhDbGljayJdLFsiZGJsY2xpY2siLCJkb3VibGVDbGljayJdLFsiZHJhZ2VuZCIsImRyYWdFbmQiXSxbImRyYWdzdGFydCIsImRyYWdTdGFydCJdLFsiZHJvcCIsImRyb3AiXSxbImZvY3VzIiwiZm9jdXMiXSxbImlucHV0IiwiaW5wdXQiXSxbImludmFsaWQiLCJpbnZhbGlkIl0sWyJrZXlkb3duIiwia2V5RG93biJdLFsia2V5cHJlc3MiLCJrZXlQcmVzcyJdLFsia2V5dXAiLCJrZXlVcCJdLFsibW91c2Vkb3duIiwibW91c2VEb3duIl0sWyJtb3VzZXVwIiwibW91c2VVcCJdLFsicGFzdGUiLCJwYXN0ZSJdLFsicGF1c2UiLCJwYXVzZSJdLFsicGxheSIsInBsYXkiXSxbInBvaW50ZXJjYW5jZWwiLCJwb2ludGVyQ2FuY2VsIl0sWyJwb2ludGVyZG93biIsInBvaW50ZXJEb3duIl0sWyJwb2ludGVydXAiLCJwb2ludGVyVXAiXSxbInJhdGVjaGFuZ2UiLCJyYXRlQ2hhbmdlIl0sWyJyZXNldCIsInJlc2V0Il0sWyJzZWVrZWQiLCJzZWVrZWQiXSxbInN1Ym1pdCIsInN1Ym1pdCJdLFsidG91Y2hjYW5jZWwiLCJ0b3VjaENhbmNlbCJdLFsidG91Y2hlbmQiLCJ0b3VjaEVuZCJdLFsidG91Y2hzdGFydCIsInRvdWNoU3RhcnQiXSxbInZvbHVtZWNoYW5nZSIsInZvbHVtZUNoYW5nZSJdXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe21yKGUsITApfSkseXIuZm9yRWFjaChmdW5jdGlvbihlKXttcihlLCExKX0pO3ZhciBicj17ZXZlbnRUeXBlczpncixpc0ludGVyYWN0aXZlVG9wTGV2ZWxFdmVudFR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PShlPXZyW2VdKSYmITA9PT1lLmlzSW50ZXJhY3RpdmV9LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9dnJbZV07aWYoIWkpcmV0dXJuIG51bGw7c3dpdGNoKGUpe2Nhc2Uia2V5cHJlc3MiOmlmKDA9PT1zcihyKSlyZXR1cm4gbnVsbDtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmU9ZnI7YnJlYWs7Y2FzZSJibHVyIjpjYXNlImZvY3VzIjplPWFyO2JyZWFrO2Nhc2UiY2xpY2siOmlmKDI9PT1yLmJ1dHRvbilyZXR1cm4gbnVsbDtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOmU9WXQ7YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6ZT1scjticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0IjplPWhyO2JyZWFrO2Nhc2UgJDpjYXNlIFo6Y2FzZSBKOmU9aXI7YnJlYWs7Y2FzZSBlZTplPXByO2JyZWFrO2Nhc2Uic2Nyb2xsIjplPUZ0O2JyZWFrO2Nhc2Uid2hlZWwiOmU9ZHI7YnJlYWs7Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJwYXN0ZSI6ZT1vcjticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjplPVh0O2JyZWFrO2RlZmF1bHQ6ZT11ZX1yZXR1cm4geih0PWUuZ2V0UG9vbGVkKGksdCxyLG4pKSx0fX0sX3I9YnIuaXNJbnRlcmFjdGl2ZVRvcExldmVsRXZlbnRUeXBlLFNyPVtdO2Z1bmN0aW9uIEVyKGUpe3ZhciB0PWUudGFyZ2V0SW5zdCxyPXQ7ZG97aWYoIXIpe2UuYW5jZXN0b3JzLnB1c2gocik7YnJlYWt9dmFyIG47Zm9yKG49cjtuLnJldHVybjspbj1uLnJldHVybjtpZighKG49MyE9PW4udGFnP251bGw6bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykpYnJlYWs7ZS5hbmNlc3RvcnMucHVzaChyKSxyPU0obil9d2hpbGUocik7Zm9yKHI9MDtyPGUuYW5jZXN0b3JzLmxlbmd0aDtyKyspe3Q9ZS5hbmNlc3RvcnNbcl07dmFyIGk9VWUoZS5uYXRpdmVFdmVudCk7bj1lLnRvcExldmVsVHlwZTtmb3IodmFyIG89ZS5uYXRpdmVFdmVudCxhPW51bGwscz0wO3M8di5sZW5ndGg7cysrKXt2YXIgdT12W3NdO3UmJih1PXUuZXh0cmFjdEV2ZW50cyhuLHQsbyxpKSkmJihhPUEoYSx1KSl9TihhKX19dmFyIHdyPSEwO2Z1bmN0aW9uIFRyKGUsdCl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIHI9KF9yKGUpP0NyOnhyKS5iaW5kKG51bGwsZSk7dC5hZGRFdmVudExpc3RlbmVyKGUsciwhMSl9ZnVuY3Rpb24gQXIoZSx0KXtpZighdClyZXR1cm4gbnVsbDt2YXIgcj0oX3IoZSk/Q3I6eHIpLmJpbmQobnVsbCxlKTt0LmFkZEV2ZW50TGlzdGVuZXIoZSxyLCEwKX1mdW5jdGlvbiBDcihlLHQpe1JlKHhyLGUsdCl9ZnVuY3Rpb24geHIoZSx0KXtpZih3cil7dmFyIHI9VWUodCk7aWYobnVsbD09PShyPU0ocikpfHwibnVtYmVyIiE9PXR5cGVvZiByLnRhZ3x8Mj09PXRyKHIpfHwocj1udWxsKSxTci5sZW5ndGgpe3ZhciBuPVNyLnBvcCgpO24udG9wTGV2ZWxUeXBlPWUsbi5uYXRpdmVFdmVudD10LG4udGFyZ2V0SW5zdD1yLGU9bn1lbHNlIGU9e3RvcExldmVsVHlwZTplLG5hdGl2ZUV2ZW50OnQsdGFyZ2V0SW5zdDpyLGFuY2VzdG9yczpbXX07dHJ5e0xlKEVyLGUpfWZpbmFsbHl7ZS50b3BMZXZlbFR5cGU9bnVsbCxlLm5hdGl2ZUV2ZW50PW51bGwsZS50YXJnZXRJbnN0PW51bGwsZS5hbmNlc3RvcnMubGVuZ3RoPTAsMTA+U3IubGVuZ3RoJiZTci5wdXNoKGUpfX19dmFyIElyPXt9LGtyPTAsT3I9Il9yZWFjdExpc3RlbmVyc0lEIisoIiIrTWF0aC5yYW5kb20oKSkuc2xpY2UoMik7ZnVuY3Rpb24gTnIoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLE9yKXx8KGVbT3JdPWtyKyssSXJbZVtPcl1dPXt9KSxJcltlW09yXV19ZnVuY3Rpb24gUHIoZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YoZT1lfHwoInVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaCh0KXtyZXR1cm4gZS5ib2R5fX1mdW5jdGlvbiBScihlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gQnIoZSx0KXt2YXIgcixuPVJyKGUpO2ZvcihlPTA7bjspe2lmKDM9PT1uLm5vZGVUeXBlKXtpZihyPWUrbi50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmcj49dClyZXR1cm57bm9kZTpuLG9mZnNldDp0LWV9O2U9cn1lOntmb3IoO247KXtpZihuLm5leHRTaWJsaW5nKXtuPW4ubmV4dFNpYmxpbmc7YnJlYWsgZX1uPW4ucGFyZW50Tm9kZX1uPXZvaWQgMH1uPVJyKG4pfX1mdW5jdGlvbiBNcigpe2Zvcih2YXIgZT13aW5kb3csdD1QcigpO3QgaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciByPSJzdHJpbmciPT09dHlwZW9mIHQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKG4pe3I9ITF9aWYoIXIpYnJlYWs7dD1QcigoZT10LmNvbnRlbnRXaW5kb3cpLmRvY3VtZW50KX1yZXR1cm4gdH1mdW5jdGlvbiBMcihlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQmJigiaW5wdXQiPT09dCYmKCJ0ZXh0Ij09PWUudHlwZXx8InNlYXJjaCI9PT1lLnR5cGV8fCJ0ZWwiPT09ZS50eXBlfHwidXJsIj09PWUudHlwZXx8InBhc3N3b3JkIj09PWUudHlwZSl8fCJ0ZXh0YXJlYSI9PT10fHwidHJ1ZSI9PT1lLmNvbnRlbnRFZGl0YWJsZSl9ZnVuY3Rpb24gRHIoZSl7dmFyIHQ9TXIoKSxyPWUuZm9jdXNlZEVsZW0sbj1lLnNlbGVjdGlvblJhbmdlO2lmKHQhPT1yJiZyJiZyLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxyKXtyZXR1cm4hKCF0fHwhcikmJih0PT09cnx8KCF0fHwzIT09dC5ub2RlVHlwZSkmJihyJiYzPT09ci5ub2RlVHlwZT9lKHQsci5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gdD90LmNvbnRhaW5zKHIpOiEhdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmISEoMTYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihyKSkpKX0oci5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyKSl7aWYobnVsbCE9PW4mJkxyKHIpKWlmKHQ9bi5zdGFydCx2b2lkIDA9PT0oZT1uLmVuZCkmJihlPXQpLCJzZWxlY3Rpb25TdGFydCJpbiByKXIuc2VsZWN0aW9uU3RhcnQ9dCxyLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihlLHIudmFsdWUubGVuZ3RoKTtlbHNlIGlmKChlPSh0PXIub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZ0LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbil7ZT1lLmdldFNlbGVjdGlvbigpO3ZhciBpPXIudGV4dENvbnRlbnQubGVuZ3RoLG89TWF0aC5taW4obi5zdGFydCxpKTtuPXZvaWQgMD09PW4uZW5kP286TWF0aC5taW4obi5lbmQsaSksIWUuZXh0ZW5kJiZvPm4mJihpPW4sbj1vLG89aSksaT1CcihyLG8pO3ZhciBhPUJyKHIsbik7aSYmYSYmKDEhPT1lLnJhbmdlQ291bnR8fGUuYW5jaG9yTm9kZSE9PWkubm9kZXx8ZS5hbmNob3JPZmZzZXQhPT1pLm9mZnNldHx8ZS5mb2N1c05vZGUhPT1hLm5vZGV8fGUuZm9jdXNPZmZzZXQhPT1hLm9mZnNldCkmJigodD10LmNyZWF0ZVJhbmdlKCkpLnNldFN0YXJ0KGkubm9kZSxpLm9mZnNldCksZS5yZW1vdmVBbGxSYW5nZXMoKSxvPm4/KGUuYWRkUmFuZ2UodCksZS5leHRlbmQoYS5ub2RlLGEub2Zmc2V0KSk6KHQuc2V0RW5kKGEubm9kZSxhLm9mZnNldCksZS5hZGRSYW5nZSh0KSkpfWZvcih0PVtdLGU9cjtlPWUucGFyZW50Tm9kZTspMT09PWUubm9kZVR5cGUmJnQucHVzaCh7ZWxlbWVudDplLGxlZnQ6ZS5zY3JvbGxMZWZ0LHRvcDplLnNjcm9sbFRvcH0pO2ZvcigiZnVuY3Rpb24iPT09dHlwZW9mIHIuZm9jdXMmJnIuZm9jdXMoKSxyPTA7cjx0Lmxlbmd0aDtyKyspKGU9dFtyXSkuZWxlbWVudC5zY3JvbGxMZWZ0PWUubGVmdCxlLmVsZW1lbnQuc2Nyb2xsVG9wPWUudG9wfX12YXIganI9RyYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxVcj17c2VsZWN0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDoib25TZWxlY3QiLGNhcHR1cmVkOiJvblNlbGVjdENhcHR1cmUifSxkZXBlbmRlbmNpZXM6ImJsdXIgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1cyBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKX19LEZyPW51bGwsVnI9bnVsbCxxcj1udWxsLEtyPSExO2Z1bmN0aW9uIHpyKGUsdCl7dmFyIHI9dC53aW5kb3c9PT10P3QuZG9jdW1lbnQ6OT09PXQubm9kZVR5cGU/dDp0Lm93bmVyRG9jdW1lbnQ7cmV0dXJuIEtyfHxudWxsPT1Gcnx8RnIhPT1QcihyKT9udWxsOigic2VsZWN0aW9uU3RhcnQiaW4ocj1GcikmJkxyKHIpP3I9e3N0YXJ0OnIuc2VsZWN0aW9uU3RhcnQsZW5kOnIuc2VsZWN0aW9uRW5kfTpyPXthbmNob3JOb2RlOihyPShyLm93bmVyRG9jdW1lbnQmJnIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSkuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6ci5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOnIuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OnIuZm9jdXNPZmZzZXR9LHFyJiZlcihxcixyKT9udWxsOihxcj1yLChlPXVlLmdldFBvb2xlZChVci5zZWxlY3QsVnIsZSx0KSkudHlwZT0ic2VsZWN0IixlLnRhcmdldD1Gcix6KGUpLGUpKX12YXIgR3I9e2V2ZW50VHlwZXM6VXIsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQscixuKXt2YXIgaSxvPW4ud2luZG93PT09bj9uLmRvY3VtZW50Ojk9PT1uLm5vZGVUeXBlP246bi5vd25lckRvY3VtZW50O2lmKCEoaT0hbykpe2U6e289TnIobyksaT1fLm9uU2VsZWN0O2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz1pW2FdO2lmKCFvLmhhc093blByb3BlcnR5KHMpfHwhb1tzXSl7bz0hMTticmVhayBlfX1vPSEwfWk9IW99aWYoaSlyZXR1cm4gbnVsbDtzd2l0Y2gobz10P0QodCk6d2luZG93LGUpe2Nhc2UiZm9jdXMiOihqZShvKXx8InRydWUiPT09by5jb250ZW50RWRpdGFibGUpJiYoRnI9byxWcj10LHFyPW51bGwpO2JyZWFrO2Nhc2UiYmx1ciI6cXI9VnI9RnI9bnVsbDticmVhaztjYXNlIm1vdXNlZG93biI6S3I9ITA7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJtb3VzZXVwIjpjYXNlImRyYWdlbmQiOnJldHVybiBLcj0hMSx6cihyLG4pO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihqcilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOnJldHVybiB6cihyLG4pfXJldHVybiBudWxsfX07ZnVuY3Rpb24gSHIoZSx0KXtyZXR1cm4gZT1pKHtjaGlsZHJlbjp2b2lkIDB9LHQpLCh0PWZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiBuLkNoaWxkcmVuLmZvckVhY2goZSxmdW5jdGlvbihlKXtudWxsIT1lJiYodCs9ZSl9KSx0fSh0LmNoaWxkcmVuKSkmJihlLmNoaWxkcmVuPXQpLGV9ZnVuY3Rpb24gV3IoZSx0LHIsbil7aWYoZT1lLm9wdGlvbnMsdCl7dD17fTtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl0WyIkIityW2ldXT0hMDtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKWk9dC5oYXNPd25Qcm9wZXJ0eSgiJCIrZVtyXS52YWx1ZSksZVtyXS5zZWxlY3RlZCE9PWkmJihlW3JdLnNlbGVjdGVkPWkpLGkmJm4mJihlW3JdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iocj0iIittdChyKSx0PW51bGwsaT0wO2k8ZS5sZW5ndGg7aSsrKXtpZihlW2ldLnZhbHVlPT09cilyZXR1cm4gZVtpXS5zZWxlY3RlZD0hMCx2b2lkKG4mJihlW2ldLmRlZmF1bHRTZWxlY3RlZD0hMCkpO251bGwhPT10fHxlW2ldLmRpc2FibGVkfHwodD1lW2ldKX1udWxsIT09dCYmKHQuc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiBZcihlLHQpe3JldHVybiBudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZhKCI5MSIpLGkoe30sdCx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIFhyKGUsdCl7dmFyIHI9dC52YWx1ZTtudWxsPT1yJiYocj10LmRlZmF1bHRWYWx1ZSxudWxsIT0odD10LmNoaWxkcmVuKSYmKG51bGwhPXImJmEoIjkyIiksQXJyYXkuaXNBcnJheSh0KSYmKDE+PXQubGVuZ3RofHxhKCI5MyIpLHQ9dFswXSkscj10KSxudWxsPT1yJiYocj0iIikpLGUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOm10KHIpfX1mdW5jdGlvbiBRcihlLHQpe3ZhciByPW10KHQudmFsdWUpLG49bXQodC5kZWZhdWx0VmFsdWUpO251bGwhPXImJigocj0iIityKSE9PWUudmFsdWUmJihlLnZhbHVlPXIpLG51bGw9PXQuZGVmYXVsdFZhbHVlJiZlLmRlZmF1bHRWYWx1ZSE9PXImJihlLmRlZmF1bHRWYWx1ZT1yKSksbnVsbCE9biYmKGUuZGVmYXVsdFZhbHVlPSIiK24pfWZ1bmN0aW9uICRyKGUpe3ZhciB0PWUudGV4dENvbnRlbnQ7dD09PWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJihlLnZhbHVlPXQpfWsuaW5qZWN0RXZlbnRQbHVnaW5PcmRlcigiUmVzcG9uZGVyRXZlbnRQbHVnaW4gU2ltcGxlRXZlbnRQbHVnaW4gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIENoYW5nZUV2ZW50UGx1Z2luIFNlbGVjdEV2ZW50UGx1Z2luIEJlZm9yZUlucHV0RXZlbnRQbHVnaW4iLnNwbGl0KCIgIikpLFM9aixFPUwsdz1ELGsuaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lKHtTaW1wbGVFdmVudFBsdWdpbjpicixFbnRlckxlYXZlRXZlbnRQbHVnaW46JHQsQ2hhbmdlRXZlbnRQbHVnaW46VXQsU2VsZWN0RXZlbnRQbHVnaW46R3IsQmVmb3JlSW5wdXRFdmVudFBsdWdpbjpBZX0pO3ZhciBacj17aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsbWF0aG1sOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn07ZnVuY3Rpb24gSnIoZSl7c3dpdGNoKGUpe2Nhc2Uic3ZnIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Nhc2UibWF0aCI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiO2RlZmF1bHQ6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwifX1mdW5jdGlvbiBlbihlLHQpe3JldHVybiBudWxsPT1lfHwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1lP0pyKHQpOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI9PT1lJiYiZm9yZWlnbk9iamVjdCI9PT10PyJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjplfXZhciB0bixybj12b2lkIDAsbm49KHRuPWZ1bmN0aW9uKGUsdCl7aWYoZS5uYW1lc3BhY2VVUkkhPT1aci5zdmd8fCJpbm5lckhUTUwiaW4gZSllLmlubmVySFRNTD10O2Vsc2V7Zm9yKChybj1ybnx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK3QrIjwvc3ZnPiIsdD1ybi5maXJzdENoaWxkO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2Zvcig7dC5maXJzdENoaWxkOyllLmFwcGVuZENoaWxkKHQuZmlyc3RDaGlsZCl9fSwidW5kZWZpbmVkIiE9PXR5cGVvZiBNU0FwcCYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24oZSx0LHIsbil7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gdG4oZSx0KX0pfTp0bik7ZnVuY3Rpb24gb24oZSx0KXtpZih0KXt2YXIgcj1lLmZpcnN0Q2hpbGQ7aWYociYmcj09PWUubGFzdENoaWxkJiYzPT09ci5ub2RlVHlwZSlyZXR1cm4gdm9pZChyLm5vZGVWYWx1ZT10KX1lLnRleHRDb250ZW50PXR9dmFyIGFuPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxzbj1bIldlYmtpdCIsIm1zIiwiTW96IiwiTyJdO2Z1bmN0aW9uIHVuKGUsdCxyKXtyZXR1cm4gbnVsbD09dHx8ImJvb2xlYW4iPT09dHlwZW9mIHR8fCIiPT09dD8iIjpyfHwibnVtYmVyIiE9PXR5cGVvZiB0fHwwPT09dHx8YW4uaGFzT3duUHJvcGVydHkoZSkmJmFuW2VdPygiIit0KS50cmltKCk6dCsicHgifWZ1bmN0aW9uIGNuKGUsdCl7Zm9yKHZhciByIGluIGU9ZS5zdHlsZSx0KWlmKHQuaGFzT3duUHJvcGVydHkocikpe3ZhciBuPTA9PT1yLmluZGV4T2YoIi0tIiksaT11bihyLHRbcl0sbik7ImZsb2F0Ij09PXImJihyPSJjc3NGbG9hdCIpLG4/ZS5zZXRQcm9wZXJ0eShyLGkpOmVbcl09aX19T2JqZWN0LmtleXMoYW4pLmZvckVhY2goZnVuY3Rpb24oZSl7c24uZm9yRWFjaChmdW5jdGlvbih0KXt0PXQrZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKSxhblt0XT1hbltlXX0pfSk7dmFyIGZuPWkoe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7ZnVuY3Rpb24gbG4oZSx0KXt0JiYoZm5bZV0mJihudWxsIT10LmNoaWxkcmVufHxudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSYmYSgiMTM3IixlLCIiKSxudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiYobnVsbCE9dC5jaGlsZHJlbiYmYSgiNjAiKSwib2JqZWN0Ij09PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiYiX19odG1sImluIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8fGEoIjYxIikpLG51bGwhPXQuc3R5bGUmJiJvYmplY3QiIT09dHlwZW9mIHQuc3R5bGUmJmEoIjYyIiwiIikpfWZ1bmN0aW9uIGhuKGUsdCl7aWYoLTE9PT1lLmluZGV4T2YoIi0iKSlyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0LmlzO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIHBuKGUsdCl7dmFyIHI9TnIoZT05PT09ZS5ub2RlVHlwZXx8MTE9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50KTt0PV9bdF07Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aWYoIXIuaGFzT3duUHJvcGVydHkoaSl8fCFyW2ldKXtzd2l0Y2goaSl7Y2FzZSJzY3JvbGwiOkFyKCJzY3JvbGwiLGUpO2JyZWFrO2Nhc2UiZm9jdXMiOmNhc2UiYmx1ciI6QXIoImZvY3VzIixlKSxBcigiYmx1ciIsZSksci5ibHVyPSEwLHIuZm9jdXM9ITA7YnJlYWs7Y2FzZSJjYW5jZWwiOmNhc2UiY2xvc2UiOkZlKGkpJiZBcihpLGUpO2JyZWFrO2Nhc2UiaW52YWxpZCI6Y2FzZSJzdWJtaXQiOmNhc2UicmVzZXQiOmJyZWFrO2RlZmF1bHQ6LTE9PT10ZS5pbmRleE9mKGkpJiZUcihpLGUpfXJbaV09ITB9fX1mdW5jdGlvbiBkbigpe312YXIgeW49bnVsbCxnbj1udWxsO2Z1bmN0aW9uIHZuKGUsdCl7c3dpdGNoKGUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6cmV0dXJuISF0LmF1dG9Gb2N1c31yZXR1cm4hMX1mdW5jdGlvbiBtbihlLHQpe3JldHVybiJ0ZXh0YXJlYSI9PT1lfHwib3B0aW9uIj09PWV8fCJub3NjcmlwdCI9PT1lfHwic3RyaW5nIj09PXR5cGVvZiB0LmNoaWxkcmVufHwibnVtYmVyIj09PXR5cGVvZiB0LmNoaWxkcmVufHwib2JqZWN0Ij09PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09dC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIGJuPSJmdW5jdGlvbiI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxfbj0iZnVuY3Rpb24iPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLFNuPW8udW5zdGFibGVfc2NoZWR1bGVDYWw="
}
Changelog:
{
"2020.03.29 15:17": "base64:Lm5hbWU9IiIpLGUuZGVmYXVsdENoZWNrZWQ9IWUuZGVmYXVsdENoZWNrZWQsZS5kZWZhdWx0Q2hlY2tlZD0hIWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCwiIiE9PXImJihlLm5hbWU9cil9ZnVuY3Rpb24gVHQoZSx0LHIpeyJudW1iZXIiPT09dCYmZS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lfHwobnVsbD09cj9lLmRlZmF1bHRWYWx1ZT0iIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmUuZGVmYXVsdFZhbHVlIT09IiIrciYmKGUuZGVmYXVsdFZhbHVlPSIiK3IpKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoeXQsZ3QpO2R0W3RdPW5ldyBwdCh0LDEsITEsZSxudWxsKX0pLCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6aHJlZiB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh5dCxndCk7ZHRbdF09bmV3IHB0KHQsMSwhMSxlLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIil9KSxbInhtbDpiYXNlIiwieG1sOmxhbmciLCJ4bWw6c3BhY2UiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh5dCxndCk7ZHRbdF09bmV3IHB0KHQsMSwhMSxlLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiKX0pLFsidGFiSW5kZXgiLCJjcm9zc09yaWdpbiJdLmZvckVhY2goZnVuY3Rpb24oZSl7ZHRbZV09bmV3IHB0KGUsMSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCl9KTt2YXIgQXQ9e2NoYW5nZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6Im9uQ2hhbmdlIixjYXB0dXJlZDoib25DaGFuZ2VDYXB0dXJlIn0sZGVwZW5kZW5jaWVzOiJibHVyIGNoYW5nZSBjbGljayBmb2N1cyBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKX19O2Z1bmN0aW9uIEN0KGUsdCxyKXtyZXR1cm4oZT11ZS5nZXRQb29sZWQoQXQuY2hhbmdlLGUsdCxyKSkudHlwZT0iY2hhbmdlIixPZShyKSx6KGUpLGV9dmFyIHh0PW51bGwsSXQ9bnVsbDtmdW5jdGlvbiBrdChlKXtOKGUpfWZ1bmN0aW9uIE90KGUpe2lmKEtlKEQoZSkpKXJldHVybiBlfWZ1bmN0aW9uIE50KGUsdCl7aWYoImNoYW5nZSI9PT1lKXJldHVybiB0fXZhciBQdD0hMTtmdW5jdGlvbiBSdCgpe3h0JiYoeHQuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLEJ0KSxJdD14dD1udWxsKX1mdW5jdGlvbiBCdChlKXsidmFsdWUiPT09ZS5wcm9wZXJ0eU5hbWUmJk90KEl0KSYmTGUoa3QsZT1DdChJdCxlLFVlKGUpKSl9ZnVuY3Rpb24gTXQoZSx0LHIpeyJmb2N1cyI9PT1lPyhSdCgpLEl0PXIsKHh0PXQpLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixCdCkpOiJibHVyIj09PWUmJlJ0KCl9ZnVuY3Rpb24gTHQoZSl7aWYoInNlbGVjdGlvbmNoYW5nZSI9PT1lfHwia2V5dXAiPT09ZXx8ImtleWRvd24iPT09ZSlyZXR1cm4gT3QoSXQpfWZ1bmN0aW9uIER0KGUsdCl7aWYoImNsaWNrIj09PWUpcmV0dXJuIE90KHQpfWZ1bmN0aW9uIGp0KGUsdCl7aWYoImlucHV0Ij09PWV8fCJjaGFuZ2UiPT09ZSlyZXR1cm4gT3QodCl9RyYmKFB0PUZlKCJpbnB1dCIpJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpKTt2YXIgVXQ9e2V2ZW50VHlwZXM6QXQsX2lzSW5wdXRFdmVudFN1cHBvcnRlZDpQdCxleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGUsdCxyLG4pe3ZhciBpPXQ/RCh0KTp3aW5kb3csbz12b2lkIDAsYT12b2lkIDAscz1pLm5vZGVOYW1lJiZpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoInNlbGVjdCI9PT1zfHwiaW5wdXQiPT09cyYmImZpbGUiPT09aS50eXBlP289TnQ6amUoaSk/UHQ/bz1qdDoobz1MdCxhPU10KToocz1pLm5vZGVOYW1lKSYmImlucHV0Ij09PXMudG9Mb3dlckNhc2UoKSYmKCJjaGVja2JveCI9PT1pLnR5cGV8fCJyYWRpbyI9PT1pLnR5cGUpJiYobz1EdCksbyYmKG89byhlLHQpKSlyZXR1cm4gQ3QobyxyLG4pO2EmJmEoZSxpLHQpLCJibHVyIj09PWUmJihlPWkuX3dyYXBwZXJTdGF0ZSkmJmUuY29udHJvbGxlZCYmIm51bWJlciI9PT1pLnR5cGUmJlR0KGksIm51bWJlciIsaS52YWx1ZSl9fSxGdD11ZS5leHRlbmQoe3ZpZXc6bnVsbCxkZXRhaWw6bnVsbH0pLFZ0PXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gcXQoZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPVZ0W2VdKSYmISF0W2VdfWZ1bmN0aW9uIEt0KCl7cmV0dXJuIHF0fXZhciB6dD0wLEd0PTAsSHQ9ITEsV3Q9ITEsWXQ9RnQuZXh0ZW5kKHtzY3JlZW5YOm51bGwsc2NyZWVuWTpudWxsLGNsaWVudFg6bnVsbCxjbGllbnRZOm51bGwscGFnZVg6bnVsbCxwYWdlWTpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxnZXRNb2RpZmllclN0YXRlOkt0LGJ1dHRvbjpudWxsLGJ1dHRvbnM6bnVsbCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlbGF0ZWRUYXJnZXR8fChlLmZyb21FbGVtZW50PT09ZS5zcmNFbGVtZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQpfSxtb3ZlbWVudFg6ZnVuY3Rpb24oZSl7aWYoIm1vdmVtZW50WCJpbiBlKXJldHVybiBlLm1vdmVtZW50WDt2YXIgdD16dDtyZXR1cm4genQ9ZS5zY3JlZW5YLEh0PyJtb3VzZW1vdmUiPT09ZS50eXBlP2Uuc2NyZWVuWC10OjA6KEh0PSEwLDApfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7aWYoIm1vdmVtZW50WSJpbiBlKXJldHVybiBlLm1vdmVtZW50WTt2YXIgdD1HdDtyZXR1cm4gR3Q9ZS5zY3JlZW5ZLFd0PyJtb3VzZW1vdmUiPT09ZS50eXBlP2Uuc2NyZWVuWS10OjA6KFd0PSEwLDApfX0pLFh0PVl0LmV4dGVuZCh7cG9pbnRlcklkOm51bGwsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxwcmVzc3VyZTpudWxsLHRhbmdlbnRpYWxQcmVzc3VyZTpudWxsLHRpbHRYOm51bGwsdGlsdFk6bnVsbCx0d2lzdDpudWxsLHBvaW50ZXJUeXBlOm51bGwsaXNQcmltYXJ5Om51bGx9KSxRdD17bW91c2VFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZToib25Nb3VzZUVudGVyIixkZXBlbmRlbmNpZXM6WyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdfSxtb3VzZUxlYXZlOntyZWdpc3RyYXRpb25OYW1lOiJvbk1vdXNlTGVhdmUiLGRlcGVuZGVuY2llczpbIm1vdXNlb3V0IiwibW91c2VvdmVyIl19LHBvaW50ZXJFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZToib25Qb2ludGVyRW50ZXIiLGRlcGVuZGVuY2llczpbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdfSxwb2ludGVyTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6Im9uUG9pbnRlckxlYXZlIixkZXBlbmRlbmNpZXM6WyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXX19LCR0PXtldmVudFR5cGVzOlF0LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9Im1vdXNlb3ZlciI9PT1lfHwicG9pbnRlcm92ZXIiPT09ZSxvPSJtb3VzZW91dCI9PT1lfHwicG9pbnRlcm91dCI9PT1lO2lmKGkmJihyLnJlbGF0ZWRUYXJnZXR8fHIuZnJvbUVsZW1lbnQpfHwhbyYmIWkpcmV0dXJuIG51bGw7aWYoaT1uLndpbmRvdz09PW4/bjooaT1uLm93bmVyRG9jdW1lbnQpP2kuZGVmYXVsdFZpZXd8fGkucGFyZW50V2luZG93OndpbmRvdyxvPyhvPXQsdD0odD1yLnJlbGF0ZWRUYXJnZXR8fHIudG9FbGVtZW50KT9NKHQpOm51bGwpOm89bnVsbCxvPT09dClyZXR1cm4gbnVsbDt2YXIgYT12b2lkIDAscz12b2lkIDAsdT12b2lkIDAsYz12b2lkIDA7Im1vdXNlb3V0Ij09PWV8fCJtb3VzZW92ZXIiPT09ZT8oYT1ZdCxzPVF0Lm1vdXNlTGVhdmUsdT1RdC5tb3VzZUVudGVyLGM9Im1vdXNlIik6InBvaW50ZXJvdXQiIT09ZSYmInBvaW50ZXJvdmVyIiE9PWV8fChhPVh0LHM9UXQucG9pbnRlckxlYXZlLHU9UXQucG9pbnRlckVudGVyLGM9InBvaW50ZXIiKTt2YXIgZj1udWxsPT1vP2k6RChvKTtpZihpPW51bGw9PXQ/aTpEKHQpLChlPWEuZ2V0UG9vbGVkKHMsbyxyLG4pKS50eXBlPWMrImxlYXZlIixlLnRhcmdldD1mLGUucmVsYXRlZFRhcmdldD1pLChyPWEuZ2V0UG9vbGVkKHUsdCxyLG4pKS50eXBlPWMrImVudGVyIixyLnRhcmdldD1pLHIucmVsYXRlZFRhcmdldD1mLG49dCxvJiZuKWU6e2ZvcihpPW4sYz0wLGE9dD1vO2E7YT1VKGEpKWMrKztmb3IoYT0wLHU9aTt1O3U9VSh1KSlhKys7Zm9yKDswPGMtYTspdD1VKHQpLGMtLTtmb3IoOzA8YS1jOylpPVUoaSksYS0tO2Zvcig7Yy0tOyl7aWYodD09PWl8fHQ9PT1pLmFsdGVybmF0ZSlicmVhayBlO3Q9VSh0KSxpPVUoaSl9dD1udWxsfWVsc2UgdD1udWxsO2ZvcihpPXQsdD1bXTtvJiZvIT09aSYmKG51bGw9PT0oYz1vLmFsdGVybmF0ZSl8fGMhPT1pKTspdC5wdXNoKG8pLG89VShvKTtmb3Iobz1bXTtuJiZuIT09aSYmKG51bGw9PT0oYz1uLmFsdGVybmF0ZSl8fGMhPT1pKTspby5wdXNoKG4pLG49VShuKTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXEodFtuXSwiYnViYmxlZCIsZSk7Zm9yKG49by5sZW5ndGg7MDxuLS07KXEob1tuXSwiY2FwdHVyZWQiLHIpO3JldHVybltlLHJdfX07ZnVuY3Rpb24gWnQoZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT09MS90KXx8ZSE9PWUmJnQhPT10fXZhciBKdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGVyKGUsdCl7aWYoWnQoZSx0KSlyZXR1cm4hMDtpZigib2JqZWN0IiE9PXR5cGVvZiBlfHxudWxsPT09ZXx8Im9iamVjdCIhPT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7dmFyIHI9T2JqZWN0LmtleXMoZSksbj1PYmplY3Qua2V5cyh0KTtpZihyLmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybiExO2ZvcihuPTA7bjxyLmxlbmd0aDtuKyspaWYoIUp0LmNhbGwodCxyW25dKXx8IVp0KGVbcltuXV0sdFtyW25dXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gdHIoZSl7dmFyIHQ9ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7aWYoMCE9PSgyJnQuZWZmZWN0VGFnKSlyZXR1cm4gMTtmb3IoO3QucmV0dXJuOylpZigwIT09KDImKHQ9dC5yZXR1cm4pLmVmZmVjdFRhZykpcmV0dXJuIDF9cmV0dXJuIDM9PT10LnRhZz8yOjN9ZnVuY3Rpb24gcnIoZSl7MiE9PXRyKGUpJiZhKCIxODgiKX1mdW5jdGlvbiBucihlKXtpZighKGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpcmV0dXJuIDM9PT0odD10cihlKSkmJmEoIjE4OCIpLDE9PT10P251bGw6ZTtmb3IodmFyIHI9ZSxuPXQ7Oyl7dmFyIGk9ci5yZXR1cm4sbz1pP2kuYWx0ZXJuYXRlOm51bGw7aWYoIWl8fCFvKWJyZWFrO2lmKGkuY2hpbGQ9PT1vLmNoaWxkKXtmb3IodmFyIHM9aS5jaGlsZDtzOyl7aWYocz09PXIpcmV0dXJuIHJyKGkpLGU7aWYocz09PW4pcmV0dXJuIHJyKGkpLHQ7cz1zLnNpYmxpbmd9YSgiMTg4Iil9aWYoci5yZXR1cm4hPT1uLnJldHVybilyPWksbj1vO2Vsc2V7cz0hMTtmb3IodmFyIHU9aS5jaGlsZDt1Oyl7aWYodT09PXIpe3M9ITAscj1pLG49bzticmVha31pZih1PT09bil7cz0hMCxuPWkscj1vO2JyZWFrfXU9dS5zaWJsaW5nfWlmKCFzKXtmb3IodT1vLmNoaWxkO3U7KXtpZih1PT09cil7cz0hMCxyPW8sbj1pO2JyZWFrfWlmKHU9PT1uKXtzPSEwLG49byxyPWk7YnJlYWt9dT11LnNpYmxpbmd9c3x8YSgiMTg5Iil9fXIuYWx0ZXJuYXRlIT09biYmYSgiMTkwIil9cmV0dXJuIDMhPT1yLnRhZyYmYSgiMTg4Iiksci5zdGF0ZU5vZGUuY3VycmVudD09PXI/ZTp0fShlKSkpcmV0dXJuIG51bGw7Zm9yKHZhciB0PWU7Oyl7aWYoNT09PXQudGFnfHw2PT09dC50YWcpcmV0dXJuIHQ7aWYodC5jaGlsZCl0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtlbHNle2lmKHQ9PT1lKWJyZWFrO2Zvcig7IXQuc2libGluZzspe2lmKCF0LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ319cmV0dXJuIG51bGx9dmFyIGlyPXVlLmV4dGVuZCh7YW5pbWF0aW9uTmFtZTpudWxsLGVsYXBzZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfSksb3I9dWUuZXh0ZW5kKHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGUpe3JldHVybiJjbGlwYm9hcmREYXRhImluIGU/ZS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLGFyPUZ0LmV4dGVuZCh7cmVsYXRlZFRhcmdldDpudWxsfSk7ZnVuY3Rpb24gc3IoZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBlPzA9PT0oZT1lLmNoYXJDb2RlKSYmMTM9PT10JiYoZT0xMyk6ZT10LDEwPT09ZSYmKGU9MTMpLDMyPD1lfHwxMz09PWU/ZTowfXZhciB1cj17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sY3I9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxmcj1GdC5leHRlbmQoe2tleTpmdW5jdGlvbihlKXtpZihlLmtleSl7dmFyIHQ9dXJbZS5rZXldfHxlLmtleTtpZigiVW5pZGVudGlmaWVkIiE9PXQpcmV0dXJuIHR9cmV0dXJuImtleXByZXNzIj09PWUudHlwZT8xMz09PShlPXNyKGUpKT8iRW50ZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2NyW2Uua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxsb2NhdGlvbjpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxyZXBlYXQ6bnVsbCxsb2NhbGU6bnVsbCxnZXRNb2RpZmllclN0YXRlOkt0LGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/c3IoZSk6MH0sa2V5Q29kZTpmdW5jdGlvbihlKXtyZXR1cm4ia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/c3IoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfX0pLGxyPVl0LmV4dGVuZCh7ZGF0YVRyYW5zZmVyOm51bGx9KSxocj1GdC5leHRlbmQoe3RvdWNoZXM6bnVsbCx0YXJnZXRUb3VjaGVzOm51bGwsY2hhbmdlZFRvdWNoZXM6bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsZ2V0TW9kaWZpZXJTdGF0ZTpLdH0pLHByPXVlLmV4dGVuZCh7cHJvcGVydHlOYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSxkcj1ZdC5leHRlbmQoe2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1cm4iZGVsdGFYImluIGU/ZS5kZWx0YVg6IndoZWVsRGVsdGFYImluIGU/LWUud2hlZWxEZWx0YVg6MH0sZGVsdGFZOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVkiaW4gZT9lLmRlbHRhWToid2hlZWxEZWx0YVkiaW4gZT8tZS53aGVlbERlbHRhWToid2hlZWxEZWx0YSJpbiBlPy1lLndoZWVsRGVsdGE6MH0sZGVsdGFaOm51bGwsZGVsdGFNb2RlOm51bGx9KSx5cj1bWyJhYm9ydCIsImFib3J0Il0sWyQsImFuaW1hdGlvbkVuZCJdLFtaLCJhbmltYXRpb25JdGVyYXRpb24iXSxbSiwiYW5pbWF0aW9uU3RhcnQiXSxbImNhbnBsYXkiLCJjYW5QbGF5Il0sWyJjYW5wbGF5dGhyb3VnaCIsImNhblBsYXlUaHJvdWdoIl0sWyJkcmFnIiwiZHJhZyJdLFsiZHJhZ2VudGVyIiwiZHJhZ0VudGVyIl0sWyJkcmFnZXhpdCIsImRyYWdFeGl0Il0sWyJkcmFnbGVhdmUiLCJkcmFnTGVhdmUiXSxbImRyYWdvdmVyIiwiZHJhZ092ZXIiXSxbImR1cmF0aW9uY2hhbmdlIiwiZHVyYXRpb25DaGFuZ2UiXSxbImVtcHRpZWQiLCJlbXB0aWVkIl0sWyJlbmNyeXB0ZWQiLCJlbmNyeXB0ZWQiXSxbImVuZGVkIiwiZW5kZWQiXSxbImVycm9yIiwiZXJyb3IiXSxbImdvdHBvaW50ZXJjYXB0dXJlIiwiZ290UG9pbnRlckNhcHR1cmUiXSxbImxvYWQiLCJsb2FkIl0sWyJsb2FkZWRkYXRhIiwibG9hZGVkRGF0YSJdLFsibG9hZGVkbWV0YWRhdGEiLCJsb2FkZWRNZXRhZGF0YSJdLFsibG9hZHN0YXJ0IiwibG9hZFN0YXJ0Il0sWyJsb3N0cG9pbnRlcmNhcHR1cmUiLCJsb3N0UG9pbnRlckNhcHR1cmUiXSxbIm1vdXNlbW92ZSIsIm1vdXNlTW92ZSJdLFsibW91c2VvdXQiLCJtb3VzZU91dCJdLFsibW91c2VvdmVyIiwibW91c2VPdmVyIl0sWyJwbGF5aW5nIiwicGxheWluZyJdLFsicG9pbnRlcm1vdmUiLCJwb2ludGVyTW92ZSJdLFsicG9pbnRlcm91dCIsInBvaW50ZXJPdXQiXSxbInBvaW50ZXJvdmVyIiwicG9pbnRlck92ZXIiXSxbInByb2dyZXNzIiwicHJvZ3Jlc3MiXSxbInNjcm9sbCIsInNjcm9sbCJdLFsic2Vla2luZyIsInNlZWtpbmciXSxbInN0YWxsZWQiLCJzdGFsbGVkIl0sWyJzdXNwZW5kIiwic3VzcGVuZCJdLFsidGltZXVwZGF0ZSIsInRpbWVVcGRhdGUiXSxbInRvZ2dsZSIsInRvZ2dsZSJdLFsidG91Y2htb3ZlIiwidG91Y2hNb3ZlIl0sW2VlLCJ0cmFuc2l0aW9uRW5kIl0sWyJ3YWl0aW5nIiwid2FpdGluZyJdLFsid2hlZWwiLCJ3aGVlbCJdXSxncj17fSx2cj17fTtmdW5jdGlvbiBtcihlLHQpe3ZhciByPWVbMF0sbj0ib24iKygoZT1lWzFdKVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSkpO3Q9e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOm4sY2FwdHVyZWQ6bisiQ2FwdHVyZSJ9LGRlcGVuZGVuY2llczpbcl0saXNJbnRlcmFjdGl2ZTp0fSxncltlXT10LHZyW3JdPXR9W1siYmx1ciIsImJsdXIiXSxbImNhbmNlbCIsImNhbmNlbCJdLFsiY2xpY2siLCJjbGljayJdLFsiY2xvc2UiLCJjbG9zZSJdLFsiY29udGV4dG1lbnUiLCJjb250ZXh0TWVudSJdLFsiY29weSIsImNvcHkiXSxbImN1dCIsImN1dCJdLFsiYXV4Y2xpY2siLCJhdXhDbGljayJdLFsiZGJsY2xpY2siLCJkb3VibGVDbGljayJdLFsiZHJhZ2VuZCIsImRyYWdFbmQiXSxbImRyYWdzdGFydCIsImRyYWdTdGFydCJdLFsiZHJvcCIsImRyb3AiXSxbImZvY3VzIiwiZm9jdXMiXSxbImlucHV0IiwiaW5wdXQiXSxbImludmFsaWQiLCJpbnZhbGlkIl0sWyJrZXlkb3duIiwia2V5RG93biJdLFsia2V5cHJlc3MiLCJrZXlQcmVzcyJdLFsia2V5dXAiLCJrZXlVcCJdLFsibW91c2Vkb3duIiwibW91c2VEb3duIl0sWyJtb3VzZXVwIiwibW91c2VVcCJdLFsicGFzdGUiLCJwYXN0ZSJdLFsicGF1c2UiLCJwYXVzZSJdLFsicGxheSIsInBsYXkiXSxbInBvaW50ZXJjYW5jZWwiLCJwb2ludGVyQ2FuY2VsIl0sWyJwb2ludGVyZG93biIsInBvaW50ZXJEb3duIl0sWyJwb2ludGVydXAiLCJwb2ludGVyVXAiXSxbInJhdGVjaGFuZ2UiLCJyYXRlQ2hhbmdlIl0sWyJyZXNldCIsInJlc2V0Il0sWyJzZWVrZWQiLCJzZWVrZWQiXSxbInN1Ym1pdCIsInN1Ym1pdCJdLFsidG91Y2hjYW5jZWwiLCJ0b3VjaENhbmNlbCJdLFsidG91Y2hlbmQiLCJ0b3VjaEVuZCJdLFsidG91Y2hzdGFydCIsInRvdWNoU3RhcnQiXSxbInZvbHVtZWNoYW5nZSIsInZvbHVtZUNoYW5nZSJdXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe21yKGUsITApfSkseXIuZm9yRWFjaChmdW5jdGlvbihlKXttcihlLCExKX0pO3ZhciBicj17ZXZlbnRUeXBlczpncixpc0ludGVyYWN0aXZlVG9wTGV2ZWxFdmVudFR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PShlPXZyW2VdKSYmITA9PT1lLmlzSW50ZXJhY3RpdmV9LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9dnJbZV07aWYoIWkpcmV0dXJuIG51bGw7c3dpdGNoKGUpe2Nhc2Uia2V5cHJlc3MiOmlmKDA9PT1zcihyKSlyZXR1cm4gbnVsbDtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmU9ZnI7YnJlYWs7Y2FzZSJibHVyIjpjYXNlImZvY3VzIjplPWFyO2JyZWFrO2Nhc2UiY2xpY2siOmlmKDI9PT1yLmJ1dHRvbilyZXR1cm4gbnVsbDtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOmU9WXQ7YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6ZT1scjticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0IjplPWhyO2JyZWFrO2Nhc2UgJDpjYXNlIFo6Y2FzZSBKOmU9aXI7YnJlYWs7Y2FzZSBlZTplPXByO2JyZWFrO2Nhc2Uic2Nyb2xsIjplPUZ0O2JyZWFrO2Nhc2Uid2hlZWwiOmU9ZHI7YnJlYWs7Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJwYXN0ZSI6ZT1vcjticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjplPVh0O2JyZWFrO2RlZmF1bHQ6ZT11ZX1yZXR1cm4geih0PWUuZ2V0UG9vbGVkKGksdCxyLG4pKSx0fX0sX3I9YnIuaXNJbnRlcmFjdGl2ZVRvcExldmVsRXZlbnRUeXBlLFNyPVtdO2Z1bmN0aW9uIEVyKGUpe3ZhciB0PWUudGFyZ2V0SW5zdCxyPXQ7ZG97aWYoIXIpe2UuYW5jZXN0b3JzLnB1c2gocik7YnJlYWt9dmFyIG47Zm9yKG49cjtuLnJldHVybjspbj1uLnJldHVybjtpZighKG49MyE9PW4udGFnP251bGw6bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykpYnJlYWs7ZS5hbmNlc3RvcnMucHVzaChyKSxyPU0obil9d2hpbGUocik7Zm9yKHI9MDtyPGUuYW5jZXN0b3JzLmxlbmd0aDtyKyspe3Q9ZS5hbmNlc3RvcnNbcl07dmFyIGk9VWUoZS5uYXRpdmVFdmVudCk7bj1lLnRvcExldmVsVHlwZTtmb3IodmFyIG89ZS5uYXRpdmVFdmVudCxhPW51bGwscz0wO3M8di5sZW5ndGg7cysrKXt2YXIgdT12W3NdO3UmJih1PXUuZXh0cmFjdEV2ZW50cyhuLHQsbyxpKSkmJihhPUEoYSx1KSl9TihhKX19dmFyIHdyPSEwO2Z1bmN0aW9uIFRyKGUsdCl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIHI9KF9yKGUpP0NyOnhyKS5iaW5kKG51bGwsZSk7dC5hZGRFdmVudExpc3RlbmVyKGUsciwhMSl9ZnVuY3Rpb24gQXIoZSx0KXtpZighdClyZXR1cm4gbnVsbDt2YXIgcj0oX3IoZSk/Q3I6eHIpLmJpbmQobnVsbCxlKTt0LmFkZEV2ZW50TGlzdGVuZXIoZSxyLCEwKX1mdW5jdGlvbiBDcihlLHQpe1JlKHhyLGUsdCl9ZnVuY3Rpb24geHIoZSx0KXtpZih3cil7dmFyIHI9VWUodCk7aWYobnVsbD09PShyPU0ocikpfHwibnVtYmVyIiE9PXR5cGVvZiByLnRhZ3x8Mj09PXRyKHIpfHwocj1udWxsKSxTci5sZW5ndGgpe3ZhciBuPVNyLnBvcCgpO24udG9wTGV2ZWxUeXBlPWUsbi5uYXRpdmVFdmVudD10LG4udGFyZ2V0SW5zdD1yLGU9bn1lbHNlIGU9e3RvcExldmVsVHlwZTplLG5hdGl2ZUV2ZW50OnQsdGFyZ2V0SW5zdDpyLGFuY2VzdG9yczpbXX07dHJ5e0xlKEVyLGUpfWZpbmFsbHl7ZS50b3BMZXZlbFR5cGU9bnVsbCxlLm5hdGl2ZUV2ZW50PW51bGwsZS50YXJnZXRJbnN0PW51bGwsZS5hbmNlc3RvcnMubGVuZ3RoPTAsMTA+U3IubGVuZ3RoJiZTci5wdXNoKGUpfX19dmFyIElyPXt9LGtyPTAsT3I9Il9yZWFjdExpc3RlbmVyc0lEIisoIiIrTWF0aC5yYW5kb20oKSkuc2xpY2UoMik7ZnVuY3Rpb24gTnIoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLE9yKXx8KGVbT3JdPWtyKyssSXJbZVtPcl1dPXt9KSxJcltlW09yXV19ZnVuY3Rpb24gUHIoZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YoZT1lfHwoInVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaCh0KXtyZXR1cm4gZS5ib2R5fX1mdW5jdGlvbiBScihlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gQnIoZSx0KXt2YXIgcixuPVJyKGUpO2ZvcihlPTA7bjspe2lmKDM9PT1uLm5vZGVUeXBlKXtpZihyPWUrbi50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmcj49dClyZXR1cm57bm9kZTpuLG9mZnNldDp0LWV9O2U9cn1lOntmb3IoO247KXtpZihuLm5leHRTaWJsaW5nKXtuPW4ubmV4dFNpYmxpbmc7YnJlYWsgZX1uPW4ucGFyZW50Tm9kZX1uPXZvaWQgMH1uPVJyKG4pfX1mdW5jdGlvbiBNcigpe2Zvcih2YXIgZT13aW5kb3csdD1QcigpO3QgaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciByPSJzdHJpbmciPT09dHlwZW9mIHQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKG4pe3I9ITF9aWYoIXIpYnJlYWs7dD1QcigoZT10LmNvbnRlbnRXaW5kb3cpLmRvY3VtZW50KX1yZXR1cm4gdH1mdW5jdGlvbiBMcihlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQmJigiaW5wdXQiPT09dCYmKCJ0ZXh0Ij09PWUudHlwZXx8InNlYXJjaCI9PT1lLnR5cGV8fCJ0ZWwiPT09ZS50eXBlfHwidXJsIj09PWUudHlwZXx8InBhc3N3b3JkIj09PWUudHlwZSl8fCJ0ZXh0YXJlYSI9PT10fHwidHJ1ZSI9PT1lLmNvbnRlbnRFZGl0YWJsZSl9ZnVuY3Rpb24gRHIoZSl7dmFyIHQ9TXIoKSxyPWUuZm9jdXNlZEVsZW0sbj1lLnNlbGVjdGlvblJhbmdlO2lmKHQhPT1yJiZyJiZyLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxyKXtyZXR1cm4hKCF0fHwhcikmJih0PT09cnx8KCF0fHwzIT09dC5ub2RlVHlwZSkmJihyJiYzPT09ci5ub2RlVHlwZT9lKHQsci5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gdD90LmNvbnRhaW5zKHIpOiEhdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmISEoMTYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihyKSkpKX0oci5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyKSl7aWYobnVsbCE9PW4mJkxyKHIpKWlmKHQ9bi5zdGFydCx2b2lkIDA9PT0oZT1uLmVuZCkmJihlPXQpLCJzZWxlY3Rpb25TdGFydCJpbiByKXIuc2VsZWN0aW9uU3RhcnQ9dCxyLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihlLHIudmFsdWUubGVuZ3RoKTtlbHNlIGlmKChlPSh0PXIub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZ0LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbil7ZT1lLmdldFNlbGVjdGlvbigpO3ZhciBpPXIudGV4dENvbnRlbnQubGVuZ3RoLG89TWF0aC5taW4obi5zdGFydCxpKTtuPXZvaWQgMD09PW4uZW5kP286TWF0aC5taW4obi5lbmQsaSksIWUuZXh0ZW5kJiZvPm4mJihpPW4sbj1vLG89aSksaT1CcihyLG8pO3ZhciBhPUJyKHIsbik7aSYmYSYmKDEhPT1lLnJhbmdlQ291bnR8fGUuYW5jaG9yTm9kZSE9PWkubm9kZXx8ZS5hbmNob3JPZmZzZXQhPT1pLm9mZnNldHx8ZS5mb2N1c05vZGUhPT1hLm5vZGV8fGUuZm9jdXNPZmZzZXQhPT1hLm9mZnNldCkmJigodD10LmNyZWF0ZVJhbmdlKCkpLnNldFN0YXJ0KGkubm9kZSxpLm9mZnNldCksZS5yZW1vdmVBbGxSYW5nZXMoKSxvPm4/KGUuYWRkUmFuZ2UodCksZS5leHRlbmQoYS5ub2RlLGEub2Zmc2V0KSk6KHQuc2V0RW5kKGEubm9kZSxhLm9mZnNldCksZS5hZGRSYW5nZSh0KSkpfWZvcih0PVtdLGU9cjtlPWUucGFyZW50Tm9kZTspMT09PWUubm9kZVR5cGUmJnQucHVzaCh7ZWxlbWVudDplLGxlZnQ6ZS5zY3JvbGxMZWZ0LHRvcDplLnNjcm9sbFRvcH0pO2ZvcigiZnVuY3Rpb24iPT09dHlwZW9mIHIuZm9jdXMmJnIuZm9jdXMoKSxyPTA7cjx0Lmxlbmd0aDtyKyspKGU9dFtyXSkuZWxlbWVudC5zY3JvbGxMZWZ0PWUubGVmdCxlLmVsZW1lbnQuc2Nyb2xsVG9wPWUudG9wfX12YXIganI9RyYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxVcj17c2VsZWN0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDoib25TZWxlY3QiLGNhcHR1cmVkOiJvblNlbGVjdENhcHR1cmUifSxkZXBlbmRlbmNpZXM6ImJsdXIgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1cyBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKX19LEZyPW51bGwsVnI9bnVsbCxxcj1udWxsLEtyPSExO2Z1bmN0aW9uIHpyKGUsdCl7dmFyIHI9dC53aW5kb3c9PT10P3QuZG9jdW1lbnQ6OT09PXQubm9kZVR5cGU/dDp0Lm93bmVyRG9jdW1lbnQ7cmV0dXJuIEtyfHxudWxsPT1Gcnx8RnIhPT1QcihyKT9udWxsOigic2VsZWN0aW9uU3RhcnQiaW4ocj1GcikmJkxyKHIpP3I9e3N0YXJ0OnIuc2VsZWN0aW9uU3RhcnQsZW5kOnIuc2VsZWN0aW9uRW5kfTpyPXthbmNob3JOb2RlOihyPShyLm93bmVyRG9jdW1lbnQmJnIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSkuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6ci5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOnIuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OnIuZm9jdXNPZmZzZXR9LHFyJiZlcihxcixyKT9udWxsOihxcj1yLChlPXVlLmdldFBvb2xlZChVci5zZWxlY3QsVnIsZSx0KSkudHlwZT0ic2VsZWN0IixlLnRhcmdldD1Gcix6KGUpLGUpKX12YXIgR3I9e2V2ZW50VHlwZXM6VXIsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQscixuKXt2YXIgaSxvPW4ud2luZG93PT09bj9uLmRvY3VtZW50Ojk9PT1uLm5vZGVUeXBlP246bi5vd25lckRvY3VtZW50O2lmKCEoaT0hbykpe2U6e289TnIobyksaT1fLm9uU2VsZWN0O2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz1pW2FdO2lmKCFvLmhhc093blByb3BlcnR5KHMpfHwhb1tzXSl7bz0hMTticmVhayBlfX1vPSEwfWk9IW99aWYoaSlyZXR1cm4gbnVsbDtzd2l0Y2gobz10P0QodCk6d2luZG93LGUpe2Nhc2UiZm9jdXMiOihqZShvKXx8InRydWUiPT09by5jb250ZW50RWRpdGFibGUpJiYoRnI9byxWcj10LHFyPW51bGwpO2JyZWFrO2Nhc2UiYmx1ciI6cXI9VnI9RnI9bnVsbDticmVhaztjYXNlIm1vdXNlZG93biI6S3I9ITA7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJtb3VzZXVwIjpjYXNlImRyYWdlbmQiOnJldHVybiBLcj0hMSx6cihyLG4pO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihqcilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOnJldHVybiB6cihyLG4pfXJldHVybiBudWxsfX07ZnVuY3Rpb24gSHIoZSx0KXtyZXR1cm4gZT1pKHtjaGlsZHJlbjp2b2lkIDB9LHQpLCh0PWZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiBuLkNoaWxkcmVuLmZvckVhY2goZSxmdW5jdGlvbihlKXtudWxsIT1lJiYodCs9ZSl9KSx0fSh0LmNoaWxkcmVuKSkmJihlLmNoaWxkcmVuPXQpLGV9ZnVuY3Rpb24gV3IoZSx0LHIsbil7aWYoZT1lLm9wdGlvbnMsdCl7dD17fTtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl0WyIkIityW2ldXT0hMDtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKWk9dC5oYXNPd25Qcm9wZXJ0eSgiJCIrZVtyXS52YWx1ZSksZVtyXS5zZWxlY3RlZCE9PWkmJihlW3JdLnNlbGVjdGVkPWkpLGkmJm4mJihlW3JdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iocj0iIittdChyKSx0PW51bGwsaT0wO2k8ZS5sZW5ndGg7aSsrKXtpZihlW2ldLnZhbHVlPT09cilyZXR1cm4gZVtpXS5zZWxlY3RlZD0hMCx2b2lkKG4mJihlW2ldLmRlZmF1bHRTZWxlY3RlZD0hMCkpO251bGwhPT10fHxlW2ldLmRpc2FibGVkfHwodD1lW2ldKX1udWxsIT09dCYmKHQuc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiBZcihlLHQpe3JldHVybiBudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZhKCI5MSIpLGkoe30sdCx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIFhyKGUsdCl7dmFyIHI9dC52YWx1ZTtudWxsPT1yJiYocj10LmRlZmF1bHRWYWx1ZSxudWxsIT0odD10LmNoaWxkcmVuKSYmKG51bGwhPXImJmEoIjkyIiksQXJyYXkuaXNBcnJheSh0KSYmKDE+PXQubGVuZ3RofHxhKCI5MyIpLHQ9dFswXSkscj10KSxudWxsPT1yJiYocj0iIikpLGUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOm10KHIpfX1mdW5jdGlvbiBRcihlLHQpe3ZhciByPW10KHQudmFsdWUpLG49bXQodC5kZWZhdWx0VmFsdWUpO251bGwhPXImJigocj0iIityKSE9PWUudmFsdWUmJihlLnZhbHVlPXIpLG51bGw9PXQuZGVmYXVsdFZhbHVlJiZlLmRlZmF1bHRWYWx1ZSE9PXImJihlLmRlZmF1bHRWYWx1ZT1yKSksbnVsbCE9biYmKGUuZGVmYXVsdFZhbHVlPSIiK24pfWZ1bmN0aW9uICRyKGUpe3ZhciB0PWUudGV4dENvbnRlbnQ7dD09PWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJihlLnZhbHVlPXQpfWsuaW5qZWN0RXZlbnRQbHVnaW5PcmRlcigiUmVzcG9uZGVyRXZlbnRQbHVnaW4gU2ltcGxlRXZlbnRQbHVnaW4gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIENoYW5nZUV2ZW50UGx1Z2luIFNlbGVjdEV2ZW50UGx1Z2luIEJlZm9yZUlucHV0RXZlbnRQbHVnaW4iLnNwbGl0KCIgIikpLFM9aixFPUwsdz1ELGsuaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lKHtTaW1wbGVFdmVudFBsdWdpbjpicixFbnRlckxlYXZlRXZlbnRQbHVnaW46JHQsQ2hhbmdlRXZlbnRQbHVnaW46VXQsU2VsZWN0RXZlbnRQbHVnaW46R3IsQmVmb3JlSW5wdXRFdmVudFBsdWdpbjpBZX0pO3ZhciBacj17aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsbWF0aG1sOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn07ZnVuY3Rpb24gSnIoZSl7c3dpdGNoKGUpe2Nhc2Uic3ZnIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Nhc2UibWF0aCI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiO2RlZmF1bHQ6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwifX1mdW5jdGlvbiBlbihlLHQpe3JldHVybiBudWxsPT1lfHwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1lP0pyKHQpOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI9PT1lJiYiZm9yZWlnbk9iamVjdCI9PT10PyJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjplfXZhciB0bixybj12b2lkIDAsbm49KHRuPWZ1bmN0aW9uKGUsdCl7aWYoZS5uYW1lc3BhY2VVUkkhPT1aci5zdmd8fCJpbm5lckhUTUwiaW4gZSllLmlubmVySFRNTD10O2Vsc2V7Zm9yKChybj1ybnx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK3QrIjwvc3ZnPiIsdD1ybi5maXJzdENoaWxkO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2Zvcig7dC5maXJzdENoaWxkOyllLmFwcGVuZENoaWxkKHQuZmlyc3RDaGlsZCl9fSwidW5kZWZpbmVkIiE9PXR5cGVvZiBNU0FwcCYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24oZSx0LHIsbil7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gdG4oZSx0KX0pfTp0bik7ZnVuY3Rpb24gb24oZSx0KXtpZih0KXt2YXIgcj1lLmZpcnN0Q2hpbGQ7aWYociYmcj09PWUubGFzdENoaWxkJiYzPT09ci5ub2RlVHlwZSlyZXR1cm4gdm9pZChyLm5vZGVWYWx1ZT10KX1lLnRleHRDb250ZW50PXR9dmFyIGFuPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxzbj1bIldlYmtpdCIsIm1zIiwiTW96IiwiTyJdO2Z1bmN0aW9uIHVuKGUsdCxyKXtyZXR1cm4gbnVsbD09dHx8ImJvb2xlYW4iPT09dHlwZW9mIHR8fCIiPT09dD8iIjpyfHwibnVtYmVyIiE9PXR5cGVvZiB0fHwwPT09dHx8YW4uaGFzT3duUHJvcGVydHkoZSkmJmFuW2VdPygiIit0KS50cmltKCk6dCsicHgifWZ1bmN0aW9uIGNuKGUsdCl7Zm9yKHZhciByIGluIGU9ZS5zdHlsZSx0KWlmKHQuaGFzT3duUHJvcGVydHkocikpe3ZhciBuPTA9PT1yLmluZGV4T2YoIi0tIiksaT11bihyLHRbcl0sbik7ImZsb2F0Ij09PXImJihyPSJjc3NGbG9hdCIpLG4/ZS5zZXRQcm9wZXJ0eShyLGkpOmVbcl09aX19T2JqZWN0LmtleXMoYW4pLmZvckVhY2goZnVuY3Rpb24oZSl7c24uZm9yRWFjaChmdW5jdGlvbih0KXt0PXQrZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKSxhblt0XT1hbltlXX0pfSk7dmFyIGZuPWkoe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7ZnVuY3Rpb24gbG4oZSx0KXt0JiYoZm5bZV0mJihudWxsIT10LmNoaWxkcmVufHxudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSYmYSgiMTM3IixlLCIiKSxudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiYobnVsbCE9dC5jaGlsZHJlbiYmYSgiNjAiKSwib2JqZWN0Ij09PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiYiX19odG1sImluIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8fGEoIjYxIikpLG51bGwhPXQuc3R5bGUmJiJvYmplY3QiIT09dHlwZW9mIHQuc3R5bGUmJmEoIjYyIiwiIikpfWZ1bmN0aW9uIGhuKGUsdCl7aWYoLTE9PT1lLmluZGV4T2YoIi0iKSlyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0LmlzO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIHBuKGUsdCl7dmFyIHI9TnIoZT05PT09ZS5ub2RlVHlwZXx8MTE9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50KTt0PV9bdF07Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aWYoIXIuaGFzT3duUHJvcGVydHkoaSl8fCFyW2ldKXtzd2l0Y2goaSl7Y2FzZSJzY3JvbGwiOkFyKCJzY3JvbGwiLGUpO2JyZWFrO2Nhc2UiZm9jdXMiOmNhc2UiYmx1ciI6QXIoImZvY3VzIixlKSxBcigiYmx1ciIsZSksci5ibHVyPSEwLHIuZm9jdXM9ITA7YnJlYWs7Y2FzZSJjYW5jZWwiOmNhc2UiY2xvc2UiOkZlKGkpJiZBcihpLGUpO2JyZWFrO2Nhc2UiaW52YWxpZCI6Y2FzZSJzdWJtaXQiOmNhc2UicmVzZXQiOmJyZWFrO2RlZmF1bHQ6LTE9PT10ZS5pbmRleE9mKGkpJiZUcihpLGUpfXJbaV09ITB9fX1mdW5jdGlvbiBkbigpe312YXIgeW49bnVsbCxnbj1udWxsO2Z1bmN0aW9uIHZuKGUsdCl7c3dpdGNoKGUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6cmV0dXJuISF0LmF1dG9Gb2N1c31yZXR1cm4hMX1mdW5jdGlvbiBtbihlLHQpe3JldHVybiJ0ZXh0YXJlYSI9PT1lfHwib3B0aW9uIj09PWV8fCJub3NjcmlwdCI9PT1lfHwic3RyaW5nIj09PXR5cGVvZiB0LmNoaWxkcmVufHwibnVtYmVyIj09PXR5cGVvZiB0LmNoaWxkcmVufHwib2JqZWN0Ij09PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09dC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIGJuPSJmdW5jdGlvbiI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxfbj0iZnVuY3Rpb24iPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLFNuPW8udW5zdGFibGVfc2NoZWR1bGVDYWw=",
"2020.03.29 15:16": "base64:Lm5hbWU9IiIpLGUuZGVmYXVsdENoZWNrZWQ9IWUuZGVmYXVsdENoZWNrZWQsZS5kZWZhdWx0Q2hlY2tlZD0hIWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZCwiIiE9PXImJihlLm5hbWU9cil9ZnVuY3Rpb24gVHQoZSx0LHIpeyJudW1iZXIiPT09dCYmZS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lfHwobnVsbD09cj9lLmRlZmF1bHRWYWx1ZT0iIitlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlOmUuZGVmYXVsdFZhbHVlIT09IiIrciYmKGUuZGVmYXVsdFZhbHVlPSIiK3IpKX0iYWNjZW50LWhlaWdodCBhbGlnbm1lbnQtYmFzZWxpbmUgYXJhYmljLWZvcm0gYmFzZWxpbmUtc2hpZnQgY2FwLWhlaWdodCBjbGlwLXBhdGggY2xpcC1ydWxlIGNvbG9yLWludGVycG9sYXRpb24gY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIGNvbG9yLXByb2ZpbGUgY29sb3ItcmVuZGVyaW5nIGRvbWluYW50LWJhc2VsaW5lIGVuYWJsZS1iYWNrZ3JvdW5kIGZpbGwtb3BhY2l0eSBmaWxsLXJ1bGUgZmxvb2QtY29sb3IgZmxvb2Qtb3BhY2l0eSBmb250LWZhbWlseSBmb250LXNpemUgZm9udC1zaXplLWFkanVzdCBmb250LXN0cmV0Y2ggZm9udC1zdHlsZSBmb250LXZhcmlhbnQgZm9udC13ZWlnaHQgZ2x5cGgtbmFtZSBnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIGdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIGhvcml6LWFkdi14IGhvcml6LW9yaWdpbi14IGltYWdlLXJlbmRlcmluZyBsZXR0ZXItc3BhY2luZyBsaWdodGluZy1jb2xvciBtYXJrZXItZW5kIG1hcmtlci1taWQgbWFya2VyLXN0YXJ0IG92ZXJsaW5lLXBvc2l0aW9uIG92ZXJsaW5lLXRoaWNrbmVzcyBwYWludC1vcmRlciBwYW5vc2UtMSBwb2ludGVyLWV2ZW50cyByZW5kZXJpbmctaW50ZW50IHNoYXBlLXJlbmRlcmluZyBzdG9wLWNvbG9yIHN0b3Atb3BhY2l0eSBzdHJpa2V0aHJvdWdoLXBvc2l0aW9uIHN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIHN0cm9rZS1kYXNoYXJyYXkgc3Ryb2tlLWRhc2hvZmZzZXQgc3Ryb2tlLWxpbmVjYXAgc3Ryb2tlLWxpbmVqb2luIHN0cm9rZS1taXRlcmxpbWl0IHN0cm9rZS1vcGFjaXR5IHN0cm9rZS13aWR0aCB0ZXh0LWFuY2hvciB0ZXh0LWRlY29yYXRpb24gdGV4dC1yZW5kZXJpbmcgdW5kZXJsaW5lLXBvc2l0aW9uIHVuZGVybGluZS10aGlja25lc3MgdW5pY29kZS1iaWRpIHVuaWNvZGUtcmFuZ2UgdW5pdHMtcGVyLWVtIHYtYWxwaGFiZXRpYyB2LWhhbmdpbmcgdi1pZGVvZ3JhcGhpYyB2LW1hdGhlbWF0aWNhbCB2ZWN0b3ItZWZmZWN0IHZlcnQtYWR2LXkgdmVydC1vcmlnaW4teCB2ZXJ0LW9yaWdpbi15IHdvcmQtc3BhY2luZyB3cml0aW5nLW1vZGUgeG1sbnM6eGxpbmsgeC1oZWlnaHQiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoeXQsZ3QpO2R0W3RdPW5ldyBwdCh0LDEsITEsZSxudWxsKX0pLCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6aHJlZiB4bGluazpyb2xlIHhsaW5rOnNob3cgeGxpbms6dGl0bGUgeGxpbms6dHlwZSIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh5dCxndCk7ZHRbdF09bmV3IHB0KHQsMSwhMSxlLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIil9KSxbInhtbDpiYXNlIiwieG1sOmxhbmciLCJ4bWw6c3BhY2UiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh5dCxndCk7ZHRbdF09bmV3IHB0KHQsMSwhMSxlLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiKX0pLFsidGFiSW5kZXgiLCJjcm9zc09yaWdpbiJdLmZvckVhY2goZnVuY3Rpb24oZSl7ZHRbZV09bmV3IHB0KGUsMSwhMSxlLnRvTG93ZXJDYXNlKCksbnVsbCl9KTt2YXIgQXQ9e2NoYW5nZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6Im9uQ2hhbmdlIixjYXB0dXJlZDoib25DaGFuZ2VDYXB0dXJlIn0sZGVwZW5kZW5jaWVzOiJibHVyIGNoYW5nZSBjbGljayBmb2N1cyBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKX19O2Z1bmN0aW9uIEN0KGUsdCxyKXtyZXR1cm4oZT11ZS5nZXRQb29sZWQoQXQuY2hhbmdlLGUsdCxyKSkudHlwZT0iY2hhbmdlIixPZShyKSx6KGUpLGV9dmFyIHh0PW51bGwsSXQ9bnVsbDtmdW5jdGlvbiBrdChlKXtOKGUpfWZ1bmN0aW9uIE90KGUpe2lmKEtlKEQoZSkpKXJldHVybiBlfWZ1bmN0aW9uIE50KGUsdCl7aWYoImNoYW5nZSI9PT1lKXJldHVybiB0fXZhciBQdD0hMTtmdW5jdGlvbiBSdCgpe3h0JiYoeHQuZGV0YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLEJ0KSxJdD14dD1udWxsKX1mdW5jdGlvbiBCdChlKXsidmFsdWUiPT09ZS5wcm9wZXJ0eU5hbWUmJk90KEl0KSYmTGUoa3QsZT1DdChJdCxlLFVlKGUpKSl9ZnVuY3Rpb24gTXQoZSx0LHIpeyJmb2N1cyI9PT1lPyhSdCgpLEl0PXIsKHh0PXQpLmF0dGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixCdCkpOiJibHVyIj09PWUmJlJ0KCl9ZnVuY3Rpb24gTHQoZSl7aWYoInNlbGVjdGlvbmNoYW5nZSI9PT1lfHwia2V5dXAiPT09ZXx8ImtleWRvd24iPT09ZSlyZXR1cm4gT3QoSXQpfWZ1bmN0aW9uIER0KGUsdCl7aWYoImNsaWNrIj09PWUpcmV0dXJuIE90KHQpfWZ1bmN0aW9uIGp0KGUsdCl7aWYoImlucHV0Ij09PWV8fCJjaGFuZ2UiPT09ZSlyZXR1cm4gT3QodCl9RyYmKFB0PUZlKCJpbnB1dCIpJiYoIWRvY3VtZW50LmRvY3VtZW50TW9kZXx8OTxkb2N1bWVudC5kb2N1bWVudE1vZGUpKTt2YXIgVXQ9e2V2ZW50VHlwZXM6QXQsX2lzSW5wdXRFdmVudFN1cHBvcnRlZDpQdCxleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGUsdCxyLG4pe3ZhciBpPXQ/RCh0KTp3aW5kb3csbz12b2lkIDAsYT12b2lkIDAscz1pLm5vZGVOYW1lJiZpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoInNlbGVjdCI9PT1zfHwiaW5wdXQiPT09cyYmImZpbGUiPT09aS50eXBlP289TnQ6amUoaSk/UHQ/bz1qdDoobz1MdCxhPU10KToocz1pLm5vZGVOYW1lKSYmImlucHV0Ij09PXMudG9Mb3dlckNhc2UoKSYmKCJjaGVja2JveCI9PT1pLnR5cGV8fCJyYWRpbyI9PT1pLnR5cGUpJiYobz1EdCksbyYmKG89byhlLHQpKSlyZXR1cm4gQ3QobyxyLG4pO2EmJmEoZSxpLHQpLCJibHVyIj09PWUmJihlPWkuX3dyYXBwZXJTdGF0ZSkmJmUuY29udHJvbGxlZCYmIm51bWJlciI9PT1pLnR5cGUmJlR0KGksIm51bWJlciIsaS52YWx1ZSl9fSxGdD11ZS5leHRlbmQoe3ZpZXc6bnVsbCxkZXRhaWw6bnVsbH0pLFZ0PXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gcXQoZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPVZ0W2VdKSYmISF0W2VdfWZ1bmN0aW9uIEt0KCl7cmV0dXJuIHF0fXZhciB6dD0wLEd0PTAsSHQ9ITEsV3Q9ITEsWXQ9RnQuZXh0ZW5kKHtzY3JlZW5YOm51bGwsc2NyZWVuWTpudWxsLGNsaWVudFg6bnVsbCxjbGllbnRZOm51bGwscGFnZVg6bnVsbCxwYWdlWTpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxnZXRNb2RpZmllclN0YXRlOkt0LGJ1dHRvbjpudWxsLGJ1dHRvbnM6bnVsbCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlbGF0ZWRUYXJnZXR8fChlLmZyb21FbGVtZW50PT09ZS5zcmNFbGVtZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQpfSxtb3ZlbWVudFg6ZnVuY3Rpb24oZSl7aWYoIm1vdmVtZW50WCJpbiBlKXJldHVybiBlLm1vdmVtZW50WDt2YXIgdD16dDtyZXR1cm4genQ9ZS5zY3JlZW5YLEh0PyJtb3VzZW1vdmUiPT09ZS50eXBlP2Uuc2NyZWVuWC10OjA6KEh0PSEwLDApfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7aWYoIm1vdmVtZW50WSJpbiBlKXJldHVybiBlLm1vdmVtZW50WTt2YXIgdD1HdDtyZXR1cm4gR3Q9ZS5zY3JlZW5ZLFd0PyJtb3VzZW1vdmUiPT09ZS50eXBlP2Uuc2NyZWVuWS10OjA6KFd0PSEwLDApfX0pLFh0PVl0LmV4dGVuZCh7cG9pbnRlcklkOm51bGwsd2lkdGg6bnVsbCxoZWlnaHQ6bnVsbCxwcmVzc3VyZTpudWxsLHRhbmdlbnRpYWxQcmVzc3VyZTpudWxsLHRpbHRYOm51bGwsdGlsdFk6bnVsbCx0d2lzdDpudWxsLHBvaW50ZXJUeXBlOm51bGwsaXNQcmltYXJ5Om51bGx9KSxRdD17bW91c2VFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZToib25Nb3VzZUVudGVyIixkZXBlbmRlbmNpZXM6WyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdfSxtb3VzZUxlYXZlOntyZWdpc3RyYXRpb25OYW1lOiJvbk1vdXNlTGVhdmUiLGRlcGVuZGVuY2llczpbIm1vdXNlb3V0IiwibW91c2VvdmVyIl19LHBvaW50ZXJFbnRlcjp7cmVnaXN0cmF0aW9uTmFtZToib25Qb2ludGVyRW50ZXIiLGRlcGVuZGVuY2llczpbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdfSxwb2ludGVyTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6Im9uUG9pbnRlckxlYXZlIixkZXBlbmRlbmNpZXM6WyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXX19LCR0PXtldmVudFR5cGVzOlF0LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9Im1vdXNlb3ZlciI9PT1lfHwicG9pbnRlcm92ZXIiPT09ZSxvPSJtb3VzZW91dCI9PT1lfHwicG9pbnRlcm91dCI9PT1lO2lmKGkmJihyLnJlbGF0ZWRUYXJnZXR8fHIuZnJvbUVsZW1lbnQpfHwhbyYmIWkpcmV0dXJuIG51bGw7aWYoaT1uLndpbmRvdz09PW4/bjooaT1uLm93bmVyRG9jdW1lbnQpP2kuZGVmYXVsdFZpZXd8fGkucGFyZW50V2luZG93OndpbmRvdyxvPyhvPXQsdD0odD1yLnJlbGF0ZWRUYXJnZXR8fHIudG9FbGVtZW50KT9NKHQpOm51bGwpOm89bnVsbCxvPT09dClyZXR1cm4gbnVsbDt2YXIgYT12b2lkIDAscz12b2lkIDAsdT12b2lkIDAsYz12b2lkIDA7Im1vdXNlb3V0Ij09PWV8fCJtb3VzZW92ZXIiPT09ZT8oYT1ZdCxzPVF0Lm1vdXNlTGVhdmUsdT1RdC5tb3VzZUVudGVyLGM9Im1vdXNlIik6InBvaW50ZXJvdXQiIT09ZSYmInBvaW50ZXJvdmVyIiE9PWV8fChhPVh0LHM9UXQucG9pbnRlckxlYXZlLHU9UXQucG9pbnRlckVudGVyLGM9InBvaW50ZXIiKTt2YXIgZj1udWxsPT1vP2k6RChvKTtpZihpPW51bGw9PXQ/aTpEKHQpLChlPWEuZ2V0UG9vbGVkKHMsbyxyLG4pKS50eXBlPWMrImxlYXZlIixlLnRhcmdldD1mLGUucmVsYXRlZFRhcmdldD1pLChyPWEuZ2V0UG9vbGVkKHUsdCxyLG4pKS50eXBlPWMrImVudGVyIixyLnRhcmdldD1pLHIucmVsYXRlZFRhcmdldD1mLG49dCxvJiZuKWU6e2ZvcihpPW4sYz0wLGE9dD1vO2E7YT1VKGEpKWMrKztmb3IoYT0wLHU9aTt1O3U9VSh1KSlhKys7Zm9yKDswPGMtYTspdD1VKHQpLGMtLTtmb3IoOzA8YS1jOylpPVUoaSksYS0tO2Zvcig7Yy0tOyl7aWYodD09PWl8fHQ9PT1pLmFsdGVybmF0ZSlicmVhayBlO3Q9VSh0KSxpPVUoaSl9dD1udWxsfWVsc2UgdD1udWxsO2ZvcihpPXQsdD1bXTtvJiZvIT09aSYmKG51bGw9PT0oYz1vLmFsdGVybmF0ZSl8fGMhPT1pKTspdC5wdXNoKG8pLG89VShvKTtmb3Iobz1bXTtuJiZuIT09aSYmKG51bGw9PT0oYz1uLmFsdGVybmF0ZSl8fGMhPT1pKTspby5wdXNoKG4pLG49VShuKTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXEodFtuXSwiYnViYmxlZCIsZSk7Zm9yKG49by5sZW5ndGg7MDxuLS07KXEob1tuXSwiY2FwdHVyZWQiLHIpO3JldHVybltlLHJdfX07ZnVuY3Rpb24gWnQoZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT09MS90KXx8ZSE9PWUmJnQhPT10fXZhciBKdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGVyKGUsdCl7aWYoWnQoZSx0KSlyZXR1cm4hMDtpZigib2JqZWN0IiE9PXR5cGVvZiBlfHxudWxsPT09ZXx8Im9iamVjdCIhPT10eXBlb2YgdHx8bnVsbD09PXQpcmV0dXJuITE7dmFyIHI9T2JqZWN0LmtleXMoZSksbj1PYmplY3Qua2V5cyh0KTtpZihyLmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybiExO2ZvcihuPTA7bjxyLmxlbmd0aDtuKyspaWYoIUp0LmNhbGwodCxyW25dKXx8IVp0KGVbcltuXV0sdFtyW25dXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gdHIoZSl7dmFyIHQ9ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7aWYoMCE9PSgyJnQuZWZmZWN0VGFnKSlyZXR1cm4gMTtmb3IoO3QucmV0dXJuOylpZigwIT09KDImKHQ9dC5yZXR1cm4pLmVmZmVjdFRhZykpcmV0dXJuIDF9cmV0dXJuIDM9PT10LnRhZz8yOjN9ZnVuY3Rpb24gcnIoZSl7MiE9PXRyKGUpJiZhKCIxODgiKX1mdW5jdGlvbiBucihlKXtpZighKGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpcmV0dXJuIDM9PT0odD10cihlKSkmJmEoIjE4OCIpLDE9PT10P251bGw6ZTtmb3IodmFyIHI9ZSxuPXQ7Oyl7dmFyIGk9ci5yZXR1cm4sbz1pP2kuYWx0ZXJuYXRlOm51bGw7aWYoIWl8fCFvKWJyZWFrO2lmKGkuY2hpbGQ9PT1vLmNoaWxkKXtmb3IodmFyIHM9aS5jaGlsZDtzOyl7aWYocz09PXIpcmV0dXJuIHJyKGkpLGU7aWYocz09PW4pcmV0dXJuIHJyKGkpLHQ7cz1zLnNpYmxpbmd9YSgiMTg4Iil9aWYoci5yZXR1cm4hPT1uLnJldHVybilyPWksbj1vO2Vsc2V7cz0hMTtmb3IodmFyIHU9aS5jaGlsZDt1Oyl7aWYodT09PXIpe3M9ITAscj1pLG49bzticmVha31pZih1PT09bil7cz0hMCxuPWkscj1vO2JyZWFrfXU9dS5zaWJsaW5nfWlmKCFzKXtmb3IodT1vLmNoaWxkO3U7KXtpZih1PT09cil7cz0hMCxyPW8sbj1pO2JyZWFrfWlmKHU9PT1uKXtzPSEwLG49byxyPWk7YnJlYWt9dT11LnNpYmxpbmd9c3x8YSgiMTg5Iil9fXIuYWx0ZXJuYXRlIT09biYmYSgiMTkwIil9cmV0dXJuIDMhPT1yLnRhZyYmYSgiMTg4Iiksci5zdGF0ZU5vZGUuY3VycmVudD09PXI/ZTp0fShlKSkpcmV0dXJuIG51bGw7Zm9yKHZhciB0PWU7Oyl7aWYoNT09PXQudGFnfHw2PT09dC50YWcpcmV0dXJuIHQ7aWYodC5jaGlsZCl0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtlbHNle2lmKHQ9PT1lKWJyZWFrO2Zvcig7IXQuc2libGluZzspe2lmKCF0LnJldHVybnx8dC5yZXR1cm49PT1lKXJldHVybiBudWxsO3Q9dC5yZXR1cm59dC5zaWJsaW5nLnJldHVybj10LnJldHVybix0PXQuc2libGluZ319cmV0dXJuIG51bGx9dmFyIGlyPXVlLmV4dGVuZCh7YW5pbWF0aW9uTmFtZTpudWxsLGVsYXBzZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfSksb3I9dWUuZXh0ZW5kKHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGUpe3JldHVybiJjbGlwYm9hcmREYXRhImluIGU/ZS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLGFyPUZ0LmV4dGVuZCh7cmVsYXRlZFRhcmdldDpudWxsfSk7ZnVuY3Rpb24gc3IoZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBlPzA9PT0oZT1lLmNoYXJDb2RlKSYmMTM9PT10JiYoZT0xMyk6ZT10LDEwPT09ZSYmKGU9MTMpLDMyPD1lfHwxMz09PWU/ZTowfXZhciB1cj17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sY3I9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxmcj1GdC5leHRlbmQoe2tleTpmdW5jdGlvbihlKXtpZihlLmtleSl7dmFyIHQ9dXJbZS5rZXldfHxlLmtleTtpZigiVW5pZGVudGlmaWVkIiE9PXQpcmV0dXJuIHR9cmV0dXJuImtleXByZXNzIj09PWUudHlwZT8xMz09PShlPXNyKGUpKT8iRW50ZXIiOlN0cmluZy5mcm9tQ2hhckNvZGUoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2NyW2Uua2V5Q29kZV18fCJVbmlkZW50aWZpZWQiOiIifSxsb2NhdGlvbjpudWxsLGN0cmxLZXk6bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxyZXBlYXQ6bnVsbCxsb2NhbGU6bnVsbCxnZXRNb2RpZmllclN0YXRlOkt0LGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/c3IoZSk6MH0sa2V5Q29kZTpmdW5jdGlvbihlKXtyZXR1cm4ia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/c3IoZSk6ImtleWRvd24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfX0pLGxyPVl0LmV4dGVuZCh7ZGF0YVRyYW5zZmVyOm51bGx9KSxocj1GdC5leHRlbmQoe3RvdWNoZXM6bnVsbCx0YXJnZXRUb3VjaGVzOm51bGwsY2hhbmdlZFRvdWNoZXM6bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsZ2V0TW9kaWZpZXJTdGF0ZTpLdH0pLHByPXVlLmV4dGVuZCh7cHJvcGVydHlOYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSxkcj1ZdC5leHRlbmQoe2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1cm4iZGVsdGFYImluIGU/ZS5kZWx0YVg6IndoZWVsRGVsdGFYImluIGU/LWUud2hlZWxEZWx0YVg6MH0sZGVsdGFZOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVkiaW4gZT9lLmRlbHRhWToid2hlZWxEZWx0YVkiaW4gZT8tZS53aGVlbERlbHRhWToid2hlZWxEZWx0YSJpbiBlPy1lLndoZWVsRGVsdGE6MH0sZGVsdGFaOm51bGwsZGVsdGFNb2RlOm51bGx9KSx5cj1bWyJhYm9ydCIsImFib3J0Il0sWyQsImFuaW1hdGlvbkVuZCJdLFtaLCJhbmltYXRpb25JdGVyYXRpb24iXSxbSiwiYW5pbWF0aW9uU3RhcnQiXSxbImNhbnBsYXkiLCJjYW5QbGF5Il0sWyJjYW5wbGF5dGhyb3VnaCIsImNhblBsYXlUaHJvdWdoIl0sWyJkcmFnIiwiZHJhZyJdLFsiZHJhZ2VudGVyIiwiZHJhZ0VudGVyIl0sWyJkcmFnZXhpdCIsImRyYWdFeGl0Il0sWyJkcmFnbGVhdmUiLCJkcmFnTGVhdmUiXSxbImRyYWdvdmVyIiwiZHJhZ092ZXIiXSxbImR1cmF0aW9uY2hhbmdlIiwiZHVyYXRpb25DaGFuZ2UiXSxbImVtcHRpZWQiLCJlbXB0aWVkIl0sWyJlbmNyeXB0ZWQiLCJlbmNyeXB0ZWQiXSxbImVuZGVkIiwiZW5kZWQiXSxbImVycm9yIiwiZXJyb3IiXSxbImdvdHBvaW50ZXJjYXB0dXJlIiwiZ290UG9pbnRlckNhcHR1cmUiXSxbImxvYWQiLCJsb2FkIl0sWyJsb2FkZWRkYXRhIiwibG9hZGVkRGF0YSJdLFsibG9hZGVkbWV0YWRhdGEiLCJsb2FkZWRNZXRhZGF0YSJdLFsibG9hZHN0YXJ0IiwibG9hZFN0YXJ0Il0sWyJsb3N0cG9pbnRlcmNhcHR1cmUiLCJsb3N0UG9pbnRlckNhcHR1cmUiXSxbIm1vdXNlbW92ZSIsIm1vdXNlTW92ZSJdLFsibW91c2VvdXQiLCJtb3VzZU91dCJdLFsibW91c2VvdmVyIiwibW91c2VPdmVyIl0sWyJwbGF5aW5nIiwicGxheWluZyJdLFsicG9pbnRlcm1vdmUiLCJwb2ludGVyTW92ZSJdLFsicG9pbnRlcm91dCIsInBvaW50ZXJPdXQiXSxbInBvaW50ZXJvdmVyIiwicG9pbnRlck92ZXIiXSxbInByb2dyZXNzIiwicHJvZ3Jlc3MiXSxbInNjcm9sbCIsInNjcm9sbCJdLFsic2Vla2luZyIsInNlZWtpbmciXSxbInN0YWxsZWQiLCJzdGFsbGVkIl0sWyJzdXNwZW5kIiwic3VzcGVuZCJdLFsidGltZXVwZGF0ZSIsInRpbWVVcGRhdGUiXSxbInRvZ2dsZSIsInRvZ2dsZSJdLFsidG91Y2htb3ZlIiwidG91Y2hNb3ZlIl0sW2VlLCJ0cmFuc2l0aW9uRW5kIl0sWyJ3YWl0aW5nIiwid2FpdGluZyJdLFsid2hlZWwiLCJ3aGVlbCJdXSxncj17fSx2cj17fTtmdW5jdGlvbiBtcihlLHQpe3ZhciByPWVbMF0sbj0ib24iKygoZT1lWzFdKVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSkpO3Q9e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOm4sY2FwdHVyZWQ6bisiQ2FwdHVyZSJ9LGRlcGVuZGVuY2llczpbcl0saXNJbnRlcmFjdGl2ZTp0fSxncltlXT10LHZyW3JdPXR9W1siYmx1ciIsImJsdXIiXSxbImNhbmNlbCIsImNhbmNlbCJdLFsiY2xpY2siLCJjbGljayJdLFsiY2xvc2UiLCJjbG9zZSJdLFsiY29udGV4dG1lbnUiLCJjb250ZXh0TWVudSJdLFsiY29weSIsImNvcHkiXSxbImN1dCIsImN1dCJdLFsiYXV4Y2xpY2siLCJhdXhDbGljayJdLFsiZGJsY2xpY2siLCJkb3VibGVDbGljayJdLFsiZHJhZ2VuZCIsImRyYWdFbmQiXSxbImRyYWdzdGFydCIsImRyYWdTdGFydCJdLFsiZHJvcCIsImRyb3AiXSxbImZvY3VzIiwiZm9jdXMiXSxbImlucHV0IiwiaW5wdXQiXSxbImludmFsaWQiLCJpbnZhbGlkIl0sWyJrZXlkb3duIiwia2V5RG93biJdLFsia2V5cHJlc3MiLCJrZXlQcmVzcyJdLFsia2V5dXAiLCJrZXlVcCJdLFsibW91c2Vkb3duIiwibW91c2VEb3duIl0sWyJtb3VzZXVwIiwibW91c2VVcCJdLFsicGFzdGUiLCJwYXN0ZSJdLFsicGF1c2UiLCJwYXVzZSJdLFsicGxheSIsInBsYXkiXSxbInBvaW50ZXJjYW5jZWwiLCJwb2ludGVyQ2FuY2VsIl0sWyJwb2ludGVyZG93biIsInBvaW50ZXJEb3duIl0sWyJwb2ludGVydXAiLCJwb2ludGVyVXAiXSxbInJhdGVjaGFuZ2UiLCJyYXRlQ2hhbmdlIl0sWyJyZXNldCIsInJlc2V0Il0sWyJzZWVrZWQiLCJzZWVrZWQiXSxbInN1Ym1pdCIsInN1Ym1pdCJdLFsidG91Y2hjYW5jZWwiLCJ0b3VjaENhbmNlbCJdLFsidG91Y2hlbmQiLCJ0b3VjaEVuZCJdLFsidG91Y2hzdGFydCIsInRvdWNoU3RhcnQiXSxbInZvbHVtZWNoYW5nZSIsInZvbHVtZUNoYW5nZSJdXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe21yKGUsITApfSkseXIuZm9yRWFjaChmdW5jdGlvbihlKXttcihlLCExKX0pO3ZhciBicj17ZXZlbnRUeXBlczpncixpc0ludGVyYWN0aXZlVG9wTGV2ZWxFdmVudFR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PShlPXZyW2VdKSYmITA9PT1lLmlzSW50ZXJhY3RpdmV9LGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9dnJbZV07aWYoIWkpcmV0dXJuIG51bGw7c3dpdGNoKGUpe2Nhc2Uia2V5cHJlc3MiOmlmKDA9PT1zcihyKSlyZXR1cm4gbnVsbDtjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOmU9ZnI7YnJlYWs7Y2FzZSJibHVyIjpjYXNlImZvY3VzIjplPWFyO2JyZWFrO2Nhc2UiY2xpY2siOmlmKDI9PT1yLmJ1dHRvbilyZXR1cm4gbnVsbDtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOmU9WXQ7YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6ZT1scjticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0IjplPWhyO2JyZWFrO2Nhc2UgJDpjYXNlIFo6Y2FzZSBKOmU9aXI7YnJlYWs7Y2FzZSBlZTplPXByO2JyZWFrO2Nhc2Uic2Nyb2xsIjplPUZ0O2JyZWFrO2Nhc2Uid2hlZWwiOmU9ZHI7YnJlYWs7Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJwYXN0ZSI6ZT1vcjticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjplPVh0O2JyZWFrO2RlZmF1bHQ6ZT11ZX1yZXR1cm4geih0PWUuZ2V0UG9vbGVkKGksdCxyLG4pKSx0fX0sX3I9YnIuaXNJbnRlcmFjdGl2ZVRvcExldmVsRXZlbnRUeXBlLFNyPVtdO2Z1bmN0aW9uIEVyKGUpe3ZhciB0PWUudGFyZ2V0SW5zdCxyPXQ7ZG97aWYoIXIpe2UuYW5jZXN0b3JzLnB1c2gocik7YnJlYWt9dmFyIG47Zm9yKG49cjtuLnJldHVybjspbj1uLnJldHVybjtpZighKG49MyE9PW4udGFnP251bGw6bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykpYnJlYWs7ZS5hbmNlc3RvcnMucHVzaChyKSxyPU0obil9d2hpbGUocik7Zm9yKHI9MDtyPGUuYW5jZXN0b3JzLmxlbmd0aDtyKyspe3Q9ZS5hbmNlc3RvcnNbcl07dmFyIGk9VWUoZS5uYXRpdmVFdmVudCk7bj1lLnRvcExldmVsVHlwZTtmb3IodmFyIG89ZS5uYXRpdmVFdmVudCxhPW51bGwscz0wO3M8di5sZW5ndGg7cysrKXt2YXIgdT12W3NdO3UmJih1PXUuZXh0cmFjdEV2ZW50cyhuLHQsbyxpKSkmJihhPUEoYSx1KSl9TihhKX19dmFyIHdyPSEwO2Z1bmN0aW9uIFRyKGUsdCl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIHI9KF9yKGUpP0NyOnhyKS5iaW5kKG51bGwsZSk7dC5hZGRFdmVudExpc3RlbmVyKGUsciwhMSl9ZnVuY3Rpb24gQXIoZSx0KXtpZighdClyZXR1cm4gbnVsbDt2YXIgcj0oX3IoZSk/Q3I6eHIpLmJpbmQobnVsbCxlKTt0LmFkZEV2ZW50TGlzdGVuZXIoZSxyLCEwKX1mdW5jdGlvbiBDcihlLHQpe1JlKHhyLGUsdCl9ZnVuY3Rpb24geHIoZSx0KXtpZih3cil7dmFyIHI9VWUodCk7aWYobnVsbD09PShyPU0ocikpfHwibnVtYmVyIiE9PXR5cGVvZiByLnRhZ3x8Mj09PXRyKHIpfHwocj1udWxsKSxTci5sZW5ndGgpe3ZhciBuPVNyLnBvcCgpO24udG9wTGV2ZWxUeXBlPWUsbi5uYXRpdmVFdmVudD10LG4udGFyZ2V0SW5zdD1yLGU9bn1lbHNlIGU9e3RvcExldmVsVHlwZTplLG5hdGl2ZUV2ZW50OnQsdGFyZ2V0SW5zdDpyLGFuY2VzdG9yczpbXX07dHJ5e0xlKEVyLGUpfWZpbmFsbHl7ZS50b3BMZXZlbFR5cGU9bnVsbCxlLm5hdGl2ZUV2ZW50PW51bGwsZS50YXJnZXRJbnN0PW51bGwsZS5hbmNlc3RvcnMubGVuZ3RoPTAsMTA+U3IubGVuZ3RoJiZTci5wdXNoKGUpfX19dmFyIElyPXt9LGtyPTAsT3I9Il9yZWFjdExpc3RlbmVyc0lEIisoIiIrTWF0aC5yYW5kb20oKSkuc2xpY2UoMik7ZnVuY3Rpb24gTnIoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLE9yKXx8KGVbT3JdPWtyKyssSXJbZVtPcl1dPXt9KSxJcltlW09yXV19ZnVuY3Rpb24gUHIoZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YoZT1lfHwoInVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaCh0KXtyZXR1cm4gZS5ib2R5fX1mdW5jdGlvbiBScihlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gQnIoZSx0KXt2YXIgcixuPVJyKGUpO2ZvcihlPTA7bjspe2lmKDM9PT1uLm5vZGVUeXBlKXtpZihyPWUrbi50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmcj49dClyZXR1cm57bm9kZTpuLG9mZnNldDp0LWV9O2U9cn1lOntmb3IoO247KXtpZihuLm5leHRTaWJsaW5nKXtuPW4ubmV4dFNpYmxpbmc7YnJlYWsgZX1uPW4ucGFyZW50Tm9kZX1uPXZvaWQgMH1uPVJyKG4pfX1mdW5jdGlvbiBNcigpe2Zvcih2YXIgZT13aW5kb3csdD1QcigpO3QgaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciByPSJzdHJpbmciPT09dHlwZW9mIHQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKG4pe3I9ITF9aWYoIXIpYnJlYWs7dD1QcigoZT10LmNvbnRlbnRXaW5kb3cpLmRvY3VtZW50KX1yZXR1cm4gdH1mdW5jdGlvbiBMcihlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQmJigiaW5wdXQiPT09dCYmKCJ0ZXh0Ij09PWUudHlwZXx8InNlYXJjaCI9PT1lLnR5cGV8fCJ0ZWwiPT09ZS50eXBlfHwidXJsIj09PWUudHlwZXx8InBhc3N3b3JkIj09PWUudHlwZSl8fCJ0ZXh0YXJlYSI9PT10fHwidHJ1ZSI9PT1lLmNvbnRlbnRFZGl0YWJsZSl9ZnVuY3Rpb24gRHIoZSl7dmFyIHQ9TXIoKSxyPWUuZm9jdXNlZEVsZW0sbj1lLnNlbGVjdGlvblJhbmdlO2lmKHQhPT1yJiZyJiZyLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxyKXtyZXR1cm4hKCF0fHwhcikmJih0PT09cnx8KCF0fHwzIT09dC5ub2RlVHlwZSkmJihyJiYzPT09ci5ub2RlVHlwZT9lKHQsci5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gdD90LmNvbnRhaW5zKHIpOiEhdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmISEoMTYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihyKSkpKX0oci5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyKSl7aWYobnVsbCE9PW4mJkxyKHIpKWlmKHQ9bi5zdGFydCx2b2lkIDA9PT0oZT1uLmVuZCkmJihlPXQpLCJzZWxlY3Rpb25TdGFydCJpbiByKXIuc2VsZWN0aW9uU3RhcnQ9dCxyLnNlbGVjdGlvbkVuZD1NYXRoLm1pbihlLHIudmFsdWUubGVuZ3RoKTtlbHNlIGlmKChlPSh0PXIub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZ0LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbil7ZT1lLmdldFNlbGVjdGlvbigpO3ZhciBpPXIudGV4dENvbnRlbnQubGVuZ3RoLG89TWF0aC5taW4obi5zdGFydCxpKTtuPXZvaWQgMD09PW4uZW5kP286TWF0aC5taW4obi5lbmQsaSksIWUuZXh0ZW5kJiZvPm4mJihpPW4sbj1vLG89aSksaT1CcihyLG8pO3ZhciBhPUJyKHIsbik7aSYmYSYmKDEhPT1lLnJhbmdlQ291bnR8fGUuYW5jaG9yTm9kZSE9PWkubm9kZXx8ZS5hbmNob3JPZmZzZXQhPT1pLm9mZnNldHx8ZS5mb2N1c05vZGUhPT1hLm5vZGV8fGUuZm9jdXNPZmZzZXQhPT1hLm9mZnNldCkmJigodD10LmNyZWF0ZVJhbmdlKCkpLnNldFN0YXJ0KGkubm9kZSxpLm9mZnNldCksZS5yZW1vdmVBbGxSYW5nZXMoKSxvPm4/KGUuYWRkUmFuZ2UodCksZS5leHRlbmQoYS5ub2RlLGEub2Zmc2V0KSk6KHQuc2V0RW5kKGEubm9kZSxhLm9mZnNldCksZS5hZGRSYW5nZSh0KSkpfWZvcih0PVtdLGU9cjtlPWUucGFyZW50Tm9kZTspMT09PWUubm9kZVR5cGUmJnQucHVzaCh7ZWxlbWVudDplLGxlZnQ6ZS5zY3JvbGxMZWZ0LHRvcDplLnNjcm9sbFRvcH0pO2ZvcigiZnVuY3Rpb24iPT09dHlwZW9mIHIuZm9jdXMmJnIuZm9jdXMoKSxyPTA7cjx0Lmxlbmd0aDtyKyspKGU9dFtyXSkuZWxlbWVudC5zY3JvbGxMZWZ0PWUubGVmdCxlLmVsZW1lbnQuc2Nyb2xsVG9wPWUudG9wfX12YXIganI9RyYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxVcj17c2VsZWN0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDoib25TZWxlY3QiLGNhcHR1cmVkOiJvblNlbGVjdENhcHR1cmUifSxkZXBlbmRlbmNpZXM6ImJsdXIgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1cyBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKX19LEZyPW51bGwsVnI9bnVsbCxxcj1udWxsLEtyPSExO2Z1bmN0aW9uIHpyKGUsdCl7dmFyIHI9dC53aW5kb3c9PT10P3QuZG9jdW1lbnQ6OT09PXQubm9kZVR5cGU/dDp0Lm93bmVyRG9jdW1lbnQ7cmV0dXJuIEtyfHxudWxsPT1Gcnx8RnIhPT1QcihyKT9udWxsOigic2VsZWN0aW9uU3RhcnQiaW4ocj1GcikmJkxyKHIpP3I9e3N0YXJ0OnIuc2VsZWN0aW9uU3RhcnQsZW5kOnIuc2VsZWN0aW9uRW5kfTpyPXthbmNob3JOb2RlOihyPShyLm93bmVyRG9jdW1lbnQmJnIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSkuYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6ci5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOnIuZm9jdXNOb2RlLGZvY3VzT2Zmc2V0OnIuZm9jdXNPZmZzZXR9LHFyJiZlcihxcixyKT9udWxsOihxcj1yLChlPXVlLmdldFBvb2xlZChVci5zZWxlY3QsVnIsZSx0KSkudHlwZT0ic2VsZWN0IixlLnRhcmdldD1Gcix6KGUpLGUpKX12YXIgR3I9e2V2ZW50VHlwZXM6VXIsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQscixuKXt2YXIgaSxvPW4ud2luZG93PT09bj9uLmRvY3VtZW50Ojk9PT1uLm5vZGVUeXBlP246bi5vd25lckRvY3VtZW50O2lmKCEoaT0hbykpe2U6e289TnIobyksaT1fLm9uU2VsZWN0O2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz1pW2FdO2lmKCFvLmhhc093blByb3BlcnR5KHMpfHwhb1tzXSl7bz0hMTticmVhayBlfX1vPSEwfWk9IW99aWYoaSlyZXR1cm4gbnVsbDtzd2l0Y2gobz10P0QodCk6d2luZG93LGUpe2Nhc2UiZm9jdXMiOihqZShvKXx8InRydWUiPT09by5jb250ZW50RWRpdGFibGUpJiYoRnI9byxWcj10LHFyPW51bGwpO2JyZWFrO2Nhc2UiYmx1ciI6cXI9VnI9RnI9bnVsbDticmVhaztjYXNlIm1vdXNlZG93biI6S3I9ITA7YnJlYWs7Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJtb3VzZXVwIjpjYXNlImRyYWdlbmQiOnJldHVybiBLcj0hMSx6cihyLG4pO2Nhc2Uic2VsZWN0aW9uY2hhbmdlIjppZihqcilicmVhaztjYXNlImtleWRvd24iOmNhc2Uia2V5dXAiOnJldHVybiB6cihyLG4pfXJldHVybiBudWxsfX07ZnVuY3Rpb24gSHIoZSx0KXtyZXR1cm4gZT1pKHtjaGlsZHJlbjp2b2lkIDB9LHQpLCh0PWZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiBuLkNoaWxkcmVuLmZvckVhY2goZSxmdW5jdGlvbihlKXtudWxsIT1lJiYodCs9ZSl9KSx0fSh0LmNoaWxkcmVuKSkmJihlLmNoaWxkcmVuPXQpLGV9ZnVuY3Rpb24gV3IoZSx0LHIsbil7aWYoZT1lLm9wdGlvbnMsdCl7dD17fTtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl0WyIkIityW2ldXT0hMDtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKWk9dC5oYXNPd25Qcm9wZXJ0eSgiJCIrZVtyXS52YWx1ZSksZVtyXS5zZWxlY3RlZCE9PWkmJihlW3JdLnNlbGVjdGVkPWkpLGkmJm4mJihlW3JdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iocj0iIittdChyKSx0PW51bGwsaT0wO2k8ZS5sZW5ndGg7aSsrKXtpZihlW2ldLnZhbHVlPT09cilyZXR1cm4gZVtpXS5zZWxlY3RlZD0hMCx2b2lkKG4mJihlW2ldLmRlZmF1bHRTZWxlY3RlZD0hMCkpO251bGwhPT10fHxlW2ldLmRpc2FibGVkfHwodD1lW2ldKX1udWxsIT09dCYmKHQuc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiBZcihlLHQpe3JldHVybiBudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZhKCI5MSIpLGkoe30sdCx7dmFsdWU6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIFhyKGUsdCl7dmFyIHI9dC52YWx1ZTtudWxsPT1yJiYocj10LmRlZmF1bHRWYWx1ZSxudWxsIT0odD10LmNoaWxkcmVuKSYmKG51bGwhPXImJmEoIjkyIiksQXJyYXkuaXNBcnJheSh0KSYmKDE+PXQubGVuZ3RofHxhKCI5MyIpLHQ9dFswXSkscj10KSxudWxsPT1yJiYocj0iIikpLGUuX3dyYXBwZXJTdGF0ZT17aW5pdGlhbFZhbHVlOm10KHIpfX1mdW5jdGlvbiBRcihlLHQpe3ZhciByPW10KHQudmFsdWUpLG49bXQodC5kZWZhdWx0VmFsdWUpO251bGwhPXImJigocj0iIityKSE9PWUudmFsdWUmJihlLnZhbHVlPXIpLG51bGw9PXQuZGVmYXVsdFZhbHVlJiZlLmRlZmF1bHRWYWx1ZSE9PXImJihlLmRlZmF1bHRWYWx1ZT1yKSksbnVsbCE9biYmKGUuZGVmYXVsdFZhbHVlPSIiK24pfWZ1bmN0aW9uICRyKGUpe3ZhciB0PWUudGV4dENvbnRlbnQ7dD09PWUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUmJihlLnZhbHVlPXQpfWsuaW5qZWN0RXZlbnRQbHVnaW5PcmRlcigiUmVzcG9uZGVyRXZlbnRQbHVnaW4gU2ltcGxlRXZlbnRQbHVnaW4gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luIENoYW5nZUV2ZW50UGx1Z2luIFNlbGVjdEV2ZW50UGx1Z2luIEJlZm9yZUlucHV0RXZlbnRQbHVnaW4iLnNwbGl0KCIgIikpLFM9aixFPUwsdz1ELGsuaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lKHtTaW1wbGVFdmVudFBsdWdpbjpicixFbnRlckxlYXZlRXZlbnRQbHVnaW46JHQsQ2hhbmdlRXZlbnRQbHVnaW46VXQsU2VsZWN0RXZlbnRQbHVnaW46R3IsQmVmb3JlSW5wdXRFdmVudFBsdWdpbjpBZX0pO3ZhciBacj17aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsbWF0aG1sOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn07ZnVuY3Rpb24gSnIoZSl7c3dpdGNoKGUpe2Nhc2Uic3ZnIjpyZXR1cm4iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciO2Nhc2UibWF0aCI6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiO2RlZmF1bHQ6cmV0dXJuImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwifX1mdW5jdGlvbiBlbihlLHQpe3JldHVybiBudWxsPT1lfHwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI9PT1lP0pyKHQpOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI9PT1lJiYiZm9yZWlnbk9iamVjdCI9PT10PyJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjplfXZhciB0bixybj12b2lkIDAsbm49KHRuPWZ1bmN0aW9uKGUsdCl7aWYoZS5uYW1lc3BhY2VVUkkhPT1aci5zdmd8fCJpbm5lckhUTUwiaW4gZSllLmlubmVySFRNTD10O2Vsc2V7Zm9yKChybj1ybnx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHN2Zz4iK3QrIjwvc3ZnPiIsdD1ybi5maXJzdENoaWxkO2UuZmlyc3RDaGlsZDspZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2Zvcig7dC5maXJzdENoaWxkOyllLmFwcGVuZENoaWxkKHQuZmlyc3RDaGlsZCl9fSwidW5kZWZpbmVkIiE9PXR5cGVvZiBNU0FwcCYmTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24/ZnVuY3Rpb24oZSx0LHIsbil7TVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24oZnVuY3Rpb24oKXtyZXR1cm4gdG4oZSx0KX0pfTp0bik7ZnVuY3Rpb24gb24oZSx0KXtpZih0KXt2YXIgcj1lLmZpcnN0Q2hpbGQ7aWYociYmcj09PWUubGFzdENoaWxkJiYzPT09ci5ub2RlVHlwZSlyZXR1cm4gdm9pZChyLm5vZGVWYWx1ZT10KX1lLnRleHRDb250ZW50PXR9dmFyIGFuPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxib3JkZXJJbWFnZU91dHNldDohMCxib3JkZXJJbWFnZVNsaWNlOiEwLGJvcmRlckltYWdlV2lkdGg6ITAsYm94RmxleDohMCxib3hGbGV4R3JvdXA6ITAsYm94T3JkaW5hbEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGNvbHVtbnM6ITAsZmxleDohMCxmbGV4R3JvdzohMCxmbGV4UG9zaXRpdmU6ITAsZmxleFNocmluazohMCxmbGV4TmVnYXRpdmU6ITAsZmxleE9yZGVyOiEwLGdyaWRBcmVhOiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3BhbjohMCxncmlkUm93U3RhcnQ6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TcGFuOiEwLGdyaWRDb2x1bW5TdGFydDohMCxmb250V2VpZ2h0OiEwLGxpbmVDbGFtcDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx0YWJTaXplOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMCxmaWxsT3BhY2l0eTohMCxmbG9vZE9wYWNpdHk6ITAsc3RvcE9wYWNpdHk6ITAsc3Ryb2tlRGFzaGFycmF5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlTWl0ZXJsaW1pdDohMCxzdHJva2VPcGFjaXR5OiEwLHN0cm9rZVdpZHRoOiEwfSxzbj1bIldlYmtpdCIsIm1zIiwiTW96IiwiTyJdO2Z1bmN0aW9uIHVuKGUsdCxyKXtyZXR1cm4gbnVsbD09dHx8ImJvb2xlYW4iPT09dHlwZW9mIHR8fCIiPT09dD8iIjpyfHwibnVtYmVyIiE9PXR5cGVvZiB0fHwwPT09dHx8YW4uaGFzT3duUHJvcGVydHkoZSkmJmFuW2VdPygiIit0KS50cmltKCk6dCsicHgifWZ1bmN0aW9uIGNuKGUsdCl7Zm9yKHZhciByIGluIGU9ZS5zdHlsZSx0KWlmKHQuaGFzT3duUHJvcGVydHkocikpe3ZhciBuPTA9PT1yLmluZGV4T2YoIi0tIiksaT11bihyLHRbcl0sbik7ImZsb2F0Ij09PXImJihyPSJjc3NGbG9hdCIpLG4/ZS5zZXRQcm9wZXJ0eShyLGkpOmVbcl09aX19T2JqZWN0LmtleXMoYW4pLmZvckVhY2goZnVuY3Rpb24oZSl7c24uZm9yRWFjaChmdW5jdGlvbih0KXt0PXQrZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnN1YnN0cmluZygxKSxhblt0XT1hbltlXX0pfSk7dmFyIGZuPWkoe21lbnVpdGVtOiEwfSx7YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDohMCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxpbms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2JyOiEwfSk7ZnVuY3Rpb24gbG4oZSx0KXt0JiYoZm5bZV0mJihudWxsIT10LmNoaWxkcmVufHxudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSYmYSgiMTM3IixlLCIiKSxudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiYobnVsbCE9dC5jaGlsZHJlbiYmYSgiNjAiKSwib2JqZWN0Ij09PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiYiX19odG1sImluIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUx8fGEoIjYxIikpLG51bGwhPXQuc3R5bGUmJiJvYmplY3QiIT09dHlwZW9mIHQuc3R5bGUmJmEoIjYyIiwiIikpfWZ1bmN0aW9uIGhuKGUsdCl7aWYoLTE9PT1lLmluZGV4T2YoIi0iKSlyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0LmlzO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fWZ1bmN0aW9uIHBuKGUsdCl7dmFyIHI9TnIoZT05PT09ZS5ub2RlVHlwZXx8MTE9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50KTt0PV9bdF07Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aWYoIXIuaGFzT3duUHJvcGVydHkoaSl8fCFyW2ldKXtzd2l0Y2goaSl7Y2FzZSJzY3JvbGwiOkFyKCJzY3JvbGwiLGUpO2JyZWFrO2Nhc2UiZm9jdXMiOmNhc2UiYmx1ciI6QXIoImZvY3VzIixlKSxBcigiYmx1ciIsZSksci5ibHVyPSEwLHIuZm9jdXM9ITA7YnJlYWs7Y2FzZSJjYW5jZWwiOmNhc2UiY2xvc2UiOkZlKGkpJiZBcihpLGUpO2JyZWFrO2Nhc2UiaW52YWxpZCI6Y2FzZSJzdWJtaXQiOmNhc2UicmVzZXQiOmJyZWFrO2RlZmF1bHQ6LTE9PT10ZS5pbmRleE9mKGkpJiZUcihpLGUpfXJbaV09ITB9fX1mdW5jdGlvbiBkbigpe312YXIgeW49bnVsbCxnbj1udWxsO2Z1bmN0aW9uIHZuKGUsdCl7c3dpdGNoKGUpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6cmV0dXJuISF0LmF1dG9Gb2N1c31yZXR1cm4hMX1mdW5jdGlvbiBtbihlLHQpe3JldHVybiJ0ZXh0YXJlYSI9PT1lfHwib3B0aW9uIj09PWV8fCJub3NjcmlwdCI9PT1lfHwic3RyaW5nIj09PXR5cGVvZiB0LmNoaWxkcmVufHwibnVtYmVyIj09PXR5cGVvZiB0LmNoaWxkcmVufHwib2JqZWN0Ij09PXR5cGVvZiB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09dC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9dC5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIGJuPSJmdW5jdGlvbiI9PT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0OnZvaWQgMCxfbj0iZnVuY3Rpb24iPT09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLFNuPW8udW5zdGFibGVfc2NoZWR1bGVDYWw="
}